{"_id":"@howells/ai","_rev":"26-c0f6ed41065282792d068234dd591aa8","name":"@howells/ai","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.8":{"name":"@howells/ai","version":"0.1.8","license":"MIT","_id":"@howells/ai@0.1.8","maintainers":[{"name":"danielhowells","email":"daniel.howells@gmail.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"dist":{"shasum":"3ce73644acc3d3cd7e9fd72f304bcd0551791aef","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.8.tgz","fileCount":7,"integrity":"sha512-ilgWNHVfMjlvrcES98pV37iWreDUR/brCMgX1AgpVZ9dg2GI1kjxnXzN6OXTCLSR2O8sMZInG/VnDOEKHt4BIg==","signatures":[{"sig":"MEUCIQC/+tgJAWwyZZOSsB/1Bx2Y4nMjsl1yRU434ppvl3MD8QIgVRXbh5TmZxD0ere11TIez4scRd3/r3Bbwmqua6icDg4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76135},"type":"module","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"}},"gitHead":"5209750e5980aa117fcf04da843228e891b5dbec","scripts":{"test":"bun test","build":"tsdown","check-types":"tsc --noEmit"},"_npmUser":{"name":"danielhowells","email":"daniel.howells@gmail.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, and retrieval models with 12 configurable slots.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^5.9.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.8_1777279068217_0.6515583054478709","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@howells/ai","version":"0.1.9","license":"MIT","_id":"@howells/ai@0.1.9","maintainers":[{"name":"danielhowells","email":"daniel.howells@gmail.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"dist":{"shasum":"7afcc1f294f9b90564ffa152c0b686f56beb859e","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.9.tgz","fileCount":7,"integrity":"sha512-hH8RXWbdEpjMYTA0L9hsr7aqU2cqnSqvUHh9lL8+7VE+H/Pa2SQzd453IomKtqcjxyvks6Gadj7n7OaVpdGgFA==","signatures":[{"sig":"MEYCIQCehatgDV2Zr89y/somrul0WcpLTECgGAMgu6ydh75RGgIhAO8/gtoC9kCwWY17VfT3/o7bsBksAS0DJ9MbMvF6pWE3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93039},"type":"module","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"}},"gitHead":"513ac09de4c93d24baac6b8abe8f98002b374e5b","scripts":{"test":"bun test","build":"tsdown","check-types":"tsc --noEmit"},"_npmUser":{"name":"danielhowells","email":"daniel.howells@gmail.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, and retrieval models with 12 configurable slots.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^5.9.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.9_1777281659961_0.5829604681013283","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@howells/ai","version":"0.1.10","license":"MIT","_id":"@howells/ai@0.1.10","maintainers":[{"name":"danielhowells","email":"daniel.howells@gmail.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"dist":{"shasum":"8a31c5db406105bcbf1ba1468becf436504f247f","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.10.tgz","fileCount":7,"integrity":"sha512-mkmBULbkgNG5fvSa8Jo1IvDAzvMR7PRl18iNA+1YtoNOrTlBiuinKZCfRxVzv6oKZKnC9rWQ7Zone/8HX++PuA==","signatures":[{"sig":"MEUCIDAT4DYEQly6Zs94STC60g1zirtzLQgmEVkjMzJOV1uqAiEAk1vuZFPbRJtF4gTmYs/twtNb3ploQHo4Fo5TpJGmQqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93037},"type":"module","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"}},"gitHead":"513ac09de4c93d24baac6b8abe8f98002b374e5b","scripts":{"test":"bun test","build":"tsdown","check-types":"tsc --noEmit"},"_npmUser":{"name":"danielhowells","email":"daniel.howells@gmail.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^5.9.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.10_1777281929076_0.3832248578239925","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@howells/ai","version":"0.1.11","license":"MIT","_id":"@howells/ai@0.1.11","maintainers":[{"name":"danielhowells","email":"daniel.howells@gmail.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"dist":{"shasum":"68927063fd66f80e23bcf9ba445ca314936ab8fa","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.11.tgz","fileCount":11,"integrity":"sha512-PE2ft2n0AZ99GqPiT2Gh5sIwWSb7zX9RsAsjhTwFhiHBzKb4vRfkxj9uMDr3Dl25yN7yEGNNdW0iYdJNJE0c7A==","signatures":[{"sig":"MEYCIQCikgREn/AuVlcdCeZQU+9kGZCHNf0bwNTyGksD3hBUtwIhAK2syW6NfWK5Dpyw6HnDm/S5bkml3xXERw9SbAMZxXNn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143200},"type":"module","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","default":"./dist/models.mjs"}},"gitHead":"ddaa715d0c3b6af59735e3e968e6e2032b6be7c4","scripts":{"test":"bun test","build":"tsdown","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel.howells@gmail.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^5.9.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.11_1777285407722_0.25238061823755986","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@howells/ai","version":"0.1.12","license":"MIT","_id":"@howells/ai@0.1.12","maintainers":[{"name":"danielhowells","email":"daniel.howells@gmail.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"b92ad52daba552a27319d24de4398ffb9c58523d","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.12.tgz","fileCount":15,"integrity":"sha512-cKdnPwDNzyeFd/7CGk5UMlfPkNxSk25kB/67mC5svv2tA0nj58JbGkCZFwM8AZ2fmCRbl5qoaje70u3qWshQ9Q==","signatures":[{"sig":"MEUCIHWyw3WPMWM/2H11lCRv9gqn5SiHmDbtSYlgHr0XnkGxAiEAxlxrodxiwCF7SlrwXUnq60VKOp3vG4VZbCgCZ7UFiSE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188716},"type":"module","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","default":"./dist/models.mjs"}},"gitHead":"42d83c2bf097cb30cac0693ec4499c63d2a9a219","scripts":{"test":"bun test","build":"tsdown","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel.howells@gmail.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^5.9.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.12_1777286385878_0.12849956045014488","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@howells/ai","version":"0.1.13","license":"MIT","_id":"@howells/ai@0.1.13","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"6ab764714ccdacda73268e91f31fdb9649931510","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.13.tgz","fileCount":15,"integrity":"sha512-H/3x+m6aw44snyC1JUIz2aU9zMorq5iUbJgxDpl2hV3tU15bd5oGoeX1KamXevSSgWlaYVf4f0hh5Xk6DSMIyw==","signatures":[{"sig":"MEYCIQC2Leu+l6r3BAC8nRvOQf6puEcFcVqmYes3ynPAOV8ydgIhAIJLXDjdbh0kM+NiV6BGDlZZuGA6a2HEDW68Cki05Kty","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285633},"type":"module","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","default":"./dist/models.mjs"}},"gitHead":"d4b6ee9b2bf66fa89d85b6652a7a85387710f0c6","scripts":{"test":"bun test","build":"tsdown","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^6.0.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.13_1777824620175_0.2399353259856969","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@howells/ai","version":"0.1.14","license":"MIT","_id":"@howells/ai@0.1.14","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"c2379a02e9d8480aeb75d2c699f0705375543dac","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.14.tgz","fileCount":15,"integrity":"sha512-9x6vWuccX5FLlYNj5r9eEhy5BtzBp2W0fpeTk+TlalPeuPKKc/mshl9rCMp2qQdVJCucFF2oYDwhbHdYPmPeuA==","signatures":[{"sig":"MEUCIQCj2yUYn5oBckQdRcFNMVFyH4nP/qlTgEVmN1oiIuWn/wIgf+8iIXwgqCv+UvtJCVkVqBtQ9F+EtxnTJzakWdCgxK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328777},"type":"module","_from":"file:howells-ai-0.1.14.tgz","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","default":"./dist/models.mjs"}},"scripts":{"test":"bun test","build":"tsdown","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/private/var/folders/45/5vm28w013gn68pl0wwr511640000gn/T/9ca8c03678cb9ba31aeb8c1f4ce7c44e/howells-ai-0.1.14.tgz","_integrity":"sha512-9x6vWuccX5FLlYNj5r9eEhy5BtzBp2W0fpeTk+TlalPeuPKKc/mshl9rCMp2qQdVJCucFF2oYDwhbHdYPmPeuA==","repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.9.3","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.9","typescript":"^6.0.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.14_1777835093543_0.7628138382983922","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@howells/ai","version":"0.1.15","license":"MIT","_id":"@howells/ai@0.1.15","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"714531dfe2c8c0726657481e92676b96af567cd1","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.15.tgz","fileCount":15,"integrity":"sha512-8C6UVaGFDXhljrtUKBYT9EQjEpH4n0nrTzCxTFer+5rB2/Yd5y8bOxLAWi89g3yRe7w2TbiY+9oq5iPz++RJAQ==","signatures":[{"sig":"MEQCIA77vpRgpR2pUAlLvG75GBvNHSkaEs5DIxC6UCtQsdi3AiANK6d5s8P27aRleMzWdAUg61Cf8gOAfOeWoJVd50y/oQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328597},"type":"module","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","default":"./dist/models.mjs"}},"gitHead":"82499b44670da77f39ecf5cfcef7ea3d7dbca904","scripts":{"test":"bun test","build":"tsdown","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.9.3","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^6.0.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.15_1777859492254_0.03223928673251164","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@howells/ai","version":"0.1.16","license":"MIT","_id":"@howells/ai@0.1.16","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"7689aba6eb6247b45a684e83d6db5d37f6fbd762","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.16.tgz","fileCount":15,"integrity":"sha512-bEw66yp0sV7ZIAeiMLy08gpCEMwT7LF7GDupD2beLpxCz0knRd62EMTbmErT/iXlVu8/1kFga4HqgW9G/Eqilg==","signatures":[{"sig":"MEUCIBNxR3CKJT3MwrhIjt49+zaPl75tuLLJsnbuot4uMONdAiEA2U47amkly5EukRDe+VK1u0IJu0FB0CJy8xaXquETi1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333608},"type":"module","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","default":"./dist/models.mjs"}},"gitHead":"e56017fe05fe8d2dcf12ea50522ab1a82a807922","scripts":{"test":"bun test","build":"tsdown","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^6.0.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.16_1778953411845_0.2506583196124972","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@howells/ai","version":"0.1.17","license":"MIT","_id":"@howells/ai@0.1.17","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"f6cbe451711c81d7473d70a5b535fdd57173d75f","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.17.tgz","fileCount":15,"integrity":"sha512-VB2fRFlLiQZW3l+Zif17JR0Bflq581QrT85eiRtkgiFCO7Y+RzKaFwl18uDsBmFgoy8WIEp0zlim2yI8DG0JzA==","signatures":[{"sig":"MEUCIQDE8Xryae9q1kaxmFyV+QOoKJqmDU8xdyMfI3DmfeAjqAIgIAE2p9YRD/1VJOVhv9laQZysAvr0p3hHWnIr3MdVa+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346615},"type":"module","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","default":"./dist/models.mjs"}},"gitHead":"8f5d12d845f75513f0b9e993565d3e88f62d82e2","scripts":{"test":"bun test","build":"tsdown","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^6.0.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.17_1779219478293_0.9835103377235113","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@howells/ai","version":"0.1.18","license":"MIT","_id":"@howells/ai@0.1.18","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"78a973500c35dcdf8f7ca0d8b968a899ccf3e85d","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.18.tgz","fileCount":15,"integrity":"sha512-Vxp53XEVCBws3p5VyhwP96pFVZ0g4BVzWft7i44BxHnVgj1exB4q5gRERLWP+kLjT/jZjD0kACsEAPdFJ5TZMw==","signatures":[{"sig":"MEUCIFHZmRyyQGnVRv/4n01nPeT8hG5rUxFtaisD+gXwOvTpAiEA4xALjagF0tsXJl/usU/7dn4uBIggV2f6XDAb/kXqW2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346615},"type":"module","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","default":"./dist/models.mjs"}},"gitHead":"1726f81f4e07497c81c8c84d54f5814baa905e5d","scripts":{"test":"bun test","build":"tsdown","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"6.0.116","@ai-sdk/react":"3.0.118","@ai-sdk/google":"^3.0.64","@ai-sdk/openai":"^3.0.53","@ai-sdk/gateway":"^3.0.104","@ai-sdk/anthropic":"^3.0.71","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.21.9","typescript":"^6.0.3","@types/node":"^25.6.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.18_1779219905760_0.8761458377910647","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@howells/ai","version":"0.1.19","license":"MIT","_id":"@howells/ai@0.1.19","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"644a63b197bddcb69a05425f9def8f136745844c","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.19.tgz","fileCount":15,"integrity":"sha512-LsOWsQJqRb/T/7GKH2GVi7EyMxZuZfB6u3y7ErFKQBAmVlw18UBLoboNe1GINowk1G5TWHpQY04lpZ3kv5hf9g==","signatures":[{"sig":"MEUCIQDMnVx6A0EBe7Lvam+VkF9B3bJwqAk5Oi2DCJXEk7CBIAIgTgTH5XrM+EvL+phxv5ceJcgzf1Y3UYwk/u4+NPzr+88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":373589},"type":"module","_from":"file:howells-ai-0.1.19.tgz","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","default":"./dist/models.mjs"}},"scripts":{"lint":"howells-ox-check --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test","build":"tsdown","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"howells-ox-fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/private/var/folders/45/5vm28w013gn68pl0wwr511640000gn/T/588d8f887d00637605106bd93b4ab445/howells-ai-0.1.19.tgz","_integrity":"sha512-LsOWsQJqRb/T/7GKH2GVi7EyMxZuZfB6u3y7ErFKQBAmVlw18UBLoboNe1GINowk1G5TWHpQY04lpZ3kv5hf9g==","repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.9.3","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ai":"6.0.197","zod":"^4.4.3","@ai-sdk/react":"3.0.199","@howells/envy":"^0.3.7","@ai-sdk/google":"^3.0.80","@ai-sdk/openai":"^3.0.68","@ai-sdk/gateway":"^3.0.125","@ai-sdk/anthropic":"^3.0.81","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.2","typescript":"^6.0.3","@types/node":"^25.9.1","@howells/lint":"^0.2.1"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.19_1780661563183_0.2568125420663623","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@howells/ai","version":"0.1.20","license":"MIT","_id":"@howells/ai@0.1.20","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"d7f7083d4597abdfe492d0f37c6fec9fee2cf76b","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.1.20.tgz","fileCount":15,"integrity":"sha512-/1FQGpI75k5B/K9I10Y2UNX0M2bmEVt/Y76ElFkeugrXR4XCyRnI/FsHo8r0jj+PMQiQBg2HfX1T9I8k2vqyNQ==","signatures":[{"sig":"MEUCIFd5CwLmpNfBTmMSOOGnf7BIhKeeacGtev00Y/YgzLxCAiEA80UchsH1pSWZO9LGMOc7ztbZAN/jnDghXB2T6pTjui8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374112},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./package.json":"./package.json"},"gitHead":"ef5b2a2cbaed0cae316c1182c5846a45836d59ec","scripts":{"lint":"oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test","build":"tsdown","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"10.9.3","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ai":"6.0.197","zod":"^4.4.3","@ai-sdk/react":"3.0.199","@howells/envy":"^0.3.7","@ai-sdk/google":"^3.0.80","@ai-sdk/openai":"^3.0.68","@ai-sdk/gateway":"^3.0.125","@ai-sdk/anthropic":"^3.0.81","voyage-ai-provider":"^3.0.0","@openrouter/ai-sdk-provider":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"tsdown":"^0.22.2","typescript":"^6.0.3","@types/node":"^25.9.1","@howells/lint":"^0.2.1"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.20_1780682173581_0.5045592070434748","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@howells/ai","version":"0.2.0","license":"MIT","_id":"@howells/ai@0.2.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"d0e6b531b792ac11f873691f24b328b98a549fef","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.2.0.tgz","fileCount":15,"integrity":"sha512-OE/OEqEYs1LyEbwAS6vktfhPczqFoqYNs2YOfywjhrvaTfThzmcvhu421nMU7N3LYbSxfG78XZ2uHopbXFhY7A==","signatures":[{"sig":"MEYCIQC1AKdoKygbBBAA7HvvASGdMTuF9lsUYBHmfEpwmoKygAIhANp679oQBcIL6d60nd//2agKV+LjZZuauQlT70BRYpfV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":398944},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./package.json":"./package.json"},"scripts":{"lint":"oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test","build":"tsdown","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^6.0.209","zod":"^4.4.3","@ai-sdk/react":"^3.0.211","@howells/envy":"^0.3.7","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.74","@ai-sdk/gateway":"^3.0.134","@ai-sdk/anthropic":"^3.0.86","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^2.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typescript":"^6.0.3","@types/node":"^26.0.1","@howells/lint":"^0.5.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.2.0_1782397115016_0.0920800718191559","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@howells/ai","version":"0.4.0","license":"MIT","_id":"@howells/ai@0.4.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"a13a016072aadaf723d42b35e3486d05b1ead304","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.4.0.tgz","fileCount":17,"integrity":"sha512-wrfIwkA6SPYDX2/eaEx+Sc1e12Ja008WHCbkTbCvwr9POhIUfhZ3QfUmXRWm5B7+Ti2FgO9Lq7Xr7VAqz3/5Zw==","signatures":[{"sig":"MEQCIGvnyIjxW2sIRJ6nLvlH64VifEKrwcfcn8zCMCD7HZLxAiAbFR+ByhXk/gjvkAMoFFdAct/RH5cp0QnfkdVgstW7xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206778},"knip":{"ignore":["oxfmt.config.ts","oxlint.config.ts"]},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","default":"./dist/server.mjs"},"./package.json":"./package.json"},"gitHead":"885232c1839d691824d099e8223fc8ff97cc238f","scripts":{"lint":"howells-oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && howells-oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test test","build":"tsdown","check":"pnpm check-types && pnpm test && pnpm lint && pnpm build && pnpm benchmark:build","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && howells-oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"deprecated":"published with unresolved catalog: specifiers - use 0.4.1","repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"catalog:","zod":"catalog:","@ai-sdk/react":"catalog:","@howells/envy":"catalog:","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/gateway":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"tsdown":"^0.22.3","typescript":"catalog:","@types/node":"catalog:","@howells/lint":"catalog:"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.0_1784298610303_0.5476616719569845","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@howells/ai","version":"0.4.1","license":"MIT","_id":"@howells/ai@0.4.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"1ec93d2b907809749148106fa96bd0e90b698ec1","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.4.1.tgz","fileCount":17,"integrity":"sha512-dS/mrJn7M+Sgij2qDm5GsO/NW3WDPule2LF2eVFdj/W0qEIgJHfYkv1kcZcTBU7VtZ2TAzB0CI8Wt0wV0ALAzg==","signatures":[{"sig":"MEYCIQCMDb4WC/J6REnbxk1Z3sbqhU6xl6+S8nHWMfExy0kYEgIhAJJNUsI5G73eDm5ZJBbcdqcfh9Mg+BlV0oMuQZynPpG1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206729},"knip":{"ignore":["oxfmt.config.ts","oxlint.config.ts"]},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","default":"./dist/server.mjs"},"./package.json":"./package.json"},"scripts":{"lint":"howells-oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && howells-oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test test","build":"tsdown","check":"pnpm check-types && pnpm test && pnpm lint && pnpm build && pnpm benchmark:build","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && howells-oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^7.0.0","zod":"^4.4.3","@ai-sdk/react":"^4.0.0","@howells/envy":"^0.3.7","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/gateway":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typescript":"^6.0.3","@types/node":"^26.0.1","@howells/lint":"^0.5.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.1_1784298872832_0.8865021510866875","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@howells/ai","version":"0.5.0","license":"MIT","_id":"@howells/ai@0.5.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"3d2f8451080377a09fd01982cacdd3b5a59130f1","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.5.0.tgz","fileCount":27,"integrity":"sha512-eTxtYkBzNi5Sk8hSzUjRNcRjaZvw7MEPPBIjURm4Ytn9GwyqozHpx4s124SBJTSWdVE3j6qIPo/kNPzEnnAtpQ==","signatures":[{"sig":"MEUCIQD5uUGvBRhuNGQgYOcGkGFg6CPFqT8sWXufsrgmRQXsngIgbpsZhP+XWWKxmlsU2lJizGStGUSlcyFT+f/gMACd7uY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287872},"knip":{"ignore":["oxfmt.config.ts","oxlint.config.ts"]},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./eval":{"types":"./dist/eval.d.mts","import":"./dist/eval.mjs","default":"./dist/eval.mjs"},"./bench":{"types":"./dist/bench.d.mts","import":"./dist/bench.mjs","default":"./dist/bench.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","default":"./dist/server.mjs"},"./catalog":{"types":"./dist/catalog.d.mts","import":"./dist/catalog.mjs","default":"./dist/catalog.mjs"},"./taxonomy":{"types":"./dist/taxonomy.d.mts","import":"./dist/taxonomy.mjs","default":"./dist/taxonomy.mjs"},"./decisions":{"types":"./dist/decisions.d.mts","import":"./dist/decisions.mjs","default":"./dist/decisions.mjs"},"./package.json":"./package.json"},"gitHead":"f0a3e25cd754755dacaedf616017ae42bfdd468c","scripts":{"lint":"howells-oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && howells-oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test test","build":"tsdown","check":"pnpm check-types && pnpm test && pnpm lint && pnpm build && pnpm benchmark:build","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && howells-oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"catalog:","zod":"catalog:","@ai-sdk/react":"catalog:","@howells/envy":"catalog:","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/gateway":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"tsdown":"^0.22.3","typescript":"catalog:","@types/node":"catalog:","@howells/lint":"catalog:","oxlint-tsgolint":"0.23.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.0_1786889558153_0.8810377663969882","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@howells/ai","version":"0.5.1","license":"MIT","_id":"@howells/ai@0.5.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"d2c9d4b8a46513470479872af362f16dce7636b0","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.5.1.tgz","fileCount":27,"integrity":"sha512-Jr8f7TyK1Ue9fKauV9DaWfZ9T2nWDHCUUrDxMhdYuBI4fbgvJ3fCPRKuV0m39hu8eexuh6Aabsa3Yj2Y+1/ldA==","signatures":[{"sig":"MEYCIQDNOV8uyru7tob8qAVp4T2ggz7mPYSHHB8k+PJKhXNeewIhAO7nXHUOX9pqAXm2FAlq+f4s1C8QMI6kTG0M5oxhXhTH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294035},"knip":{"ignore":["oxfmt.config.ts","oxlint.config.ts"]},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./eval":{"types":"./dist/eval.d.mts","import":"./dist/eval.mjs","default":"./dist/eval.mjs"},"./bench":{"types":"./dist/bench.d.mts","import":"./dist/bench.mjs","default":"./dist/bench.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","default":"./dist/server.mjs"},"./catalog":{"types":"./dist/catalog.d.mts","import":"./dist/catalog.mjs","default":"./dist/catalog.mjs"},"./taxonomy":{"types":"./dist/taxonomy.d.mts","import":"./dist/taxonomy.mjs","default":"./dist/taxonomy.mjs"},"./decisions":{"types":"./dist/decisions.d.mts","import":"./dist/decisions.mjs","default":"./dist/decisions.mjs"},"./package.json":"./package.json"},"scripts":{"lint":"howells-oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && howells-oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test test","build":"tsdown","check":"pnpm check-types && pnpm test && pnpm lint && pnpm build && pnpm benchmark:build","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && howells-oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ai":"^7.0.0","zod":"^4.4.3","@ai-sdk/react":"^4.0.0","@howells/envy":"^0.3.7","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/gateway":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typescript":"^6.0.3","@types/node":"^26.0.1","@howells/lint":"^0.5.0","oxlint-tsgolint":"0.23.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.1_1786968675596_0.4194647739633852","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@howells/ai","version":"0.6.0","license":"MIT","_id":"@howells/ai@0.6.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"6dd59b35c3d5b50380773d36ead9901b7a171202","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.6.0.tgz","fileCount":27,"integrity":"sha512-7EkLBEr4FDYGgHEAFQWvr+Uj2XFjEwDbUiykAjmWolNjvKHLgVaCJUZiGKQRw0QgiGndummLhMQSlTTMC13i6g==","signatures":[{"sig":"MEUCIFzRhY1m1B6EKzq3CfRbQCvXp3i/T01SpRHFotGc4vlSAiEA/Gv2U2cKH2tIknI71NAF1Qq92KQ9P0mH6DsTidOxuHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298294},"knip":{"ignore":["oxfmt.config.ts","oxlint.config.ts"]},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./eval":{"types":"./dist/eval.d.mts","import":"./dist/eval.mjs","default":"./dist/eval.mjs"},"./bench":{"types":"./dist/bench.d.mts","import":"./dist/bench.mjs","default":"./dist/bench.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","default":"./dist/server.mjs"},"./catalog":{"types":"./dist/catalog.d.mts","import":"./dist/catalog.mjs","default":"./dist/catalog.mjs"},"./taxonomy":{"types":"./dist/taxonomy.d.mts","import":"./dist/taxonomy.mjs","default":"./dist/taxonomy.mjs"},"./decisions":{"types":"./dist/decisions.d.mts","import":"./dist/decisions.mjs","default":"./dist/decisions.mjs"},"./package.json":"./package.json"},"gitHead":"80964c6902001af398a441307a058d08a676ddf6","scripts":{"lint":"howells-oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && howells-oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test test","build":"tsdown","check":"pnpm check-types && pnpm test && pnpm lint && pnpm build && pnpm benchmark:build","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && howells-oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"deprecated":"Broken published manifest; use 0.6.1 or later.","repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"catalog:","zod":"catalog:","@ai-sdk/react":"catalog:","@howells/envy":"catalog:","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/gateway":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"tsdown":"^0.22.3","typescript":"catalog:","@types/node":"catalog:","@howells/lint":"catalog:","oxlint-tsgolint":"0.23.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.6.0_1788197372992_0.10973651872194634","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@howells/ai","version":"0.6.1","license":"MIT","_id":"@howells/ai@0.6.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"bd2598733b68944b35fd9c37bdb00c72f2076e69","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.6.1.tgz","fileCount":27,"integrity":"sha512-SyFpsjcXjzasWiT/UVgTMgjYjB5FbaIUcmnzeWswOhXTKTdDBfXgcL04tDs2eUH5/38ILaw9x338i55000e+SQ==","signatures":[{"sig":"MEUCIAViMcpG5SEk1FGdb7b73JMO9bvDnztlea/tYN8rpmZxAiEA8xhkXgUvwqWtTC7Q32Qg7ZkNURdYHcYD2RqXKJdVToM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298315},"knip":{"ignore":["oxfmt.config.ts","oxlint.config.ts"]},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./eval":{"types":"./dist/eval.d.mts","import":"./dist/eval.mjs","default":"./dist/eval.mjs"},"./bench":{"types":"./dist/bench.d.mts","import":"./dist/bench.mjs","default":"./dist/bench.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","default":"./dist/server.mjs"},"./catalog":{"types":"./dist/catalog.d.mts","import":"./dist/catalog.mjs","default":"./dist/catalog.mjs"},"./taxonomy":{"types":"./dist/taxonomy.d.mts","import":"./dist/taxonomy.mjs","default":"./dist/taxonomy.mjs"},"./decisions":{"types":"./dist/decisions.d.mts","import":"./dist/decisions.mjs","default":"./dist/decisions.mjs"},"./package.json":"./package.json"},"scripts":{"lint":"howells-oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && howells-oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test test","build":"tsdown","check":"pnpm check-types && pnpm build && pnpm test && pnpm lint && pnpm benchmark:build","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","prepack":"pnpm build","lint:fix":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && howells-oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^7.0.0","zod":"^4.4.3","@ai-sdk/react":"^4.0.0","@howells/envy":"^0.3.7","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/gateway":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"tsdown":"^0.22.3","typescript":"catalog:","@types/node":"catalog:","@howells/lint":"catalog:","oxlint-tsgolint":"0.23.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.6.1_1788198357848_0.7822914631527949","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@howells/ai","version":"0.6.2","license":"MIT","_id":"@howells/ai@0.6.2","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"ffb76da9263095299f218cdbf79e47f552622c07","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.6.2.tgz","fileCount":27,"integrity":"sha512-jDk9WWJKnevdchW8dnOrv+GuWAUmx4wPcgSSS+BNne6Kz3h0aPls4xLqNDOZq/ulLE0sIzN6Q+x7acrhEsPf/g==","signatures":[{"sig":"MEUCIB/ecocsqeDzp1A1vz9WRfOIuuovKRfIYkNLpu6C9zyGAiEA3AcVudoVgruGGvusaRdTV5yO6f9CvsYe3Ksc/FYLsIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300330},"knip":{"ignore":["oxfmt.config.ts","oxlint.config.ts"]},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./eval":{"types":"./dist/eval.d.mts","import":"./dist/eval.mjs","default":"./dist/eval.mjs"},"./bench":{"types":"./dist/bench.d.mts","import":"./dist/bench.mjs","default":"./dist/bench.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","default":"./dist/server.mjs"},"./catalog":{"types":"./dist/catalog.d.mts","import":"./dist/catalog.mjs","default":"./dist/catalog.mjs"},"./taxonomy":{"types":"./dist/taxonomy.d.mts","import":"./dist/taxonomy.mjs","default":"./dist/taxonomy.mjs"},"./decisions":{"types":"./dist/decisions.d.mts","import":"./dist/decisions.mjs","default":"./dist/decisions.mjs"},"./package.json":"./package.json"},"scripts":{"lint":"howells-oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && howells-oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test test","build":"tsdown","check":"pnpm check-types && pnpm build && pnpm test && pnpm lint && pnpm benchmark:build","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && howells-oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^7.0.0","zod":"^4.4.3","@ai-sdk/react":"^4.0.0","@howells/envy":"^0.3.7","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/gateway":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typescript":"^6.0.3","@types/node":"^26.0.1","@howells/lint":"^0.5.0","oxlint-tsgolint":"0.23.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.6.2_1788256241873_0.6596791123133599","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@howells/ai","version":"0.6.3","license":"MIT","_id":"@howells/ai@0.6.3","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"6958bef3e89fe94d00a2f5c83afd68948b6eb09e","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.6.3.tgz","fileCount":27,"integrity":"sha512-rAlo4LtDqqqcRB0AnTzNjYF5lsNbmse7EGCzYaiX0EKpEaDNawLmjPZpLPwoqbGEOihCjr4q/1JLx1Pp/tVjfg==","signatures":[{"sig":"MEUCIQDkIB4b/QdffmQcsopHRYTFw3/qRZBC2KjQ/lIL2N7HgQIgQEF6IfDrt0I/8gxdrjOo77F/XQVgjbqwODx3jv1iqdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300973},"knip":{"ignore":["oxfmt.config.ts","oxlint.config.ts"]},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./eval":{"types":"./dist/eval.d.mts","import":"./dist/eval.mjs","default":"./dist/eval.mjs"},"./bench":{"types":"./dist/bench.d.mts","import":"./dist/bench.mjs","default":"./dist/bench.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","default":"./dist/server.mjs"},"./catalog":{"types":"./dist/catalog.d.mts","import":"./dist/catalog.mjs","default":"./dist/catalog.mjs"},"./taxonomy":{"types":"./dist/taxonomy.d.mts","import":"./dist/taxonomy.mjs","default":"./dist/taxonomy.mjs"},"./decisions":{"types":"./dist/decisions.d.mts","import":"./dist/decisions.mjs","default":"./dist/decisions.mjs"},"./package.json":"./package.json"},"gitHead":"6ef0071f6fd49f3bd98c3951e7a29ade44980b4f","scripts":{"lint":"howells-oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && howells-oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test test","build":"tsdown","check":"pnpm check-types && pnpm build && pnpm test && pnpm lint && pnpm benchmark:build","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","prepack":"pnpm build","lint:fix":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && howells-oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified AI client for all projects — Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^7.0.0","zod":"^4.4.3","@ai-sdk/react":"^4.0.0","@howells/envy":"^0.3.7","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/gateway":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"tsdown":"^0.22.3","typescript":"catalog:","@types/node":"catalog:","@howells/lint":"catalog:","oxlint-tsgolint":"0.23.0"},"peerDependencies":{"typescript":"^5 || ^6"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.6.3_1788286690111_0.722581806239287","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@howells/ai","version":"0.6.4","license":"MIT","_id":"@howells/ai@0.6.4","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/ai#readme","bugs":{"url":"https://github.com/howells/ai/issues"},"bin":{"ai":"dist/cli.mjs","howells-ai":"dist/cli.mjs"},"dist":{"shasum":"30a71cdcaa53fb084abdf813fdfda838a0aeab22","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-0.6.4.tgz","fileCount":27,"integrity":"sha512-kNNv9wttOvdPIqh8ZJUu4bciEQCsmqTUatc2CZfX4uKzTjRxeQEZIqSkBQ7WKNCiZYFSBvnu3lFMWBCQvGCNaw==","signatures":[{"sig":"MEQCIBrs6tkob2JA1f2Dns7lbIn6pqQxdxj5v1sMqQAjj/VuAiBbgc9sXcP5Lsk5LE2kQLxQNSVKZcv7Elrnvg2ZX9uG8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300068},"knip":{"ignore":["oxfmt.config.ts","oxlint.config.ts"]},"main":"./dist/index.mjs","type":"module","_from":"file:/tmp/howells-ai-0.6.4.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./eval":{"types":"./dist/eval.d.mts","import":"./dist/eval.mjs","default":"./dist/eval.mjs"},"./bench":{"types":"./dist/bench.d.mts","import":"./dist/bench.mjs","default":"./dist/bench.mjs"},"./react":{"types":"./dist/react.d.mts","import":"./dist/react.mjs","default":"./dist/react.mjs"},"./models":{"types":"./dist/models.d.mts","import":"./dist/models.mjs","default":"./dist/models.mjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","default":"./dist/server.mjs"},"./catalog":{"types":"./dist/catalog.d.mts","import":"./dist/catalog.mjs","default":"./dist/catalog.mjs"},"./taxonomy":{"types":"./dist/taxonomy.d.mts","import":"./dist/taxonomy.mjs","default":"./dist/taxonomy.mjs"},"./decisions":{"types":"./dist/decisions.d.mts","import":"./dist/decisions.mjs","default":"./dist/decisions.mjs"},"./package.json":"./package.json"},"scripts":{"lint":"howells-oxfmt --check src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts && howells-oxlint --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test":"bun test test","build":"tsdown","check":"pnpm check-types && pnpm build && pnpm test && pnpm lint && pnpm benchmark:build","format":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md","lint:fix":"howells-oxfmt --write src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts README.md && howells-oxlint --fix --config=oxlint.config.ts src test apps/benchmark tsdown.config.ts tsconfig.json package.json pnpm-workspace.yaml oxlint.config.ts oxfmt.config.ts","test:live":"LIVE_AI_TESTS=1 bun test test/live.test.ts","check-types":"tsc --noEmit","benchmark:dev":"pnpm --filter @howells/ai-benchmark dev","benchmark:build":"pnpm --filter @howells/ai-benchmark build"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/tmp/howells-ai-0.6.4.tgz","_integrity":"sha512-kNNv9wttOvdPIqh8ZJUu4bciEQCsmqTUatc2CZfX4uKzTjRxeQEZIqSkBQ7WKNCiZYFSBvnu3lFMWBCQvGCNaw==","repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified AI client for all projects - Gateway, OpenRouter, direct providers, tiered language models, and retrieval models.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^7.0.0","zod":"^4.4.3","@ai-sdk/react":"^4.0.0","@howells/envy":"^0.3.7","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/gateway":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","voyage-ai-provider":"^4.0.0","@openrouter/ai-sdk-provider":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.23.0","typescript":"7.0.2","@types/node":"^26.0.1","@howells/lint":"^0.5.0","oxlint-tsgolint":"0.23.0"},"peerDependencies":{"typescript":"^5 || ^6 || ^7"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.6.4_1788776788893_0.31634645576799114","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"_id":"@howells/ai@1.0.0","bin":{"howells-ai":"dist/cli.mjs"},"bugs":{"url":"https://github.com/howells/ai/issues"},"dist":{"shasum":"a11504419ed859462c6c6023d40563b5f1959cf5","tarball":"https://registry.npmjs.org/@howells/ai/-/ai-1.0.0.tgz","fileCount":10,"integrity":"sha512-4OkNW0t/+fHRxJx9KKCZwNRnlTkCO58UQXCRag9qjm9L9Qo989+PjlaeMvnmHNgoE+l5D8D2fyWtpVi8fLZ6yQ==","signatures":[{"sig":"MEUCICPPMVfw6TE8a49DupckiblO9ElRSVZ95S0BPwc5zffmAiEAseG+JjIb2y4Ay3IysGopLRlp/+QOxjZx/BJdixPDHC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCnnRY6lzt6uYeo2NCUwgq5VKSZ7UrMwY9xiGDaUuetlQIgdNZgs/wbtJ2r1dD9H9UVnzotbuYInOe0p1dgeU/HRrc="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2fai@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42476},"main":"./dist/index.mjs","name":"@howells/ai","type":"module","_from":"file:/home/runner/work/ai/ai/release-artifacts/howells-ai-1.0.0.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./bench":{"types":"./dist/bench.d.mts","import":"./dist/bench.mjs","default":"./dist/bench.mjs"},"./package.json":"./package.json"},"license":"MIT","scripts":{"lint":"howells-check src test tsdown.config.ts oxlint.config.ts oxfmt.config.ts","test":"vitest run","build":"tsdown","prepush":"pnpm typecheck && pnpm lint:ratchet && pnpm test","lint:fix":"howells-fix src test tsdown.config.ts oxlint.config.ts oxfmt.config.ts","typecheck":"tsc --noEmit","lint:ratchet":"howells-ratchet","lint:rebaseline":"howells-ratchet --write"},"version":"1.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:91159103-c3c6-40cc-8a41-1b5fb03cc171"}},"homepage":"https://github.com/howells/ai#readme","_resolved":"/home/runner/work/ai/ai/release-artifacts/howells-ai-1.0.0.tgz","_integrity":"sha512-4OkNW0t/+fHRxJx9KKCZwNRnlTkCO58UQXCRag9qjm9L9Qo989+PjlaeMvnmHNgoE+l5D8D2fyWtpVi8fLZ6yQ==","repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"_npmVersion":"11.12.1","description":"The best model for each job: one OpenRouter model ID per kind of work, with the request settings measured alongside it.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"howells-oxfmt --write"},"maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"_nodeVersion":"24.15.0","dependencies":{"zod":"^4.6.5","@howells/envy":"^0.3.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.23.0","vitest":"^5.0.1","typescript":"7.0.2","@types/node":"^26.0.1","lint-staged":"^17.5.1","@howells/lint":"^3.5.1","@howells/husky":"^0.2.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai_1.0.0_1790336131666_0.017285328811463385"}}},"time":{"created":"2026-04-27T08:37:48.142Z","modified":"2026-09-25T11:35:32.218Z","0.1.8":"2026-04-27T08:37:48.361Z","0.1.9":"2026-04-27T09:21:00.098Z","0.1.10":"2026-04-27T09:25:29.234Z","0.1.11":"2026-04-27T10:23:27.881Z","0.1.12":"2026-04-27T10:39:46.043Z","0.1.13":"2026-05-03T16:10:20.326Z","0.1.14":"2026-05-03T19:04:53.759Z","0.1.15":"2026-05-04T01:51:32.409Z","0.1.16":"2026-05-16T17:43:31.993Z","0.1.17":"2026-05-19T19:37:58.444Z","0.1.18":"2026-05-19T19:45:05.929Z","0.1.19":"2026-06-05T12:12:43.357Z","0.1.20":"2026-06-05T17:56:13.824Z","0.2.0":"2026-06-25T14:18:35.179Z","0.4.0":"2026-07-17T14:30:10.461Z","0.4.1":"2026-07-17T14:34:32.978Z","0.5.0":"2026-08-16T14:12:38.288Z","0.5.1":"2026-08-17T12:11:15.730Z","0.6.0":"2026-08-31T17:29:33.161Z","0.6.1":"2026-08-31T17:45:57.999Z","0.6.2":"2026-09-01T09:50:42.056Z","0.6.3":"2026-09-01T18:18:10.310Z","0.6.4":"2026-09-07T10:26:29.027Z","1.0.0":"2026-09-25T11:35:31.780Z"},"bugs":{"url":"https://github.com/howells/ai/issues"},"license":"MIT","homepage":"https://github.com/howells/ai#readme","repository":{"url":"git+https://github.com/howells/ai.git","type":"git"},"description":"The best model for each job: one OpenRouter model ID per kind of work, with the request settings measured alongside it.","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"readme":"# @howells/ai\n\nAn opinionated answer to \"which model should do this job?\". One OpenRouter model ID per job, and the request settings it was measured with. Change a pick here and every repo that imports it moves together.\n\nThe root entry is two frozen objects and imports nothing.\n\n## Jobs and picks\n\n| Job       | Model ID                         | Settings             | Evidence                                                                                                                                   |\n| --------- | -------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n| `agent`   | `openai/gpt-6-luna`              | provider default     | Samplize consultant, 45 turns: 2 hard fails and judge score 0.94 against gpt-5.6-luna's 4 and 0.91, at half the cost, 24 Sep 2026          |\n| `extract` | `deepseek/deepseek-v4.1-flash`   | reasoning off        | MaterialGraph composition parsing: 135/166 facts at 3.8 s against 125/166 at 32 s, 18 Sep 2026. Also for reading long documents            |\n| `judge`   | `openai/gpt-6-luna`              | provider default     | quarry triage scoring equal to gpt-5.6-luna at half the cost; taxonomy cells slightly less stable (6 of 40 moved against 4.5), 24 Sep 2026 |\n| `vision`  | `openai/gpt-6-luna`              | reasoning effort low | First box in 3.2 s against 5.3 s, placement matching gpt-5.6-luna's own run-to-run agreement, 24 Sep 2026. Guard against zero-size boxes   |\n| `triage`  | `google/gemini-3.5-flash-lite`   | none                 | 12 of 12 image kinds at 883 ms, 17 Sep 2026                                                                                                |\n| `write`   | `anthropic/claude-opus-5.5`      | none                 | Benchmark-led: Artificial Analysis Intelligence 57.6, Arena, 24 Sep 2026                                                                   |\n| `reason`  | `anthropic/claude-opus-5.5`      | none                 | Benchmark-led: Artificial Analysis Intelligence 57.6, Arena, 24 Sep 2026                                                                   |\n| `embed`   | `voyageai/voyage-multimodal-3.5` | none                 | Won MaterialGraph's cross-modal eval; one space for text and images                                                                        |\n\nDon't force low reasoning on `agent`: at low it barely reasons and did worse (6 hard fails against 2). Mastra fills a missing reasoning option from the agent's own `defaultOptions`, so an agent that sets low there must remove it.\n\n`settings` is written in OpenRouter's own request vocabulary (`reasoning: { enabled: false }`, `reasoning: { effort: \"low\" }`), and every job has an entry, empty where nothing was measured.\n\n## Install\n\n```sh\npnpm add @howells/ai\n```\n\n## Mastra\n\n```ts\nimport { Agent } from \"@mastra/core/agent\";\nimport { models, settings } from \"@howells/ai\";\n\nconst agent = new Agent({\n  id: \"consultant\",\n  instructions: \"...\",\n  model: `openrouter/${models.agent}`,\n});\n\nawait agent.generate(prompt, {\n  providerOptions: { openrouter: settings.agent },\n});\n```\n\n## AI SDK\n\n```ts\nimport { createOpenRouter } from \"@openrouter/ai-sdk-provider\";\nimport { generateText } from \"ai\";\nimport { models, settings } from \"@howells/ai\";\n\nconst openrouter = createOpenRouter();\n\nawait generateText({\n  model: openrouter(models.extract),\n  prompt,\n  providerOptions: { openrouter: settings.extract },\n});\n```\n\nA raw request takes the settings as they are: `{ model: models.vision, ...settings.vision, messages }`.\n\n## Command line\n\n```sh\nnpx howells-ai models\nnpx howells-ai bench --job triage --routes google-ai-studio,google-vertex --runs 5\n```\n\n`models` prints the table above. `bench` measures streaming latency through OpenRouter, pinning one upstream provider per route, and reads `OPENROUTER_API_KEY` from the environment, `.env` or `.env.local`. Both take `--json`. The same measurement is importable from `@howells/ai/bench`.\n","readmeFilename":"README.md"}