Package selector
Start with the problem. Leave with one small dependency.
Four focused packages cover merge safety, reproducible JSON, streaming events, and bounded AI tool catalogs. Every option ships TypeScript declarations and runs without runtime dependencies.
Published on npm
The catalog
No package matches that filter. Try the problem selector above.
Decision table
Four boundaries, four packages
| Package | Use it at | Compatibility path | Primary guardrail |
|---|---|---|---|
| deepmerge | Configuration and object composition | deepmerge API and npm alias | Unsafe keys and mutation |
| stable-stringify | Serialization, caches, signatures, logs | fast-json-stable-stringify API | Order, cycles, output limits |
| sse | HTTP event streams and AI output | Web Streams and async iteration | Malformed frames and unbounded buffers |
| tool-router | Large function and MCP catalogs | Native provider definitions | Context size and irrelevant tools |
Implementation guides
Solve the underlying problem
Code, tradeoffs, and migration paths. No account required.
Prototype pollution, array semantics, compatibility aliases, and tests.
Data integrityStable, safe, and canonical JSON are different toolsChoose the right serializer for cache keys, signatures, and logs.
StreamingBuild a bounded SSE client for AI streamsParsing, cancellation, reconnects, limits, and provider event shapes.
AI agentsRoute large tool catalogs before model inferenceReduce context without losing native MCP or provider definitions.
Maintenance contract
Small packages still need grown-up releases.
Compatibility first. Migration paths and public types are tested alongside the native API.
Inspect before install. Source, test suites, benchmarks, changelogs, security policy, and packed contents are public.
No dependency chain. These four packages have zero runtime dependencies, reducing install and supply-chain surface.