{"_id":"@adamlangepl/tc-proxy","_rev":"8-cb9ebb0235d5bf7d5b8e4a551f02818f","name":"@adamlangepl/tc-proxy","dist-tags":{"latest":"1.0.10"},"versions":{"1.0.0":{"name":"@adamlangepl/tc-proxy","version":"1.0.0","keywords":["claude","anthropic","api","proxy","load-balancer","rate-limiting","oauth","cli","analytics","monitoring"],"license":"MIT","_id":"@adamlangepl/tc-proxy@1.0.0","maintainers":[{"name":"adamlangepl","email":"npm@adamlange.pl"}],"homepage":"https://github.com/ALange/TinyClaude#readme","bugs":{"url":"https://github.com/ALange/TinyClaude/issues"},"bin":{"tinyclaude":"dist/tinyclaude"},"dist":{"shasum":"bb2926f509fd06b3fa63e11da374b40224b2f86e","tarball":"https://registry.npmjs.org/@adamlangepl/tc-proxy/-/tc-proxy-1.0.0.tgz","fileCount":3,"integrity":"sha512-yFO5wOIg1+WRcwRZxWm+ZbMy7N35xOh4puMydHCExDxCfaFvGFA6AC2sJV2nRj0eQp7YMxOEYQUo2KtF5Ki0zQ==","signatures":[{"sig":"MEUCIBBLufiPHLP7yM6JPB35A32rcQBS6eQl8uI6YNiGOUuPAiEAoNnr3lAGQMaVu6Jk1IDxoPMsjZRJ+Vlc72F3mYYWukg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72767079},"type":"module","shasum":"bb2926f509fd06b3fa63e11da374b40224b2f86e","engines":{"node":">=18.0.0"},"scripts":{"dev":"bun run src/main.ts","build":"mkdir -p dist && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-incremental-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-integrity-check-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"\\\";'); }\" && bun build ../../packages/database/src/vacuum-worker.ts --outfile dist/vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/incremental-vacuum-worker.ts --outfile dist/incremental-vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/incremental-vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/integrity-check-worker.ts --outfile dist/integrity-check-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/integrity-check-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"' + encoded + '\\\";');\" && rm -f dist/tinyclaude && bun build src/main.ts --compile --outfile dist/tinyclaude --target=bun --minify --define __TINYCLAUDE_VERSION__='\\\"'$(node -p \"require('./package.json').version\")'\\\"' && rm -f dist/vacuum-worker.js dist/incremental-vacuum-worker.js dist/integrity-check-worker.js","build:multi":"bun run build-multi-arch.ts","postpublish":"chmod +x dist/tinyclaude","prepublishOnly":"cp ../../README.md . && bun run --cwd ../.. build:dashboard && bun run build && jq 'del(.dependencies[\"@tinyclaude/cli-commands\", \"@tinyclaude/config\", \"@tinyclaude/core\", \"@tinyclaude/core-di\", \"@tinyclaude/database\", \"@tinyclaude/logger\", \"@tinyclaude/server\"])' package.json > package.json.tmp && mv package.json.tmp package.json","build:linux-amd64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-linux-amd64 --target=bun-linux-amd64 --minify","build:linux-arm64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-linux-arm64 --target=bun-linux-arm64 --minify","build:macos-arm64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-macos-arm64 --target=bun-darwin-arm64 --minify","build:windows-x64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-windows-x64.exe --target=bun-windows-x64 --minify","build:macos-x86_64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-macos-x86_64 --target=bun-darwin-x64 --minify"},"_npmUser":{"name":"adamlangepl","email":"npm@adamlange.pl"},"_integrity":"sha512-yFO5wOIg1+WRcwRZxWm+ZbMy7N35xOh4puMydHCExDxCfaFvGFA6AC2sJV2nRj0eQp7YMxOEYQUo2KtF5Ki0zQ==","repository":{"url":"git+https://github.com/ALange/TinyClaude.git","type":"git"},"_npmVersion":"10.8.3","description":"Load balancer proxy for Claude API with intelligent distribution across multiple OAuth accounts to avoid rate limiting","directories":{},"_nodeVersion":"24.3.0","dependencies":{"dotenv":"^17.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tc-proxy_1.0.0_1783923940598_0.5602190231756883","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@adamlangepl/tc-proxy","version":"1.0.1","keywords":["claude","anthropic","api","proxy","load-balancer","rate-limiting","oauth","cli","analytics","monitoring"],"license":"MIT","_id":"@adamlangepl/tc-proxy@1.0.1","maintainers":[{"name":"adamlangepl","email":"npm@adamlange.pl"}],"homepage":"https://github.com/ALange/TinyClaude#readme","bugs":{"url":"https://github.com/ALange/TinyClaude/issues"},"bin":{"tinyclaude":"dist/tinyclaude"},"dist":{"shasum":"5f17b0de01a6dc7a6c687c5d3f6902f2e8501fb9","tarball":"https://registry.npmjs.org/@adamlangepl/tc-proxy/-/tc-proxy-1.0.1.tgz","fileCount":3,"integrity":"sha512-fmDu7WtK1APD5c64ISXeJLen9OhTyl77ZkthDs8ehKClCDUvyBGaiUSotY219s6rJsm7ed/Mhk6JkNLtrJ9+gQ==","signatures":[{"sig":"MEUCIQCwQM4KjPpkUmoYw9Hg0Iztw4DVD1TMOGnd/65omN7vSQIgU7yo3MwGOkYY74ncC4+jd2LHyY71qLNNWQCQb7zMSdE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adamlangepl%2ftc-proxy@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110912909},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"da9b746278ed1fd4e47e35bb89bfe062baa53dbd","scripts":{"dev":"bun run src/main.ts","build":"mkdir -p dist && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-incremental-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-integrity-check-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"\\\";'); }\" && bun build ../../packages/database/src/vacuum-worker.ts --outfile dist/vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/incremental-vacuum-worker.ts --outfile dist/incremental-vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/incremental-vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/integrity-check-worker.ts --outfile dist/integrity-check-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/integrity-check-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"' + encoded + '\\\";');\" && rm -f dist/tinyclaude && bun build src/main.ts --compile --outfile dist/tinyclaude --target=bun --minify --define __TINYCLAUDE_VERSION__='\\\"'$(node -p \"require('./package.json').version\")'\\\"' && rm -f dist/vacuum-worker.js dist/incremental-vacuum-worker.js dist/integrity-check-worker.js","build:multi":"bun run build-multi-arch.ts","postpublish":"chmod +x dist/tinyclaude","prepublishOnly":"cp ../../README.md . && bun run --cwd ../.. build:dashboard && bun run build && jq 'del(.dependencies[\"@tinyclaude/cli-commands\", \"@tinyclaude/config\", \"@tinyclaude/core\", \"@tinyclaude/core-di\", \"@tinyclaude/database\", \"@tinyclaude/logger\", \"@tinyclaude/server\"])' package.json > package.json.tmp && mv package.json.tmp package.json","build:linux-amd64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-linux-amd64 --target=bun-linux-amd64 --minify","build:linux-arm64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-linux-arm64 --target=bun-linux-arm64 --minify","build:macos-arm64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-macos-arm64 --target=bun-darwin-arm64 --minify","build:windows-x64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-windows-x64.exe --target=bun-windows-x64 --minify","build:macos-x86_64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-macos-x86_64 --target=bun-darwin-x64 --minify"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64a74cbe-df6a-4660-b41d-5eec8c9adcfa"}},"repository":{"url":"git+https://github.com/ALange/TinyClaude.git","type":"git"},"_npmVersion":"12.0.1","description":"Load balancer proxy for Claude API with intelligent distribution across multiple OAuth accounts to avoid rate limiting","directories":{},"_nodeVersion":"22.23.1","dependencies":{"dotenv":"^17.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tc-proxy_1.0.1_1783924529686_0.18443112579648635","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@adamlangepl/tc-proxy","version":"1.0.2","keywords":["claude","anthropic","api","proxy","load-balancer","rate-limiting","oauth","cli","analytics","monitoring"],"license":"MIT","_id":"@adamlangepl/tc-proxy@1.0.2","maintainers":[{"name":"adamlangepl","email":"npm@adamlange.pl"}],"homepage":"https://github.com/ALange/TinyClaude#readme","bugs":{"url":"https://github.com/ALange/TinyClaude/issues"},"bin":{"tinyclaude":"dist/tinyclaude"},"dist":{"shasum":"e78c80887e5085fd243e7336368a7740e4f9d3bb","tarball":"https://registry.npmjs.org/@adamlangepl/tc-proxy/-/tc-proxy-1.0.2.tgz","fileCount":3,"integrity":"sha512-wAj9UlOvIVh/rg+iYWkCIjJTlAWcmUSGzz5W8q4DNFVS2dc63Bqsa4CTJYGlNFu6HJuHXVpuUDxQHXBI6hU2RA==","signatures":[{"sig":"MEQCIEiZGIN/Fp73o/DfeslDzQViG6WKxy/ICmm4yooUf7WBAiA2UVxxM6QmWeSRcjN4s/69BrTUtXpb2yU3KMgIXkNtEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adamlangepl%2ftc-proxy@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110919858},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"1e71b6f78afec35f95c08c3cc37e3ad76389f89a","scripts":{"dev":"bun run src/main.ts","build":"mkdir -p dist && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-incremental-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-integrity-check-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"\\\";'); }\" && bun build ../../packages/database/src/vacuum-worker.ts --outfile dist/vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/incremental-vacuum-worker.ts --outfile dist/incremental-vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/incremental-vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/integrity-check-worker.ts --outfile dist/integrity-check-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/integrity-check-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"' + encoded + '\\\";');\" && rm -f dist/tinyclaude && bun build src/main.ts --compile --outfile dist/tinyclaude --target=bun --minify --define __TINYCLAUDE_VERSION__='\\\"'$(node -p \"require('./package.json').version\")'\\\"' && rm -f dist/vacuum-worker.js dist/incremental-vacuum-worker.js dist/integrity-check-worker.js","build:multi":"bun run build-multi-arch.ts","postpublish":"chmod +x dist/tinyclaude","prepublishOnly":"cp ../../README.md . && bun run --cwd ../.. build:dashboard && bun run build && jq 'del(.dependencies[\"@tinyclaude/cli-commands\", \"@tinyclaude/config\", \"@tinyclaude/core\", \"@tinyclaude/core-di\", \"@tinyclaude/database\", \"@tinyclaude/logger\", \"@tinyclaude/server\"])' package.json > package.json.tmp && mv package.json.tmp package.json","build:linux-amd64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-linux-amd64 --target=bun-linux-amd64 --minify","build:linux-arm64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-linux-arm64 --target=bun-linux-arm64 --minify","build:macos-arm64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-macos-arm64 --target=bun-darwin-arm64 --minify","build:windows-x64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-windows-x64.exe --target=bun-windows-x64 --minify","build:macos-x86_64":"bun run build && bun build src/main.ts --compile --outfile dist/tinyclaude-macos-x86_64 --target=bun-darwin-x64 --minify"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64a74cbe-df6a-4660-b41d-5eec8c9adcfa"}},"repository":{"url":"git+https://github.com/ALange/TinyClaude.git","type":"git"},"_npmVersion":"12.0.1","description":"Load balancer proxy for Claude API with intelligent distribution across multiple OAuth accounts to avoid rate limiting","directories":{},"_nodeVersion":"22.23.1","dependencies":{"dotenv":"^17.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tc-proxy_1.0.2_1783931443994_0.6123219415349868","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@adamlangepl/tc-proxy","version":"1.0.3","keywords":["claude","anthropic","api","proxy","load-balancer","rate-limiting","oauth","cli","analytics","monitoring"],"license":"MIT","_id":"@adamlangepl/tc-proxy@1.0.3","maintainers":[{"name":"adamlangepl","email":"npm@adamlange.pl"}],"homepage":"https://github.com/ALange/TinyClaude#readme","bugs":{"url":"https://github.com/ALange/TinyClaude/issues"},"bin":{"tinyclaude":"bin/tinyclaude.js"},"dist":{"shasum":"4d0a667feaeed5fa9cf868f8a5d752de593e31c4","tarball":"https://registry.npmjs.org/@adamlangepl/tc-proxy/-/tc-proxy-1.0.3.tgz","fileCount":5,"integrity":"sha512-J4PVT5p0qWgBaCHe3YnjwQAIQjMiLivzyNirHCuIerF/ZnD0lhUE8w2lKjiNqodmvBZys1gsL2Y4KfuZcp9nag==","signatures":[{"sig":"MEUCIBzcQRBr1vlwJD8I8cb4H0BYWlsG9KE4SvQUSkFEYcJnAiEAzJY0nXCofqWsv2FOiN+XdjxwrT44KVGKqX6QoO3HiGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adamlangepl%2ftc-proxy@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13379},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"988c25d9698f258e4ff492b9d132fc3a0d9f03f8","scripts":{"dev":"bun run src/main.ts","build":"mkdir -p dist && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-incremental-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-integrity-check-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"\\\";'); }\" && bun build ../../packages/database/src/vacuum-worker.ts --outfile dist/vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/incremental-vacuum-worker.ts --outfile dist/incremental-vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/incremental-vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/integrity-check-worker.ts --outfile dist/integrity-check-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/integrity-check-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"' + encoded + '\\\";');\" && rm -f dist/tinyclaude && bun build src/main.ts --compile --outfile dist/tinyclaude --target=bun --minify --define __TINYCLAUDE_VERSION__='\\\"'$(node -p \"require('./package.json').version\")'\\\"' && rm -f dist/vacuum-worker.js dist/incremental-vacuum-worker.js dist/integrity-check-worker.js","build:multi":"bun run build-multi-arch.ts","postinstall":"node scripts/postinstall.js","prepublishOnly":"cp ../../README.md . && jq 'del(.dependencies[\"@tinyclaude/cli-commands\", \"@tinyclaude/config\", \"@tinyclaude/core\", \"@tinyclaude/core-di\", \"@tinyclaude/database\", \"@tinyclaude/logger\", \"@tinyclaude/server\"])' package.json > package.json.tmp && mv package.json.tmp package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64a74cbe-df6a-4660-b41d-5eec8c9adcfa"}},"repository":{"url":"git+https://github.com/ALange/TinyClaude.git","type":"git"},"_npmVersion":"12.0.1","description":"Load balancer proxy for Claude API with intelligent distribution across multiple OAuth accounts to avoid rate limiting","directories":{},"_nodeVersion":"22.23.1","dependencies":{"dotenv":"^17.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tc-proxy_1.0.3_1783941725342_0.6392110793299355","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@adamlangepl/tc-proxy","version":"1.0.4","keywords":["claude","anthropic","api","proxy","load-balancer","rate-limiting","oauth","cli","analytics","monitoring"],"license":"MIT","_id":"@adamlangepl/tc-proxy@1.0.4","maintainers":[{"name":"adamlangepl","email":"npm@adamlange.pl"}],"homepage":"https://github.com/ALange/TinyClaude#readme","bugs":{"url":"https://github.com/ALange/TinyClaude/issues"},"bin":{"tinyclaude":"bin/tinyclaude.js"},"dist":{"shasum":"7322d18ef104c47f77896ef2aaaf8c48c232a922","tarball":"https://registry.npmjs.org/@adamlangepl/tc-proxy/-/tc-proxy-1.0.4.tgz","fileCount":5,"integrity":"sha512-VulAP5ZpNDg6BDA9Vd2evH53A47y4kZoA3W0HnzkKPSRU2pMWIeWsPi3+w1mjuyjxjthuohXK4Q3QX3ymiEqeA==","signatures":[{"sig":"MEUCIBmI3XP/p0A7rKZ4z57BJFkw0w4f/l0+UvIEFlS9zvuqAiEA/CHp6zSOwW7Zalqzm8Q+SO5fYo6nw9MfOPxPkWbrO6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adamlangepl%2ftc-proxy@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13379},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"003397239940b48146485bd0c0021d4b7d5fa963","scripts":{"dev":"bun run src/main.ts","build":"mkdir -p dist && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-incremental-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-integrity-check-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"\\\";'); }\" && bun build ../../packages/database/src/vacuum-worker.ts --outfile dist/vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/incremental-vacuum-worker.ts --outfile dist/incremental-vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/incremental-vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/integrity-check-worker.ts --outfile dist/integrity-check-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/integrity-check-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"' + encoded + '\\\";');\" && rm -f dist/tinyclaude && bun build src/main.ts --compile --outfile dist/tinyclaude --target=bun --minify --define __TINYCLAUDE_VERSION__='\\\"'$(node -p \"require('./package.json').version\")'\\\"' && rm -f dist/vacuum-worker.js dist/incremental-vacuum-worker.js dist/integrity-check-worker.js","build:multi":"bun run build-multi-arch.ts","postinstall":"node scripts/postinstall.js","prepublishOnly":"cp ../../README.md . && jq 'del(.dependencies[\"@tinyclaude/cli-commands\", \"@tinyclaude/config\", \"@tinyclaude/core\", \"@tinyclaude/core-di\", \"@tinyclaude/database\", \"@tinyclaude/logger\", \"@tinyclaude/server\"])' package.json > package.json.tmp && mv package.json.tmp package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64a74cbe-df6a-4660-b41d-5eec8c9adcfa"}},"repository":{"url":"git+https://github.com/ALange/TinyClaude.git","type":"git"},"_npmVersion":"12.0.1","description":"Load balancer proxy for Claude API with intelligent distribution across multiple OAuth accounts to avoid rate limiting","directories":{},"_nodeVersion":"22.23.1","dependencies":{"dotenv":"^17.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tc-proxy_1.0.4_1784107972446_0.47027933343095385","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@adamlangepl/tc-proxy","version":"1.0.5","keywords":["claude","anthropic","api","proxy","load-balancer","rate-limiting","oauth","cli","analytics","monitoring"],"license":"MIT","_id":"@adamlangepl/tc-proxy@1.0.5","maintainers":[{"name":"adamlangepl","email":"npm@adamlange.pl"}],"homepage":"https://github.com/ALange/TinyClaude#readme","bugs":{"url":"https://github.com/ALange/TinyClaude/issues"},"bin":{"tinyclaude":"bin/tinyclaude.js"},"dist":{"shasum":"6b9e3c1d148ba98d57b7de5b491a3cb80e236f24","tarball":"https://registry.npmjs.org/@adamlangepl/tc-proxy/-/tc-proxy-1.0.5.tgz","fileCount":5,"integrity":"sha512-SUOsDGcok15Z5U/XjIzgP0CydCv4koYtIDvQkgNemfJHtPIZF9TjIVZdPq/2fSZ7vMpROhJlKg5RB2EF6sGK4g==","signatures":[{"sig":"MEYCIQDmBGzpVwz+Tc75O/zQIIzrITpo/zJa+on1RuqiQ5Y4GQIhALfb/l+NDa03nKQma0gV1dwmy7QaYfqKFcd6ReCgIU+E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adamlangepl%2ftc-proxy@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13379},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"d7aa346e0c0d15e34a01d96a2afab417ab62f141","scripts":{"dev":"bun run src/main.ts","build":"mkdir -p dist && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-incremental-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-integrity-check-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"\\\";'); }\" && bun build ../../packages/database/src/vacuum-worker.ts --outfile dist/vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/incremental-vacuum-worker.ts --outfile dist/incremental-vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/incremental-vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/integrity-check-worker.ts --outfile dist/integrity-check-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/integrity-check-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"' + encoded + '\\\";');\" && rm -f dist/tinyclaude && bun build src/main.ts --compile --outfile dist/tinyclaude --target=bun --minify --define __TINYCLAUDE_VERSION__='\\\"'$(node -p \"require('./package.json').version\")'\\\"' && rm -f dist/vacuum-worker.js dist/incremental-vacuum-worker.js dist/integrity-check-worker.js","build:multi":"bun run build-multi-arch.ts","postinstall":"node scripts/postinstall.js","prepublishOnly":"cp ../../README.md . && jq 'del(.dependencies[\"@tinyclaude/cli-commands\", \"@tinyclaude/config\", \"@tinyclaude/core\", \"@tinyclaude/core-di\", \"@tinyclaude/database\", \"@tinyclaude/logger\", \"@tinyclaude/server\"])' package.json > package.json.tmp && mv package.json.tmp package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64a74cbe-df6a-4660-b41d-5eec8c9adcfa"}},"repository":{"url":"git+https://github.com/ALange/TinyClaude.git","type":"git"},"_npmVersion":"12.0.1","description":"Load balancer proxy for Claude API with intelligent distribution across multiple OAuth accounts to avoid rate limiting","directories":{},"_nodeVersion":"22.23.1","dependencies":{"dotenv":"^17.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tc-proxy_1.0.5_1784123172945_0.30743761554633564","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@adamlangepl/tc-proxy","version":"1.0.6","keywords":["claude","anthropic","api","proxy","load-balancer","rate-limiting","oauth","cli","analytics","monitoring"],"license":"MIT","_id":"@adamlangepl/tc-proxy@1.0.6","maintainers":[{"name":"adamlangepl","email":"npm@adamlange.pl"}],"homepage":"https://github.com/ALange/TinyClaude#readme","bugs":{"url":"https://github.com/ALange/TinyClaude/issues"},"bin":{"tinyclaude":"bin/tinyclaude.js"},"dist":{"shasum":"bf8339f385d2288605a6448a2204105a528f9b81","tarball":"https://registry.npmjs.org/@adamlangepl/tc-proxy/-/tc-proxy-1.0.6.tgz","fileCount":5,"integrity":"sha512-kdwo/jG+4foX2puwfgBloXlC0kBVgDdMbWYhu7fp9r5QQPQQRrIBhaiFjGdylVBWfA2l6173eji/XkFHgdlX4A==","signatures":[{"sig":"MEUCIH6CgmcBHTWeKPpIOYpZGIjcYQeEIYs98wmE3IBnplosAiEA5lzBUo6HSZESISr0M0teia7QGjLeRgXygxig97lHE0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adamlangepl%2ftc-proxy@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13379},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"1e7af255db2e54f1227a066cc285a36639388a7f","scripts":{"dev":"bun run src/main.ts","build":"mkdir -p dist && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-incremental-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-integrity-check-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"\\\";'); }\" && bun build ../../packages/database/src/vacuum-worker.ts --outfile dist/vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/incremental-vacuum-worker.ts --outfile dist/incremental-vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/incremental-vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/integrity-check-worker.ts --outfile dist/integrity-check-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/integrity-check-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"' + encoded + '\\\";');\" && rm -f dist/tinyclaude && bun build src/main.ts --compile --outfile dist/tinyclaude --target=bun --minify --define __TINYCLAUDE_VERSION__='\\\"'$(node -p \"require('./package.json').version\")'\\\"' && rm -f dist/vacuum-worker.js dist/incremental-vacuum-worker.js dist/integrity-check-worker.js","build:multi":"bun run build-multi-arch.ts","postinstall":"node scripts/postinstall.js","prepublishOnly":"cp ../../README.md . && jq 'del(.dependencies[\"@tinyclaude/cli-commands\", \"@tinyclaude/config\", \"@tinyclaude/core\", \"@tinyclaude/core-di\", \"@tinyclaude/database\", \"@tinyclaude/logger\", \"@tinyclaude/server\"])' package.json > package.json.tmp && mv package.json.tmp package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64a74cbe-df6a-4660-b41d-5eec8c9adcfa"}},"repository":{"url":"git+https://github.com/ALange/TinyClaude.git","type":"git"},"_npmVersion":"12.0.1","description":"Load balancer proxy for Claude API with intelligent distribution across multiple OAuth accounts to avoid rate limiting","directories":{},"_nodeVersion":"22.23.1","dependencies":{"dotenv":"^17.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tc-proxy_1.0.6_1784125301242_0.41992804696701613","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@adamlangepl/tc-proxy","version":"1.0.10","description":"Load balancer proxy for Claude API with intelligent distribution across multiple OAuth accounts to avoid rate limiting","license":"MIT","repository":{"type":"git","url":"git+https://github.com/ALange/TinyClaude.git"},"homepage":"https://github.com/ALange/TinyClaude#readme","bugs":{"url":"https://github.com/ALange/TinyClaude/issues"},"bin":{"tinyclaude":"bin/tinyclaude.js"},"type":"module","scripts":{"dev":"bun run src/main.ts","postinstall":"node scripts/postinstall.js","build":"mkdir -p dist && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-incremental-vacuum-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"\\\";'); }\" && bun -e \"const fs=require('fs'); if (!fs.existsSync('../../packages/database/src/inline-integrity-check-worker.ts')) { fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"\\\";'); }\" && bun build ../../packages/database/src/vacuum-worker.ts --outfile dist/vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-vacuum-worker.ts', 'export const EMBEDDED_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/incremental-vacuum-worker.ts --outfile dist/incremental-vacuum-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/incremental-vacuum-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-incremental-vacuum-worker.ts', 'export const EMBEDDED_INCREMENTAL_VACUUM_WORKER_CODE = \\\"' + encoded + '\\\";');\" && bun build ../../packages/database/src/integrity-check-worker.ts --outfile dist/integrity-check-worker.js --target=bun --minify && bun -e \"const fs=require('fs'); const code=fs.readFileSync('dist/integrity-check-worker.js','utf8'); const encoded=Buffer.from(code).toString('base64'); fs.writeFileSync('../../packages/database/src/inline-integrity-check-worker.ts', 'export const EMBEDDED_INTEGRITY_CHECK_WORKER_CODE = \\\"' + encoded + '\\\";');\" && rm -f dist/tinyclaude && bun build src/main.ts --compile --outfile dist/tinyclaude --target=bun --minify --define __TINYCLAUDE_VERSION__='\\\"'$(node -p \"require('./package.json').version\")'\\\"' && rm -f dist/vacuum-worker.js dist/incremental-vacuum-worker.js dist/integrity-check-worker.js","build:multi":"bun run build-multi-arch.ts","prepublishOnly":"cp ../../README.md . && jq 'del(.dependencies[\"@tinyclaude/cli-commands\", \"@tinyclaude/config\", \"@tinyclaude/core\", \"@tinyclaude/core-di\", \"@tinyclaude/database\", \"@tinyclaude/logger\", \"@tinyclaude/server\"])' package.json > package.json.tmp && mv package.json.tmp package.json"},"engines":{"node":">=18.0.0"},"devDependencies":{"@types/node":"^20.0.0"},"dependencies":{"dotenv":"^17.4.0"},"keywords":["claude","anthropic","api","proxy","load-balancer","rate-limiting","oauth","cli","analytics","monitoring"],"publishConfig":{"access":"public"},"gitHead":"9e8202223a98a171a4c5516e918c81dd12e5c51f","_id":"@adamlangepl/tc-proxy@1.0.10","_nodeVersion":"22.23.1","_npmVersion":"12.0.1","dist":{"integrity":"sha512-l5sHayMtbLXtDKJvuQRShhfHmEjhERAcansOyLJ2QsoBaH0edYmnMAYYWE9NhYsz4HW0ItWURSxKv8qWLzzrcA==","shasum":"82c0c0ac3c4172613aba208dbac481edc3159f95","tarball":"https://registry.npmjs.org/@adamlangepl/tc-proxy/-/tc-proxy-1.0.10.tgz","fileCount":5,"unpackedSize":13380,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adamlangepl%2ftc-proxy@1.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDwptwq3AiUQ+l54wIxiKd3V5EEktRNpalimRF5Yby6/gIgVEPHGoPxwTrx1gBdigNtClxS63JP27/a8GBKD4WW7VY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64a74cbe-df6a-4660-b41d-5eec8c9adcfa"}},"directories":{},"maintainers":[{"name":"adamlangepl","email":"npm@adamlange.pl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tc-proxy_1.0.10_1784126146827_0.4862560747804441"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-13T06:25:40.405Z","modified":"2026-07-15T14:35:47.225Z","1.0.0":"2026-07-13T06:25:41.065Z","1.0.1":"2026-07-13T06:35:30.306Z","1.0.2":"2026-07-13T08:30:44.619Z","1.0.3":"2026-07-13T11:22:05.487Z","1.0.4":"2026-07-15T09:32:52.570Z","1.0.5":"2026-07-15T13:46:13.077Z","1.0.6":"2026-07-15T14:21:41.395Z","1.0.10":"2026-07-15T14:35:46.959Z"},"bugs":{"url":"https://github.com/ALange/TinyClaude/issues"},"license":"MIT","homepage":"https://github.com/ALange/TinyClaude#readme","keywords":["claude","anthropic","api","proxy","load-balancer","rate-limiting","oauth","cli","analytics","monitoring"],"repository":{"type":"git","url":"git+https://github.com/ALange/TinyClaude.git"},"description":"Load balancer proxy for Claude API with intelligent distribution across multiple OAuth accounts to avoid rate limiting","maintainers":[{"name":"adamlangepl","email":"npm@adamlange.pl"}],"readme":"# tinyclaude 🛡️\n[![Mentioned in Awesome Claude Code](https://awesome.re/mentioned-badge.svg)](https://github.com/hesreallyhim/awesome-claude-code)\n\nA load-balancing proxy for the Claude API — distributes requests across multiple accounts and providers to avoid rate limits, with request compression, prompt-cache keepalive, and full request-level analytics.\n\n![tinyclaude Dashboard](apps/lander/src/screenshot-dashboard.png)\n\n## Usage\n\n```bash\n# via bun (recommended)\nbun install -g @adamlangepl/tc-proxy\ntinyclaude\n\n# via npm\nnpm install -g @adamlangepl/tc-proxy\ntinyclaude\n\n# no install — npx/bunx\nnpx @adamlangepl/tc-proxy@latest\n```\n\nPre-compiled binaries for all platforms are on the [Releases page](https://github.com/ALange/TinyClaude/releases/latest); building from source is covered in [Getting Started](docs/index.md).\n\nAdd an account and point Claude Code at the proxy:\n\n```bash\ntinyclaude --add-account myaccount --mode claude-oauth --priority 0\nexport ANTHROPIC_BASE_URL=http://localhost:8080\nclaude\n```\n\nDashboard: `http://localhost:8080/dashboard`\n\nSee [Getting Started](docs/index.md) for Docker, systemd, SSL/HTTPS, and Codex CLI setup.\n\n## Functions\n\n- **Load balancing** — session-based, least-used, and session-affinity strategies with automatic failover across account pools\n- **Multi-provider support** — Claude OAuth, Claude Console API, AWS Bedrock, Vertex AI, OpenAI-compatible, z.ai, Minimax, OpenRouter, Kilo, Codex, xAI/Grok, Ollama, and more\n- **Combos** — named cross-provider fallback chains, one per model family (Opus/Sonnet/Haiku)\n- **Request compression** — automatically compresses large tool-result payloads to cut token usage\n- **Prompt-cache keepalive** — replays cached requests on a schedule to keep Anthropic's server-side prompt cache warm\n- **Auto-fallback / auto-refresh** — restores preferred accounts and starts new usage windows automatically as rate limits reset\n- **Real-time analytics** — per-request token usage, latency, cost, and error tracking in the dashboard\n- **CLI + REST API** — full account and configuration management from the command line or API\n- **Optional API-key auth** — protect the proxy with its own API keys\n- **Flexible deployment** — Docker, systemd, or a pre-compiled cross-platform binary (no runtime dependencies)\n\n## Documentation\n\nFull docs in [`docs/`](docs/) — [Getting Started](docs/index.md), [CLI Commands](docs/cli.md), [Architecture](docs/architecture.md), [Configuration](docs/configuration.md), [Load Balancing](docs/load-balancing.md), [Combos](docs/combos.md), [Troubleshooting](docs/troubleshooting.md).\n\n## Acknowledgements\n\nThis project builds on ideas and code from:\n\n- [tombii/better-ccflare](https://github.com/tombii/better-ccflare)\n- [snipeship/ccflare](https://github.com/snipeship/ccflare)\n- [headroomlabs-ai/headroom](https://github.com/headroomlabs-ai/headroom)\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","readmeFilename":"README.md"}