{"_id":"steadyroute","_rev":"34-7e37c4991e704434d3a9c1715a991eb5","name":"steadyroute","dist-tags":{"latest":"0.1.33"},"versions":{"0.1.0":{"name":"steadyroute","version":"0.1.0","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.0","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"3db46d540d8e063cd09d59f52dbed4c0371438d9","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.0.tgz","fileCount":60,"integrity":"sha512-jpu9kIcTfrtFMpS35+XqIrC5WMzf+ZgbYLbcwHBBI4Ny/CKJ99KzLGgg6mThPK5ft8LhI7SxeMqx5RciPu2oiA==","signatures":[{"sig":"MEYCIQDRT0A5e0TqwilYmP4YNUWdjyMzaG+LMi/WpuC1Bu5IZAIhAOy4e/ZemnV6yfDVamBlTOSzTq6ceBLNoGDla2v5o7FE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286388},"main":"dist/index.js","type":"module","gitHead":"088a7851f1326a7558ec44f24e8cd788b817c645","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"11.11.0","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.0_1782920428814_0.5914738776450752","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"steadyroute","version":"0.1.1","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.1","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"22ff028158ae337aa7af7522c7307c7dd5266435","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.1.tgz","fileCount":62,"integrity":"sha512-w3xDyALL+5QcC5eEIMkrClfbhTP1+1zBYsm9xel1ukTN7Pdsm1YFQIyMdBU1r35yxOFRBAVoHLIle9NuLDR2+w==","signatures":[{"sig":"MEYCIQCkeUmXFZ9yo2zJ53P7w96CF0VqXvVhox22h5JHpKMcvQIhANQkZuF8tptj+4fnHH4aQEQFl6becGYPaP322vTXCjou","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318256},"main":"dist/index.js","type":"module","gitHead":"e44f8a878aa0fc04dfa737039999eccc39ae667d","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"11.11.0","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.1_1782966003301_0.69594828220532","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"steadyroute","version":"0.1.2","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.2","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"1b25bd76393adea446ce75ef7f4105dc94d6e125","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.2.tgz","fileCount":62,"integrity":"sha512-DCAdpLipANVwsq5QAvi26ce0hRU+CrLtDqgyi17uv5bxSYalw7rpuL++hNJ23kdKuqfzFBAeARJGhL2xY3ocUA==","signatures":[{"sig":"MEQCIBV/Ioo9KvPg9k2vLZ4wgQAAtEWZ9lATJi1B3jAgONlUAiAqM2WKNSWFGqVtOgaSvSZ+2vSjucXkLJBwZjNpDShriw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318540},"main":"dist/index.js","type":"module","gitHead":"cf3113333940863f8e93d6f41c2b8c415e46e5e6","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"11.11.0","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.2_1782966107007_0.13569979271744192","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"steadyroute","version":"0.1.3","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.3","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"23076893c08959cde61202ef9924fa28fd57c4ae","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.3.tgz","fileCount":62,"integrity":"sha512-MWXkdEv1iSodZzXlW8I+t1qeYNBC5s2Vpx2Vf/96prkmNDMYL8OO71x75VNBQFz0hcGqsKe/GC7pIGpwaIjtNA==","signatures":[{"sig":"MEQCICNQPzTba/3oRlEZpTgs7Z3rofF+DxFQKt4BL7vPxSFIAiB/Bov1F97jleNp9tMZAq+CXA34tm3WiRN55MGilsYZhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319067},"main":"dist/index.js","type":"module","gitHead":"c3c5ac00c77f44d72b199e0c2cd1f026f85d4112","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"11.11.0","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.3_1782981767778_0.8169328443723003","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"steadyroute","version":"0.1.4","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.4","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"eb584fe6e3f8977b10c2ef1229690ed96d68f8f5","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.4.tgz","fileCount":62,"integrity":"sha512-vwiToM7S/GZYTtxnFBaW6nzY5PMbvir+i+6I0AILmCGX8ioMAheUo/zdEnkwKfHXHFGJEnqRZ438/BeYVrg61g==","signatures":[{"sig":"MEQCIEZ/IPW5JNaXEK4gTYyTVIHyF3+IUbEmyovFiTHdU08CAiAZ34097p4LfGp9tMeTX+c/aTF6kYhaKv8BIcB9cDQuWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326042},"main":"dist/index.js","type":"module","gitHead":"8bd02430a50b8e9c21988fa013dd8dd8624068c8","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"11.11.0","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.4_1782994140572_0.6560999290947451","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"steadyroute","version":"0.1.5","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.5","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"a8d0692a75940bfc74fdbce04db3412fffa63a2f","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.5.tgz","fileCount":66,"integrity":"sha512-GTzIZq5ZY8c5lhCiemXdlnskpPSEJNxt45tTxEMgoXR/sonI2xVxdAZEMG+cWcnKp+LDluYx5wKUC/SfGOjjtg==","signatures":[{"sig":"MEQCIFZ7JqHO9RH0lQl+WLT92Ae0Yz6SxzhMlDu6w6jkLt2EAiBRMuiNCBMjKK+J5KlZSToLko6oIofgbs7dqhUEqOg8nQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347864},"main":"dist/index.js","type":"module","gitHead":"e61f715a9288a5fe79ffdd84a3a55f986d68472b","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"11.11.0","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.5_1783000059336_0.24871165347780178","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"steadyroute","version":"0.1.6","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.6","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"43ee96be53a760e568dfbed36741ffd5e70b3b57","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.6.tgz","fileCount":66,"integrity":"sha512-MgeDNhPxmbOWpcsw0EEYDDZb/bWQ8IX0Mn4wGLhj6dyP0QpMHibUaWyn33vQBOrHFa4upYPdgVpk4AYZAxrLRg==","signatures":[{"sig":"MEYCIQDS0IMfHcJRSobNSc3rtwf/NXGMf/oI0NR404L11R3R+wIhALb/B5zqFILVXRkKqU3EECwxxf303C1+0DDFcojQE5NG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":351519},"main":"dist/index.js","type":"module","gitHead":"a2115a291aa8aaf4a737b5d1a413d33d30dea05d","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.6_1783004173394_0.7115242117777678","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"steadyroute","version":"0.1.7","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.7","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"926e82b4dcaaa8535dc77513691b75259bf5abd7","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.7.tgz","fileCount":66,"integrity":"sha512-1Jmv4JuBMKUEBZB/Ic+UNZ5lT30Wty2svqGf396esjb8BLeExS3ignUgOvcS0w+skqULznB10TVPlR3YpLt67A==","signatures":[{"sig":"MEQCIFvM9TqwZfJtVWe1SxbFrS+QdioizubnUIJPub3bFFnXAiAjIbsab/lqXV+1FAl6o32fIrbZH6bieD4Fz+Kvb5szWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354676},"main":"dist/index.js","type":"module","gitHead":"f3830a6cb1aab68d1a5630b925f329592dd23326","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.7_1783004527393_0.8514871455073794","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"steadyroute","version":"0.1.8","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.8","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"09128cffb984d80d98adec5fbfd6c7782daec2bf","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.8.tgz","fileCount":69,"integrity":"sha512-FwEfbzzShxkBowcD27HlWazhxTTxW8nhkxowlWIirAxNT5JHYQPCqqUQ5cC3mv+TDM9xHI4A9lAJmzm3Lk0rrQ==","signatures":[{"sig":"MEYCIQD6mDB4NqQemJ5OzXkdyk+eiQbdgvIOqrbbEeEHbdEjxAIhAPl9LwN2ofLoJ8SRQJHmIbWhA/9uoMPH0M/Xv4COCbiG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369513},"main":"dist/index.js","type":"module","gitHead":"3ae93a9c14610936ab8c53dbd9cf6598c9cd8bea","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.8_1783004994994_0.06327208387360073","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"steadyroute","version":"0.1.9","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.9","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"c5e2f031f1638e72a72ceaf4712cb9a0ea54456c","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.9.tgz","fileCount":69,"integrity":"sha512-Oh4qT5ogIHqWnSyrb/MaQqSq43+cO2vQgfxeKk9gSrVQCXNEyyxgRDp/QdOktgkKJ9qDj3K+IVgrN6asUrpRrw==","signatures":[{"sig":"MEYCIQCJHmzbKESbjwCHjaM9hlyoTs5HzWqPx/aoyGBK/IWpqQIhAKLBiCzdWpNSaUECnNWrW097L3Vq3qN25Q4m9yw5LFmc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":370567},"main":"dist/index.js","type":"module","gitHead":"353292d8187a4fb43dd24505b6f7939950174c40","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.9_1783005282121_0.06896129301698894","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"steadyroute","version":"0.1.10","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.10","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"e37a775e61c26a2deeece9169aa77c19030e2809","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.10.tgz","fileCount":72,"integrity":"sha512-d9854/usZC2penx2UtZ/+uANK6li1NTFXHhjsTm1H1cFbtH2jevCpHiZfj2iZ60gJ+pYvYwtJBIUzvdTMKSbnQ==","signatures":[{"sig":"MEUCIQCHE4x8pRx/sB6OZ+dDtTkouePV8gB+2r4i+FPXB2dI9gIgcszrB1gRhGyPYnPwXCenUHltEohcl4nOXb/g2u/y8Hk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375692},"main":"dist/index.js","type":"module","gitHead":"ba0e364c9644d872edd9acf680278cd4bc2ec55c","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.10_1783005944473_0.34970640898660577","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"steadyroute","version":"0.1.11","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.11","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"abcdd54d5e57b91b7ca5e2f5065605ff53264208","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.11.tgz","fileCount":72,"integrity":"sha512-swc3bzqJlhIl0WcNmoTgTkXIhjEBzdPXqHzCrcVX5/8Hb7lUQJLnfxwNaPX8wZg7ma6cn2KvWK/48yo1QfN0wA==","signatures":[{"sig":"MEUCIQCnDVbw/TDcXJyDrUO7K9KJRevPI7fasOQQy027YlN77AIge4m9auLNvo2CnRrFquGbZmZfPn0W0Af2Hz1OC4olW3Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375967},"main":"dist/index.js","type":"module","gitHead":"2e1a4c65fe870e8631c1bf2bc4213d0906f3cf3c","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.11_1783006248776_0.339951894757373","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"steadyroute","version":"0.1.12","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.12","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"ffe85ed3939a11596abc0276a83dc373fd5ac4d6","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.12.tgz","fileCount":75,"integrity":"sha512-9sT39z9hzZiZhE3Mq5kKoIqGZdEbcl7mXgUqs8LaAuBGV4kq4fe0B8iIi29hbqze6XLj/OV28YgoI3O95m+88g==","signatures":[{"sig":"MEUCIE5RzaEpsK+EW3h31+WYcbUmc9O6wzALnaAf0aKvDwpgAiEAu9tQuIW6pJ5wKapiLGMZoWlvsCIHl5uvfQ1uR2KBJko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":387803},"main":"dist/index.js","type":"module","gitHead":"12f3d2994bb53234cfdd03947ee84154b826dbc0","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.12_1783006561005_0.11099631534030152","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"steadyroute","version":"0.1.13","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.13","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"ef24a4daf1382a9b7c86ee5aea9cd67c841cce8e","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.13.tgz","fileCount":75,"integrity":"sha512-wna76MeH0otQlMsVaXXG4KYgKU0/X7bXR7s6pLbDN2c9kEUIk2ML3qR07GRqTduUPE/fBFzL5U5g2S69jhvh/w==","signatures":[{"sig":"MEYCIQDgvm/nofyl7S6dKqyEUdiEB2cqtZbWnrp2wHI0SwMmDAIhAL2nUrQhjyuJ0DSmCFjfrJkbSI96vr1TfVceAV4P8678","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":390776},"main":"dist/index.js","type":"module","gitHead":"6cae7a89438927b19a2c6ae2f264d8e1aab45b88","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.13_1783007093570_0.7390584740891593","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"steadyroute","version":"0.1.14","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.14","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"2b0cef4414eacde2c8ea648256dc43b6575c8a83","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.14.tgz","fileCount":75,"integrity":"sha512-hP01VJ1Dl4dMgv76rA8MEiiOgTeEpJ6s2OWY7mHG46EHHXSeM8ktq/22DLqPs4jFQBtb9ElR+h6W15O8Z77/Pw==","signatures":[{"sig":"MEUCIFj7QlTKS1PxHf86Vwec3kPBopXaRiGOIEhIaf/2eNP8AiEAoDHvpUKgXLXcp68/1+7/9pFVpRCDPhpE82Lg7qveCw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393518},"main":"dist/index.js","type":"module","gitHead":"4d0b22195c0c74c0c82e61d616b76f0c3e8f9cba","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.14_1783007458865_0.7779409785602072","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"steadyroute","version":"0.1.15","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.15","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"f5ae6c97363c593ca01113100a2225e8082c013b","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.15.tgz","fileCount":75,"integrity":"sha512-r4j7Qmvgm1h87eoI36/x9DAtvbzSV93BV140Uq826US7TvcTMl2OHpQ6NosPYtFWZVum8pyJfNEDZDNm7lThmw==","signatures":[{"sig":"MEUCIF7cLc+Vef0CWqPjBbHtzwys8oqorUjb12gjGFAhx8iFAiEAmyYIC25AZDOE0Vkdnk5MaQhCFuUpmNbv2CiScN7kvIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":401356},"main":"dist/index.js","type":"module","gitHead":"a1fa6392445b14a40bffc24879eeb767055a9066","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.15_1783013966343_0.539163531148821","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"steadyroute","version":"0.1.16","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.16","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"b6d8504779a8a5bda41e20a45d259b290a8022b8","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.16.tgz","fileCount":75,"integrity":"sha512-aPzp1RmaWYTWDMbjio4f6/RYg9rUBmuCC19tnXN0oXDPR0Yb9LeJK/67lEwoalwRMyUeBRs8tRhAli2HrLWxMw==","signatures":[{"sig":"MEUCIA9MHl/KkhmDXl7ty4bjyA0ClqgpKGXj0jpefHmBvmR0AiEA8HfUSMzGVHAXmmgTUinCRkFCHVBczkm1n54PBVJ/uA4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":409835},"main":"dist/index.js","type":"module","gitHead":"d8d5394456c167068129815b30ef68940ad68467","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.16_1783023828099_0.7678313522305003","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"steadyroute","version":"0.1.17","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.17","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"e38127ce075f3f542d8b2cb89dfd1222900e8016","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.17.tgz","fileCount":75,"integrity":"sha512-ZZH9E3Q3CoocNtyLDu5xtCJygBWOrsMcbPm9tW4XUf1pcyb15YTqgV+v8fSfO6X3WsiH5VJaVaMAyvxcBAsNbQ==","signatures":[{"sig":"MEYCIQC4JQ4pw0MUUK7oWoA+mcKof5C8F/YL2Y6btcGu2cXSRgIhAOWnfyr9Vz6NrU5zZCjsvVyjMR4ejg4bpgdiFsCzSdy6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416927},"main":"dist/index.js","type":"module","gitHead":"d417c13e16905d7311d087a0584234a06b5d5811","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.17_1783037808327_0.6394252155695717","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"steadyroute","version":"0.1.18","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.18","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"1fca224c927da551ab972e4c34137b631fb7d9cf","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.18.tgz","fileCount":78,"integrity":"sha512-1bZaja8pnsmYUv/7O83qDpvEHbUMcg0cFW/BD2P3bYwCdBEnppkNWcOHEXk/OypghoAb8HZf2yAirxi1WpbBnQ==","signatures":[{"sig":"MEUCIQC3fXaJe98ucBuIdpxxRQfZH+ijto1Mo4bVGDmfwxIrcgIgbgxFaJ+qcV8xz8wMbhdanOY4DlJhLmBYk/YHWD0hl/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":429548},"main":"dist/index.js","type":"module","gitHead":"dc8ef5dd191c929ac171798e2c77481554aba262","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.18_1783038501706_0.6592027277304571","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"steadyroute","version":"0.1.19","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.19","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"a9ef6cf5430aaeb5bbacde4924cbb4eb5395fb20","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.19.tgz","fileCount":78,"integrity":"sha512-0UIp0p+eXQSjdU0sDGDzW/ozKon5HD7Mh8UABDB71UE4A2MO9yMagSi6Mu8q0K7/Anea5C+f1zVG3wMnRMmFYQ==","signatures":[{"sig":"MEUCIB83KfRhaeRNYwzXRft88E069PULxJSNCIWpdxoQQQX1AiEAvRuEDpe+44OeXPlq6V8+8o7GXDK/ZJbj2ltNe4LwVpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":437499},"main":"dist/index.js","type":"module","gitHead":"f5a5b85d13d7c8a8fa01058545750d9a85ad1b70","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.19_1783039022507_0.6359387733602557","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"steadyroute","version":"0.1.20","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.20","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"6e1c6311ba744eb157a0e93fe3b3c048da64207b","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.20.tgz","fileCount":81,"integrity":"sha512-0obc30LGJl9+iKYjJFLKmoKj2PxAar6oayMj7DSqB1YAZCT9goe33lqlcd0qCEipua3pbZvN/TNl45D2rmFzNw==","signatures":[{"sig":"MEYCIQD4Mn8zFzLh+Ddi+t0lMU7F3DaPyeQQ1ymGeh1hSmkXOQIhAK/O3EYMrdvpO7RTaYfMdSYbeiWu00ljn6O3HRbF2YFJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":440416},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"f5d1f715436cdfb27cb8fad955e6ee241a78344f","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.20_1783039579714_0.1813319069453725","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"steadyroute","version":"0.1.21","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.21","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"5e0b96b58560173bf735b30082e56b28eace4e8b","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.21.tgz","fileCount":81,"integrity":"sha512-aLZYoeHq7xi54WugGr+FbOEzouYwFWHdsegr1S4YTiMZ94VbiwbL7QPfsOwUti8nZp+EdS1lv9XsV3OoKPdN3A==","signatures":[{"sig":"MEYCIQCKpGpzUDxc3Myje0vBuoa2Yp4BR04dVi+N0WLS3xJZeAIhAOSR2O86T4KnYbCn/Z0gPDehWO1t3gjsLrVCaF+NX4Cv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":448023},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"f130c55bb58c9a7fa8d16265575f22b889e1d5f6","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.21_1783040743684_0.11081678514335525","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"steadyroute","version":"0.1.22","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.22","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"6a4faf036f59dc7d163c6d0ca7580b7dec053aa1","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.22.tgz","fileCount":81,"integrity":"sha512-VfOehF81IMoXqzdpFpUrnnW/5vUhxs7/o1WhzB9KhV2zIY4fuDPeQondj6Bal2CHRWwoNYdEVzeVMjAP6AARjQ==","signatures":[{"sig":"MEUCIBRDVZvPgEvxiaExzRvZU4dFTO1XZPVh4q9c3+GGQ4xvAiEAp7xW9eHF4z0qdL9WMtz8BadTle0mWEY+YiJqESkPmRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":463937},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"194bd375c393d71b8420e6d92f55c52c733404df","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.22_1783041332181_0.3285473218352084","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"steadyroute","version":"0.1.23","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.23","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"56d3b52e4133ef370bf0089ae27437048106200a","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.23.tgz","fileCount":81,"integrity":"sha512-yL1Acw0HR2AiyWqhSYw/IgHtF07EEvt/YMbCZ2LLhMJctNtShQtJatgGHCob/zo3+9GVPqUdc1BMs59cXzvMTg==","signatures":[{"sig":"MEUCIQCEnDMLwW4YLKrLgLHLaS7NO/Je+GK+S/xxjafzhmp1/gIgCsv1oUgdh1IOL7wlPVjFtQvJYPcQEZJbfIPvAINBK0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":464092},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"e04b66517a5dbed4ae26b2954c4237bf65c7cc0b","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.23_1783041665336_0.027329981000840498","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"steadyroute","version":"0.1.24","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.24","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"32e39b306f32363ec398a0c29488a77044a28bdc","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.24.tgz","fileCount":81,"integrity":"sha512-qbgGHxqh3fsMy9esXtpVXlP6ctVsJr6+5dgKoqZVH48/CFyUOQzASbnGgJdyOHhK8LGZ9RiLJT50HwikpW/sEA==","signatures":[{"sig":"MEYCIQCkUwMHt1GoDLYcTNXgT9BcoOcN6CDbCP2enkYPDMR4AAIhAL6BJC0Cgg3eTch24iKMidqo8I6L99hc2/TPOKCXoTHu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":471739},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"68e6bbaac107366a121b50966b996fc3e7904b64","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.24_1783042005827_0.11498525187247721","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"steadyroute","version":"0.1.25","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.25","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"f7b4e93acd3dc237a29d19ac05eaa30c4c480177","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.25.tgz","fileCount":81,"integrity":"sha512-D1bBISeK/odhw/UgXXc2EC7A0ZNPRa2dn1gndXwIA+YyvYXqhrg9ypAu0eRhe893pSjY/yyjgjFuJ3kukalBCA==","signatures":[{"sig":"MEUCIQD4sJ2sE6Fysdfuv/MWu7eQaOYd9lm9boZtvgoB73HCIQIgLtW6dxHf1BQgHSPIPKdIRNXhYX8XKQSXgNMn2OJjKCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":475625},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"6772274888e953b239e3521e608b6c32665f2333","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.25_1783042340625_0.3592062885138385","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"steadyroute","version":"0.1.26","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.26","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"43e0f5cfaabed378348f1fe428bd22b477cc5471","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.26.tgz","fileCount":81,"integrity":"sha512-HPLTo0DXiC9wCg1eoSjFaySjwv/SALQ6Yr+D+fL0CoJLCgf/jAewJ3eBcHfK6fKCUv1zrfYwlkghTeENHmcpmA==","signatures":[{"sig":"MEUCIQDX7JrBcfMMoRSLLvRhUXyiccOUbuaARmBO9BtujTxGXQIgQboEqb9hb10HTXvUQmZGwEbA7SWuCOH0gphYUrdCo34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":480048},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"7f8e56d92f9077f80a1442133fd252819024e77d","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.26_1783043109099_0.9620695296648438","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"steadyroute","version":"0.1.27","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.27","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"fa74fdad69ffca78c62ec2708c1f293377aabd44","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.27.tgz","fileCount":81,"integrity":"sha512-1zHW7BhUHb0U7xBXwcOmLzWX1xzDELyc3tvXVEgAC89sD7A8rMpNYvcfhrsXXfX1xVH02D6YZt54yog5+sVaeA==","signatures":[{"sig":"MEQCIDX2xsvPOqjB0SHDEvi2fQqiAFEISxMg3EAXgZgCszdaAiB04PGgQpAsP9UvDpSwZlYw535sv0m31NfX4jOrueUHwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492932},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"01eed8b27b220b794664c2fb2e957e759a7acbd0","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.27_1783043594507_0.10722816101778165","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"steadyroute","version":"0.1.28","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.28","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"8cd4cc2c1abbbbbff9dacd7673f1b48a2f84a660","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.28.tgz","fileCount":81,"integrity":"sha512-wztsAWMuSnrHVRxqtce0jbCJztuC7rLhzgqUoU3jDsE3cHJu4rkSccyymaoJaWOb1gounyhOONFVYMHzU6dyYA==","signatures":[{"sig":"MEUCIDgLNbuhGcNAu+1SvVjErY+fLctBqZ7XodTs1Rj4bgU3AiEAjb+RNMQ9txaZq3irZn406sprS+ZDefCELZ3AI4d/xGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":502662},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"25cce4cfdb8ac25cbd6b47e287fc20abf0aee04b","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.28_1783043966742_0.288401633218357","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"steadyroute","version":"0.1.29","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.29","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"9f6e9d31c50b2f25b68cca93c3968cbb55f9e6b4","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.29.tgz","fileCount":81,"integrity":"sha512-XpQlptT/vt/bAT/qzxWN5dT+Lv4sqLjzRim9QVEzWUerDpxsHlarfIFG8iWhc5xDUvy0nqw/dBmemqgZrRIXlA==","signatures":[{"sig":"MEUCIFUXKN7GtwSYnEFB61Kkpf3M6SxPVThwKzZhBoGtqlvyAiEA6HBCTFMJ4sai9/QJxvs0mah8BVUVwN0SElqKo/8QkR8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":514735},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"dea9b691fd38e44a9167ad90aedb6f48aa9bb50d","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.29_1783044299346_0.419237283949228","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"steadyroute","version":"0.1.30","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.30","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"23f89ee75369c12fa2c7446aa89479bb1e85414b","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.30.tgz","fileCount":81,"integrity":"sha512-eFkBBxWo/D5C45BhT2rOVpJdMqzaLPvIAXkoGOhjeuVFdmCP/TpNDF4TUVEYaHfd5IGlzhOQdutPU3xncQLQfQ==","signatures":[{"sig":"MEUCIQCI9QOpZEeVKPK9NFB8hU51gH0MeisLaKBdNqgDz7p4/AIgRfXNsWTXR9XSYAFJEieEOlfMJ8d/vqGVQLU5Ze2Gj6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":516447},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"0877be69c109113f071a21ee17386b2ac2e99930","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.30_1783044647362_0.2769827904727593","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"steadyroute","version":"0.1.31","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.31","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"f1a8c89a57c087167d22dbaad63f38630267665f","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.31.tgz","fileCount":81,"integrity":"sha512-hjRzWB9g7nvAhgO6TmYiVo6MMqaF3yveluX77c+4wlZt/WVyTdoOkk8HcPKFfMO0L/4OtC9t/2SLEc4SEs+qYA==","signatures":[{"sig":"MEUCIQDMcGdBi9Tp2OtflBOI9wIdZEb2IKnUHgZgCRLH8rXAVQIgA5pwkl/z/kUuuW7VtzSH8d8uHN124PhDbPAkwh+P/2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":516596},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"ab9ab8337133b117bed404a7f63eae855022b79b","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.31_1783045959735_0.13965712097047667","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"steadyroute","version":"0.1.32","keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","_id":"steadyroute@0.1.32","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"homepage":"https://github.com/apuslabs/steadyroute#readme","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"bin":{"steadyroute":"dist/cli.js"},"dist":{"shasum":"d53b5bc0b4697a28bd02e09f7806aa739a1faa05","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.32.tgz","fileCount":81,"integrity":"sha512-8RE5lX4M4IVH92WRNuzvlVjA6gHn68NPr3qXdnMg2qN/cW+iD2L64Flg+a+heCHLvVKQsPSWc5unuUxq9z7jvg==","signatures":[{"sig":"MEQCIEg7UQa002+6ERvzyWUYpQMS8b6oR6YcqlbpG2o2blNGAiBTNZGGO8lJt8dyXyslDYxs4seM2yG4Sc+nZIh+EZ11Eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":516728},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"152bd3913fccd3e6a6298d1a6efa20e937ba4d65","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"tsx src/cli.ts start","postbuild":"chmod +x dist/cli.js","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json","check:package":"node scripts/check-package.mjs","release:prepare":"node scripts/prepare-release.mjs"},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"repository":{"url":"git+https://github.com/apuslabs/steadyroute.git","type":"git"},"_npmVersion":"10.9.8","description":"Self-healing free LLM router.","directories":{"doc":"docs"},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","open":"^11.0.0","yaml":"^2.9.0","nanoid":"^5.1.16","fastify":"^5.9.0","commander":"^15.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.9","typescript":"^6.0.3","@types/node":"^26.1.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/steadyroute_0.1.32_1783046213555_0.5296384362831705","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"steadyroute","version":"0.1.33","description":"Self-healing free LLM router.","type":"module","main":"dist/index.js","bin":{"steadyroute":"dist/cli.js"},"directories":{"doc":"docs"},"scripts":{"build":"tsc -p tsconfig.json","postbuild":"chmod +x dist/cli.js","check:package":"node scripts/check-package.mjs","dev":"tsx src/cli.ts","release:prepare":"node scripts/prepare-release.mjs","start":"tsx src/cli.ts start","test":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"},"repository":{"type":"git","url":"git+https://github.com/apuslabs/steadyroute.git"},"keywords":["llm","router","openai-compatible","free-models","codex"],"author":"","license":"MIT","bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"homepage":"https://github.com/apuslabs/steadyroute#readme","dependencies":{"better-sqlite3":"^12.11.1","commander":"^15.0.0","fastify":"^5.9.0","nanoid":"^5.1.16","open":"^11.0.0","yaml":"^2.9.0","zod":"^4.4.3"},"devDependencies":{"@types/better-sqlite3":"^7.6.13","@types/node":"^26.1.0","tsx":"^4.22.4","typescript":"^6.0.3","vitest":"^4.1.9"},"_id":"steadyroute@0.1.33","gitHead":"c2b00c6aed1be47df1e490a47576288c336f94af","types":"./dist/index.d.ts","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-yqfBwkGmYDlcVgum1QiB0uMTYo6ZPkK/G+2HGMHBC59NLnit34LYByrYSzcG/zSlwlMH45Eupjv6ae9e3NZ/6Q==","shasum":"25919c66125e112e5851b0480e3a6b936ce2bbfa","tarball":"https://registry.npmjs.org/steadyroute/-/steadyroute-0.1.33.tgz","fileCount":84,"unpackedSize":517979,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/steadyroute@0.1.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC1TzAiGJX/gdDMEq6TtmPpA2ew4Dc76Lz5D8R2robyvwIhAIes7rhVOUClEwb2dfhvbQdPgLrh/eir2NPi/l7yk41N"}]},"_npmUser":{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"},"maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/steadyroute_0.1.33_1783050965403_0.7308629365208805"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T15:40:28.663Z","modified":"2026-07-03T03:56:05.833Z","0.1.0":"2026-07-01T15:40:28.982Z","0.1.1":"2026-07-02T04:20:03.435Z","0.1.2":"2026-07-02T04:21:47.145Z","0.1.3":"2026-07-02T08:42:47.941Z","0.1.4":"2026-07-02T12:09:00.738Z","0.1.5":"2026-07-02T13:47:39.480Z","0.1.6":"2026-07-02T14:56:13.532Z","0.1.7":"2026-07-02T15:02:07.560Z","0.1.8":"2026-07-02T15:09:55.140Z","0.1.9":"2026-07-02T15:14:42.309Z","0.1.10":"2026-07-02T15:25:44.992Z","0.1.11":"2026-07-02T15:30:48.940Z","0.1.12":"2026-07-02T15:36:01.153Z","0.1.13":"2026-07-02T15:44:53.725Z","0.1.14":"2026-07-02T15:50:58.994Z","0.1.15":"2026-07-02T17:39:26.506Z","0.1.16":"2026-07-02T20:23:48.316Z","0.1.17":"2026-07-03T00:16:48.468Z","0.1.18":"2026-07-03T00:28:21.856Z","0.1.19":"2026-07-03T00:37:02.695Z","0.1.20":"2026-07-03T00:46:19.852Z","0.1.21":"2026-07-03T01:05:43.846Z","0.1.22":"2026-07-03T01:15:32.299Z","0.1.23":"2026-07-03T01:21:05.479Z","0.1.24":"2026-07-03T01:26:46.019Z","0.1.25":"2026-07-03T01:32:20.775Z","0.1.26":"2026-07-03T01:45:09.267Z","0.1.27":"2026-07-03T01:53:14.647Z","0.1.28":"2026-07-03T01:59:26.904Z","0.1.29":"2026-07-03T02:04:59.501Z","0.1.30":"2026-07-03T02:10:47.516Z","0.1.31":"2026-07-03T02:32:39.882Z","0.1.32":"2026-07-03T02:36:53.712Z","0.1.33":"2026-07-03T03:56:05.530Z"},"bugs":{"url":"https://github.com/apuslabs/steadyroute/issues"},"license":"MIT","homepage":"https://github.com/apuslabs/steadyroute#readme","keywords":["llm","router","openai-compatible","free-models","codex"],"repository":{"type":"git","url":"git+https://github.com/apuslabs/steadyroute.git"},"description":"Self-healing free LLM router.","maintainers":[{"name":"jaxwilliams","email":"jaxwilliams.cn@gmail.com"}],"readme":"# SteadyRoute\n\nSelf-healing free LLM router.\n\nSteadyRoute is an experimental, local-first router for using fast-changing free-tier LLM model pools with less manual debugging. It gives you an OpenAI-compatible endpoint, routes around provider instability, and explains why requests fail when the model pool is exhausted, incompatible, rate limited, or temporarily unavailable.\n\nSteadyRoute is powered by the separate [Open Free LLM Catalog](https://github.com/apuslabs/open-free-llm-catalog), an open catalog of provider metadata, model capabilities, limits, and known quirks.\n\n> Experimental: SteadyRoute is early software. Free-tier availability is controlled by upstream providers, not by SteadyRoute.\n\n## Why SteadyRoute\n\nFree-tier model pools are useful, but they are also fragile. Providers change limits, remove models, reject request shapes, throttle traffic, and return errors that are hard to interpret from an AI coding tool.\n\nSteadyRoute focuses on making that fragility visible and manageable:\n\n- Route OpenAI-compatible requests through catalog-aware provider adapters.\n- Diagnose keys, network access, provider health, quota state, schema compatibility, and tool-call support.\n- Keep a local trace of routing decisions and fallback attempts.\n- Explain failures with request IDs instead of opaque \"all models exhausted\" errors.\n- Store provider keys locally in encrypted form.\n- Stay local by default. SteadyRoute v1 is not a public gateway or hosted service.\n\n## Features\n\n- OpenAI-compatible local endpoint.\n- Initial API support for `/v1/chat/completions`, `/v1/responses`, and `/v1/models`.\n- `steadyroute doctor` for install, provider, key, network, quota, schema, tool-call, and compatibility checks.\n- `steadyroute explain <request-id>` for request-level routing traces.\n- Catalog-driven provider and model metadata.\n- Local encrypted provider key storage.\n- One-command setup for macOS, Linux, and Windows.\n- Integration helpers for popular coding tools.\n\n## Install\n\nInstall from npm:\n\n```bash\nnpm install -g steadyroute\n```\n\nOr run from a local checkout:\n\n```bash\nnpm install\nnpm run build\nnpm install -g .\n```\n\n## Quick Start\n\nStart the local router:\n\n```bash\nsteadyroute start\n```\n\nRun diagnostics:\n\n```bash\nsteadyroute doctor\n```\n\nList available models:\n\n```bash\nsteadyroute models\n```\n\nInspect local paths and configuration:\n\n```bash\nsteadyroute config paths\nsteadyroute config show\n```\n\nSend a request through the default free/no-key route:\n\n```bash\ncurl -sS -D /tmp/steadyroute-headers.txt \\\n  http://127.0.0.1:3001/v1/chat/completions \\\n  -H 'content-type: application/json' \\\n  -H 'authorization: Bearer steadyroute-local' \\\n  -d '{\n    \"model\": \"steadyroute:auto\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Reply with one short sentence.\"}]\n  }'\n```\n\nSelect an explicit route policy when needed:\n\n```bash\n# Prefer no-login/free routes first.\ncurl -H 'x-steadyroute-route-policy: free-first' ...\n\n# Prefer coding-agent-capable free models for agent-like requests.\ncurl -H 'x-steadyroute-route-policy: stable-coding-agent' ...\n\n# Restrict routing to a provider or model set.\ncurl -H 'x-steadyroute-provider-allowlist: openrouter' \\\n  -H 'x-steadyroute-model-denylist: qwen/qwen3-coder:free' ...\n\n# Structured output requests prefer cataloged JSON-mode-capable models.\ncurl -H 'content-type: application/json' \\\n  -d '{\"model\":\"steadyroute:auto\",\"messages\":[{\"role\":\"user\",\"content\":\"Return JSON.\"}],\"response_format\":{\"type\":\"json_object\"}}' ...\n```\n\nExplain the request:\n\n```bash\nREQUEST_ID=\"$(awk 'tolower($1)==\"x-steadyroute-request-id:\" {print $2}' /tmp/steadyroute-headers.txt | tr -d '\\r')\"\nsteadyroute explain \"$REQUEST_ID\"\nsteadyroute explain \"$REQUEST_ID\" --json\n```\n\nExport redacted local diagnostics when sharing evidence:\n\n```bash\nsteadyroute diagnostics export --output ./steadyroute-diagnostics.json\n```\n\nCheck local MVP acceptance evidence coverage without running providers:\n\n```bash\nsteadyroute acceptance list\nsteadyroute acceptance init --run 2026-07-03-smoke\neval \"$(steadyroute acceptance init --run 2026-07-03-smoke --print-env --force)\"\nsteadyroute acceptance status\nsteadyroute acceptance status --latest\nsteadyroute acceptance status --run 2026-07-03-smoke\nsteadyroute acceptance audit --latest\nsteadyroute acceptance check --latest\nsteadyroute acceptance todo --latest\nsteadyroute acceptance ids --latest\nsteadyroute acceptance status --json\n```\n\nAdd an optional provider key only when you want keyed providers:\n\n```bash\nprintf '%s' \"$OPENROUTER_API_KEY\" | steadyroute keys add openrouter\nsteadyroute keys list\nsteadyroute keys remove openrouter\n```\n\n## Local Endpoint\n\nBy default, SteadyRoute runs locally and exposes an OpenAI-compatible endpoint:\n\n```text\nhttp://127.0.0.1:3001/v1\n```\n\nUse this base URL in compatible tools and SDKs. SteadyRoute v1 is local-only and should not be exposed to the public internet.\n\n## Diagnostics\n\n`steadyroute doctor` is a first-class part of the project. It is intended to tell you what is wrong and what to try next.\n\nChecks include:\n\n- Local installation and port conflicts.\n- Provider key presence and validity.\n- Provider connectivity and network/proxy issues.\n- Active provider/model/key cooldowns and recent provider failures.\n- Catalog freshness.\n- Free-tier quota evidence where available.\n- Request compatibility with selected models.\n- Streaming support.\n- Tool-call and JSON schema compatibility.\n\nSteadyRoute records request traces locally so you can inspect how a route was selected, which providers were skipped, which fallbacks were attempted, and what final error classification was returned.\n`steadyroute diagnostics export` writes a redacted JSON bundle with doctor output,\nprovider status, key aliases, recent request metadata, trace ids, attempts, and\nusage evidence. Full request and response bodies are summarized by default.\n`steadyroute acceptance list` prints the required MVP scenario ids, evidence\nfilename patterns, machine-readable audit signals, and manual review notes.\n`steadyroute acceptance init` creates a local evidence run directory with a\nmanifest, a `commands.md` capture checklist, a `capture.sh` helper template,\nand `SR_EVIDENCE_DIR` exports for scenario capture.\nThe helper template includes local-only request-id listing and explain capture\nhelpers so saved evidence can be completed without copying ids by hand.\n`steadyroute acceptance status` scans local evidence files and reports which\nrequired MVP scenarios have evidence present; it does not mark the gate passed.\nBy default it aggregates all files under `.steadyroute-acceptance`; use\n`--latest` or `--run <name>` when checking whether a single acceptance run is\ncomplete.\n`steadyroute acceptance audit` applies the same file scan plus machine-readable\nsignal checks for request ids, endpoints, providers, streaming metadata, usage\nlabels, and tool or structured-output shapes. It still does not mark final MVP\nacceptance passed; human review of real provider and dogfood evidence remains\nrequired.\n`steadyroute acceptance check` wraps the audit in a scriptable exit code: zero\nonly when every required scenario has pass-ready local evidence signals, and\nnon-zero otherwise.\n`steadyroute acceptance todo` prints the remaining local evidence files,\nsignals, and scenario-specific next steps without running providers.\n`steadyroute acceptance ids` extracts request ids from saved local evidence\nfiles and prints matching `steadyroute explain` commands.\n\n## Default Free Routes\n\nSteadyRoute's default route order starts with no-login/free routes before\nkeyed providers:\n\n- OpenCode Free (`opencode_free`)\n- Kilo anonymous free route (`kilo`)\n- Optional keyed providers such as OpenRouter, GitHub Models, Groq, and Gemini\n\nFree-route availability is upstream-controlled and may change without notice.\nDo not send sensitive prompts to anonymous/free routes unless you have reviewed\nthe upstream provider's policy.\n\n## Integrations\n\nSteadyRoute integrations configure local tools to use the local router endpoint. They do not change provider terms, provider limits, or the behavior of upstream services.\n\nThe initial focus is on popular coding tools that can use OpenAI-compatible endpoints. Integration helpers should support dry-run and rollback where the target tool allows it.\n\n```bash\nsteadyroute integrations list\nsteadyroute integrations apply codex\nsteadyroute integrations rollback codex\n```\n\nThe Codex integration writes a SteadyRoute-owned guide under\n`~/.steadyroute/integrations/codex.md` with the local provider flags for\n`codex exec`. It does not overwrite global Codex configuration.\n\n## Open Catalog\n\nSteadyRoute uses the [Open Free LLM Catalog](https://github.com/apuslabs/open-free-llm-catalog) for provider and model metadata.\n\nThe catalog tracks provider facts such as model IDs, API shapes, known limits, context windows, streaming support, tool-call behavior, schema quirks, retryable errors, deprecations, region notes, and ToS references.\n\nCatalog data is versioned and community-maintained. Unknown or uncertain fields should be marked as unknown, estimated, or community-reported rather than presented as exact.\n\n## Compliance\n\nSteadyRoute is a local routing and diagnostic tool. It does not create free capacity and does not grant permission to use any provider outside that provider's terms.\n\nPlease use SteadyRoute responsibly:\n\n- Follow each provider's Terms of Service.\n- Do not resell provider access.\n- Do not share a local router as a public service.\n- Do not use SteadyRoute to bypass provider limits, abuse free tiers, or evade access controls.\n- Treat free-tier availability as best-effort and subject to change.\n\nSee [docs/compliance.md](docs/compliance.md) for details.\n\n## Security Model\n\nSteadyRoute v1 is local-only.\n\n- The router should bind to localhost.\n- Provider keys are stored in a local encrypted file.\n- Remote/server mode is not part of the initial scope.\n- Do not expose SteadyRoute directly to the public internet.\n\nIf you need a public gateway, use infrastructure designed for authentication, tenant isolation, rate limiting, observability, and abuse prevention.\n\n## Roadmap\n\nNear-term:\n\n- Provider adapters for the most useful catalog entries.\n- More precise quota evidence and reset handling.\n- Better request explanations and failure classifications.\n- Integration helpers for popular coding tools.\n- Catalog contribution workflow and validation.\n\nLater:\n\n- More routing profiles.\n- Richer local dashboard.\n- Better network and proxy diagnostics.\n- Optional import/export for local configuration.\n\n## Contributing\n\nThe easiest way to help is to improve catalog data: provider limits, model IDs, capabilities, deprecations, schema quirks, and ToS references.\n\nFor code contributions, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}