{"_id":"@sevoniva/llm-coding-bridge","_rev":"33-3493824ce429184949db1c8a5bae389a","name":"@sevoniva/llm-coding-bridge","dist-tags":{"latest":"0.9.0"},"versions":{"0.1.0":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.0","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.0","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"3112451dd010421cc0995470426d912554968245","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.0.tgz","fileCount":8,"integrity":"sha512-2pEAlwxXBmttblgOYyM8D/PcXeV2GyZfTpVuikqFbg9PinDnUeIZ6h9Nhe7OIR9zx9kXojV9+WPbIBLNbGKq5w==","signatures":[{"sig":"MEYCIQDMatiDHZlxX31VLZmRxssYsd4MHwv95zJtAlZCTvdqjAIhAPQhGzeQWFYC7778ce8y2MN+Lvq9rir88gXjerfwrmgJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61468},"type":"commonjs","engines":{"node":">=18"},"gitHead":"f6509367156ac7902c780145cdb7c9d1100750b4","scripts":{"test":"node test/smoke.js","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"carsonfan","email":"chuncheng.carson@gmail.com"},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"10.9.4","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.0_1783073734234_0.46170444180293324","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.1","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.1","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"1510479c2b3ab9841bcd3a53285bb83f75541d8a","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.1.tgz","fileCount":8,"integrity":"sha512-s8oeP9ILQkcMuwc616nmgOMc+ImmS8RzUiyKDEC5WwQaetEwpDpHIb1DWBaP2mifWfVligFf4vSW9f+rqu2yEg==","signatures":[{"sig":"MEUCIG2ZfB036ew8fXueZq3Y00YhyTkuZAV56Zpf809ik9njAiEA6yhSYKCpeZn3k6JtYD5vrlvWs+DQ7oIXwp/MiAh3+oo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61524},"type":"commonjs","engines":{"node":">=18"},"gitHead":"70d888089b691729e85125e16a5520268879deb8","scripts":{"test":"node test/smoke.js","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.1_1783074203125_0.8675174227823157","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.2","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.2","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"f951ddf5a88d487bcf6aa9b6faadeed23f3dfc40","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.2.tgz","fileCount":8,"integrity":"sha512-zIm5zfn9E5/bXz654Fb6FdAwYKqeIbIEWNPPPe/jh7YKhpmtIauo3tp/R8jQecg/HV1uh7KQVSH8ZHEEOAP4hg==","signatures":[{"sig":"MEQCICLF49E74wDymn6QtjdXYRmTI1MqbAsCvvDUtfNRVkJMAiBWC75L2IVPtHXHqWQg4iFFp3ZaLQvSnc9pkr2wqPm6UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63487},"type":"commonjs","engines":{"node":">=18"},"gitHead":"292f4464c41e15fbaab5c79126bb74af9f2e9168","scripts":{"test":"node test/smoke.js","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.2_1783078650392_0.6594838679967769","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.3","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.3","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"3f224b12a0aebc1f5f6896892e4d72c11ae039db","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.3.tgz","fileCount":8,"integrity":"sha512-mICgmIO1QXLe8Ba54f27E0xmMh68w64V+8oZff6H2oTveLvPc/RP4/EUfKuOZ2E16a0lY6ktVx6whZa3dJrwDQ==","signatures":[{"sig":"MEYCIQDvCUIwcyEYRdarQPWBA9hudZzr9grXkZ6VyKS9C+EssAIhAINcEMLAuGSNViSBVYiYwlbo+jwIdhVEzZiYfp9rj9oW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73468},"type":"commonjs","engines":{"node":">=18"},"gitHead":"b07bb5b644dc4b2010fa161f8a03dde46cb046ff","scripts":{"test":"node test/smoke.js","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.3_1783079976317_0.6344274039395437","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.4","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.4","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"4c0073bcc65d833611fe2bb467938deacae04a92","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.4.tgz","fileCount":8,"integrity":"sha512-ti6qrRD3DkcgkZZ6/EFosuv9+MsmCBWMS/VuNK6TyHMc7X8SBuQCw5hLuGSraazxJDgE8KMG8xWsjaXOOaYxrQ==","signatures":[{"sig":"MEQCIASmp2tLYYtbQmhJhTFUkCyJUZV9l8e5A5D8tOEkeqRWAiBrF4FaP2W+SQ6JHzPRF5Y807vRNrbgtSCW2QIEFMhJdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79005},"type":"commonjs","engines":{"node":">=18"},"gitHead":"04f97ca91c4f102e88667a6f2f05c9ab3626ae2c","scripts":{"test":"node test/smoke.js","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.4_1783084187868_0.041021993509635646","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.5","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.5","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"4297e3a2c9e3a6a48c5c1d610e3d5090bd166026","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.5.tgz","fileCount":8,"integrity":"sha512-+pOAFmC5G/z7Z9+izn73oPfE83yvfuQeEV+PpejxwYkIKlz6yV753o7U272YyPuE5sdB76Kl+etNCkiXGv4tvA==","signatures":[{"sig":"MEYCIQCvAwfyyvUZlZHCGmfes6TbaVM2rVazDUbFuyjmLmN7DgIhAMaxyyfYsqwpZU8onfH47H4GVJfOyERDJPGSbJ7XYv5g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":82170},"type":"commonjs","engines":{"node":">=18"},"gitHead":"be7220fab84902a1e8afeafa248656b99bef87dc","scripts":{"test":"node test/smoke.js","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.5_1783085001231_0.8057828905211373","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.6","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.6","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"2c56a97eff5b6b4efd97fa150d4fb07027b05656","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.6.tgz","fileCount":9,"integrity":"sha512-8C68VITNamLBs9LOAp04LYm+ft62t+fjTsqcwuNQ5ObL4fYYIMh7z0tkKPOJlhoRIqihLNQV6Dj8lzg6U9xNZw==","signatures":[{"sig":"MEQCIERX2asxXhnSQI9Q2s+7CCkVjPkMCidq2TiWawVscV8bAiBFqgygR30aRRiHlCYAbcmx8t2gEAbkZEwVSNay1eMyTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84617},"type":"commonjs","engines":{"node":">=18"},"gitHead":"02ab9946562a443d9017fdab9c5b392297313fff","scripts":{"sca":"npm audit --audit-level=high","lint":"node --check bin/llm-coding-bridge.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/smoke.js","pack:check":"npm pack --dry-run","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.6_1783085564945_0.7174960100635523","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.7","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.7","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"22be65fb4d34b73f1b7ddbcfb1eb4000c120b226","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.7.tgz","fileCount":9,"integrity":"sha512-SN/r9N8UjdBb8ZWH+Uy7yr/z5af+/1+97k48lS/3WgzkRJk3V8iA/lMyCmyhsfG/GiCt7I0PQNLehaxToP6Y4w==","signatures":[{"sig":"MEQCICxrKocyP6d3NQg64pVIU9sKgA0koTY5ZjOCiU14bvdhAiASomLut0Enrdh+PwdnX7htzb9FYUouD35QoobS6awn2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85020},"type":"commonjs","engines":{"node":">=18"},"gitHead":"802e946e3e13b0ec787082ef5cd5714f0c8d9dfe","scripts":{"sca":"npm audit --audit-level=high","lint":"node --check bin/llm-coding-bridge.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/smoke.js","pack:check":"npm pack --dry-run","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.7_1783086127042_0.15216243062788082","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.8","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.8","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"a10697c9f80ef8b4ef9c04b7db3bccdb0afb4823","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.8.tgz","fileCount":9,"integrity":"sha512-dIkFSfTQMrdQSfif4L7FkeUYwepQ3f0IqRua1Xdb/9/cK1cNEENAJ92Xae6zXDMVcN/opnpj0zDIcAzqyv/Osw==","signatures":[{"sig":"MEUCIQD3i8K9iVVkh/+TOmsdEjpBvLhJh8VXHYjqiiMf+Mgv7wIgcZLiGBpWbWFMZl7fP2Lw8CNrlbSAxOkHT49o7qrlqyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84649},"type":"commonjs","engines":{"node":">=18"},"gitHead":"0d3f5707635eb2394899f81d6646d6dcde5b167a","scripts":{"sca":"npm audit --audit-level=high","lint":"node --check bin/llm-coding-bridge.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/smoke.js","pack:check":"npm pack --dry-run","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.8_1783086402534_0.8862345355664525","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.9","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.9","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"4d02ab088f8019d918ea00c7debe4e0a016e5f89","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.9.tgz","fileCount":12,"integrity":"sha512-Q8p2xamzHEWtGQqwB45jGSBWG4UdLdjDxr+w+wcmkbWcuKQtaxdWndqidsfbhEJ2wR/ykiZ/ZS8R8Mf0LUK2tQ==","signatures":[{"sig":"MEYCIQDgko8ye7RALY1Tj0X1yZ8l57f3t5YGyYWM85YVYv/J+QIhAOFzu3aVWchJu5QxlAjkzoGwKKqsb7r5mfHcmEDUgk1Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85936},"type":"commonjs","engines":{"node":">=18"},"gitHead":"e33e2a6c8824e927265adb0872b69e17ffa1c3e6","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.9_1783087518614_0.46719964133231184","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@sevoniva/llm-coding-bridge","version":"0.1.10","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.1.10","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"c0d23f9826a4761ea90e2f27931dcb9816713399","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.1.10.tgz","fileCount":12,"integrity":"sha512-hEbPJ7F2avjeQPanKB7HbAvRDaoeENDBQ2nmT8UJl9noqHpIuujFA26iJ/PR2fWc+Lt6R/WJM+/oCB8ZAFpUcA==","signatures":[{"sig":"MEYCIQDNBC/KRpxJSh/Y487zyJRJBbRBzojoihVZgf0T9mEXjgIhANmyuO6s2zlYmJoFgB5c4jNHpPpkPnarVxIkcKXzIlUh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85937},"type":"commonjs","engines":{"node":">=18"},"gitHead":"0e006adb177d60b1d44764671ca5806812da6cc1","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.1.10_1783087708325_0.5464891515867292","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@sevoniva/llm-coding-bridge","version":"0.2.0","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.2.0","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"6adb7c56324866014f5bbee8e9ca7fa55fc719fc","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.2.0.tgz","fileCount":26,"integrity":"sha512-itAzUQEgX8mRU2iHUfjqJP8DpnI7xzFJA1niJ0v7UqzcsnpH5SDsQ54yvWC5jNlHGFjfViy1dUpldz+Org9UKQ==","signatures":[{"sig":"MEYCIQD2GVr6EePiDKOuIBimcAs3GrRU8aNSN9nW0W9Z713LMAIhALs3LRHX96j1BztkE0fjoT40dA9Z3dSxTtna8eN9peXJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148137},"type":"commonjs","engines":{"node":">=18"},"gitHead":"2597f9c60892436c6db3662eae94dc8b4ef3ffcd","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.2.0_1783094591981_0.061204313366747254","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@sevoniva/llm-coding-bridge","version":"0.2.1","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.2.1","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"eb2899c36316f550e3e3f60f75a9830b0f792e91","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.2.1.tgz","fileCount":26,"integrity":"sha512-n/koHFEX3aW96T3CGLEh3U/O0mJkcouIlj4E6VnTs38QuW6moZDFQSPGqFymhc+qs6xKFfxT3lj7GetJ5uV4zA==","signatures":[{"sig":"MEYCIQDNs4F2JMeLIMjVlGhoU1I2vEJcqEw4ir9ePYPL2wniTAIhAJ5EPZxFA7ZDQRuonqdlIWUpeBpKlp6YQw7usfB1XArL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":151640},"type":"commonjs","engines":{"node":">=18"},"gitHead":"5e8058dced503cb0d63c333e59d9c346942755b2","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.2.1_1783116925923_0.5960225047941359","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@sevoniva/llm-coding-bridge","version":"0.2.2","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.2.2","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"5029b5808aa7736b38a3d2d822b566764c337d7a","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.2.2.tgz","fileCount":26,"integrity":"sha512-DPLIAz9zZEB6KDudDxguRFjAKjNZtNEdQ5u8EqzJU0lMiAcgeeQ5iqyg0uj6tTbpmJqRA1usmBTusxIxqXdefw==","signatures":[{"sig":"MEUCIEGFoOODgIKg2A2xQBan/EHIf4qLOh6PQD2ztWu4+l40AiEAj3Ezhiq76IGmeeX1xN0QTslLks7TRNtW+hC2MUrU7bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152423},"type":"commonjs","engines":{"node":">=18"},"gitHead":"58beaaf360975134941b152bfa8be148c4d9971f","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.2.2_1783121568444_0.1938254350394235","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@sevoniva/llm-coding-bridge","version":"0.2.3","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.2.3","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"e651e53941ef631772d9a44617a1971ae65c1c8b","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.2.3.tgz","fileCount":26,"integrity":"sha512-kpbZ87Vcx7FFM8o/PlP8VEiRnqbGL9QRVAnBNtaWbagXcFcdldoqEhJKC13skNwH8Ka+tjYpVc3hdLyLL524lw==","signatures":[{"sig":"MEQCIBvOKI15ciZXj9BnTEW9BFC2Y67UttwPq0wKaHZNIS46AiA9x9chJk+h+1vLQvVtnhFHeqNFmea8lkJZnJ706vejvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":158120},"type":"commonjs","engines":{"node":">=18"},"gitHead":"d38332c8e72095ea03abc5324b93025bd734b193","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.2.3_1783123652743_0.24694017956763026","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@sevoniva/llm-coding-bridge","version":"0.3.0","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.3.0","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"e56fb33a48952c43a95535fdc0ca7231ee2d9d29","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.3.0.tgz","fileCount":26,"integrity":"sha512-g+QNUmKKVZvZjPjO3Yxn0BVgFgb/c5weOnJFgfgEc6NZhPlW+a84OkZOpD0mQMEucxt05ZYz9xDa02H436BzBA==","signatures":[{"sig":"MEYCIQCR4RjirGLOktQ/KKMYHt4Zwep2ED2nSxjfUaGsVU56gQIhANx1ExmKHO5PzMANLIhh3lkvwaEo4iK8RlFDJ1IqIohc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118377},"type":"commonjs","engines":{"node":">=18"},"gitHead":"be25860e8d82b689a24aa82cd66ed936b5098803","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/client-setup.test.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/client-setup.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.3.0_1783153040403_0.046910205374850245","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@sevoniva/llm-coding-bridge","version":"0.4.0","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.4.0","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"330b2f3dee3d33179349a05c3f24e85030103879","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.4.0.tgz","fileCount":26,"integrity":"sha512-lclskJiAnnirgmPvdqkhhfeHxzY1XkQGUbZFaQ/d0BHIGKvrKf7EY20sq31OH5ogn64uoFeShTIam3Dw+z7tJA==","signatures":[{"sig":"MEUCIFmOT7ayOI9laOJK6g4lw66HMxEPmcwk//8oTSZsgejSAiEAnZw2Nd64w41ynW1RPu8JiGXJnihvGOhNHo7ruX1IE4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118304},"type":"commonjs","engines":{"node":">=18"},"gitHead":"b44835a4e12665c00fc0be6ccde1b9eccb1e7406","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/client-setup.test.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/client-setup.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.4.0_1783208844748_0.05775535597603798","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@sevoniva/llm-coding-bridge","version":"0.4.1","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.4.1","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"2ede7a302a24a14fe28613221fb63705f57b78bd","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.4.1.tgz","fileCount":26,"integrity":"sha512-PezU99R5IGM0EAst1kpcMjnUyTY6IqVrqmhRT+xf/dW3A9IwCNbbhoEUrXDZXDDOmbk25/bEHscA0ZWl2sxMTQ==","signatures":[{"sig":"MEUCIBxVpr3NiXoKM8z17eee8xRkaVFnuq1bfoYhJ6ILNxMpAiEAjpV52IVA2AfRrUGsa4A7VMMLaAwz01G4TUSK/E3i9nM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122571},"type":"commonjs","engines":{"node":">=18"},"gitHead":"78a3943c538edded2e2df6f94811f31c7dd2b332","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/client-setup.test.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/client-setup.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.4.1_1783259448569_0.10965877305923599","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@sevoniva/llm-coding-bridge","version":"0.4.2","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.4.2","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"ba748842ac04598115ab3b0aba3c5260afcd7a88","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.4.2.tgz","fileCount":26,"integrity":"sha512-J3pNabbJwEvhiuykQ0ERu+J+DzOJ+GKzYWdDr9X1RTCj9FxCSLFzVwkSteqLLXC4FZLpW7ZnTKg58V4947REOQ==","signatures":[{"sig":"MEYCIQCKJvmIpCIzQDratWFg14sNvDE9Lss2UcTXlHpSijqWvAIhAO4r1+NyBnn2/xKssaLzJECPkZ1ND81tLuYK3px7pkSG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124354},"type":"commonjs","engines":{"node":">=18"},"gitHead":"5b0c5d944dc6316f5e1e40ba7e5498ddc77d0ce5","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/client-setup.test.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/client-setup.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.4.2_1783259919727_0.38537139752516847","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@sevoniva/llm-coding-bridge","version":"0.4.3","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.4.3","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"2ec1228938f24e5140fc8de18bd500ed26127beb","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.4.3.tgz","fileCount":26,"integrity":"sha512-dXD7BsmG1w6QorywYLfi7l+7HLJtMudHckOYo2B+3Y8Pc5B3Es9aEl4TGe/6esvP3/VgyH1WhXgVLWx648q+3Q==","signatures":[{"sig":"MEYCIQCRbn5gqqSem4jlzuALh2q0DCZeS4G3R0PgQxu53g3JGgIhALtw/uARnDVKghmQonWAXy70TRVcOHKtIwMeFB5ndTSx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124538},"type":"commonjs","engines":{"node":">=18"},"gitHead":"3b1801f443a1c1bb3fcf037dc6c761b50593645e","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/client-setup.test.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/client-setup.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.4.3_1783260491641_0.9931175362997633","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@sevoniva/llm-coding-bridge","version":"0.4.4","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.4.4","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"5a301805c318b89e4df0c84888eb006532aa5b61","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.4.4.tgz","fileCount":26,"integrity":"sha512-9UgMlIevVczeEjwEF5BtKYCz5xAPTjVnQAPmSA4NX3P+IDwk7DOJIZfMDQs6Ti6Q8xpJtXxLAckLXLxUrxN/sg==","signatures":[{"sig":"MEQCIF+5IVllImUrB4F7jVUemjNuG+UO82x00miBqXAgZ5yAAiB/volc0Jlj+bPhS09esLN2XX77PGnMy50bwazA0VU5FQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130003},"type":"commonjs","engines":{"node":">=18"},"gitHead":"447204d77d9862bd8844cd94e7a3ffdced8981ea","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/client-setup.test.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/client-setup.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.4.4_1783294422726_0.8422094984633477","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@sevoniva/llm-coding-bridge","version":"0.5.0","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.5.0","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"e8a2c95a9a88b89d107366ffbbb9e214b555a351","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.5.0.tgz","fileCount":27,"integrity":"sha512-oR3giOkrsQIzPYm3mNfojnW2xNSBZXZLX97wpdF/wOaBVG1GX1k69aCw0UtzuM/eNJ01P2PC6ZsbVujFffJ5+Q==","signatures":[{"sig":"MEUCIQDw6qa6+Br1lQq4Z4CNTXbJPYam9Qji3cg5QeuxGwa6BwIgO8sraQ4LORgSOUPTgtp3qKm8f5QXa8ODvjNi+542f0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146925},"type":"commonjs","engines":{"node":">=18"},"gitHead":"37ac017b59c74a5cfd328a9c3387d1e4645fc699","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/chat-compat.test.js && node --check test/client-setup.test.js && node --check test/smoke.js && node --check scripts/security-scan.js","test":"node test/chat-compat.test.js && node test/client-setup.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.5.0_1784112793154_0.10442296776781901","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@sevoniva/llm-coding-bridge","version":"0.6.0","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.6.0","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"babb0557199edbfd41f8b23aea24280d69b514ca","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.6.0.tgz","fileCount":27,"integrity":"sha512-cKtyoKq9uNpgcgaXjA1SPpLlXrokXvdaUUqs9DtTeYEP/plYqfExisiw6Ca0cjAF+iCZnnV2v+XLiOVDyCpfZw==","signatures":[{"sig":"MEUCIA122QFrzjNZlwl6n/Jb+ZCltW7bG+9cOCEIOruSNjqdAiEAhS/K0RtNljRCfB11gmXpmLFVbKyvLzfxbiWUYEhMOF8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174031},"type":"commonjs","engines":{"node":">=18"},"gitHead":"b3e2187a7eed95117dc64651f04403355dfb5039","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check scripts/*.js","test":"node test/chat-compat.test.js && node test/client-setup.test.js && node test/security-files.test.js && node test/security-http.test.js && node test/repo-gate.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.6.0_1784121659227_0.8084605636174353","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@sevoniva/llm-coding-bridge","version":"0.6.1","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.6.1","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"11e44a704c79c6dfa250e98848100ef3867a11cf","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.6.1.tgz","fileCount":29,"integrity":"sha512-SkSoUF5YbNsDCH8HCoJZfVUs/A+kOIn6pXUoJSGGzsSTV2aR9gckCnIfj/K/oW6bdRk6UpC8B4eIvpdNf/gsxg==","signatures":[{"sig":"MEQCIEHX8oDRdOwYCCCWb7wsUaYQBEePVvH7cZGDybyZI8m7AiBK3V3FX0YWzYTPFoDc0JqPaRuDhHhxJ+uvXS2mRdAzhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":193904},"type":"commonjs","engines":{"node":">=18"},"gitHead":"7e4e7fca9984e3ad23937aeab772f987cbb672d5","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check scripts/*.js","test":"node test/chat-compat.test.js && node test/client-setup.test.js && node test/security-files.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/repo-gate.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.6.1_1784287049940_0.39494346586340034","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@sevoniva/llm-coding-bridge","version":"0.6.3","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.6.3","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"6bc525c1e3b8d89730cff73333dbc2171489abc2","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.6.3.tgz","fileCount":30,"integrity":"sha512-NnsAYT9mYxw3k9PHZiy3rVU2dgAWhtL+FFuebSIlBoyi6voYKRchCAK4/HQfJzQFRdyr+4/9REkQGpQZpEFy0g==","signatures":[{"sig":"MEUCIA+L31u6q3FizTKVAOYiZrZCu2kNqaYenZhQfhrvxhPWAiEApSMCG7aMfnWWrAkZ6FtOqM167D+FPIW6hPriVN+n/18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":201885},"type":"commonjs","engines":{"node":">=18"},"gitHead":"1e11cd3c71ff18c1792794be8e6d092d6eb897c5","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check scripts/*.js","test":"node test/chat-compat.test.js && node test/client-setup.test.js && node test/security-files.test.js && node test/request-log.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/repo-gate.test.js && node test/smoke.js","repo:gate":"node scripts/repo-gate.js","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.6.3_1784451757980_0.7350501428748752","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@sevoniva/llm-coding-bridge","version":"0.7.0","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.7.0","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"56fd95b8ebf1489ed14463aa222d4795605f928a","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.7.0.tgz","fileCount":52,"integrity":"sha512-cYv+2P1Shm3NO1/V0cZ2pDtdBhu8SqEjA1YBg06kUT+lj4pGFIz+mLyjv9sNlQsYavOUphzVHIQbO7iXLgvi8w==","signatures":[{"sig":"MEUCIQCUU7gXEMlYd6QxQNIvjISAPfwvjbSiG/ZZN/HSknP2+AIgJK+0S8Mr4slvOPx166Fgt0qiRPGBkfDa4pIOnqV/ebk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":431611},"type":"commonjs","engines":{"node":">=18"},"gitHead":"6ead6ac7a632a12e4e1c9e3969adf6492f1b8eaa","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check test/helpers/*.js && node --check scripts/*.js","test":"node test/cli-args.test.js && node test/config-output.test.js && node test/credential-store.test.js && node test/setup.test.js && node test/bridge-error.test.js && node test/chat-compat.test.js && node test/client-setup.test.js && node test/config-v2.test.js && node test/request-state.test.js && node test/retry-policy.test.js && node test/route-health.test.js && node test/phase-timeout.test.js && node test/pre-content-retry.test.js && node test/admin.test.js && node test/admin-page.test.js && node test/zcode-client.test.js && node test/security-files.test.js && node test/request-log.test.js && node test/event-store.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/multimodel-e2e.test.js && node test/fault-soak.test.js && node test/release-gate.test.js && node test/repo-gate.test.js && node test/smoke.js","verify":"npm run lint && npm test && npm run security:scan && npm run secretlint && npm run repo:gate && npm run release:gate && npm run sca && npm run pack:check","repo:gate":"node scripts/repo-gate.js","test:soak":"node scripts/fault-soak.js --duration-ms 1200000 --seed 7070 --report .artifacts/fault-soak.json","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","release:gate":"node scripts/release-gate.js","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.7.0_1784696631351_0.13057330450972127","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@sevoniva/llm-coding-bridge","version":"0.8.0","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.8.0","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"1d6093c084b55dfcf620188ba0ac54b60b7fabb8","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.8.0.tgz","fileCount":53,"integrity":"sha512-8UQE5OqxfPTYsH6epEJTwby2dPrLugfFv4a7VmLk5gqQ1DLnVY4Bxi2Rbjtpi2uOXuYerPE8w+sQFuhoIUN7wA==","signatures":[{"sig":"MEUCIQCrQofM4qgBeEXDjgLaiJDWha4Q/8p2vvd2F+pheeWsCQIgM3PkHvzNoBU3s/LQvE4an4yCftdaX61iyUFgVIyQQik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":445486},"type":"commonjs","engines":{"node":">=18"},"gitHead":"414dc1ddbe6ffb7df94091efaec136a93c77274f","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check test/helpers/*.js && node --check scripts/*.js","test":"node test/cli-args.test.js && node test/config-output.test.js && node test/credential-store.test.js && node test/setup.test.js && node test/bridge-error.test.js && node test/chat-compat.test.js && node test/deepseek-harness-compat.test.js && node test/client-setup.test.js && node test/config-v2.test.js && node test/request-state.test.js && node test/retry-policy.test.js && node test/route-health.test.js && node test/phase-timeout.test.js && node test/pre-content-retry.test.js && node test/admin.test.js && node test/admin-page.test.js && node test/zcode-client.test.js && node test/security-files.test.js && node test/request-log.test.js && node test/event-store.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/multimodel-e2e.test.js && node test/fault-soak.test.js && node test/release-gate.test.js && node test/repo-gate.test.js && node test/smoke.js","verify":"npm run lint && npm test && npm run security:scan && npm run secretlint && npm run repo:gate && npm run release:gate && npm run sca && npm run pack:check","repo:gate":"node scripts/repo-gate.js","test:soak":"node scripts/fault-soak.js --duration-ms 1200000 --seed 7070 --report .artifacts/fault-soak.json","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","release:gate":"node scripts/release-gate.js","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.8.0_1786708599077_0.7639444037866383","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@sevoniva/llm-coding-bridge","version":"0.8.1","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.8.1","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"183b137523d69e6a4b58127852f6b8c3f662cbb9","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.8.1.tgz","fileCount":53,"integrity":"sha512-xh/Pege/fL8kyMxXQK8HXqySXRM7ja/Gn6g5JCMAHJ7DNdU1klf0e21ZtBax+OYeWlYZOkWE7ZzXtwOc+SJHzA==","signatures":[{"sig":"MEUCIGzTZKXkWjc6qg4TDGs/iZv+fxxtAmwqKuG9FE6leYxGAiEApRkb8sy8ftU7ABx45aoNYSvKv2R+CEpRt+TKAa7OOGM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":428713},"type":"commonjs","engines":{"node":">=18"},"gitHead":"bf8471384525bb29825f45f398c6c66e4538063f","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check test/helpers/*.js && node --check scripts/*.js","test":"node test/cli-args.test.js && node test/config-output.test.js && node test/credential-store.test.js && node test/setup.test.js && node test/bridge-error.test.js && node test/chat-compat.test.js && node test/deepseek-harness-compat.test.js && node test/client-setup.test.js && node test/config-v2.test.js && node test/request-state.test.js && node test/retry-policy.test.js && node test/route-health.test.js && node test/phase-timeout.test.js && node test/pre-content-retry.test.js && node test/admin.test.js && node test/admin-page.test.js && node test/zcode-client.test.js && node test/security-files.test.js && node test/request-log.test.js && node test/event-store.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/multimodel-e2e.test.js && node test/fault-soak.test.js && node test/release-gate.test.js && node test/repo-gate.test.js && node test/smoke.js","verify":"npm run lint && npm test && npm run security:scan && npm run secretlint && npm run repo:gate && npm run release:gate && npm run sca && npm run pack:check","repo:gate":"node scripts/repo-gate.js","test:soak":"node scripts/fault-soak.js --duration-ms 1200000 --seed 7070 --report .artifacts/fault-soak.json","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","release:gate":"node scripts/release-gate.js","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.8.1_1786709156795_0.22055791313507078","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@sevoniva/llm-coding-bridge","version":"0.8.2","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.8.2","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"506c06d81a413498847beaf7e3686188b993ea33","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.8.2.tgz","fileCount":53,"integrity":"sha512-SKp4Grq0b0f/Mrpkoc7/wiumaoikM94bzPxFqP76U6taecPlb269G/AxjZ2Sq3The1KKZftjsptCGBfeLh16Rw==","signatures":[{"sig":"MEUCIQDNsNxyNH2Cv8pzL/aRbomMos29K5C1nxfJvzlPZ+rb7gIgVhF/wy4ofVivEsx32GXUVdbpefMP4dm/eJH3GeetxGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":428640},"type":"commonjs","engines":{"node":">=18"},"gitHead":"2c63063b0eb7c8e7cae48fb15f8059cccdfaa315","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check test/helpers/*.js && node --check scripts/*.js","test":"node test/cli-args.test.js && node test/config-output.test.js && node test/credential-store.test.js && node test/setup.test.js && node test/bridge-error.test.js && node test/chat-compat.test.js && node test/deepseek-harness-compat.test.js && node test/client-setup.test.js && node test/config-v2.test.js && node test/request-state.test.js && node test/retry-policy.test.js && node test/route-health.test.js && node test/phase-timeout.test.js && node test/pre-content-retry.test.js && node test/admin.test.js && node test/admin-page.test.js && node test/zcode-client.test.js && node test/security-files.test.js && node test/request-log.test.js && node test/event-store.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/multimodel-e2e.test.js && node test/fault-soak.test.js && node test/release-gate.test.js && node test/repo-gate.test.js && node test/smoke.js","verify":"npm run lint && npm test && npm run security:scan && npm run secretlint && npm run repo:gate && npm run release:gate && npm run sca && npm run pack:check","repo:gate":"node scripts/repo-gate.js","test:soak":"node scripts/fault-soak.js --duration-ms 1200000 --seed 7070 --report .artifacts/fault-soak.json","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","release:gate":"node scripts/release-gate.js","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.8.2_1786709775658_0.6341716103823085","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@sevoniva/llm-coding-bridge","version":"0.8.3","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.8.3","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"4cc8ab0d35134b90428e1025b3b6b08585195aed","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.8.3.tgz","fileCount":53,"integrity":"sha512-sh90rOjmUXQZPcD0JWFC8RuCG0Of7BIAGuZ49Ta5oAqCpMbfaMOZI/l3ZPaFRL5GL8C1tONGor5MVXO+qZOAFQ==","signatures":[{"sig":"MEYCIQDKEe5C+1pBxH6FpNN2NL+NFiDpdw0aG9XAaEAgQzJiNAIhAK9fyxGnDsAywfFYtofNb+/qAQ3Jn1iro5uXN0BUeA+Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":428620},"type":"commonjs","engines":{"node":">=18"},"gitHead":"351e180c641d93500b76143062e93b2472f29224","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check test/helpers/*.js && node --check scripts/*.js","test":"node test/cli-args.test.js && node test/config-output.test.js && node test/credential-store.test.js && node test/setup.test.js && node test/bridge-error.test.js && node test/chat-compat.test.js && node test/deepseek-harness-compat.test.js && node test/client-setup.test.js && node test/config-v2.test.js && node test/request-state.test.js && node test/retry-policy.test.js && node test/route-health.test.js && node test/phase-timeout.test.js && node test/pre-content-retry.test.js && node test/admin.test.js && node test/admin-page.test.js && node test/zcode-client.test.js && node test/security-files.test.js && node test/request-log.test.js && node test/event-store.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/multimodel-e2e.test.js && node test/fault-soak.test.js && node test/release-gate.test.js && node test/repo-gate.test.js && node test/smoke.js","verify":"npm run lint && npm test && npm run security:scan && npm run secretlint && npm run repo:gate && npm run release:gate && npm run sca && npm run pack:check","repo:gate":"node scripts/repo-gate.js","test:soak":"node scripts/fault-soak.js --duration-ms 1200000 --seed 7070 --report .artifacts/fault-soak.json","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","release:gate":"node scripts/release-gate.js","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.8.3_1786710056579_0.0081768551664263","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@sevoniva/llm-coding-bridge","version":"0.8.4","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.8.4","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"d5a68ab731edd43f81fcfdadcb92ee9808221d9d","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.8.4.tgz","fileCount":53,"integrity":"sha512-9fo/sZjbx5rvpD4pvTs2nDoplxC9Ido9XVhLz7S2Fe3ivgXa2HZoNoYD+SfJY4EHn/h6HDM6JKHTm/3IBjKtpA==","signatures":[{"sig":"MEUCIC9hRmPp1TnmRIDkk3dVsQWhNlYQJJCcJCPUYP6Ga0v6AiEA7n8Lplo42o1ZQ2UEph/T3XSKeG8RvKEf3muMTnVeY48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":429041},"type":"commonjs","engines":{"node":">=18"},"gitHead":"19fb1f46ce79b101e96c72ff502d5a239a41309e","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check test/helpers/*.js && node --check scripts/*.js","test":"node test/cli-args.test.js && node test/config-output.test.js && node test/credential-store.test.js && node test/setup.test.js && node test/bridge-error.test.js && node test/chat-compat.test.js && node test/deepseek-harness-compat.test.js && node test/client-setup.test.js && node test/config-v2.test.js && node test/request-state.test.js && node test/retry-policy.test.js && node test/route-health.test.js && node test/phase-timeout.test.js && node test/pre-content-retry.test.js && node test/admin.test.js && node test/admin-page.test.js && node test/zcode-client.test.js && node test/security-files.test.js && node test/request-log.test.js && node test/event-store.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/multimodel-e2e.test.js && node test/fault-soak.test.js && node test/release-gate.test.js && node test/repo-gate.test.js && node test/smoke.js","verify":"npm run lint && npm test && npm run security:scan && npm run secretlint && npm run repo:gate && npm run release:gate && npm run sca && npm run pack:check","repo:gate":"node scripts/repo-gate.js","test:soak":"node scripts/fault-soak.js --duration-ms 1200000 --seed 7070 --report .artifacts/fault-soak.json","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","release:gate":"node scripts/release-gate.js","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.8.4_1788329817517_0.06067603105349351","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@sevoniva/llm-coding-bridge","version":"0.8.5","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"license":"MIT","_id":"@sevoniva/llm-coding-bridge@0.8.5","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"dist":{"shasum":"190b80189505dd4d60b19e359dfd57aa7a29d861","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.8.5.tgz","fileCount":54,"integrity":"sha512-9c4LGXCbnUAKVB1wb0G/+YeXZEie4RAEZzknLmPOicEXucNWt6OY71o5GWD5t2g68RUMhnbk8keDWFCWfaSqhw==","signatures":[{"sig":"MEQCICilw0LQsW8g/2Y7hKmhreQt51+laiL6CXAAXr9l8165AiADquPoFr1/aESyQr6snDNsBUYJfngpmrKxNr61icD3gQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.8.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":437566},"type":"commonjs","engines":{"node":">=18"},"gitHead":"fb9b207af439f87bd37c26d45772337afffac4f4","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node --check bin/llm-coding-bridge.js && node --check lib/*.js && node --check lib/converters/*.js && node --check test/*.js && node --check test/helpers/*.js && node --check scripts/*.js","test":"node test/cli-args.test.js && node test/config-output.test.js && node test/credential-store.test.js && node test/setup.test.js && node test/bridge-error.test.js && node test/chat-compat.test.js && node test/deepseek-harness-compat.test.js && node test/client-setup.test.js && node test/config-v2.test.js && node test/request-state.test.js && node test/retry-policy.test.js && node test/route-health.test.js && node test/upstream-concurrency.test.js && node test/phase-timeout.test.js && node test/pre-content-retry.test.js && node test/admin.test.js && node test/admin-page.test.js && node test/zcode-client.test.js && node test/security-files.test.js && node test/request-log.test.js && node test/event-store.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/multimodel-e2e.test.js && node test/fault-soak.test.js && node test/release-gate.test.js && node test/repo-gate.test.js && node test/smoke.js","verify":"npm run lint && npm test && npm run security:scan && npm run secretlint && npm run repo:gate && npm run release:gate && npm run sca && npm run pack:check","repo:gate":"node scripts/repo-gate.js","test:soak":"node scripts/fault-soak.js --duration-ms 1200000 --seed 7070 --report .artifacts/fault-soak.json","pack:check":"npm pack --dry-run","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","release:gate":"node scripts/release-gate.js","security:scan":"node scripts/security-scan.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-coding-bridge_0.8.5_1788331992548_0.7925616188403446","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"_id":"@sevoniva/llm-coding-bridge@0.9.0","bin":{"llm-coding-bridge":"bin/llm-coding-bridge.js"},"bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"dist":{"shasum":"3778068e605405c9fba80b98ce4461077540f39c","tarball":"https://registry.npmjs.org/@sevoniva/llm-coding-bridge/-/llm-coding-bridge-0.9.0.tgz","fileCount":67,"integrity":"sha512-x2I5ERdadcJGSuI6R9XNLzpayLxSR6n6s5BHrAKy9LIcb3Do4/7pyyaRL4wtCDaZnbkrkB4sesgPFkFd6RtJpA==","signatures":[{"sig":"MEUCIQCwmLKbXNvVbjRq75RQrACN4ZCAlyzqpsQ4dSdmv3PCZwIgVBKlF3hdJPyuaaR4xTvrKraEBc0GVBtpWRy1O1IQKtk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFZH/Q0s5B7J/Da00d5uPXu8+mobjZxcq9qYGMme1PJQAiEAsNnYMD745pyF33YVlOr30jd/ROCqBtTt2XvBYpzKFeM="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sevoniva%2fllm-coding-bridge@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":500946},"name":"@sevoniva/llm-coding-bridge","type":"commonjs","engines":{"node":">=18"},"gitHead":"b04aef00dad3e6180442aa2f37cae0bea5e5ed48","license":"MIT","scripts":{"sca":"npm audit --audit-level=high --registry=https://registry.npmjs.org","lint":"node scripts/lint.js","test":"node test/cli-args.test.js && node test/config-output.test.js && node test/credential-store.test.js && node test/setup.test.js && node test/service.test.js && node test/onboarding.test.js && node test/local-scripts.test.js && node test/bridge-error.test.js && node test/chat-compat.test.js && node test/deepseek-harness-compat.test.js && node test/client-setup.test.js && node test/config-v2.test.js && node test/request-state.test.js && node test/retry-policy.test.js && node test/route-health.test.js && node test/upstream-concurrency.test.js && node test/phase-timeout.test.js && node test/pre-content-retry.test.js && node test/admin.test.js && node test/admin-page.test.js && node test/zcode-client.test.js && node test/security-files.test.js && node test/request-log.test.js && node test/event-store.test.js && node test/security-http.test.js && node test/streaming-keepalive.test.js && node test/multimodel-e2e.test.js && node test/fault-soak.test.js && node test/release-gate.test.js && node test/repo-gate.test.js && node test/smoke.js","verify":"npm run lint && npm test && npm run security:scan && npm run secretlint && npm run repo:gate && npm run release:gate && npm run sca && npm run pack:check","repo:gate":"node scripts/repo-gate.js","test:soak":"node scripts/fault-soak.js --duration-ms 1200000 --seed 7070 --report .artifacts/fault-soak.json","pack:check":"npm pack --dry-run","pack:smoke":"node scripts/pack-smoke.js","secretlint":"secretlint \"**/*\" --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore","release:gate":"node scripts/release-gate.js","test:windows":"node test/windows-security.test.js && node test/cli-args.test.js && node test/credential-store.test.js && node test/client-setup.test.js && node test/service.test.js && node test/onboarding.test.js && node test/local-scripts.test.js && node test/windows-native.test.js && node test/multimodel-e2e.test.js && node test/security-http.test.js && node test/deepseek-harness-compat.test.js","security:scan":"node scripts/security-scan.js"},"version":"0.9.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7295fa13-4698-4275-9069-12e3eac7e33f"}},"homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"_npmVersion":"11.19.0","description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","directories":{},"maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"secretlint":"^13.0.2","@secretlint/secretlint-rule-preset-recommend":"^13.0.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/llm-coding-bridge_0.9.0_1789113249655_0.6539609464805296"}}},"time":{"created":"2026-07-03T10:15:34.109Z","modified":"2026-09-11T07:54:10.136Z","0.1.0":"2026-07-03T10:15:34.400Z","0.1.1":"2026-07-03T10:23:23.293Z","0.1.2":"2026-07-03T11:37:30.519Z","0.1.3":"2026-07-03T11:59:36.480Z","0.1.4":"2026-07-03T13:09:48.031Z","0.1.5":"2026-07-03T13:23:21.375Z","0.1.6":"2026-07-03T13:32:45.105Z","0.1.7":"2026-07-03T13:42:07.186Z","0.1.8":"2026-07-03T13:46:42.665Z","0.1.9":"2026-07-03T14:05:18.766Z","0.1.10":"2026-07-03T14:08:28.475Z","0.2.0":"2026-07-03T16:03:12.134Z","0.2.1":"2026-07-03T22:15:26.048Z","0.2.2":"2026-07-03T23:32:48.609Z","0.2.3":"2026-07-04T00:07:32.880Z","0.3.0":"2026-07-04T08:17:20.540Z","0.4.0":"2026-07-04T23:47:24.872Z","0.4.1":"2026-07-05T13:50:48.698Z","0.4.2":"2026-07-05T13:58:39.857Z","0.4.3":"2026-07-05T14:08:11.790Z","0.4.4":"2026-07-05T23:33:42.859Z","0.5.0":"2026-07-15T10:53:13.316Z","0.6.0":"2026-07-15T13:20:59.416Z","0.6.1":"2026-07-17T11:17:30.090Z","0.6.3":"2026-07-19T09:02:38.150Z","0.7.0":"2026-07-22T05:03:51.488Z","0.8.0":"2026-08-14T11:56:39.245Z","0.8.1":"2026-08-14T12:05:56.959Z","0.8.2":"2026-08-14T12:16:15.839Z","0.8.3":"2026-08-14T12:20:56.785Z","0.8.4":"2026-09-02T06:16:57.665Z","0.8.5":"2026-09-02T06:53:12.678Z","0.9.0":"2026-09-11T07:54:09.750Z"},"bugs":{"url":"https://github.com/sevoniva/llm-coding-bridge/issues"},"license":"MIT","homepage":"https://github.com/sevoniva/llm-coding-bridge#readme","keywords":["codex","claude-code","llm","openai-compatible","responses-api"],"repository":{"url":"git+https://github.com/sevoniva/llm-coding-bridge.git","type":"git"},"description":"Local bridge for using OpenAI-compatible chat completion providers with coding clients.","maintainers":[{"name":"carsonfan","email":"chuncheng.carson@gmail.com"}],"readme":"# @sevoniva/llm-coding-bridge\n\n**简单用法：改一个配置文件 → 双击重启 → ZCode 填本地地址。** [Windows / macOS 中文说明](docs/getting-started.zh-CN.md)\n\n```text\nnpm install -g @sevoniva/llm-coding-bridge@latest\nllm-coding-bridge init-files\n```\n\n这会生成 `config.json` 和启动、重启、停止、自启动管理脚本。只需填写配置里的 `baseUrl`、`model`、`apiKey`，Windows 双击 `restart.cmd`（macOS 双击 `restart.command`）即可加载配置、启动服务并启用登录自启动。默认在 ZCode 填 `http://127.0.0.1:37629/v1`，模型填配置中的 `model`，API Key 填 `local`。\n\n以后修改配置，保存后再次双击重启即可。向导 `setup`、多模型和系统密钥存储仍可选用，见[进阶配置流程](docs/guided-setup.zh-CN.md)。\n\n[![npm](https://img.shields.io/npm/v/@sevoniva/llm-coding-bridge)](https://www.npmjs.com/package/@sevoniva/llm-coding-bridge)\n[![CI](https://github.com/sevoniva/llm-coding-bridge/actions/workflows/ci.yml/badge.svg)](https://github.com/sevoniva/llm-coding-bridge/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nA local, production-oriented protocol bridge for coding clients that need one stable OpenAI-compatible endpoint in front of one or more upstream models.\n\nThe bridge keeps client configuration, model aliases, upstream model IDs, credentials, streaming behavior, and route health in one controlled local service. It does not modify client source code. The simple file workflow accepts `upstream.apiKey` in a private local config; the optional setup wizard stores keys in the system credential store instead.\n\n## At a glance\n\n```\nCodex / Claude / OpenAI-compatible client\n                |\n                v\n      http://127.0.0.1:37629/v1\n                |\n      LLM Coding Bridge\n      - route by model alias\n      - normalize protocols\n      - enforce timeouts and limits\n      - emit streaming heartbeats\n                |\n                v\n        OpenAI-compatible upstream\n```\n\nSupported client surfaces:\n\n| Client or protocol | Bridge endpoint | Primary use |\n| --- | --- | --- |\n| Codex CLI / Codex Desktop | `/v1/responses` | Responses API |\n| Claude-compatible clients | `/v1/messages` | Anthropic-compatible messages |\n| OpenAI-compatible clients | `/v1/chat/completions` | Chat Completions |\n| Client discovery | `/v1/models`, `/health` | Model and service checks |\n\nThe default listener is loopback-only. The service has no runtime dependencies and can be managed by macOS launchd or Windows Task Scheduler.\n\n## Install\n\nRequires Node.js 18 or newer.\n\n```bash\nnpm install -g @sevoniva/llm-coding-bridge@latest\nllm-coding-bridge --help\n```\n\n## Quick start\n\n```text\nnpm install -g @sevoniva/llm-coding-bridge@latest\nllm-coding-bridge init-files\n```\n\nOpen the printed folder (default `~/.llm-coding-bridge`, or `%USERPROFILE%\\.llm-coding-bridge` on Windows). Edit `config.json`: replace `upstream.baseUrl`, `upstream.model`, and `upstream.apiKey`. Double-click `restart.cmd` on Windows or `restart.command` on macOS. The script reloads that exact file, enables autostart after login, waits for the new configuration to become healthy, and shows the client connection details.\n\nFor ZCode, use `http://127.0.0.1:37629/v1`, the configured upstream model ID, and `local` as the local API key. After changing the file, double-click restart again. Existing `config.json` is preserved when `init-files` is rerun. Use `init-files --out <directory>` to choose a visible folder. The file contains your upstream API key, so keep it local.\n\nThe generated folder includes `start`, `restart`, `stop`, `status`, and `disable-autostart` scripts. Stop is temporary; disable-autostart stops and removes the login task. On package or Node upgrades, rerun `init-files` in the same directory to refresh script paths, then double-click restart.\n\nOptional guided setup with system-managed credentials and automatic client configuration: `llm-coding-bridge setup`. See the [Chinese quick start](docs/getting-started.zh-CN.md), [guided setup](docs/guided-setup.zh-CN.md), or [complete configuration reference](docs/configuration.md).\n\n## DeepSeek Harness integration\n\nDeepSeek Harness is supported as a custom provider. No Harness source change is required, and the built-in `deepseek-official` provider remains available alongside the bridge route.\n\nCreate a separate `openai-completions` provider with:\n\n- `baseURL: http://127.0.0.1:37629/v1`\n- the bridge model alias as the selected model\n- a dedicated credential reference for this route\n- `supportsReasoningEffort: true` when the selected upstream accepts `reasoning_effort`\n\nExample provider shape:\n\n```yaml\nagent-default-model:\n  provider: local-bridge\n  model: your-model\nllm-pi-ai:\n  providers:\n    local-bridge:\n      displayName: Local Bridge\n      api: openai-completions\n      baseURL: http://127.0.0.1:37629/v1\n      apiKeyEnv: LOCAL_BRIDGE_API_KEY\n      compat:\n        thinkingFormat: openai\n        supportsReasoningEffort: true\n      models:\n        - id: your-model\n```\n\nThe bridge applies client-specific transport handling at the boundary:\n\n- preserves empty assistant `content` in tool-call history;\n- forwards only the documented Harness identity and attribution headers;\n- emits an SSE comment plus an empty delta heartbeat during idle periods;\n- waits for successful upstream SSE headers so upstream HTTP errors remain HTTP errors;\n- normalizes embedded error envelopes that report a real 4xx/5xx status inside an HTTP 200 response.\n\nFor upstream gateways that reject the top-level `thinking` extension or impose an output limit, configure the route:\n\n```json\n{\n  \"upstream\": {\n    \"translateThinkingToReasoningEffort\": true,\n    \"maxOutputTokens\": 131072\n  }\n}\n```\n\n`translateThinkingToReasoningEffort` removes the unsupported top-level field, preserves an explicit client `reasoning_effort`, and maps disabled thinking to `reasoning_effort: \"none\"`. `maxOutputTokens` caps numeric `max_tokens` and `max_completion_tokens`. In version 2 configuration, set either option on a provider or override it on an individual model.\n\n## Configuration\n\n### Version 1: one or several upstreams\n\nA minimal configuration uses one upstream:\n\n```json\n{\n  \"server\": {\n    \"host\": \"127.0.0.1\",\n    \"port\": 37629\n  },\n  \"upstream\": {\n    \"name\": \"Custom Provider\",\n    \"baseUrl\": \"https://api.example.com/v1\",\n    \"model\": \"model-name\",\n    \"apiKeyEnv\": \"LLM_API_KEY\",\n    \"temperature\": 0\n  }\n}\n```\n\nFor multiple routes, use `upstreams`. Requests are matched by the client `model` field; an unknown model returns `404 model_not_found` instead of silently selecting a different route.\n\n```json\n{\n  \"server\": { \"host\": \"127.0.0.1\", \"port\": 37629 },\n  \"upstreams\": [\n    {\n      \"name\": \"Fast\",\n      \"baseUrl\": \"https://fast.example.com/v1\",\n      \"model\": \"coding-fast\",\n      \"apiKeyEnv\": \"FAST_API_KEY\"\n    },\n    {\n      \"name\": \"Strong\",\n      \"baseUrl\": \"https://strong.example.com/v1\",\n      \"model\": \"coding-strong\",\n      \"apiKeyEnv\": \"STRONG_API_KEY\"\n    }\n  ]\n}\n```\n\n### Version 2: aliases, providers, and credentials\n\nVersion 2 separates the client-facing alias, upstream model ID, provider endpoint, and credential source:\n\n```json\n{\n  \"version\": 2,\n  \"providers\": [\n    {\n      \"id\": \"local-provider\",\n      \"name\": \"Local Provider\",\n      \"baseUrl\": \"https://api.example.com/v1\",\n      \"translateThinkingToReasoningEffort\": true,\n      \"maxOutputTokens\": 131072,\n      \"models\": [\n        {\n          \"alias\": \"coding-strong\",\n          \"upstreamModel\": \"provider-model-id\",\n          \"credentialRef\": \"coding-strong-key\"\n        }\n      ]\n    }\n  ],\n  \"credentials\": {\n    \"coding-strong-key\": {\n      \"source\": \"env\",\n      \"env\": \"LLM_API_KEY\"\n    }\n  }\n}\n```\n\nUse `llm-coding-bridge config migrate --dry-run` before migrating an existing version 1 file. Use `llm-coding-bridge config show --effective` to inspect the resolved route without printing credential values.\n\n### Credential sources\n\nThe bridge supports:\n\n- `apiKeyEnv`: read a key from an environment variable;\n- `apiKeyCommand`: resolve a key from a command or secret manager;\n- `apiKeySource: \"client\"`: forward the key supplied by a local provider switcher or client.\n\nFor client-provided keys, the bridge checks `x-upstream-api-key`, then `Authorization: Bearer ...`, then `x-api-key`. If local authentication is enabled, put the local token in `Authorization` and the upstream key in `x-upstream-api-key`.\n\nKeys resolved from `apiKeyCommand` are cached in memory for 10 minutes by default. Configure `upstream.apiKeyCacheTtlMs` or set it to `0` to disable caching. A 401 response invalidates the cached key immediately.\n\n## Protocol and reliability behavior\n\nThe bridge is deliberately conservative about retries: it retries only before semantic output has been observed. Once text, reasoning, refusal, function calls, tool calls, or audio has been emitted, the request is not replayed.\n\nIt also provides:\n\n- independent header, first-data, idle, total, and streaming deadlines;\n- bounded `Retry-After` handling and per-route cooldown;\n- optional FIFO concurrency limits per provider, scoped to each upstream attempt so stalled attempts yield to queued work before retrying;\n- optional per-provider start pacing so rolling request-rate limits are respected, including retries;\n- protocol-specific Responses, Chat Completions, and Anthropic-compatible streaming;\n- SSE heartbeats that do not count as upstream model output;\n- conversion of valid non-SSE JSON responses to SSE for streaming clients;\n- aggregation of complete SSE responses for non-streaming Chat Completions;\n- request-body, response-body, and SSE-event size limits;\n- backpressure-aware streaming and connection cleanup.\n\nFor Chat Completions, `server.heartbeatIntervalMs` defaults to 15 seconds. Set it to `0` to disable downstream heartbeats. Set `server.maxConcurrentRequestsPerProvider` to a positive integer to queue excess upstream work per provider; `0` keeps concurrency unlimited. Set `server.minRequestIntervalMsPerProvider` to pace every upstream attempt for a provider; `0` disables pacing.\n\n## Client setup\n\n### Codex\n\nGenerate a dedicated profile:\n\n```bash\nllm-coding-bridge codex-profile --name bridge\ncodex --profile bridge exec --skip-git-repo-check \"Reply exactly: OK\"\n```\n\nOr print the template:\n\n```bash\nllm-coding-bridge template codex\n```\n\nThe generated profile uses:\n\n```text\nbase_url = http://127.0.0.1:37629/v1\nwire_api = responses\n```\n\n### Claude-compatible clients\n\nThe bridge exposes `/v1/messages` and `/v1/messages/count_tokens`:\n\n```bash\nexport ANTHROPIC_BASE_URL=\"http://127.0.0.1:37629\"\nexport ANTHROPIC_AUTH_TOKEN=\"local\"\nexport ANTHROPIC_DEFAULT_SONNET_MODEL=\"your-model\"\nexport ANTHROPIC_DEFAULT_OPUS_MODEL=\"your-model\"\nexport ANTHROPIC_DEFAULT_HAIKU_MODEL=\"your-model\"\n```\n\nPrint the generated template with:\n\n```bash\nllm-coding-bridge template claude\n```\n\n### Generic OpenAI-compatible clients\n\nUse:\n\n```\nBase URL: http://127.0.0.1:37629/v1\nEndpoint: /chat/completions\nModel: one of the aliases returned by /v1/models\n```\n\n## Windows and macOS service management\n\n`llm-coding-bridge install-service` installs a per-user launchd agent on macOS or a Task Scheduler logon task on Windows, and starts it immediately. Both start after the current user logs in. Windows runs without a persistent console window, appends logs, and retries failures every minute up to 999 times. This is user-session autostart, not a pre-login system service.\n\nUse `service-status` to inspect the registered task even when the bridge is down. `stop-service` temporarily stops it; `uninstall-service` stops it and removes autostart while keeping configuration and credentials. `restart-service` reuses the installed absolute config path unless `--config` is supplied, and refreshes Node/npm paths after upgrades.\n\n```bash\nllm-coding-bridge install-service\nlaunchctl list | grep llm-coding-bridge\nllm-coding-bridge status\nllm-coding-bridge logs --lines 80\nllm-coding-bridge restart-service\nllm-coding-bridge uninstall-service\n```\n\nThe service cannot keep an open request alive while macOS is asleep. After wake, clients should retry according to their normal transport policy.\n\n## Local authentication and security\n\nThe default loopback listener does not require a token. For a shared or non-loopback listener, set `server.localToken`:\n\n```json\n{\n  \"server\": {\n    \"host\": \"127.0.0.1\",\n    \"port\": 37629,\n    \"localToken\": \"replace-with-a-random-secret\"\n  }\n}\n```\n\nClients can send `Authorization: Bearer <token>` or `x-api-key: <token>`. `/health` remains unauthenticated. Non-loopback listeners are rejected without a local token.\n\nSecurity defaults:\n\n- generated config, client profiles, and backups use private file permissions;\n- request bodies are capped at 10 MB by default;\n- upstream responses are subject to complete-response and cumulative-size limits;\n- diagnostic logs contain validated request metadata only; fallback logging never serializes upstream error objects;\n- API keys are never committed by the project and should not be placed in the bridge config;\n- command-backed keys should use the object form to avoid shell interpretation;\n- the package has no install script and does not execute network code during installation.\n\n## Diagnostics\n\n| Symptom | Check |\n| --- | --- |\n| `ECONNREFUSED 127.0.0.1:37629` | Run `llm-coding-bridge status`, then `llm-coding-bridge restart-service`. |\n| `404 model_not_found` | Compare the client model with `curl http://127.0.0.1:37629/v1/models`. |\n| `401` from the upstream | Re-check the selected credential source; command-backed keys are refreshed after a 401. |\n| Harness receives a stream error as success | Confirm the custom provider uses the bridge `baseURL` and keep the built-in provider separate. |\n| Requests stall during long thinking | Keep heartbeats enabled and set `maxOutputTokens` to the tested upstream limit. |\n| Works in a shell but not after login | Use `apiKeyCommand` or a launchd-visible credential source instead of a shell-only environment variable. |\n\n## Development\n\n```bash\ngit clone https://github.com/sevoniva/llm-coding-bridge.git\ncd llm-coding-bridge\nnpm ci\nnpm run verify\n```\n\nThe verification gate runs linting, the complete test suite, security and secret scans, the repository and release gates, dependency audit, and an npm pack dry run.\n\nFurther reference: [Configuration Guide](docs/configuration.md), [release notes](docs/releases/), and [MIT License](LICENSE).\n\n## 中文快速指南\n\n`@sevoniva/llm-coding-bridge` 是一个本地协议桥接服务，把 Codex、Claude 类客户端、DeepSeek Harness 和其他 OpenAI-compatible 客户端统一接到稳定的本地 `/v1` 端点，再按模型别名转发到一个或多个上游。它不需要修改客户端源码，默认只监听本机回环地址。简单配置支持在私有本地文件中填写 `upstream.apiKey`；可选向导则使用系统密钥存储。\n\n安装并生成配置文件：\n\n```bash\nnpm install -g @sevoniva/llm-coding-bridge@latest\nllm-coding-bridge init-files\n```\n\nHarness 配置重点：\n\n- 新增独立的 `openai-completions` 自定义 Provider；\n- `baseURL` 使用 `http://127.0.0.1:37629/v1`；\n- 选择 bridge 暴露的模型别名；\n- 使用独立凭据引用；\n- 保留内置的 `deepseek-official` Provider，不需要修改 Harness 源码。\n\n如果上游不接受顶层 `thinking` 或有输出上限，在 bridge 路由中配置 `translateThinkingToReasoningEffort` 和 `maxOutputTokens`。完整配置、协议行为和安全边界见 [Configuration Guide](docs/configuration.md)。\n\nWindows / macOS 自启动：\n\n```bash\nllm-coding-bridge install-service\nllm-coding-bridge status\nllm-coding-bridge logs --lines 80\n```\n\nWindows 使用任务计划程序，macOS 使用 launchd：开机登录当前账户后启动，异常退出自动重试。详细步骤、配置路径和故障处理见[中文安装配置与自启动指南](docs/getting-started.zh-CN.md)。\n\n## License\n\nMIT\n","readmeFilename":"README.md"}