{"_id":"claude-api-hub","_rev":"46-71874bceade22e1cfb8ee727582f25b7","name":"claude-api-hub","dist-tags":{"latest":"6.5.4"},"versions":{"0.1.0":{"name":"claude-api-hub","version":"0.1.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.1.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"08f864cecbeff00214f7348dbc2b009a4d0839bb","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.1.0.tgz","fileCount":50,"integrity":"sha512-cN642ZwjxkumBwDAnBXSevb82rWEuclbty2lVD1xyLfgzxH3BfB6J4itvPFlSIbMoWdWnal3D762jMwV6tVrRQ==","signatures":[{"sig":"MEUCIF9XZGI9LVIE843Kq3prqNGl5PPiudZ853co7BoFfQkEAiEA8opnnrWB/moQUd7CGqlkXUZ470nTRxjAlnCPoZiXKck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96134},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"6d070a780bd3c27448d4eba279649c2ec8135328","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.1.0_1776784475438_0.4688755124611521","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"claude-api-hub","version":"0.1.1","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.1.1","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"8d59143fa8114422e975980d19ddcf69b826c77c","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.1.1.tgz","fileCount":50,"integrity":"sha512-iG1KzAY/5Rn0b4hWUSk7bObH7XfNL9Ey8l36duQPiUvy5m40fOhDafb1vxFzzKWSCFcjWUq6LpJOD7LEwA5Law==","signatures":[{"sig":"MEQCIATof3e+zQ1OBQKyGJhBZkzns+Fd98FfWzLAH9xvlktLAiAxS+49wrad8Z1xEDi+A9IjxV0PYQgYPIRTIhd8HQl/Gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97101},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"4756dcc9c5513f1cb0a8d2fac6379d75ca217f67","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.1.1_1776784654767_0.8528676934767023","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"claude-api-hub","version":"0.1.2","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.1.2","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"b52ae6c61dfdb90d0ed4b0d44f58fd03b3a31126","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.1.2.tgz","fileCount":50,"integrity":"sha512-An/syb4+qvabiIsPCiMPCXSthfpME76opU9Y6nQkUTfIyN39rkQHXIUSWpJp9ZoCK3syng1CC0XsCe1VcXZ5Hg==","signatures":[{"sig":"MEQCIC+S4uuayqrsLuuutWDgXrBJUrjcCKG33SO5q4O7bzAaAiB/tRh01zBltJfQz9wxF8mjZh2DXk3i30oAFbPQ+3E9hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97101},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"36100faa2e9f47c692124f3d446fb0b9fed9f679","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.1.2_1776784758981_0.06521195178520389","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"claude-api-hub","version":"0.1.3","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.1.3","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"53e4182b405fe201317ea94531c43825e17a6a53","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.1.3.tgz","fileCount":50,"integrity":"sha512-R2w08tIjQpltHY309j/7YGgYUen3EeBxfmv18PruinaynspHtoiXNWCxqxQeAzXMjZmBROdJgL+CC3JEpHNu5g==","signatures":[{"sig":"MEQCIE+cWr0/TGckupY2F/5aem+b6FPJZCuXqaja6UBafWAjAiBo2yYcof6vKz+q/k9DPDAS11wY/yF269cZA8xF/6Vwnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97099},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"7961cb725b67c6ef2de5014c776bebc24e8ca19a","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.1.3_1776785194475_0.22167814790276497","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"claude-api-hub","version":"0.1.4","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.1.4","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"861ecc15b6b01781c525f4d43323082bbecdd7ab","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.1.4.tgz","fileCount":50,"integrity":"sha512-j1PVuGzXl9nnvKRzGuRVKv7Kl+7wQa7Cx5QE2aT/Je7L8wrK2pSTVXrmVPsh3P6pBBGHShr80PrQNMfwgbT0Jg==","signatures":[{"sig":"MEUCIDC4xgjqh+jryl55/1ZENDxcqzWsPae2W5vI4ycLh7VAAiEAyHFJDbgQj+jqLfj4m1GojqFAJ7x9y48ON4538jvH6fw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97288},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"9028eca47f13e3004af96960f9f21f779883e19e","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.1.4_1776785291157_0.7142913643132367","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"claude-api-hub","version":"0.2.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.2.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"32289d62c259f19439508cce9ca1dbfb49534456","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.2.0.tgz","fileCount":53,"integrity":"sha512-8R+oRZMpOfFW1EKab0uNAz/OmQ2AhZyv0Q3Ys7drA98/rhtnBrsrGOeQf8HoB2d7UzxRLnQaLGA2eYTQSo53Og==","signatures":[{"sig":"MEUCIGJ7gM2n5VGXN12+NmLywsQCPt51YU0+0REX/Ic5DWZpAiEAnTg8t3yWJnjBd/ZH1/UU01SheM+wcZq+1gZWbRtJpyE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118151},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"958aad4030c3825e2b2bc1f25b38e3ca31332881","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.2.0_1776786377642_0.3944776558138945","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"claude-api-hub","version":"0.3.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.3.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"4dbea561aee0ee1ecb14ed5ba64f520b0257bb74","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.3.0.tgz","fileCount":56,"integrity":"sha512-k5dkjk7+Q3y7KGaYqazJ0yUDYfq31H0+IXKDudvRQ9Eie8bo+nJQ25DsjzlzHeLpaFagd3j5o5+tJZ+MFefkMw==","signatures":[{"sig":"MEUCIQCMdvRVp68uxh+NUnCeZwYlz6T4PTS9ckrKI20Eoat5DwIgNJtTJuKy1pdi04Fxaz3JUwbI8UBFIOBzvArqwtDRVcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":139123},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"f09311b8b79e439672342a4fb65f1648f7ccb971","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.3.0_1776790881466_0.7565153469657602","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"claude-api-hub","version":"0.4.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.4.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"ec670b19d4bbc456c90e2b236e1915c1e01ac361","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.4.0.tgz","fileCount":57,"integrity":"sha512-UvEx8LcT2e3wRQCaHkb8FvH3JrNFbkkm+0h4gZ8VJ9pdKexfue63J4ELCsfAyh0RCtXeonnHkJWSU3x21IPbkw==","signatures":[{"sig":"MEUCIFUH7xgfILU6NLlzfuh5CBSPBccdlVEy+ew/fVooNgtaAiEAsW0AJ/pVWRbjwulVIO3BqKLK9RbcjWxBcOpUi8b98Ac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161357},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"32ae40f86b5cc83e451dc8ed0d77ea17e67be487","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.4.0_1776815765165_0.8298301494789804","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"claude-api-hub","version":"0.4.1","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.4.1","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"aa4ed85c783b50fc2083edad7b3ccc1d7a72d50e","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.4.1.tgz","fileCount":57,"integrity":"sha512-m6/1iwsr8iICB/emuP9SjR5P4fpDXfOabtZYCXrj5cakA1WiJC4eHt2LD6CNuSJX1wUTzjRb9lgP8pD828Kbxg==","signatures":[{"sig":"MEQCICtOdG3NdgXAFlnRCJE+Nf7ShqmJr9zsF1P6md5iEdvfAiB2m/NJlYDJZpIAl1NY0HBihUaNIySxn4FGfZPCGy4g5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162687},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"7af411029f3c75ad5e50c6beeede79d1b166f59a","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.4.1_1776816727099_0.5382292463606817","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"claude-api-hub","version":"0.5.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"561f1aa2fb9d6ca45fe47488ea785fea09987f21","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.0.tgz","fileCount":32,"integrity":"sha512-OC8GmBeYgAoheIr4EKI0xyygFsnyEIeX7yZRV+tj06FphEkxvN40JcHcbHMfHppV5Z+Q6xNDpBdsf2rXbm+X7g==","signatures":[{"sig":"MEUCIQCMqyem0Itzr+tdRTRcM/+h/hk7Pt1lzSZcFPIger58ywIgeYFbIjjKz92LN2Aw/HlzmZnVvTBptIY5Fsw5hyZmELA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80069},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"7eec644ed8ac52f046b5882f6d094da3cf509052","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.0_1776820404185_0.0054043395283565054","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"claude-api-hub","version":"0.5.1","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.1","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"1e44dbd06120d745d729c93c3d807f5e122cd3da","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.1.tgz","fileCount":35,"integrity":"sha512-upPBdWK6WDsTRtLl0ImaUIgeNkGNPyBempjigOGH0WsTKCwl/Vj563TLwj7NS3M5BgxHZ8EZ2gf3Y/Hm3CfwtA==","signatures":[{"sig":"MEYCIQCTa8tjR4UlsrXwApOaDwFzkACDrtessoylF1KIuEK+7wIhANGOwszzqJbt7/qG6QKacoZCsAzB1k7zxOdsl61fatEm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107449},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"3c492d1e65b6b6e72b7a6784697482bb9b05aae0","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.1_1776820858367_0.574237298279384","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"claude-api-hub","version":"0.5.2","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.2","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"69e3f28bc4e073cc683d7893c379f6c993fe1fbc","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.2.tgz","fileCount":35,"integrity":"sha512-XmALTmU5xRthWqSRSE+2wWzKR0ASYaC55NHhcYRbt65g3zjmx2VFQNyAq8u59XzbI3qIVG7TQFLSklQFzM4rsw==","signatures":[{"sig":"MEUCIQCQQ1Yob7QDEtqOgCtzAvMpe8WGNO3JZcbZp0XU9SgvYwIgdw9bNNTRpPAptc+hSvTSEJ/clnLuMAjrIQI6aBHaDkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107754},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"a28230043d78f9a59af3c2b77ca0c3d6eea39637","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.2_1776822766442_0.06643709164275902","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"claude-api-hub","version":"0.5.3","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.3","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"4cfaa5a076abd445592a22b8cd3323ed044c5d32","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.3.tgz","fileCount":35,"integrity":"sha512-udd5tZ8MhzZRhAuBjTkaF02x1nN6KVmqBut7qbrY+yWr5vmplvQSzJ35zynJuhhH4Z5akx2H6DdxecM5i+4XUA==","signatures":[{"sig":"MEQCICIuXNOkCUjAi37oodDQgWMFoLZN/3YmPw4U7wpRk7gGAiAM8VFcRXMgrcGcU/u2ivbMLEowjFWXk9v6wWuWHmQDCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113226},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"f49bda4713a84fc2068a05c20b0163bd27c1fe35","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.3_1776823106008_0.920781579052069","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"claude-api-hub","version":"0.5.4","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.4","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"1504dd278ebddc21dd7322e1339b9ba52ca3caac","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.4.tgz","fileCount":35,"integrity":"sha512-+xM/53B39doGzLwjsX9938w6Ivh7Qhqo/07X840ar8khuWYR5z0HXlJwBn9eJg1tP8dN6H/FxTxBE5vrpobbWQ==","signatures":[{"sig":"MEUCIQDiF91iVBMF2z/+RBvJX1tXP4w+hyJxlcMhWwBuxzJrcAIgWE3v0L7/w/qD/9bZiJtLjaZ5HXCf8acnN/e9DQeUAEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116613},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"d13ddeeebf2cc98d4df49cf33fa33c0d604c7762","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.4_1776825201056_0.9152013352479063","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"claude-api-hub","version":"0.5.5","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.5","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"452e94d71313d6ee9ac2cd692f06f6fb25e0536a","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.5.tgz","fileCount":35,"integrity":"sha512-+vUObseMeiflB2KoAlUIy3u/8YrZjYkxfsIDsAS0FrPQzZbuaPMf+Fe1F2fEqDReMfRAouh9LUCmHo93Yw/Gpw==","signatures":[{"sig":"MEUCIQC3Ikz7qpvTmZN3czDSj05IfVdrc1QsWwVjgeXXQyBIowIgVuj/k63gOrAZivzTJtyxymvNw37JodjlN6zQkhPKj1w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118587},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"cd503992c638c19f9d7a4bb023e6174df6a57d72","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.5_1776825690568_0.7925730488254434","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"claude-api-hub","version":"0.5.6","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.6","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"21e92d4d07cb8f5f7d4d440de6a6691e2c7715f6","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.6.tgz","fileCount":35,"integrity":"sha512-HixwoEKJz1BGsvVI84rZqRtktsWJ4/VtPLjgIe/93Ubg+2+14U4z4O10POG/kdzjD+QrloRa1uwdhvLlAxuLKw==","signatures":[{"sig":"MEYCIQDFhyT6sFraIXqMkCAMbP+xywUsMhlWydyEGv197PtcOgIhAPGSmJxMr8/J8qULK6PbTdMRd6oU6xlWgOoZtbb125IO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119692},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0b9a95b03bbd8e9fe6cc086de94d463d52f57b7e","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.6_1776825884895_0.08175396711416605","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"claude-api-hub","version":"0.5.7","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.7","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"da055fd3f5266ffe851d86bb3eb50d1c221c42c3","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.7.tgz","fileCount":35,"integrity":"sha512-K+In1Mg3I2IiAWDxjsQOEZArxrVHepG5J++A92RszR0Yk2gHEKhneZlvy7YFuNf5uviKwmUWAEdAWvrOISfsZw==","signatures":[{"sig":"MEUCIC57CyeboivahWoIUl7yc4yMlLUtYP63hyMk0rx1PQYIAiEAiYuAHYmyBP337wEXqeUbVjJQ+BXko1mAABl3CtYD6fk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129043},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"bbac51a6238dc722f68f24a0fe0a86bdea4b7bd9","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.7_1776826350973_0.006075171140853763","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"claude-api-hub","version":"0.5.8","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.8","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"4e521af0d89dbb7032cbc6ec23950662016d36e5","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.8.tgz","fileCount":35,"integrity":"sha512-uNYJM5CF4eMXZz0COFYyKyE/wTxHZvWJASv+ESO+TWO8njc6jvaDO2f8vMZbH0rmFZUUvU1u0SrG8fEkag4vYQ==","signatures":[{"sig":"MEQCIFSoCobzEfks8eZtsr5jaPuP9t02iF7ZDRZZ/PCdP3l3AiBHTt89QO2Gnv9whn4wMPFS6qDciOgDSL/hUA+TytSSaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129718},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"889bf6a6648960ea3ccc2692f996b0148dc06a02","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.8_1776827149692_0.005800007936384466","host":"s3://npm-registry-packages-npm-production"}},"0.5.9":{"name":"claude-api-hub","version":"0.5.9","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.9","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"1986da75b3708cf30b716fd4c3831704c6d9bb67","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.9.tgz","fileCount":35,"integrity":"sha512-vXDtTQ8yywCuIejInGFzyeY7AsJqaLw5fzcBs63XG+eA4WdDdYYaGu+pymuru5LrQiLV/ZOZVLjI88Evgj/9/Q==","signatures":[{"sig":"MEYCIQCkDtVJGiIM6prGgQ+do2vFQuQ1OrHiGXodcUhdQFQNJgIhAJTNTY5HAvYTtJYksBhzisxF6t9PQvkjuEaPo9T9hy//","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129802},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"a1cb6774f7bdd5ede93d50447e8c8608bda81185","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.9_1776828481569_0.7383467927254332","host":"s3://npm-registry-packages-npm-production"}},"0.5.10":{"name":"claude-api-hub","version":"0.5.10","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.10","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"83bbb3116968749228b3231ee7e17392dea58463","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.10.tgz","fileCount":35,"integrity":"sha512-Xf45SEP1N4slBFybfS0nuCfy79PynkGdzQpBUMKNyVKs8kQbWeipHuRthH9aGH/ut9hFOdvGt+XyB4mdHBUM+w==","signatures":[{"sig":"MEQCICokwYEfl4XND/gjK/4bCR3FotTg3Oed7kzN3Sfl8aLWAiAM6l9pXBhZGMeNuO3HbyMJRr6NAbkUiXFX8hjQLx38Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130536},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"be7f059b8b6a78d85c52ff6820bab6f123bf2c08","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.10_1776829087417_0.07468325065189285","host":"s3://npm-registry-packages-npm-production"}},"0.5.11":{"name":"claude-api-hub","version":"0.5.11","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.5.11","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"82c6866c42f6d9e2dacd2161357e43fd003009ca","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.5.11.tgz","fileCount":35,"integrity":"sha512-ru9Z3tcppBiZLT42ih5xCDt2ls1s1rVZMN0SqozQuFihERSAXH+LnEf1hBLjHKXS1k/S4lVFMkCFHGId5Z5UqA==","signatures":[{"sig":"MEUCIQDghfIPsi19LR4FNiqAASJKNlSl+3uX0aT8ysuVABjrrAIgWKYaV0YEEAtjbNXzN3lvIx0CFztDrxG2mDOP/Siga9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.5.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130926},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"daa0376e2fe6249ee423ab90669d99258b66a411","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.5.11_1776829508871_0.6784850439101886","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"claude-api-hub","version":"0.6.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.6.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"c323794e7737b0fdea362ccd66b25927c1752137","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.6.0.tgz","fileCount":35,"integrity":"sha512-0F040TSu/qwW9jHddBTIV4SPgaB0+wXjpKhgyPKsY8CBiktUnHmZvoenB5zjsKhqi5ctyNHWYQrS/K8WcKSdfA==","signatures":[{"sig":"MEUCIEafLLO2ViBqaD4gOzWrqi0c+pGvqgwthqxy1euUi4WeAiEA/hwCYUgP8BEEiF2sMP8eP9vdLycsSy1UOj2GOqPIqdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143839},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"cab95b2544d22da0242ccdbdb64ac3ab21200ed1","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.6.0_1776830868534_0.5609258703533917","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"claude-api-hub","version":"0.6.1","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.6.1","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"8565794a9d0c7cba6ba9ea8c6e9013a6f899a7ae","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.6.1.tgz","fileCount":35,"integrity":"sha512-+HbajemCpt4/rLUDaTZkOiwXAfIOnHA5C5DbJvfi/f3jl8mDdl5hvyVJUZJMrq+FptrikNPVfZf05cN9Dty4Iw==","signatures":[{"sig":"MEUCIGywgvJhg0Q37cU5q/ALhwwOHIQTmv+cFdAgJ6rjtTjOAiEAlSghhhOvg5cBHYRbXc8uLCxolvHSb0nSnm1uFSHteCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144288},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"2c91026655991d79c8f0231b6d390d5dd2062f25","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.6.1_1776831997853_0.831764574352986","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"claude-api-hub","version":"0.6.2","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.6.2","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"e327a03b44ec1aacbcd2a5b9057784693bdc27ef","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.6.2.tgz","fileCount":35,"integrity":"sha512-oH+SetPUKkmMTwoXSRudYS+zbVE5CCM4/hDD0Y+8XA8J1AlkT3RyxeRPVZD3LUXo/7uMfyrFGsigu4wnPL6RDA==","signatures":[{"sig":"MEUCIGOt9kquCCtJXywuMsn2ruXhkWjB45CY/XZqaITza+0eAiEA+iaMNHq2TI+c6y1f5YxyNbpQD6EJqyfq2x0Y11Lolto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144482},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"93f4aff56216a1942b5f90222eeed0f7d6d6264e","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.6.2_1776839894695_0.7614944202516083","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"claude-api-hub","version":"0.6.3","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.6.3","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"d007078583b0e5f13afeec76640a1513876c8e4f","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.6.3.tgz","fileCount":35,"integrity":"sha512-PUS1URt4ym3A0y2/KDS0xjR8xuK/F9mWGGSqE2y5EIBYmzcH5lvjpjG3T1KKTOzPBlbweF6hmEK20lE6IvYNxA==","signatures":[{"sig":"MEUCIQCzGI8sUyM4VO6/jgrBhmcCsu8GVmpXqK5d9frtduqK7AIgS9j4F5swZ0A22hiYXDYRYs0fe9BlaTULbvgFJ6P2U1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145019},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"49a8ababd7a7544a795a2c94784524be2844ab65","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.6.3_1776840341371_0.009489562206202562","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"claude-api-hub","version":"0.6.4","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.6.4","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"48e91ef6b4003ee6cdb37d45240a05c0e1d9730f","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.6.4.tgz","fileCount":35,"integrity":"sha512-zgUjPWdB4xsmycbfjs3PXAqi5F9bbApK4HwRXxUq91OmHFJ1V860v0s57llNn9zJuKjjuIn1HVZwLJyyQDEHaA==","signatures":[{"sig":"MEUCICcwUw9KMknh5Ir+SexOPKQ7l8uTH3MXdVoZrWAanOyEAiEAxF4VJ289CdiIT5ohBwrZDetWe2ER1f7XYFx4jfO2VZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144268},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"bea953d930def07f47fb9fcc2025097622c2d57d","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.6.4_1776840900139_0.29427427173425214","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"claude-api-hub","version":"0.6.5","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@0.6.5","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"29129fb9dc9f09892816cefd944a68faca117337","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-0.6.5.tgz","fileCount":35,"integrity":"sha512-F4jFgF6Jt9aywWTmJ7fsyx0mK7cseL4HniLcdT/Cxa5kYQnMmWkKumt5d0zxsePaEPqGFTSacLc/TG5XamBm7Q==","signatures":[{"sig":"MEUCIQCWMU2Cd1SwDVu3toDZEjGCYn4hP0skD0qmkXnIfaNMCwIgX2TlOL1hyVrsMUWInVgNvLLa8jdz87j3MrWYB+QiUbU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146803},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"3de34de70e029df37b555053fbc14f6ec6fcf807","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_0.6.5_1776841388728_0.5171989559588555","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"claude-api-hub","version":"1.0.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@1.0.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"df3245902e2555abc2cad97be86764a6c85df041","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-1.0.0.tgz","fileCount":35,"integrity":"sha512-2S2fTr8TZZfi0ZcgVWMTgGKUkg3RKJsw3S0HosIUtekVIkVhzl4o/pErzPH08hFt2FLzNV2VMLOYPEL4f8Gb3g==","signatures":[{"sig":"MEUCIQDlgy1A038vRslRLsSdALINp91zl0UWKyrLOqlWm1wKbwIgQ3uJ8afyQI80ubPB1lwwnz6nV+4frnHAOUFRksYW344=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":164456},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0a58d239b3484e749f503f4db5da20cb63e78187","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_1.0.0_1776857372070_0.14047303837723546","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"claude-api-hub","version":"1.0.1","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@1.0.1","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"312c45e882a459096577a9e8c25bd043a18aa544","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-1.0.1.tgz","fileCount":35,"integrity":"sha512-B7UpUvjvFX4QVHNBCCtl6RvFxRWC2jPOGiAVpDI6ELqEEuQGeX3cFEQ8npgx7GXbGXUwFPxiUJOvjnQtf8OcPg==","signatures":[{"sig":"MEQCIHWrxLSE2twEP0wy+Uhu+iffMwPapojoK9JBCW6RkZ6tAiAgwMyro8YVwkVZPaAgGpFnYjp/Zy20rSG1cVj2Lg3Hpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":168128},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0a337ba40357500d16364814e5869dd645ffa564","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{"eventsource-parser":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_1.0.1_1776858248048_0.33363906566397006","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"claude-api-hub","version":"3.0.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","anthropic","openai-compatible","llm","multi-provider"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@3.0.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"1bd5f3721608b79b9b4938a35afdd8f10995d995","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-3.0.0.tgz","fileCount":83,"integrity":"sha512-sRdF3Z3K+aiPeL0nzuioPWDDQojHfOWhQoEtnjSXV8sQ5XdNrw2DzOz1tr8pxX/d2RCCVLA2PKO/j5ddV/RbvQ==","signatures":[{"sig":"MEQCIBUvIFoikBl9x7Ce+I4h79TPc8DzJvMfGzZJSlG1k9yMAiBPn77hKfoHYHmWPR8XCc/fk0UqTYXlllaTM0VkVoesWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":495946},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"gitHead":"79a278b257f7f8a69a400de1c30fe2f2c9c4a8a6","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code - routes requests to Claude/Kimi/MiniMax/GLM based on model ID","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_3.0.0_1776968130186_0.6910839301399958","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"claude-api-hub","version":"4.0.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@4.0.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"c31406a576470c6354e7237646f536a29ea95bd6","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-4.0.0.tgz","fileCount":107,"integrity":"sha512-Pf+cHKKBxfWs3aArV//5PlZiEgcHWUFAPydsFRBf23/HAc1hZcs/P3CzFvcGc7F9VXHwPahGoUh4+2RQQqbGvA==","signatures":[{"sig":"MEQCIGeFIHw/wymDMgWbccnwgTW4OmZ4DiXQ7E5aC5RWDm5eAiBBAlUJ4JomA0omneV/hdBu2ZD1u5M0gfO7cH/yyeBD8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":506550},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f19307712b3074d7b773763ead219e6483b19042","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_4.0.0_1777014536242_0.1925189668260121","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"claude-api-hub","version":"4.0.1","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@4.0.1","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"664ecdca7b2ac9e07af38197c43c1e3c2c657480","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-4.0.1.tgz","fileCount":107,"integrity":"sha512-pB5OPH2kURdqYYUQs/fUO+1Zphs3nXVSc0KIXw2ZVj3EDcQUJTNwvVjqQWipIfuv2xHYf66jMj15EcNpzlnRgg==","signatures":[{"sig":"MEQCIEo7Ysn8hhpCEu3+co+0qX/uPNxSexvlplafFTBWUnVYAiAr4Z6R1xJZzOxrfIUa9TNhWv3t+hBOzMzEr0zkmFa/Sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@4.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":506550},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e4161f957904f263c998a3918372d37854b3052c","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_4.0.1_1777016607258_0.6190085312641513","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"claude-api-hub","version":"4.0.2","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@4.0.2","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"8944e73d05e8234be904185e2eda5e7d54920736","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-4.0.2.tgz","fileCount":107,"integrity":"sha512-TZHO6e8KQsB/Bno9NEoS7c2F9gBB4/d+/omrLEMTMk7PTfNpJ4hh0zcLVqwQEgqtiTGAtpOJE7nGjFxU7F5SRA==","signatures":[{"sig":"MEYCIQCPt5iTbA8oI/v+JKmE9C9w6aur0LZOhUbW0SfOcZJPxwIhAIEUKBhf5VGQE36W5buZiXEZEVa8yqcDWMV8vBPAtVwX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@4.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":507630},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7f77484396dd0311318676280214273246bad6af","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_4.0.2_1777020128735_0.8734262262708132","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"claude-api-hub","version":"4.0.3","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@4.0.3","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"c64a48c11de2848f50686984e1a2babec1c616c5","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-4.0.3.tgz","fileCount":107,"integrity":"sha512-oxagvZfsY+l/WRIVDP2lw/h3LZmebZhs2BsD11S5CKeeglQepkzpTFS++USeqnrzlJWlPs5OReQ8Bf+joBwsZA==","signatures":[{"sig":"MEQCIFt9QY7oK98RUFA19Rtz+EPPQasHf8OsHxolRkRnEUCmAiB1r58mu9u9pnPUE+8fFU/5LlM7cYOv41uA/+5GRKVU0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@4.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":507763},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1d0ecaea8f61ad3d3e0a4118ffd84e78d149dcc4","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_4.0.3_1777023005101_0.6335153315696169","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"claude-api-hub","version":"5.1.1","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@5.1.1","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"8b0518fee7f5a5aab0c1fc46f66f9b754094edf2","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-5.1.1.tgz","fileCount":111,"integrity":"sha512-lDOlkHEsm/o+84UZsacEQ4WcLoUGdwsHnZ508dHBtln7yoslLB7AgkW1z8bjBJhZxMooUfz6/Ty+9nA8DjZcbA==","signatures":[{"sig":"MEUCIB7YH7mHNLLZ/kRgIc4VzQjxfg+O2iBOuQYtpOsF5iiNAiEAhx1hF4psP4JRLGTuuECLNYev7nFdBYEYX2f7sf/uE3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@5.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":531228},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"686e84651096b88c10dfacb73bb6f4508e995dcc","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_5.1.1_1777030929381_0.12963352081158375","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"claude-api-hub","version":"6.0.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.0.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"dc360da5d461b98f0e1662fbb85dad547a25b736","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.0.0.tgz","fileCount":129,"integrity":"sha512-kRVvmdGF4iYqpnNavERa/lYfsEfYC8pFSgDaRHsvKH6hLp6YIp3n/YuR5WerqhynUNWRV9R7oNTntbdQ9ln2bg==","signatures":[{"sig":"MEUCIFAAbc51D/swD2ygin7XBN8uJZNEZRv2H9Wg8gEik7G1AiEAkfVIUiK25Df/A64l/BTzb0vWQAca5vPsKtuTTgyH1YQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":698559},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3f79dc006a4d64406b26a5b741228be04eb1e03d","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.0.0_1777130182293_0.24349711311224365","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"claude-api-hub","version":"6.1.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.1.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"058bed5fd4257a05b01495b3243c4dee28dbe90f","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.1.0.tgz","fileCount":129,"integrity":"sha512-H6aQQJcSyciJodtlBHhNTB6AI+Yq686YKh+jE8lat6sKG83cex8A5XQx2765LDRbs2lQHveE2Sh2VxtDYi87mg==","signatures":[{"sig":"MEQCIFy/FamLTWc/IVMYwDk4QbBzsi+h+LMIv2GwjrIChkxiAiBI/K0f9AqnTKlyX1t1o6Yk1MnxYXRIJOYVtkkv/KAKOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":695145},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"09bf5ee54bb42aa2959c924e0888d2c09bcb108d","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.1.0_1777133433257_0.6415428275176405","host":"s3://npm-registry-packages-npm-production"}},"6.1.1":{"name":"claude-api-hub","version":"6.1.1","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.1.1","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"92284573a7ade77aaeac24698047ad941f336b4b","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.1.1.tgz","fileCount":132,"integrity":"sha512-NeYquCA/9vRp19Yaanqjv5t6P4TAysfyr+iF7COgPBhy2XoonFZKRTPArp6fRAq4b5+iGYSa/BAukKCQNHAMmg==","signatures":[{"sig":"MEUCIQDXynVestGAIHpnWbsPtMYg0gh4sLvVpoxZlSrePcuS1wIgTjV91qXQNwvUwWqsoP5igKUX3kmYVuJzLvKooJ/633k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":718056},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"704613ba8bb96fd7b78f828ae256694a72fd4e16","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","dependencies":{"claude-api-hub":"^6.1.0"},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.1.1_1777136839342_0.09033533014820261","host":"s3://npm-registry-packages-npm-production"}},"6.2.0":{"name":"claude-api-hub","version":"6.2.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.2.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"29eda5ffd04f282cb7aa4191ca95a88bc3fcab59","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.2.0.tgz","fileCount":133,"integrity":"sha512-u2StlzueC+XlyoA0NqdZ+Sta3WfJOrd4QgrUb7f7vdfrO0IXwrahlPskqw+fI7U/cLeIYriD20zwgz6ZBVnzdA==","signatures":[{"sig":"MEQCIEJtfEEa48voEABn1jo7R0TDS9DAOP2JHTQ8dT2KHmA+AiAnVsRVFXjKWz+M5pcD6fxxRGPmEP1M+a0omhYwp6P2Bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":951667},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"60a0598cd191714c8d12e38aa6f8a60868bc7aad","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","dependencies":{"claude-api-hub":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.2.0_1777179239607_0.3925915747647961","host":"s3://npm-registry-packages-npm-production"}},"6.3.0":{"name":"claude-api-hub","version":"6.3.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.3.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"1605d745a182fc6f830bb6cbb1d3e32881156be2","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.3.0.tgz","fileCount":134,"integrity":"sha512-vJZZwLDJ7Uupf+nh0G79xA/G7vnhssHC1+4t/8WHPfX4vAeSIO7SxGwWZIE/eFRtE7e6s1Zn3AAeVlFrEnyMtQ==","signatures":[{"sig":"MEQCIHt4H396KPedlYbkJSVFerc3Lm3LHsiFafpOs7jO7mTIAiBwEcp2VOjPyCA1kEzuSjFRxyWo/E4FVd2JA6hKKQKCvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":957857},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6826f9c68d1ea1c431a0c9b3eddeb70865bca00d","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","dependencies":{"claude-api-hub":"^6.2.0"},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.3.0_1777199320268_0.415854464022118","host":"s3://npm-registry-packages-npm-production"}},"6.4.0":{"name":"claude-api-hub","version":"6.4.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.4.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"6c41db5096612a1f3ea028fb7d5e36b374e47d25","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.4.0.tgz","fileCount":137,"integrity":"sha512-VvBQim76ItBzv3eUwJ0ZRLgT/DOF4czSH5/UNjfYPDMudNql5c6JSPej3hDvRW+FiHyt+EpwZdYIYM8Ciu0hEg==","signatures":[{"sig":"MEQCIDSqhPjE7zt52axoYkpOcy/Hrxho1MuassruAiO6AyR+AiA6mA66EMlU3OkrTh5ehzfBUu2cyfTjTEoG2ghQjggYYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":973689},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6b9d696c418df11155c65f233cd5402a57d292b2","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.4.0_1777212251235_0.7516988616430507","host":"s3://npm-registry-packages-npm-production"}},"6.5.0":{"name":"claude-api-hub","version":"6.5.0","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.5.0","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"0744cb764136e518ad7e2eb767086070170af341","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.5.0.tgz","fileCount":146,"integrity":"sha512-LlDmFeQS91t250O8PbhdlmRC7Tlcepr9dcHMLoyJOISU+zi9C5hnojKNPJ2L7WK6o1QVOeztnvCS1lI6IqhM3Q==","signatures":[{"sig":"MEYCIQD451YzrI14NvvcHG22dPdBSZVaNp/JC8aLMXzROckUlAIhANYddB+T6a4E3cleqUzwcgRv+Tggf0/bcUH17mT/g17P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1075198},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8ebf752f57b29de1fb87b10decd90db238301505","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.5.0_1777473582425_0.07106558293788368","host":"s3://npm-registry-packages-npm-production"}},"6.5.1":{"name":"claude-api-hub","version":"6.5.1","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.5.1","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"ea79c61391d9546f19c24ad76e238e45b5971199","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.5.1.tgz","fileCount":146,"integrity":"sha512-MvO/L185YvLxBX+5IJw/31cIq38+s29m5MDb6jOn2vzJKTKfgLRGo1GgFeomOtDR5je1lRHE1QPlTzEyxNye4w==","signatures":[{"sig":"MEUCIQDOMh2cEPQQmMt8j6m7fobnM5a85VRdsE+sMrRLhZn1CwIgKNhlU2V32raF25D1FJJrM/0SXfRTTxzPFHh/+cEyScw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1074187},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6b5585ed1376d9b15708b1396201af28a0c985db","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.5.1_1777541149077_0.3581710003619518","host":"s3://npm-registry-packages-npm-production"}},"6.5.2":{"name":"claude-api-hub","version":"6.5.2","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.5.2","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"3421d6f4044265fb9cf3fed47f6165768082411f","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.5.2.tgz","fileCount":146,"integrity":"sha512-KNf/LDwRe0j/oVnbJkvObgSu2hQcmgrmLrXxPl04QNPIT4q+kt0/rjKUphrpPNWaWz7vBU00IgsWvpADghi0jg==","signatures":[{"sig":"MEQCICCaRFAvERynpFbULBLnhdOcQ7ToSONfGB3AuCzT2rtKAiBKzHHOZcUbnkRcfxkBpzjNa8MlkVwx2mikA89q0Valvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1071546},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b493c0d9af7ef046520a1713e3279158f7e913d0","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.5.2_1778491657825_0.3411594290977753","host":"s3://npm-registry-packages-npm-production"}},"6.5.3":{"name":"claude-api-hub","version":"6.5.3","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","_id":"claude-api-hub@6.5.3","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"bin":{"claude-api-hub":"dist/index.js"},"dist":{"shasum":"bcdc91171c01af5e7922d38a6dc911cfd844ed9b","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.5.3.tgz","fileCount":146,"integrity":"sha512-hBnHjYXelIcyn4TFcxFlzdUSYfYnNLA15l7vb/d9oDTBWCUS/Yw/nmVrpKoYBb2OUeJ0v9GneOnPZRsnDRVN9w==","signatures":[{"sig":"MEUCIDWCJbWENkOuAl4nGzm6oWfSivi/X6sc0f7hXQ+zlzgdAiEAsK03s0eEBYv+xdF+HaLZA13BqC+ebadbkS298Y5p4+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1075367},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"402f9a1aa06af0cba2b1f856a052606f44a6fe13","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsc && node scripts/build-ui.mjs","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ts":"tsc","build:ui":"node scripts/build-ui.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"repository":{"url":"git+https://github.com/LeenixP/claude-api-hub.git","type":"git"},"_npmVersion":"10.9.7","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.0","eslint":"^9.22.0","preact":"^10.26.0","vitest":"^3.1.0","esbuild":"^0.25.0","postcss":"^8.5.0","@eslint/js":"^9.22.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.1.0","@tailwindcss/cli":"^4.2.4","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.1.0","@tailwindcss/postcss":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-api-hub_6.5.3_1778658010685_0.9324941964473741","host":"s3://npm-registry-packages-npm-production"}},"6.5.4":{"name":"claude-api-hub","version":"6.5.4","description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"bin":{"claude-api-hub":"dist/index.js"},"scripts":{"build":"tsc && node scripts/build-ui.mjs","build:ui":"node scripts/build-ui.mjs","build:ts":"tsc","start":"node dist/index.js","dev":"tsx watch src/index.ts","dev:ui":"node scripts/build-ui.mjs --watch","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"eslint src/","prepublishOnly":"npm run build && npm test"},"keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"author":{"name":"LeenixP"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/LeenixP/claude-api-hub.git"},"homepage":"https://github.com/LeenixP/claude-api-hub#readme","bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"engines":{"node":">=22"},"devDependencies":{"@eslint/js":"^9.22.0","@tailwindcss/cli":"^4.2.4","@tailwindcss/postcss":"^4.1.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^3.1.0","esbuild":"^0.25.0","eslint":"^9.22.0","htm":"^3.1.1","postcss":"^8.5.0","preact":"^10.26.0","tailwindcss":"^4.1.0","tsx":"^4.19.0","typescript":"^5.8.0","typescript-eslint":"^8.26.0","vitest":"^3.1.0"},"dependencies":{},"_id":"claude-api-hub@6.5.4","gitHead":"597f2452fb8e9a0294f72ca885d282bd585591c2","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-Bpiz7jE4fBvLzBHWwC85+/d+aazpbnwkHFB2WZI/BXXZHsoTTEm0T0b9NwFMrE1LKKs4KEQiF3fgFyePTvZnag==","shasum":"4467f22ae24098bde7179ac473c072636751ba1e","tarball":"https://registry.npmjs.org/claude-api-hub/-/claude-api-hub-6.5.4.tgz","fileCount":146,"unpackedSize":1076366,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-api-hub@6.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCg0Q0gbpAGVO9jGK1DQAUB2yPu7lQtxiRsArE7GzjNEwIgBZcdDW1TuTmDL7y1Ibjq56x+2wJf/K90umZUdEehnjg="}]},"_npmUser":{"name":"leenixp","email":"lipeng.dev@163.com"},"directories":{},"maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-api-hub_6.5.4_1778665155860_0.8583614345273978"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-21T15:14:35.330Z","modified":"2026-05-13T09:39:16.351Z","0.1.0":"2026-04-21T15:14:35.572Z","0.1.1":"2026-04-21T15:17:34.989Z","0.1.2":"2026-04-21T15:19:19.139Z","0.1.3":"2026-04-21T15:26:34.626Z","0.1.4":"2026-04-21T15:28:11.295Z","0.2.0":"2026-04-21T15:46:17.781Z","0.3.0":"2026-04-21T17:01:21.677Z","0.4.0":"2026-04-21T23:56:05.350Z","0.4.1":"2026-04-22T00:12:07.331Z","0.5.0":"2026-04-22T01:13:24.332Z","0.5.1":"2026-04-22T01:20:58.511Z","0.5.2":"2026-04-22T01:52:46.601Z","0.5.3":"2026-04-22T01:58:26.187Z","0.5.4":"2026-04-22T02:33:21.228Z","0.5.5":"2026-04-22T02:41:30.700Z","0.5.6":"2026-04-22T02:44:45.034Z","0.5.7":"2026-04-22T02:52:31.108Z","0.5.8":"2026-04-22T03:05:49.833Z","0.5.9":"2026-04-22T03:28:01.710Z","0.5.10":"2026-04-22T03:38:07.567Z","0.5.11":"2026-04-22T03:45:09.025Z","0.6.0":"2026-04-22T04:07:48.677Z","0.6.1":"2026-04-22T04:26:37.991Z","0.6.2":"2026-04-22T06:38:14.837Z","0.6.3":"2026-04-22T06:45:41.550Z","0.6.4":"2026-04-22T06:55:00.277Z","0.6.5":"2026-04-22T07:03:08.871Z","1.0.0":"2026-04-22T11:29:32.225Z","1.0.1":"2026-04-22T11:44:08.190Z","3.0.0":"2026-04-23T18:15:30.320Z","4.0.0":"2026-04-24T07:08:56.380Z","4.0.1":"2026-04-24T07:43:27.409Z","4.0.2":"2026-04-24T08:42:08.910Z","4.0.3":"2026-04-24T09:30:05.264Z","5.1.1":"2026-04-24T11:42:09.542Z","6.0.0":"2026-04-25T15:16:22.500Z","6.1.0":"2026-04-25T16:10:33.507Z","6.1.1":"2026-04-25T17:07:19.539Z","6.2.0":"2026-04-26T04:53:59.783Z","6.3.0":"2026-04-26T10:28:40.459Z","6.4.0":"2026-04-26T14:04:11.401Z","6.5.0":"2026-04-29T14:39:42.701Z","6.5.1":"2026-04-30T09:25:49.252Z","6.5.2":"2026-05-11T09:27:38.066Z","6.5.3":"2026-05-13T07:40:11.016Z","6.5.4":"2026-05-13T09:39:16.049Z"},"bugs":{"url":"https://github.com/LeenixP/claude-api-hub/issues"},"author":{"name":"LeenixP"},"license":"MIT","homepage":"https://github.com/LeenixP/claude-api-hub#readme","keywords":["claude","claude-code","api-gateway","kimi","minimax","glm","zhipu","moonshot","deepseek","kiro","anthropic","openai-compatible","llm","multi-provider","proxy"],"repository":{"type":"git","url":"git+https://github.com/LeenixP/claude-api-hub.git"},"description":"Multi-provider API gateway for Claude Code — route requests to any LLM provider with zero config switching","maintainers":[{"name":"leenixp","email":"lipeng.dev@163.com"}],"readme":"<div align=\"center\">\n\n# Claude API Hub\n\n**一个网关，将 Claude Code 路由到任意 LLM 供应商**\n\n[![npm version](https://img.shields.io/npm/v/claude-api-hub.svg)](https://www.npmjs.com/package/claude-api-hub)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Node.js Version](https://img.shields.io/node/v/claude-api-hub)](package.json)\n[![Tests](https://img.shields.io/badge/tests-passing-brightgreen.svg)](./coverage/)\n[![CI](https://github.com/LeenixP/claude-api-hub/actions/workflows/ci.yml/badge.svg)](https://github.com/LeenixP/claude-api-hub/actions/workflows/ci.yml)\n\n[中文](README.md) | [English](README.en.md)\n\n</div>\n\n<div align=\"center\">\n  <img src=\"docs/images/head.jpg\" alt=\"Claude API Hub — 请求路由流程\" width=\"800\">\n</div>\n\n一个本地 API 网关，通过模型别名（haiku / sonnet / opus）让 Claude Code 将请求路由到任意 LLM 供应商。通过 Web 仪表盘管理一切 —— 无需配置文件。\n\n## 最新动态\n\n查看 [CHANGELOG.md](CHANGELOG.md) 了解最新更新。\n\n## 为什么选择 Claude API Hub？\n\n- **在 Claude Code 中使用任意 LLM** —— 将 Sonnet 请求路由到 Kimi、GLM、MiniMax、DeepSeek 或任何兼容 OpenAI 的 API\n- **零配置切换** —— 从 Web 仪表盘更改模型路由，无需重启\n- **零运行时依赖** —— 基于 Node.js 原生 `http` 模块构建，安装体积约 50KB\n\n---\n\n## 30 秒快速开始\n\n```bash\n# 1. 安装（或直接用 npx 运行）\nnpm install -g claude-api-hub\n\n# 2. 启动网关\nclaude-api-hub\n# ✓ api-hub listening on http://0.0.0.0:9800\n\n# 3. 配置 Claude Code\nclaude config set ANTHROPIC_BASE_URL http://127.0.0.1:9800\n\n# 备选：手动写入 settings.json\n# echo '{\"env\":{\"ANTHROPIC_BASE_URL\":\"http://127.0.0.1:9800\"}}' > ~/.claude/settings.json\n\n# 4. 验证安装\ncurl http://localhost:9800/health\n# 或在浏览器打开 http://localhost:9800 查看仪表盘\n\n# 5. 完成！Claude Code 现在通过网关路由请求\n```\n\n> **安全提示：** 默认绑定 `127.0.0.1:9800`（仅本地访问）。生产环境或局域网使用请设置 `password` 或 `--host 0.0.0.0`。\n\n---\n\n## 架构\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│                        Claude API Hub                               │\n├─────────────────────────────────────────────────────────────────────┤\n│                                                                     │\n│  ┌──────────────┐    ┌──────────────┐    ┌──────────────────────┐ │\n│  │   Dashboard  │    │  API Router  │    │   Protocol Bridge   │ │\n│  │  (Web UI)    │    │              │    │                      │ │\n│  │  :9800       │    │  /v1/messages│    │  Anthropic ↔ OpenAI │ │\n│  │              │    │              │    │                      │ │\n│  └──────────────┘    └──────┬───────┘    └──────────┬───────────┘ │\n│                              │                        │             │\n│                              │                        │             │\n│                              ▼                        ▼             │\n│                     ┌─────────────────┐       ┌────────────┐      │\n│                     │  Alias Resolver │       │  Provider  │      │\n│                     │  haiku → model   │       │   Pool     │      │\n│                     │  sonnet → model  │       │            │      │\n│                     │  opus → model    │       │ Key Health │      │\n│                     └─────────────────┘       │ Fallbacks   │      │\n│                                                └──────┬─────┘      │\n└────────────────────────────────────────────────────────┼────────────┘\n                                                         │\n    ┌─────────────────────────────────────────────────────┼──────────┐\n    │                       Providers                      │          │\n    │  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐   │\n    │  │  Kimi     │ │  GLM     │ │ MiniMax   │ │   Kiro     │   │\n    │  │ OpenAI    │ │  OpenAI  │ │  OpenAI   │ │  OAuth     │   │\n    │  │ Compatible│ │ Compatible│ │ Compatible│ │ (AWS Q)    │   │\n    │  └──────────┘ └──────────┘ └──────────┘ └────────────┘   │\n    │         │           │           │              │            │\n    └─────────┴───────────┴───────────┴──────────────┴────────────┘\n              │           │           │              │\n              ▼           ▼           ▼              ▼\n         ┌─────────────────────────────────────────────┐\n         │            External LLM Providers            │\n         │                                             │\n         │   ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ │\n         │   │ Moonshot│ │ Zhipu │ │ MiniMax│ │  AWS  │ │\n         │   │  AI    │ │  AI   │ │  AI   │ │  Q    │ │\n         │   └───────┘ └───────┘ └───────┘ └───────┘ │\n         └─────────────────────────────────────────────┘\n```\n\n---\n\n## 目录\n\n- [快速开始](#30-秒快速开始)\n- [架构](#架构)\n- [功能特性](#功能特性)\n- [Web 仪表盘](#web-仪表盘)\n- [仪表盘截图](#仪表盘截图)\n- [支持的供应商](#支持的供应商)\n- [别名映射](#别名映射)\n- [添加供应商](#添加供应商)\n- [Kiro 供应商](#kiro-供应商)\n- [多密钥配置](#多密钥配置)\n- [降级链](#降级链)\n- [API 端点](#api-端点)\n- [安全](#安全)\n- [日志](#日志)\n- [故障排查](#故障排查)\n- [路线图](#路线图)\n- [开发](#开发)\n- [贡献](#贡献)\n- [许可证](#许可证)\n\n---\n\n## 功能特性\n\n### 核心\n- 多供应商 API 网关，支持模型别名（haiku/sonnet/opus → 任意模型）\n- 自动协议转换（Anthropic ↔ OpenAI）\n- 零运行时依赖 —— 基于 Node.js 原生模块\n- 热重载配置，无需重启\n\n### 仪表盘与监控\n- 实时 SSE 仪表盘，支持请求监控\n- Token 用量图表、请求趋势图和用量热力图\n- 模型明细表，支持搜索、排序和分页\n- 快速开始指南，支持复制配置\n- 供应商健康检测\n\n### 路由与可靠性\n- 降级链，自动供应商故障转移\n- 多密钥池，支持轮询和自动恢复\n- 按层级超时配置（haiku/sonnet/opus）\n- 模型别名映射，无缝切换供应商\n\n### 安全\n- 时间安全认证（常量时间比较）\n- 基于 IP 的速率限制，带标准响应头\n- 基于会话的管理员认证\n- 安全响应头（CSP、X-Frame-Options 等）\n\n### 高级功能\n- Kiro OAuth 集成（Google/GitHub/AWS Builder ID）\n- 基于文件的请求日志，支持轮转\n- CORS 配置\n- 配置中的环境变量插值\n\n---\n\n## Web 仪表盘\n\n访问 `http://localhost:9800` —— 一个受 Traefik 启发的仪表盘，带侧边栏导航，使用 Preact 组件构建：\n\n**左侧面板：**\n- **快速开始**：3 步设置指南，支持复制配置片段\n- **别名映射**：将 haiku/sonnet/opus 映射到任意模型。组合下拉框自动从供应商 API 检测模型，也支持自定义模型名称。按层级配置超时\n- **供应商**：卡片展示名称、协议标识（Anthropic/OpenAI/Kiro）、模型（从 API + 配置合并）、前缀、默认模型、密钥状态。每个卡片有测试/编辑/删除按钮\n\n**右侧面板：**\n- **请求日志**：实时 SSE 更新，保留展开状态。按全部/正常/错误筛选。每条记录显示 `claudeModel → resolvedModel → provider` 及耗时。点击展开详情（请求 ID、目标 URL、错误信息、日志文件路径）\n- **文件日志开关**：启用/禁用磁盘详细日志记录\n\n**配置页面（双模式）：**\n- **UI 模式**：结构化表单，卡片式展示常规、安全、Token 刷新、流/超时、CORS 设置\n- **JSON 模式**：原始 JSON 编辑器，支持验证、导入/导出和重置\n\n---\n\n## 仪表盘截图\n\n<div align=\"center\">\n  <img src=\"docs/images/dashboard-overview.jpg\" alt=\"仪表盘总览\" width=\"800\">\n  <p><em>仪表盘总览 — 侧边栏导航、供应商卡片、别名映射与实时请求日志</em></p>\n</div>\n\n<div align=\"center\">\n  <img src=\"docs/images/provider-management.jpg\" alt=\"供应商管理\" width=\"600\">\n  <p><em>供应商管理 — 健康状态、模型列表、密钥池状态与操作按钮</em></p>\n</div>\n\n<div align=\"center\">\n  <img src=\"docs/images/alias-mapping.jpg\" alt=\"别名映射\" width=\"600\">\n  <p><em>别名映射 — 将 haiku/sonnet/opus 映射到任意供应商模型，按层级配置超时</em></p>\n</div>\n\n<div align=\"center\">\n  <img src=\"docs/images/request-logs.jpg\" alt=\"请求日志\" width=\"700\">\n  <p><em>请求日志 — 实时 SSE 更新，支持筛选与展开详情</em></p>\n</div>\n\n<div align=\"center\">\n  <img src=\"docs/images/config-editor.jpg\" alt=\"配置编辑器\" width=\"700\">\n  <p><em>配置编辑器 — 双模式：结构化表单 UI 与原始 JSON 编辑</em></p>\n</div>\n\n> 运行 `npx claude-api-hub` 并访问 http://localhost:9800 探索仪表盘。\n\n---\n\n## 支持的供应商\n\n| 供应商 | 协议 | 状态 |\n|----------|----------|--------|\n| Claude (Anthropic) | Anthropic 透传 | 已验证 |\n| Kiro (AWS Q / CodeWhisperer) | Kiro OAuth → AWS Q API | 已验证 |\n| Kimi (Moonshot AI) | Anthropic 透传 | 已验证 |\n| MiniMax | Anthropic 透传 | 已验证 |\n| GLM (Zhipu AI) | Anthropic 透传 | 已验证 |\n| DeepSeek | Anthropic 透传 | 已验证 |\n| 任意兼容 OpenAI 的 API | 自动转换（Anthropic ↔ OpenAI） | 支持 |\n\n---\n\n## 快速开始\n\n### 前提条件\n\n- Node.js >= 22\n\n### 方案 1：使用 npx 运行（无需安装）\n\n**前提条件：** Node.js >= 22。使用 `node -v` 检查。从 [nodejs.org](https://nodejs.org) 安装或使用 `nvm install 22`。\n\n```bash\nnpx claude-api-hub\n# ✓ api-hub listening on http://0.0.0.0:9800\n# ✓ Open http://localhost:9800 for the web dashboard\n```\n\n> **⚠️ 安全提示：** 默认情况下，网关绑定到 `0.0.0.0:9800` 且无密码。生产环境请在 `providers.json` 中设置 `password` 并考虑绑定到 `127.0.0.1`。\n\n### 方案 2：全局安装\n\n```bash\nnpm install -g claude-api-hub\nclaude-api-hub\n# ✓ api-hub listening on http://0.0.0.0:9800\n# ✓ Open http://localhost:9800 for the web dashboard\n```\n\n### 方案 3：Docker\n\n```bash\ngit clone https://github.com/LeenixP/claude-api-hub.git\ncd claude-api-hub\n# 编辑 docker-compose.yml 添加你的 API 密钥\ndocker compose up -d\n```\n\n仪表盘：http://localhost:9800\n\n打开 `http://localhost:9800` 访问 Web 仪表盘。\n\n在 `~/.claude/settings.json` 中将 Claude Code 指向网关：\n\n```json\n{\n  \"env\": {\n    \"ANTHROPIC_BASE_URL\": \"http://127.0.0.1:9800\"\n  }\n}\n```\n\n重启 Claude Code，所有请求将通过网关路由。\n\n### 验证\n\n```bash\ncurl http://localhost:9800/health\n# {\"status\":\"ok\",\"timestamp\":\"...\"}\n```\n\n### 示例请求\n\n```bash\ncurl -X POST http://localhost:9800/v1/messages \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-api-key: your-key\" \\\n  -d '{\"model\":\"claude-sonnet-4-6\",\"max_tokens\":100,\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}'\n```\n\n如果 `sonnet` 被别名为 `kimi-k2.6`，请求将自动路由到 Kimi 并进行协议转换。\n\n### 访问控制（可选）\n\n如果你暴露到局域网或公网，建议开启认证。\n\n#### 方式一：ANTHROPIC_AUTH_TOKEN（推荐）\n\n设置环境变量 `ANTHROPIC_AUTH_TOKEN`，Claude Code 会自动通过 `x-api-key` 头发送此 token 进行认证：\n\n```bash\n# 在 Claude Code 的 settings.json 中设置\n{\n  \"env\": {\n    \"ANTHROPIC_AUTH_TOKEN\": \"your-secret-token\",\n    \"ANTHROPIC_BASE_URL\": \"http://127.0.0.1:9800\"\n  }\n}\n```\n\nHub 启动时设置相同的环境变量：\n```bash\nANTHROPIC_AUTH_TOKEN=your-secret-token claude-api-hub\n```\n\n#### 方式二：ADMIN_TOKEN + x-hub-token\n\n设置 `ADMIN_TOKEN` 环境变量：\n\n```bash\nexport ADMIN_TOKEN=\"your-secret-token\"\n```\n\n然后客户端请求时加上 `x-hub-token` header：\n\n```bash\ncurl -X POST http://localhost:9800/v1/messages \\\n  -H \"x-hub-token: your-secret-token\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-api-key: sk-ant-xxx\" \\\n  -d '{\"model\":\"claude-sonnet-4-6\",\"max_tokens\":100,\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}'\n```\n\nClaude Code 客户端配置（在 settings.json 中）：\n\n```json\n{\n  \"env\": {\n    \"CLAUDE_CODE_EXTRA_HEADERS\": \"x-hub-token: your-secret-token\"\n  }\n}\n```\n\n未配置 `ADMIN_TOKEN` 时不需鉴权，和以前一样。\n\n---\n\n## 别名映射\n\n将 Claude Code 的三个模型层级映射到任意供应商的模型：\n\n```json\n{\n  \"aliases\": {\n    \"haiku\": \"glm-4-flash\",\n    \"sonnet\": \"kimi-k2.6\",\n    \"opus\": \"claude-opus-4-6\"\n  }\n}\n```\n\n当请求模型包含 `haiku`、`sonnet` 或 `opus` 时，将被替换为别名目标。日志会显示层级名称（Haiku/Sonnet/Opus）以及解析后的模型，便于调试。\n\n---\n\n## 添加供应商\n\n通过 Web 仪表盘（推荐）或配置文件 `~/.claude-api-hub/providers.json`：\n\n```json\n\"deepseek\": {\n  \"name\": \"DeepSeek\",\n  \"baseUrl\": \"https://api.deepseek.com/anthropic\",\n  \"apiKey\": \"${DEEPSEEK_API_KEY}\",\n  \"models\": [\"deepseek-chat\", \"deepseek-reasoner\"],\n  \"defaultModel\": \"deepseek-chat\",\n  \"enabled\": true,\n  \"prefix\": \"deepseek-\",\n  \"passthrough\": true\n}\n```\n\n### 供应商配置字段\n\n| 字段 | 说明 |\n|-------|-------------|\n| `name` | 显示名称 |\n| `baseUrl` | API 端点基础 URL |\n| `apiKey` | API 密钥（支持 `${ENV_VAR}` 语法）。Kiro OAuth 供应商不需要 |\n| `models` | 可用模型 ID 列表 |\n| `defaultModel` | 该供应商的默认模型 |\n| `prefix` | 路由前缀（字符串或数组），如 `\"kimi-\"` |\n| `passthrough` | `true` = Anthropic Messages API（直接转发），`false` = OpenAI Chat Completions API（自动转换） |\n| `enabled` | `true` / `false` 启用/禁用 |\n| `providerType` | `\"standard\"`（默认）或 `\"kiro\"` 用于 Kiro OAuth 供应商 |\n| `authMode` | `\"apikey\"`（默认）或 `\"oauth\"` 用于基于 OAuth 的认证 |\n| `kiroRegion` | Kiro 供应商的 AWS 区域（默认：`us-east-1`） |\n| `kiroCredsPath` | Kiro OAuth 凭证文件路径 |\n| `kiroStartUrl` | Builder ID 认证的自定义 AWS SSO 起始 URL |\n\n### 协议选择\n\n每个供应商可以使用三种协议之一 —— 在供应商模态表单中选择：\n\n- **Anthropic API**（透传）：请求通过 `x-api-key` 原样转发。用于 Anthropic 官方 API 或兼容代理（如 MiniMax Anthropic 端点）\n- **兼容 OpenAI**（自动转换）：请求从 Anthropic 格式自动转换为 OpenAI 格式。通过 `Bearer` token 认证。用于 Kimi、GLM、DeepSeek 和任何兼容 OpenAI 的 API\n- **Kiro**（AWS Q）：选择 \"Kiro\" 作为供应商类型。使用 OAuth 凭证通过 AWS Q `generateAssistantResponse` 端点调用 Claude 模型。直接从 Web UI 授权\n\n---\n\n## Kiro 供应商\n\nKiro 供应商通过 AWS Q（CodeWhisperer）路由请求，允许你使用 Kiro OAuth 凭证而非 Anthropic API 密钥来使用 Claude 模型。\n\n### Web UI 授权（推荐）\n\n1. 打开 Web 仪表盘 → 点击 **添加供应商** → 选择 **Kiro** 作为供应商类型\n2. 在 **Kiro 授权** 部分，选择认证方式：\n   - **Sign in with Google** —— 一键登录，最简单\n   - **Sign in with GitHub** —— 一键登录，最简单\n   - **AWS Builder ID** —— 使用你的 AWS 开发者账户（需要验证码）\n3. 可选设置 **Region** 和 **Start URL**（用于自定义 AWS SSO 端点）\n4. 点击认证按钮 —— 弹出窗口进行授权\n5. 授权完成后，状态自动更新\n6. 点击 **Fetch** 加载可用模型，然后 **Save**\n\n凭证保存到 `~/.kiro/oauth_creds.json` 并在后台自动刷新（可配置间隔，默认 30 分钟）。\n\n### 手动配置\n\n或者，直接在配置文件中添加供应商：\n\n```json\n\"kiro\": {\n  \"name\": \"Kiro\",\n  \"baseUrl\": \"https://q.us-east-1.amazonaws.com\",\n  \"apiKey\": \"\",\n  \"models\": [\"claude-sonnet-4-6\", \"claude-haiku-4-5\"],\n  \"defaultModel\": \"claude-sonnet-4-6\",\n  \"enabled\": true,\n  \"providerType\": \"kiro\",\n  \"authMode\": \"oauth\",\n  \"kiroRegion\": \"us-east-1\",\n  \"kiroCredsPath\": \"~/.kiro/oauth_creds.json\"\n}\n```\n\n### Token 自动刷新\n\nOAuth token 在过期前由后台服务自动刷新。在配置页面或配置文件中配置间隔：\n\n```json\n{\n  \"tokenRefreshMinutes\": 30\n}\n```\n\n---\n\n## API 端点\n\n| 端点 | 方法 | 说明 |\n|----------|--------|-------------|\n| `/` | GET | Web 仪表盘 |\n| `/v1/messages` | POST | Anthropic Messages API 代理（主端点） |\n| `/v1/models` | GET | 列出所有可用模型 |\n| `/health` | GET | 网关健康检查 |\n| `/api/events` | GET | SSE 实时事件流 |\n| `/api/stats` | GET | 速率追踪统计（QPS、RPM、TPS） |\n| `/api/auth/login` | POST | 密码登录（返回认证 token） |\n| `/api/config` | GET | 当前配置（API 密钥已脱敏） |\n| `/api/config/providers` | POST | 添加供应商（热重载路由） |\n| `/api/config/providers/:name` | PUT/DELETE | 更新或删除供应商（热重载路由） |\n| `/api/config/import` | POST | 导入完整配置（替换并重载） |\n| `/api/config/reload` | POST | 从磁盘重载配置 |\n| `/api/tier-timeouts` | GET/PUT | 获取或更新按层级超时配置 |\n| `/api/aliases` | GET/PUT | 获取或更新别名映射 |\n| `/api/fetch-models` | GET | 从供应商 API 获取真实模型列表 |\n| `/api/health/providers` | GET | 测试所有供应商的连通性 |\n| `/api/test-provider/:key` | POST | 用完整请求流测试供应商（绕过别名） |\n| `/api/oauth/kiro/*` | Various | Kiro OAuth 流程端点 |\n| `/api/logs` | GET | 请求日志（最近 200 条，轻量） |\n| `/api/logs/clear` | POST | 清空日志缓冲区 |\n| `/api/logs/file-status` | GET | 文件日志状态和文件数量 |\n| `/api/logs/file-toggle` | PUT | 开关文件日志 |\n\n---\n\n## 多密钥配置\n\n每个供应商通过 `apiKey` 字段支持多个 API 密钥。用逗号分隔密钥：\n\n```json\n\"deepseek\": {\n  \"apiKey\": \"${DEEPSEEK_KEY_1},${DEEPSEEK_KEY_2},${DEEPSEEK_KEY_3}\",\n  ...\n}\n```\n\n网关通过 `KeyPool` 管理密钥：\n- **轮询轮换**：请求均匀分布在健康密钥上\n- **自动禁用**：连续 5 次错误后，密钥被标记为不健康并跳过\n- **自动恢复**：不健康密钥在 60 秒后重新启用\n- **成功重置**：成功请求立即重置错误计数器\n\n密钥健康状态在仪表盘的供应商卡片中可见。\n\n---\n\n## 降级链\n\n配置供应商之间的自动故障转移，当主供应商不健康时：\n\n```json\n{\n  \"fallbackChain\": {\n    \"kimi\": \"deepseek\",\n    \"deepseek\": \"glm\"\n  }\n}\n```\n\n当供应商不健康（所有密钥耗尽）时，路由跟随降级链寻找健康的替代方案。循环检测防止无限循环。\n\n---\n\n## 路由规则\n\n1. **别名解析**：模型名称包含 haiku/sonnet/opus → 替换为别名目标\n2. **前缀匹配**：按供应商的 `prefix` 配置路由\n3. **模型列表匹配**：检查供应商的 `models` 数组\n4. **自动选择**：使用第一个健康的启用供应商\n\n---\n\n## 日志\n\n双层日志系统：\n\n- **内存日志**（始终开启）：RAM 中的轻量摘要，显示在仪表盘中。最近 200 条记录，包含 claudeModel 层级、resolvedModel、provider、状态、耗时、错误信息\n- **文件日志**（可选）：`~/.claude-api-hub/logs/` 中的详细 JSON 文件，包含原始请求体、转换后的请求体、转发头、上游响应。通过仪表盘开关。4096 个文件时自动清理\n\n---\n\n## 安全\n\n- **密码登录门户**：配置 `adminToken` 时仪表盘显示登录页面。输入管理员密码认证 —— 凭证存储在 localStorage 中，后续请求以 `x-admin-token` 头发送\n- **管理员认证**：在配置中设置 `adminToken` 或 `ADMIN_TOKEN` 环境变量以保护管理 API 端点\n- **基于 IP 的速率限制**：配置 `rateLimitRpm` 限制每 IP 每分钟请求数\n- **CORS 限制**：默认 localhost；配置 `corsOrigins` 指定来源\n- **时间安全比较**：管理员 token 使用 `crypto.timingSafeEqual` 防止定时攻击\n- **环境变量白名单**：只有 `ANTHROPIC_*`、`MOONSHOT_*`、`MINIMAX_*`、`ZHIPUAI_*`、`OPENAI_*`、`DEEPSEEK_*` 前缀会被插值\n- **API 密钥脱敏**：所有 API 响应和日志中密钥已脱敏\n\n查看 [SECURITY.md](SECURITY.md) 了解漏洞报告。\n\n---\n\n## 故障排查\n\n### 连接被拒绝 (ECONNREFUSED)\n\n**症状：** Claude Code 无法连接到网关。\n\n**解决方案：**\n1. 验证网关正在运行：`curl http://127.0.0.1:9800/health`\n2. 检查 `~/.claude/settings.json` 配置正确：\n   ```json\n   { \"env\": { \"ANTHROPIC_BASE_URL\": \"http://127.0.0.1:9800\" } }\n   ```\n3. 如果使用 Docker，确保端口映射：`-p 9800:9800`\n4. 检查防火墙设置允许本地连接\n\n### 401 未授权\n\n**症状：** 请求返回 401 错误。\n\n**解决方案：**\n1. 验证 API 密钥在 providers.json 中设置正确\n2. 检查密钥格式符合供应商要求（Bearer vs x-api-key）\n3. 对于 Kiro：确保 OAuth 凭证有效且未过期\n4. 运行 `/api/health/providers` 测试连通性\n\n### 模型未找到\n\n**症状：** 错误信息指示模型未找到。\n\n**解决方案：**\n1. 检查别名映射是否配置：`/api/aliases`\n2. 验证供应商已启用：`/api/health/providers`\n3. 确保模型存在于供应商的模型列表中\n4. 尝试获取最新模型：`/api/fetch-models`\n\n### 请求超时\n\n**症状：** 请求挂起或超时。\n\n**解决方案：**\n1. 检查供应商 API 状态\n2. 调整配置中的超时：`streamTimeout` 或 `requestTimeout`\n3. 检查网络/防火墙设置\n4. 尝试不同的供应商作为降级\n\n### SSRF（服务器端请求伪造）警告\n\n**症状：** 可疑的内部请求被阻止。\n\n**这是有意为之的安全行为。** 网关阻止对以下地址的请求：\n- 私有 IP 范围（10.x、172.16.x、192.168.x、127.x）\n- Localhost 地址\n- 内部云元数据端点\n\n如果你需要访问内部资源，确保供应商 baseUrl 使用公共端点。\n\n### Docker：无法从宿主机访问网关\n\n**解决方案：**\n1. 配置中使用 `host: \"0.0.0.0\"`（不是 `127.0.0.1`）\n2. 确保 Docker 端口映射：`-p 9800:9800`\n3. 运行 `docker compose up` 以获得正确的网络\n\n### 端口 9800 已被占用\n\n**解决方案：**\n1. 查找并停止冲突进程：`lsof -i :9800`\n2. 更改配置中的端口：`API_HUB_PORT=9801`\n3. 如果安全则终止现有进程：`kill <PID>`\n\n---\n\n## 路线图\n\n计划的功能和增强（尚未实现）：\n\n### 计划中\n- **Gemini 支持** —— 添加 Google Gemini 作为路由目标\n- **插件系统** —— 可扩展架构，支持自定义供应商和转换\n- **Webhook 集成** —— 请求事件的实时通知\n- **请求重放** —— 重放历史请求用于调试\n\n### 待办\n- 按模型速率限制\n- 成本追踪和预算\n- 批量请求支持\n- 多区域供应商选择\n- API 密钥自动轮换\n\n---\n\n## 开发\n\n```bash\nnpm run dev         # 开发模式（热重载）\nnpm run dev:ui      # 前端监视模式\nnpm run build       # 编译 TypeScript\nnpm run build:ui    # 生产前端构建\nnpm test            # 运行测试（100+ 测试）\nnpm run test:coverage # 运行测试并生成覆盖率报告\nnpm run lint        # 运行 ESLint\n```\n\n---\n\n## 贡献\n\n查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解开发设置和 PR 指南。\n\n---\n\n## 许可证\n\nMIT 许可证 —— 详见 [LICENSE](LICENSE)。\n","readmeFilename":"README.md"}