{"_id":"@cloudspe/livepeer-openai-gateway-core","_rev":"7-cabdfd56f78fde93771e1ffb9941e88b","name":"@cloudspe/livepeer-openai-gateway-core","dist-tags":{"latest":"4.0.2"},"versions":{"0.1.0":{"name":"@cloudspe/livepeer-openai-gateway-core","version":"0.1.0","license":"MIT","_id":"@cloudspe/livepeer-openai-gateway-core@0.1.0","maintainers":[{"name":"mikezupper","email":"me@mikezupper.com"}],"homepage":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core","bugs":{"url":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core/issues"},"dist":{"shasum":"7c4564b58b313e3fbfe594bfe6f94a82bd721b93","tarball":"https://registry.npmjs.org/@cloudspe/livepeer-openai-gateway-core/-/livepeer-openai-gateway-core-0.1.0.tgz","fileCount":190,"integrity":"sha512-E582iEbfxYHKbVOFG1lCkGN8uGlnOBRAP2z+Hlw1OyX3PZHXLVEic3xAeNqvjHpnRk/ntkPjEuMBxFvM0bTWRQ==","signatures":[{"sig":"MEUCIQCQ9w3jQbcorWkK8HRX+AP1ZCUIazj6lJWXV8A2Zb3i7AIgOMW4PKpOmYRZIsXecEna+iD5vY5b8X6D+MmwfqDGXhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudspe%2flivepeer-openai-gateway-core@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":879624},"main":"./src/index.ts","type":"module","types":"./src/index.ts","engines":{"node":">=20"},"exports":{".":"./src/index.ts","./*":"./src/*"},"gitHead":"c2a91a058263dd0ce39bbb07d0525371a0fafe00","scripts":{"fmt":"prettier --write .","lint":"eslint .","test":"vitest run --coverage","build":"tsc -p tsconfig.json","fmt:check":"prettier --check .","proto:gen":"npm run proto:gen:payer && npm run proto:gen:registry","typecheck":"tsc --noEmit","test:watch":"vitest","proto:gen:payer":"rm -rf src/providers/payerDaemon/gen && mkdir -p src/providers/payerDaemon/gen && buf generate","proto:gen:registry":"rm -rf src/providers/serviceRegistry/gen && mkdir -p src/providers/serviceRegistry/gen && buf generate --template buf.gen.serviceRegistry.yaml"},"_npmUser":{"name":"mikezupper","email":"me@mikezupper.com"},"repository":{"url":"git+https://github.com/Cloud-SPE/livepeer-openai-gateway-core.git","type":"git"},"_npmVersion":"10.8.2","description":"OSS engine: registry-driven node selection + payment-daemon orchestration + dispatchers + Fastify adapter for an OpenAI-compatible bridge over Livepeer WorkerNodes.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pg":"^8.20.0","zod":"^3.25.76","ioredis":"^5.10.1","tiktoken":"^1.0.22","drizzle-orm":"^0.33.0","prom-client":"^15.1.3","@grpc/grpc-js":"^1.14.3","@bufbuild/protobuf":"^2.12.0","eventsource-parser":"^3.0.8"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","vitest":"^1.6.1","fastify":"^4.29.1","prettier":"^3.8.3","ts-proto":"^2.11.6","@types/pg":"^8.20.0","typescript":"^5.4.0","@types/node":"^20.19.39","@bufbuild/buf":"^1.68.4","testcontainers":"^10.28.0","@fastify/static":"^7.0.4","fastify-raw-body":"^4.3.0","@fastify/sensible":"^5.6.0","typescript-eslint":"^8.59.0","@fastify/multipart":"^8.3.1","@vitest/coverage-v8":"^1.6.1","@testcontainers/postgresql":"^10.28.0"},"peerDependencies":{"fastify":"^4.29.0","@fastify/static":"^7.0.0","@fastify/sensible":"^5.6.0","@fastify/multipart":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/livepeer-openai-gateway-core_0.1.0_1777294972339_0.7036135569846871","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cloudspe/livepeer-openai-gateway-core","version":"0.1.1","license":"MIT","_id":"@cloudspe/livepeer-openai-gateway-core@0.1.1","maintainers":[{"name":"mikezupper","email":"me@mikezupper.com"}],"homepage":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core","bugs":{"url":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core/issues"},"dist":{"shasum":"ea21079a2c6c36237c1bd2ea9c0b81ef4a35e317","tarball":"https://registry.npmjs.org/@cloudspe/livepeer-openai-gateway-core/-/livepeer-openai-gateway-core-0.1.1.tgz","fileCount":547,"integrity":"sha512-6jazTMbg/QIRkpHz8rfVgKl6kD2DLoy9b82dBuX2iENeFD4V6Caj3d+iIYD5DwLb1J8JgQ7r+J7yPuPGiQzP6Q==","signatures":[{"sig":"MEUCIEhnH95ym3aeAwWoHZ5XhwqzDlaFPeL6aB3RMX1RppUnAiEA+cz+Y3OQvOn3DnvH4N94QJx+Sr3liFA9NyGTT30DIKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudspe%2flivepeer-openai-gateway-core@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2031389},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js","./*":"./dist/*"},"gitHead":"ba0a60207c15bc904892143caa2b1f5be816048a","scripts":{"fmt":"prettier --write .","lint":"eslint .","test":"vitest run --coverage","build":"tsc -p tsconfig.json","fmt:check":"prettier --check .","proto:gen":"npm run proto:gen:payer && npm run proto:gen:registry","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"tsc -p tsconfig.json","proto:gen:payer":"rm -rf src/providers/payerDaemon/gen && mkdir -p src/providers/payerDaemon/gen && buf generate","proto:gen:registry":"rm -rf src/providers/serviceRegistry/gen && mkdir -p src/providers/serviceRegistry/gen && buf generate --template buf.gen.serviceRegistry.yaml"},"_npmUser":{"name":"mikezupper","email":"me@mikezupper.com"},"repository":{"url":"git+https://github.com/Cloud-SPE/livepeer-openai-gateway-core.git","type":"git"},"_npmVersion":"10.8.2","description":"OSS engine: registry-driven node selection + payment-daemon orchestration + dispatchers + Fastify adapter for an OpenAI-compatible bridge over Livepeer WorkerNodes.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pg":"^8.20.0","zod":"^3.25.76","ioredis":"^5.10.1","tiktoken":"^1.0.22","drizzle-orm":"^0.33.0","prom-client":"^15.1.3","@grpc/grpc-js":"^1.14.3","@bufbuild/protobuf":"^2.12.0","eventsource-parser":"^3.0.8"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","vitest":"^1.6.1","fastify":"^4.29.1","prettier":"^3.8.3","ts-proto":"^2.11.6","@types/pg":"^8.20.0","typescript":"^5.4.0","@types/node":"^20.19.39","@bufbuild/buf":"^1.68.4","testcontainers":"^10.28.0","@fastify/static":"^7.0.4","fastify-raw-body":"^4.3.0","@fastify/sensible":"^5.6.0","typescript-eslint":"^8.59.0","@fastify/multipart":"^8.3.1","@vitest/coverage-v8":"^1.6.1","@testcontainers/postgresql":"^10.28.0"},"peerDependencies":{"fastify":"^4.29.0","@fastify/static":"^7.0.0","@fastify/sensible":"^5.6.0","@fastify/multipart":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/livepeer-openai-gateway-core_0.1.1_1777333126307_0.06326843034496088","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cloudspe/livepeer-openai-gateway-core","version":"0.2.0","license":"MIT","_id":"@cloudspe/livepeer-openai-gateway-core@0.2.0","maintainers":[{"name":"mikezupper","email":"me@mikezupper.com"}],"homepage":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core","bugs":{"url":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core/issues"},"dist":{"shasum":"d3d93e0e78604006cf6bb952748f7bdb1af349b8","tarball":"https://registry.npmjs.org/@cloudspe/livepeer-openai-gateway-core/-/livepeer-openai-gateway-core-0.2.0.tgz","fileCount":565,"integrity":"sha512-d7S6NID/CD44Hro278jK6lKLyuOt6ON1GGYQVdEmkachkaqczglvCZgr90hspCTfe29puB4CLj3sNRW/xtKx3g==","signatures":[{"sig":"MEUCIQCSd/0B+bg3QabDQKOsuMVWRJKZKAIxoh9uSLxZ6K6ENwIgEXA14j//tqhG5lymlIkwxgD+Xd2w/ajGp5GSTHeSvbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudspe%2flivepeer-openai-gateway-core@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2064743},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js","./*":"./dist/*"},"gitHead":"bc7557f5d088ee6255e70795a7279575a5547a8f","scripts":{"fmt":"prettier --write .","lint":"eslint .","test":"vitest run --coverage","build":"tsc -p tsconfig.json","fmt:check":"prettier --check .","proto:gen":"npm run proto:gen:payer && npm run proto:gen:registry","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"tsc -p tsconfig.json","proto:gen:payer":"rm -rf src/providers/payerDaemon/gen && mkdir -p src/providers/payerDaemon/gen && buf generate","proto:gen:registry":"rm -rf src/providers/serviceRegistry/gen && mkdir -p src/providers/serviceRegistry/gen && buf generate --template buf.gen.serviceRegistry.yaml"},"_npmUser":{"name":"mikezupper","email":"me@mikezupper.com"},"repository":{"url":"git+https://github.com/Cloud-SPE/livepeer-openai-gateway-core.git","type":"git"},"_npmVersion":"10.8.2","description":"OSS engine: registry-driven node selection + payment-daemon orchestration + dispatchers + Fastify adapter for an OpenAI-compatible bridge over Livepeer WorkerNodes.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pg":"^8.20.0","zod":"^3.25.76","ioredis":"^5.10.1","tiktoken":"^1.0.22","drizzle-orm":"^0.33.0","prom-client":"^15.1.3","@grpc/grpc-js":"^1.14.3","@bufbuild/protobuf":"^2.12.0","eventsource-parser":"^3.0.8"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","vitest":"^1.6.1","fastify":"^4.29.1","prettier":"^3.8.3","ts-proto":"^2.11.6","@types/pg":"^8.20.0","typescript":"^5.4.0","@types/node":"^20.19.39","@bufbuild/buf":"^1.68.4","testcontainers":"^10.28.0","@fastify/static":"^7.0.4","fastify-raw-body":"^4.3.0","@fastify/sensible":"^5.6.0","typescript-eslint":"^8.59.0","@fastify/multipart":"^8.3.1","@vitest/coverage-v8":"^1.6.1","@testcontainers/postgresql":"^10.28.0"},"peerDependencies":{"fastify":"^4.29.0","@fastify/static":"^7.0.0","@fastify/sensible":"^5.6.0","@fastify/multipart":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/livepeer-openai-gateway-core_0.2.0_1777376141793_0.4538331405752589","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@cloudspe/livepeer-openai-gateway-core","version":"3.0.0","license":"MIT","_id":"@cloudspe/livepeer-openai-gateway-core@3.0.0","maintainers":[{"name":"mikezupper","email":"me@mikezupper.com"}],"homepage":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core","bugs":{"url":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core/issues"},"dist":{"shasum":"2196a71e4a729e356159200d8f5c693e071b7b67","tarball":"https://registry.npmjs.org/@cloudspe/livepeer-openai-gateway-core/-/livepeer-openai-gateway-core-3.0.0.tgz","fileCount":565,"integrity":"sha512-TtSd5TlFvPUiFA4A0WWRYgho9GVLQ+0XTU0eEbLaqKh6yH2TebNxWY275aEmkGiDpKNwcfTWcuKtflfpL02isw==","signatures":[{"sig":"MEQCIBqAaeEfQVNxc4P7Y9aMJcJg+h0D1fVhomy0Knl/rDxdAiB8DrjWe9CXkG7Zd9O1v6VEyIP8LYeW9etdBAWf6mKUHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudspe%2flivepeer-openai-gateway-core@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2078364},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js","./*":"./dist/*"},"gitHead":"bccb3ae0bb7255cfdf8842593a6213a978309e84","scripts":{"fmt":"prettier --write .","lint":"eslint .","test":"vitest run --coverage","build":"tsc -p tsconfig.json","fmt:check":"prettier --check .","proto:gen":"npm run proto:gen:payer && npm run proto:gen:registry","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"tsc -p tsconfig.json","proto:gen:payer":"rm -rf src/providers/payerDaemon/gen && mkdir -p src/providers/payerDaemon/gen && buf generate","proto:gen:registry":"rm -rf src/providers/serviceRegistry/gen && mkdir -p src/providers/serviceRegistry/gen && buf generate --template buf.gen.serviceRegistry.yaml"},"_npmUser":{"name":"mikezupper","email":"me@mikezupper.com"},"repository":{"url":"git+https://github.com/Cloud-SPE/livepeer-openai-gateway-core.git","type":"git"},"_npmVersion":"10.8.2","description":"OSS engine: registry-driven node selection + payment-daemon orchestration + dispatchers + Fastify adapter for an OpenAI-compatible bridge over Livepeer WorkerNodes.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pg":"^8.20.0","zod":"^3.25.76","ioredis":"^5.10.1","tiktoken":"^1.0.22","drizzle-orm":"^0.33.0","prom-client":"^15.1.3","@grpc/grpc-js":"^1.14.3","@bufbuild/protobuf":"^2.12.0","eventsource-parser":"^3.0.8"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","vitest":"^1.6.1","fastify":"^4.29.1","prettier":"^3.8.3","ts-proto":"^2.11.6","@types/pg":"^8.20.0","typescript":"^5.4.0","@types/node":"^20.19.39","@bufbuild/buf":"^1.68.4","testcontainers":"^10.28.0","@fastify/static":"^7.0.4","fastify-raw-body":"^4.3.0","@fastify/sensible":"^5.6.0","typescript-eslint":"^8.59.0","@fastify/multipart":"^8.3.1","@vitest/coverage-v8":"^1.6.1","@testcontainers/postgresql":"^10.28.0"},"peerDependencies":{"fastify":"^4.29.0","@fastify/static":"^7.0.0","@fastify/sensible":"^5.6.0","@fastify/multipart":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/livepeer-openai-gateway-core_3.0.0_1777503017452_0.42317588119474014","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@cloudspe/livepeer-openai-gateway-core","version":"3.0.1","license":"MIT","_id":"@cloudspe/livepeer-openai-gateway-core@3.0.1","maintainers":[{"name":"mikezupper","email":"me@mikezupper.com"}],"homepage":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core","bugs":{"url":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core/issues"},"dist":{"shasum":"e52b61ba0e58ac0f662d57c31918f279b57951cf","tarball":"https://registry.npmjs.org/@cloudspe/livepeer-openai-gateway-core/-/livepeer-openai-gateway-core-3.0.1.tgz","fileCount":565,"integrity":"sha512-MrjNGsTcrv/ZgvId94KjRMcBVT5+ui1F0dNF78+rlNb/k8TSvrOYjVlH4Aqcxe4jTuCxuDlspRVrl6VXHBDo8Q==","signatures":[{"sig":"MEUCIQDIcQhNDnRnK9wc/7IPmCxwcbqZXymgLH3T2bwlmWJDlQIgU/ZMpNogljCMMcJi2YdOm5p9ZBksqME1m9UKyVnyF1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudspe%2flivepeer-openai-gateway-core@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2079001},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js","./*":"./dist/*"},"gitHead":"200cb949b27b8e61639b314cc706df074c8aa07e","scripts":{"fmt":"prettier --write .","lint":"eslint .","test":"vitest run --coverage","build":"tsc -p tsconfig.json","fmt:check":"prettier --check .","proto:gen":"npm run proto:gen:payer && npm run proto:gen:registry","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"tsc -p tsconfig.json","proto:gen:payer":"rm -rf src/providers/payerDaemon/gen && mkdir -p src/providers/payerDaemon/gen && buf generate","proto:gen:registry":"rm -rf src/providers/serviceRegistry/gen && mkdir -p src/providers/serviceRegistry/gen && buf generate --template buf.gen.serviceRegistry.yaml"},"_npmUser":{"name":"mikezupper","email":"me@mikezupper.com"},"repository":{"url":"git+https://github.com/Cloud-SPE/livepeer-openai-gateway-core.git","type":"git"},"_npmVersion":"10.8.2","description":"OSS engine: registry-driven node selection + payment-daemon orchestration + dispatchers + Fastify adapter for an OpenAI-compatible bridge over Livepeer WorkerNodes.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pg":"^8.20.0","zod":"^3.25.76","ioredis":"^5.10.1","tiktoken":"^1.0.22","drizzle-orm":"^0.33.0","prom-client":"^15.1.3","@grpc/grpc-js":"^1.14.3","@bufbuild/protobuf":"^2.12.0","eventsource-parser":"^3.0.8"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","vitest":"^1.6.1","fastify":"^4.29.1","prettier":"^3.8.3","ts-proto":"^2.11.6","@types/pg":"^8.20.0","typescript":"^5.4.0","@types/node":"^20.19.39","@bufbuild/buf":"^1.68.4","testcontainers":"^10.28.0","@fastify/static":"^7.0.4","fastify-raw-body":"^4.3.0","@fastify/sensible":"^5.6.0","typescript-eslint":"^8.59.0","@fastify/multipart":"^8.3.1","@vitest/coverage-v8":"^1.6.1","@testcontainers/postgresql":"^10.28.0"},"peerDependencies":{"fastify":"^4.29.0","@fastify/static":"^7.0.0","@fastify/sensible":"^5.6.0","@fastify/multipart":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/livepeer-openai-gateway-core_3.0.1_1777818739991_0.8753984181135153","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@cloudspe/livepeer-openai-gateway-core","version":"4.0.1","license":"MIT","_id":"@cloudspe/livepeer-openai-gateway-core@4.0.1","maintainers":[{"name":"mikezupper","email":"me@mikezupper.com"}],"homepage":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core","bugs":{"url":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core/issues"},"dist":{"shasum":"44a236eebf377f5e278ec0d7356de0f48a509f2b","tarball":"https://registry.npmjs.org/@cloudspe/livepeer-openai-gateway-core/-/livepeer-openai-gateway-core-4.0.1.tgz","fileCount":565,"integrity":"sha512-JsW8A+CIA097o0YQPAaXXqEKjkv2v1KY91VzMrT7UqegUeIjFreG7At0owxDImlOdNJL+nqlSoKRvG/tYka1IQ==","signatures":[{"sig":"MEUCIQDP4i7y8I/2MPGnyvye0tcl23e+PcFfzanMBk+UPvdX6QIgf4bZ5nNEidaOqQKiP3SP9VSiNX3LUxZDjh3fD2LDCiE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudspe%2flivepeer-openai-gateway-core@4.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2078815},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js","./*":"./dist/*"},"gitHead":"873775065addd9ebf56752ae715bf9b39f5db236","scripts":{"fmt":"prettier --write .","lint":"eslint .","test":"vitest run --coverage","build":"tsc -p tsconfig.json","fmt:check":"prettier --check .","proto:gen":"npm run proto:gen:payer && npm run proto:gen:registry","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"tsc -p tsconfig.json","proto:gen:payer":"rm -rf src/providers/payerDaemon/gen && mkdir -p src/providers/payerDaemon/gen && buf generate","proto:gen:registry":"rm -rf src/providers/serviceRegistry/gen && mkdir -p src/providers/serviceRegistry/gen && buf generate --template buf.gen.serviceRegistry.yaml"},"_npmUser":{"name":"mikezupper","email":"me@mikezupper.com"},"repository":{"url":"git+https://github.com/Cloud-SPE/livepeer-openai-gateway-core.git","type":"git"},"_npmVersion":"10.8.2","description":"OSS engine: registry-driven node selection + payment-daemon orchestration + dispatchers + Fastify adapter for an OpenAI-compatible bridge over Livepeer WorkerNodes.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pg":"^8.20.0","zod":"^3.25.76","ioredis":"^5.10.1","tiktoken":"^1.0.22","drizzle-orm":"^0.33.0","prom-client":"^15.1.3","@grpc/grpc-js":"^1.14.3","@bufbuild/protobuf":"^2.12.0","eventsource-parser":"^3.0.8"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","vitest":"^1.6.1","fastify":"^4.29.1","prettier":"^3.8.3","ts-proto":"^2.11.6","@types/pg":"^8.20.0","typescript":"^5.4.0","@types/node":"^20.19.39","@bufbuild/buf":"^1.68.4","testcontainers":"^10.28.0","@fastify/static":"^7.0.4","fastify-raw-body":"^4.3.0","@fastify/sensible":"^5.6.0","typescript-eslint":"^8.59.0","@fastify/multipart":"^8.3.1","@vitest/coverage-v8":"^1.6.1","@testcontainers/postgresql":"^10.28.0"},"peerDependencies":{"fastify":"^4.29.0","@fastify/static":"^7.0.0","@fastify/sensible":"^5.6.0","@fastify/multipart":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/livepeer-openai-gateway-core_4.0.1_1777820055505_0.8614609811019842","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@cloudspe/livepeer-openai-gateway-core","version":"4.0.2","description":"OSS engine: registry-driven node selection + payment-daemon orchestration + dispatchers + Fastify adapter for an OpenAI-compatible bridge over Livepeer WorkerNodes.","license":"MIT","homepage":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core","repository":{"type":"git","url":"git+https://github.com/Cloud-SPE/livepeer-openai-gateway-core.git"},"bugs":{"url":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core/issues"},"type":"module","engines":{"node":">=20"},"exports":{".":"./dist/index.js","./*":"./dist/*"},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"prepublishOnly":"tsc -p tsconfig.json","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test":"vitest run --coverage","test:watch":"vitest","lint":"eslint .","fmt":"prettier --write .","fmt:check":"prettier --check .","proto:gen":"npm run proto:gen:payer && npm run proto:gen:registry","proto:gen:payer":"rm -rf src/providers/payerDaemon/gen && mkdir -p src/providers/payerDaemon/gen && buf generate","proto:gen:registry":"rm -rf src/providers/serviceRegistry/gen && mkdir -p src/providers/serviceRegistry/gen && buf generate --template buf.gen.serviceRegistry.yaml"},"peerDependencies":{"fastify":"^4.29.0","@fastify/multipart":"^8.3.0","@fastify/sensible":"^5.6.0","@fastify/static":"^7.0.0"},"dependencies":{"@bufbuild/protobuf":"^2.12.0","@grpc/grpc-js":"^1.14.3","drizzle-orm":"^0.33.0","eventsource-parser":"^3.0.8","ioredis":"^5.10.1","pg":"^8.20.0","prom-client":"^15.1.3","tiktoken":"^1.0.22","zod":"^3.25.76"},"devDependencies":{"@bufbuild/buf":"^1.68.4","@fastify/multipart":"^8.3.1","@fastify/sensible":"^5.6.0","@fastify/static":"^7.0.4","@testcontainers/postgresql":"^10.28.0","@types/node":"^20.19.39","@types/pg":"^8.20.0","@vitest/coverage-v8":"^1.6.1","eslint":"^9.39.4","fastify":"^4.29.1","fastify-raw-body":"^4.3.0","prettier":"^3.8.3","testcontainers":"^10.28.0","ts-proto":"^2.11.6","typescript":"^5.4.0","typescript-eslint":"^8.59.0","vitest":"^1.6.1"},"_id":"@cloudspe/livepeer-openai-gateway-core@4.0.2","gitHead":"1ceb5e91fc6347a32006a0d54b1848ff42391fba","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-KhY9K7B1gy+A25es/z5S8uWVAVu8d4yHkiqIZKmBJBl1FKjiqJSJJw2VVccF5Hn/LqD9gIcrcJrZ1gEvTxWo2Q==","shasum":"7e5009d0a07caa5be3ef71fdc4158a889a4a6381","tarball":"https://registry.npmjs.org/@cloudspe/livepeer-openai-gateway-core/-/livepeer-openai-gateway-core-4.0.2.tgz","fileCount":567,"unpackedSize":2440266,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudspe%2flivepeer-openai-gateway-core@4.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHbJk5hsQx2l4HfJSV5gYQySyEhpqaSPL0zaS5E64R+zAiEAo2KvKI6SZgngwXgwzYezkdYLxh56rLN1JdyaoSczm74="}]},"_npmUser":{"name":"mikezupper","email":"me@mikezupper.com"},"directories":{},"maintainers":[{"name":"mikezupper","email":"me@mikezupper.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/livepeer-openai-gateway-core_4.0.2_1777920488757_0.7700385345855112"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-27T13:02:52.239Z","modified":"2026-05-04T18:48:09.305Z","0.1.0":"2026-04-27T13:02:52.526Z","0.1.1":"2026-04-27T23:38:46.508Z","0.2.0":"2026-04-28T11:35:41.974Z","3.0.0":"2026-04-29T22:50:17.654Z","3.0.1":"2026-05-03T14:32:20.188Z","4.0.1":"2026-05-03T14:54:15.700Z","4.0.2":"2026-05-04T18:48:09.023Z"},"bugs":{"url":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core/issues"},"license":"MIT","homepage":"https://github.com/Cloud-SPE/livepeer-openai-gateway-core","repository":{"type":"git","url":"git+https://github.com/Cloud-SPE/livepeer-openai-gateway-core.git"},"description":"OSS engine: registry-driven node selection + payment-daemon orchestration + dispatchers + Fastify adapter for an OpenAI-compatible bridge over Livepeer WorkerNodes.","maintainers":[{"name":"mikezupper","email":"me@mikezupper.com"}],"readme":"# `@cloudspe/livepeer-openai-gateway-core`\n\nOpenAI-compatible request engine fronting Livepeer worker pools.\nAdapter-driven: bring your own billing, auth, rate-limit, logging,\nand admin auth. Ships an optional Fastify route adapter and a\nread-only operator dashboard.\n\n```\n┌─────────────────────────┐    ┌──────────────────────────────────────┐    ┌──────────────┐\n│ OpenAI client (curl /   │ →  │  livepeer-openai-gateway-core (this engine) │ →  │ WorkerNodes  │\n│ openai-sdk / langchain) │    │  ─ auth → rate-limit → reserve →     │    │ (paid via    │\n└─────────────────────────┘    │    select node → call → commit       │    │  payment-    │\n                               │  ─ Fastify routes wire in            │    │  daemon)     │\n                               │  ─ adapters: Wallet, AuthResolver,   │    └──────────────┘\n                               │    RateLimiter, Logger,              │\n                               │    AdminAuthResolver                 │\n                               └──────────────────────────────────────┘\n```\n\n## Quickstart\n\nThe fastest path to a running gateway is the bundled minimal-shell\nexample. It uses `InMemoryWallet` + a no-op AuthResolver so there's\nno DB or identity provider to wire up.\n\n```sh\ngit clone https://github.com/Cloud-SPE/livepeer-openai-gateway-core.git\ncd livepeer-openai-gateway-core\nnpm install\ncd examples/minimal-shell\ncp service-registry-config.example.yaml service-registry-config.yaml\n$EDITOR service-registry-config.yaml          # add your worker nodes\ndocker compose up\n# In another shell:\ncurl -sS http://localhost:8080/v1/chat/completions \\\n  -H 'authorization: Bearer demo' \\\n  -H 'content-type: application/json' \\\n  -d '{\"model\":\"llama-3.3-70b\",\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}]}'\n```\n\nFull walkthrough in [`examples/minimal-shell/README.md`](examples/minimal-shell/README.md).\n\n## Adapters (you supply these)\n\nThe engine commits to five operator-overridable adapters. Pick the\nones that match your deployment; all five have working defaults\nshipped with the engine.\n\n| Adapter | Purpose | Default impl |\n|---------|---------|--------------|\n| `Wallet` | Billing/quota authority. Reserve before dispatch, commit on success, refund on failure. | `InMemoryWallet` (testing only) |\n| `AuthResolver` | HTTP `Authorization` header → generic `Caller`. | none — wire your own |\n| `RateLimiter` | Per-caller request gating (sliding window + concurrency). | Redis sliding-window |\n| `Logger` | Structured log sink. | `createConsoleLogger` |\n| `AdminAuthResolver` | Admin-token / basic-auth backing for the optional operator dashboard. | `createBasicAdminAuthResolver` |\n\nLong-form: [`docs/adapters.md`](docs/adapters.md). Three runnable\nWallet stubs (postpaid B2B / prepaid USD / free-quota tokens) live\nin [`examples/wallets/`](examples/wallets/).\n\n## Ecosystem integration\n\nThe engine **requires two sidecar daemons** to run:\n\n- **`livepeer-payment-daemon`** (sender mode) — creates probabilistic\n  micropayment tickets to compensate worker nodes. Repo:\n  [`livepeer-modules-project/livepeer-payment-library`](https://github.com/livepeer-modules-project/livepeer-payment-library).\n  Talks to the engine over a unix socket; the engine pins this\n  daemon's gRPC contract.\n- **`livepeer-service-registry-daemon`** (resolver mode) — answers\n  `Select` / `ListKnown` / `ResolveByAddress` for the WorkerNode\n  pool. Repo:\n  [`livepeer-modules-project/service-registry-daemon`](https://github.com/livepeer-modules-project/service-registry-daemon).\n  Same socket-based contract.\n\nThe engine **does not** support a static-YAML node-pool fallback —\nrunning without the registry-daemon is unsupported. Both daemons\nare MIT-licensed.\n\nThe minimal-shell example's `compose.yaml` brings up both daemons\nalongside the gateway process.\n\n`livepeer-modules-project/protocol-daemon` is **orthogonal** —\norchestrator-side concern, not needed by gateway operators unless\nthey also run an orchestrator.\n\nCross-ecosystem metric naming + port allocation conventions live at\n[`livepeer-modules-project/livepeer-modules-conventions`](https://github.com/livepeer-modules-project/livepeer-modules-conventions).\n\n## Reference shell implementation\n\n[`Cloud-SPE/livepeer-openai-gateway`](https://github.com/Cloud-SPE/livepeer-openai-gateway)\nis a production-ready shell that wires `@cloudspe/livepeer-openai-gateway-core`\nwith prepaid USD billing (Postgres + Stripe top-ups), API-key auth,\nRedis-backed rate limiting, and admin + customer-portal SPAs. Read\nit as a worked example of how the adapter contracts compose under\nload.\n\n## Versioning\n\n**Versioning**: this package now ships on the shared suite semver line.\nUse standard [SemVer](https://semver.org/) expectations for `4.x`\nreleases and pin/update according to your shell's compatibility policy.\n\n## Documentation map\n\n- [`docs/architecture.md`](docs/architecture.md) — engine internals:\n  layer stack, dispatcher pipeline, payment-daemon integration.\n- [`docs/adapters.md`](docs/adapters.md) — long-form adapter guide\n  with patterns for each of the five operator-overridable adapters.\n- [`docs/design-docs/`](docs/design-docs/) — focused design notes\n  (node lifecycle, payer integration, pricing model, streaming\n  semantics, token audit, retry policy, metrics, operator dashboard).\n- [`AGENTS.md`](AGENTS.md) — agent-first contributor guide.\n- [`DESIGN.md`](DESIGN.md) — what the engine is + isn't.\n- [`CONTRIBUTING.md`](CONTRIBUTING.md) — dev setup, test rules,\n  commit + PR conventions, the adapter-contract change ladder.\n- [`SECURITY.md`](SECURITY.md) — vulnerability reporting flow.\n- [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) — Contributor Covenant 2.1.\n- [`GOVERNANCE.md`](GOVERNANCE.md) — maintainers + decision rules.\n\n## License\n\n[MIT](LICENSE) — Cloud-SPE contributors.\n","readmeFilename":"README.md"}