{"_id":"@brainst0rm/router","_rev":"3-154409d681f3274ca6c55478d1bc8329","name":"@brainst0rm/router","dist-tags":{"latest":"0.14.3"},"versions":{"0.13.0":{"name":"@brainst0rm/router","version":"0.13.0","keywords":["ai","coding-assistant","llm","multi-model","routing","agent","developer-tools","brainstorm"],"license":"Apache-2.0","_id":"@brainst0rm/router@0.13.0","maintainers":[{"name":"justinjilg","email":"justin.jilg@gmail.com"}],"homepage":"https://brainstorm.co","bugs":{"url":"https://github.com/justinjilg/brainstorm/issues"},"dist":{"shasum":"446989adcb77e01d5f82e8178c5376087ace3f34","tarball":"https://registry.npmjs.org/@brainst0rm/router/-/router-0.13.0.tgz","fileCount":5,"integrity":"sha512-lTWEzWlIi6Ev5So+J0dwuNAecyqGRscRNKAvWW40ng8759sjytadzwpoaHErYOW9dGN+Vatbi183NzahrQzUPA==","signatures":[{"sig":"MEYCIQD+1/AMtFfk16lKyXkjDwlha6dQNJYfVdxP90PrII1B9QIhALhSasPKTIJUCeTyP/2hqri0LkzIOprT0dPGUEFeBeNC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brainst0rm%2frouter@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111278},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"fc3927e5efbf3160cda65e54fddb4d093da9646d","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"justinjilg","email":"justin.jilg@gmail.com"},"repository":{"url":"git+https://github.com/justinjilg/brainstorm.git","type":"git","directory":"packages/router"},"_npmVersion":"10.9.4","description":"Task classifier with 6 routing strategies and Thompson sampling","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ai":"^6","@brainst0rm/db":"0.13.0","@brainst0rm/config":"0.13.0","@brainst0rm/shared":"0.13.0","@brainst0rm/providers":"0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/router_0.13.0_1774823642549_0.15475069054796475","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@brainst0rm/router","version":"0.14.1","keywords":["ai","coding-assistant","llm","multi-model","routing","agent","developer-tools","brainstorm"],"license":"Apache-2.0","_id":"@brainst0rm/router@0.14.1","maintainers":[{"name":"justinjilg","email":"justin.jilg@gmail.com"}],"homepage":"https://brainstorm.co","bugs":{"url":"https://github.com/justinjilg/brainstorm/issues"},"dist":{"shasum":"ce54f00976d8b0fedfc9b5c5ae10d77781af8e94","tarball":"https://registry.npmjs.org/@brainst0rm/router/-/router-0.14.1.tgz","fileCount":5,"integrity":"sha512-Qj4B486n7QkuF9c6GAbCldzQTlbEP8jl2yTBNjFarSws6ZCTTwAIrpUKUY1ey8BVU8HeZAjMHcOguwAtD2miOw==","signatures":[{"sig":"MEUCIQC4zc15lqGvgH9cs4Rr2ICXoL9qZvFQlIcGWrTaRf2JGwIgb7qf9ZZWt/rrrPoysaWq/1yAK/1oJpYjavBo12rGHiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brainst0rm%2frouter@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":185430},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b303a03206692ae6b7b1cc29d1a2598feb8b1168","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"justinjilg","email":"justin.jilg@gmail.com"},"repository":{"url":"git+https://github.com/justinjilg/brainstorm.git","type":"git","directory":"packages/router"},"_npmVersion":"10.9.7","description":"Task classifier with 6 routing strategies and Thompson sampling","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ai":"^6","@brainst0rm/db":"0.14.1","@brainst0rm/config":"0.14.1","@brainst0rm/shared":"0.14.1","@brainst0rm/gateway":"0.14.1","@brainst0rm/providers":"0.14.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","fast-check":"^4.6.0","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/router_0.14.1_1778927466240_0.9919501952359859","host":"s3://npm-registry-packages-npm-production"}},"0.14.3":{"name":"@brainst0rm/router","version":"0.14.3","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest run"},"dependencies":{"@brainst0rm/config":"0.14.3","@brainst0rm/db":"0.14.3","@brainst0rm/gateway":"0.14.3","@brainst0rm/providers":"0.14.3","@brainst0rm/shared":"0.14.3","ai":"^6"},"devDependencies":{"fast-check":"^4.6.0","tsup":"^8","typescript":"^5.7"},"description":"Task classifier with 6 routing strategies and Thompson sampling","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/justinjilg/brainstorm.git","directory":"packages/router"},"homepage":"https://brainstorm.co","keywords":["ai","coding-assistant","llm","multi-model","routing","agent","developer-tools","brainstorm"],"main":"./dist/index.js","types":"./dist/index.d.ts","publishConfig":{"access":"public"},"_id":"@brainst0rm/router@0.14.3","gitHead":"10e9a5392bcf59b26446ef84a942d5b89cecc491","bugs":{"url":"https://github.com/justinjilg/brainstorm/issues"},"_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-ErFrSkDj79ZlktWN4zSa1tg5LOT5PLqgnG8WkuBht56By8LUr5BNA899OUOjTSUmA/oSTFP9aGzZwukkp++DUQ==","shasum":"54e41b21f3752b29e748897a783ab0a101e7e537","tarball":"https://registry.npmjs.org/@brainst0rm/router/-/router-0.14.3.tgz","fileCount":5,"unpackedSize":185430,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brainst0rm%2frouter@0.14.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGI5OYMXCHCVZr+kEOeDoEtpwzYZQNBd96PeHlnx8O9fAiEA8K7KA0uUb1dt//Nd3XgQ09F5gF8PTC8429aI0oc8cFY="}]},"_npmUser":{"name":"justinjilg","email":"justin.jilg@gmail.com"},"directories":{},"maintainers":[{"name":"justinjilg","email":"justin.jilg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/router_0.14.3_1778932010194_0.03447151809254212"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-29T22:34:02.470Z","modified":"2026-05-16T11:46:50.648Z","0.13.0":"2026-03-29T22:34:02.716Z","0.14.1":"2026-05-16T10:31:06.393Z","0.14.3":"2026-05-16T11:46:50.356Z"},"bugs":{"url":"https://github.com/justinjilg/brainstorm/issues"},"license":"Apache-2.0","homepage":"https://brainstorm.co","keywords":["ai","coding-assistant","llm","multi-model","routing","agent","developer-tools","brainstorm"],"repository":{"type":"git","url":"git+https://github.com/justinjilg/brainstorm.git","directory":"packages/router"},"description":"Task classifier with 6 routing strategies and Thompson sampling","maintainers":[{"name":"justinjilg","email":"justin.jilg@gmail.com"}],"readme":"# @brainst0rm/router\n\nTask classification and intelligent model routing with 5 strategies.\n\n## Key Exports\n\n- `BrainstormRouter` — Main router: `route(prompt, options)` → model selection\n- `classifyTask()` — Heuristic task classifier returning `TaskProfile`\n- `CostTracker` — Per-session and daily cost tracking with budget enforcement\n\n## Strategies\n\n| Strategy        | Use Case                          |\n| --------------- | --------------------------------- |\n| `quality-first` | Best model for the task (default) |\n| `cost-first`    | Cheapest viable model             |\n| `combined`      | Balance quality, cost, speed      |\n| `capability`    | Route by measured eval scores     |\n| `rule-based`    | Custom rules from config          |\n\n## Usage\n\n```typescript\nimport { BrainstormRouter, classifyTask } from \"@brainst0rm/router\";\n\nconst router = new BrainstormRouter(config, providers);\nconst { model, strategy } = await router.route(\"Refactor this component\");\n```\n","readmeFilename":"README.md"}