{"_id":"@bernierllc/ai-provider-openai","_rev":"11-a7a5e1fdfffaaf93d044696de424ad98","name":"@bernierllc/ai-provider-openai","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"@bernierllc/ai-provider-openai","version":"1.0.0","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.0.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"aaa340e06138e9e8f5cca0aea01d7826d32f369e","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.0.0.tgz","fileCount":34,"integrity":"sha512-iw5wYxmqQYk5EzhdeVCrqGfidGd0nJb7wehJK0p/rKbUUw2XwhpeYhM9Bo1Tglr8R6qfHzOK73cTF96545CnIg==","signatures":[{"sig":"MEUCIQCbnoS0oFMYSz3NmfifEl9YdzXS5eWifB86kM7IemjMlAIgXPP1a+oGjEfJG0jDdNtTYRuAjiVrlUd+CYge4MR4LA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119483},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"053ec23b31c8dfa46ae1f0e0585a26af2b389d61","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"11.4.2","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"24.4.1","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"^1.0.1","@bernierllc/retry-policy":"^0.1.3","@bernierllc/ai-provider-core":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.0.0_1760334590419_0.6353733624224362","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bernierllc/ai-provider-openai","version":"1.0.1","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"0f4649a3687020eb1f069c7ab869b3d5a758f976","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.0.1.tgz","fileCount":35,"integrity":"sha512-lp+VyxtB+E4ErzRYnnbwPEtPULyxmTgvXyPD/kgNJ9OopbYbfid0SQ8npUSCzx0Khd6lrmf/XElBRv3vA+W8Yw==","signatures":[{"sig":"MEUCIDLWjF7esRM7ALY9hxrp/FUtTYRH6Q45Quk7lr9JmkovAiEA7jHRjapM/7W3JGzrfhU3/Dg3ooE+dDrddDvHQzkKLTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120951},"main":"dist/index.js","_from":"file:bernierllc-ai-provider-openai-1.0.1.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"_resolved":"/tmp/a911ba8b3cedadd8419c1f50c4419dc2/bernierllc-ai-provider-openai-1.0.1.tgz","_integrity":"sha512-lp+VyxtB+E4ErzRYnnbwPEtPULyxmTgvXyPD/kgNJ9OopbYbfid0SQ8npUSCzx0Khd6lrmf/XElBRv3vA+W8Yw==","bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"11.7.0","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"20.19.6","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"1.0.4","@bernierllc/retry-policy":"0.1.6","@bernierllc/ai-provider-core":"1.0.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.0.1_1766437719874_0.6974526487436581","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bernierllc/ai-provider-openai","version":"1.0.2","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.0.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"fda89afc650376d8f34c81a4ef215968977d3851","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.0.2.tgz","fileCount":35,"integrity":"sha512-ORznxL/ao15/IzUMbk2r7ozxYtPDSNZ/xUPqMM9Qpta2KjSYQxae0VbEegRGUhuf5i0mS7Io3kNvSqvnZj8+OA==","signatures":[{"sig":"MEYCIQDIH+HT1KVN9IXS2oDMF9I8gxEIOW0SPd6J4iA5CzOn0AIhANUrWnWBwilQRWByIuViVDzBFJFKxpArMwPnDg5hjFqx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121172},"main":"dist/index.js","_from":"file:bernierllc-ai-provider-openai-1.0.2.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"_resolved":"/tmp/6bcac5fe202dba6ff6a84d6a2982c59d/bernierllc-ai-provider-openai-1.0.2.tgz","_integrity":"sha512-ORznxL/ao15/IzUMbk2r7ozxYtPDSNZ/xUPqMM9Qpta2KjSYQxae0VbEegRGUhuf5i0mS7Io3kNvSqvnZj8+OA==","bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"11.7.0","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"20.19.6","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"1.1.0","@bernierllc/retry-policy":"0.1.6","@bernierllc/ai-provider-core":"1.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.0.2_1766454377745_0.410663128887911","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@bernierllc/ai-provider-openai","version":"1.0.4","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.0.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"b405605b0a1672588d03363754591742a309c37b","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.0.4.tgz","fileCount":35,"integrity":"sha512-pVX+I31OfI2aRgr/hzCchaUMK+VSiPte1hRSXgN0mdlaN6HyLZualTdWzXUF52TuolQVtaDhdwMOmjzhcC/bGw==","signatures":[{"sig":"MEUCIAucUBOhOJlQuEbd0JGu55aUMAvMZRPIf/8z+uUIbc7LAiEAynkPlbHKtTZb+IDI+s43odAWdNE4rRaIYXj42yu+7T0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123226},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"20.19.6","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"1.3.0","@bernierllc/retry-policy":"0.3.0","@bernierllc/ai-provider-core":"1.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.0.4_1767642466714_0.8340565358481129","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@bernierllc/ai-provider-openai","version":"1.0.6","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.0.6","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"a572a58e8e9314585d01a927da25431439aba9a9","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.0.6.tgz","fileCount":35,"integrity":"sha512-L/coHXHGgmqakYMA7BDg5aI4ukbGMdBOF0tC2q6Ev4TtqGzoimVg66MRWQgXqxosR4+4C0ZUZXNPSFVSf45pjg==","signatures":[{"sig":"MEUCIEz7OdM/oK97xvW6DMeLI+w8Ivu3s4xfNZODa33FpfnWAiEAxz2lbaXEyM4KBQvp7ci47Nwtck1D5JxONRpECYNRc0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123612},"main":"dist/index.js","_from":"file:bernierllc-ai-provider-openai-1.0.6.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-provider-openai/bernierllc-ai-provider-openai-1.0.6.tgz","_integrity":"sha512-L/coHXHGgmqakYMA7BDg5aI4ukbGMdBOF0tC2q6Ev4TtqGzoimVg66MRWQgXqxosR4+4C0ZUZXNPSFVSf45pjg==","bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"11.11.0","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"20.20.0","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"1.3.2","@bernierllc/retry-policy":"0.3.2","@bernierllc/ai-provider-core":"1.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.0.6_1773163006056_0.6398876881982787","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@bernierllc/ai-provider-openai","version":"1.0.7","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.0.7","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"f4dd934e2e10e648f97ba3e9a40ab1844f690e79","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.0.7.tgz","fileCount":35,"integrity":"sha512-rrC7IqXIcrkpR1BaRwifl1DsbqF6DBk3hiTFuXKhtqTKUNTbxC9bteaHFVJ1qGnP4mt1/lXquJFqTs7xzvLliw==","signatures":[{"sig":"MEUCIBqtwNkaZfraGaDhwtA4/rtCOTuLU3LOdwHMN9cpFtsaAiEAojnVZyUDex9NnR5JESwQ/IU1x3i1Rc3e4qiXzDMXVR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123834},"main":"dist/index.js","_from":"file:bernierllc-ai-provider-openai-1.0.7.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-provider-openai/bernierllc-ai-provider-openai-1.0.7.tgz","_integrity":"sha512-rrC7IqXIcrkpR1BaRwifl1DsbqF6DBk3hiTFuXKhtqTKUNTbxC9bteaHFVJ1qGnP4mt1/lXquJFqTs7xzvLliw==","bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"11.14.1","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"20.20.2","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"1.4.0","@bernierllc/retry-policy":"0.4.0","@bernierllc/ai-provider-core":"1.2.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.0.7_1779133325756_0.5619529718496408","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@bernierllc/ai-provider-openai","version":"1.0.8","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.0.8","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"3f0a1f16cdb1d5d11e4a582dc96bdabe4e9f8dc8","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.0.8.tgz","fileCount":35,"integrity":"sha512-6w6XdSzWP9GCRyxVQHCEiOw1UKRM704UdT7Guz2Kyb+KMjLwQ3sCtFU6wXmzmKkuAS5w7kOp9bFkSfBju27RsQ==","signatures":[{"sig":"MEYCIQCXTQCPI6voFSZCmUhCu1FVJLBNQ1kpKnKrwHX8nMfuFQIhAItXXEiXlcJWaYWYz69HcPVQYzBT6Q3HGihQrzTO+hQu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124056},"main":"dist/index.js","_from":"file:bernierllc-ai-provider-openai-1.0.8.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-provider-openai/bernierllc-ai-provider-openai-1.0.8.tgz","_integrity":"sha512-6w6XdSzWP9GCRyxVQHCEiOw1UKRM704UdT7Guz2Kyb+KMjLwQ3sCtFU6wXmzmKkuAS5w7kOp9bFkSfBju27RsQ==","bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"11.14.1","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"20.20.2","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"1.4.2","@bernierllc/retry-policy":"0.5.1","@bernierllc/ai-provider-core":"1.2.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.0.8_1779157082186_0.13993726537998308","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@bernierllc/ai-provider-openai","version":"1.0.9","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.0.9","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"567aaadc69d4b9d33e5fa4507cf28e93b002c27f","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.0.9.tgz","fileCount":35,"integrity":"sha512-9Ohg+cpmgFaZdW3577OFFGa8ZyTT/4HvgH67Vqyyi/NeYYa2HvZKMwy3TrmnDTP/IaSvUkeS0VqDEN7zYT/0eQ==","signatures":[{"sig":"MEUCIDknxhvl0fWExuiuFSwPxFeOL9OOmRIUJsk3ziyoPtuHAiEA3WYU8osEphLmG4yr8JaW25mccfzN2G44UFQ5SNEacxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124278},"main":"dist/index.js","_from":"file:bernierllc-ai-provider-openai-1.0.9.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-provider-openai/bernierllc-ai-provider-openai-1.0.9.tgz","_integrity":"sha512-9Ohg+cpmgFaZdW3577OFFGa8ZyTT/4HvgH67Vqyyi/NeYYa2HvZKMwy3TrmnDTP/IaSvUkeS0VqDEN7zYT/0eQ==","bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"11.14.1","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"20.20.2","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"1.4.3","@bernierllc/retry-policy":"0.5.1","@bernierllc/ai-provider-core":"1.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.0.9_1779221179966_0.40747186700688665","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bernierllc/ai-provider-openai","version":"1.1.0","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.1.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"cff9e8563babbe990d767ca42ecd47d1cb8212a4","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.1.0.tgz","fileCount":35,"integrity":"sha512-kH6jBT74h8q4gYQMdIFa+uFRS1V/gQvlIIYaDfMLl4K1sNpMRDRtPLmFFdhYsIidnoxCH8HvWYJpBuioC6BXKw==","signatures":[{"sig":"MEQCIAuj+v/5oaMqL+M1H6cHp+k1xCyBly6PCRCgd04iCKdaAiBmM5Uyr58Uh2jSYmCtpPdT9IUCu1elWEDHc9wsFkj5cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124476},"main":"dist/index.js","_from":"file:bernierllc-ai-provider-openai-1.1.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-provider-openai/bernierllc-ai-provider-openai-1.1.0.tgz","_integrity":"sha512-kH6jBT74h8q4gYQMdIFa+uFRS1V/gQvlIIYaDfMLl4K1sNpMRDRtPLmFFdhYsIidnoxCH8HvWYJpBuioC6BXKw==","bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"11.14.1","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"20.20.2","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"1.6.0","@bernierllc/retry-policy":"0.6.0","@bernierllc/ai-provider-core":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.1.0_1779240901659_0.27445009385270325","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bernierllc/ai-provider-openai","version":"1.2.0","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/ai-provider-openai@1.2.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"0f921fbd2ea9a1ef302bbca0136f4c63e72ebbff","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.2.0.tgz","fileCount":35,"integrity":"sha512-pBmVQ8w+u0TlKqkWP11Fqdus7fAblrOybCAvSoVrpT3kxyeCuQ27GEQfDNmcJ3ZQOpDnndP6xIrjC8rdN3UHUw==","signatures":[{"sig":"MEQCIHiNs3CKaPzlf14gP2l/iMOVIFRN0Kn9OUPw5N582cUjAiBdMXsqCws/cVEifZKusVpcP/lF80XEFUxiCD1dcv9/zw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124675},"main":"dist/index.js","_from":"file:bernierllc-ai-provider-openai-1.2.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-provider-openai/bernierllc-ai-provider-openai-1.2.0.tgz","_integrity":"sha512-pBmVQ8w+u0TlKqkWP11Fqdus7fAblrOybCAvSoVrpT3kxyeCuQ27GEQfDNmcJ3ZQOpDnndP6xIrjC8rdN3UHUw==","bernierllc":{"tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"category":"core","integration":{"logger":"required","neverhub":"optional","docs-suite":"ready"}},"_npmVersion":"11.14.1","description":"OpenAI API adapter implementing the unified AI provider interface","directories":{},"_nodeVersion":"20.20.2","dependencies":{"openai":"^4.20.0","@bernierllc/logger":"1.7.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/ai-provider-core":"1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-provider-openai_1.2.0_1779249632692_0.8062891602411753","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@bernierllc/ai-provider-openai","version":"1.2.1","description":"OpenAI API adapter implementing the unified AI provider interface","main":"dist/index.js","types":"dist/index.d.ts","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","dependencies":{"openai":"^4.20.0","@bernierllc/ai-provider-core":"1.6.1","@bernierllc/logger":"1.7.1","@bernierllc/retry-policy":"0.7.0"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.50.0","jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"^5.3.0"},"bernierllc":{"category":"core","tags":["ai","openai","provider","gpt","embeddings","moderation","vision","function-calling"],"integration":{"neverhub":"optional","logger":"required","docs-suite":"ready"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","test":"jest --watch","test:run":"jest","test:coverage":"jest --coverage","lint":"eslint src --ext .ts","clean":"rm -rf dist"},"_id":"@bernierllc/ai-provider-openai@1.2.1","_integrity":"sha512-51GWBpjkIwR7rkN612ytUjStYYmQ+ufnTvVj5FwrjPClLH4i8hCaG3Mn7uZvviEWKd6RRgb6I+Mzk939WA836A==","_resolved":"/home/runner/work/tools/tools/packages/core/ai-provider-openai/bernierllc-ai-provider-openai-1.2.1.tgz","_from":"file:bernierllc-ai-provider-openai-1.2.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-51GWBpjkIwR7rkN612ytUjStYYmQ+ufnTvVj5FwrjPClLH4i8hCaG3Mn7uZvviEWKd6RRgb6I+Mzk939WA836A==","shasum":"aa04b19942b0f323ea10fe6271bb14cfa75dd4a9","tarball":"https://registry.npmjs.org/@bernierllc/ai-provider-openai/-/ai-provider-openai-1.2.1.tgz","fileCount":35,"unpackedSize":124774,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDF05GALFtt8H4fXaZEsgMT3za8kOJRpqV2N2z8Tv6rHwIgRww0MzrdL7eWArI++8JGAeh+LX7gUb4Nb6UFgglpn+U="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb18af5c-1e42-4fb1-a989-9b587a2c3567"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-provider-openai_1.2.1_1784015491517_0.5445931411859353"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-13T05:49:50.313Z","modified":"2026-07-14T07:51:31.824Z","1.0.0":"2025-10-13T05:49:50.618Z","1.0.1":"2025-12-22T21:08:40.011Z","1.0.2":"2025-12-23T01:46:17.887Z","1.0.4":"2026-01-05T19:47:46.874Z","1.0.6":"2026-03-10T17:16:46.203Z","1.0.7":"2026-05-18T19:42:05.951Z","1.0.8":"2026-05-19T02:18:02.336Z","1.0.9":"2026-05-19T20:06:20.136Z","1.1.0":"2026-05-20T01:35:01.798Z","1.2.0":"2026-05-20T04:00:32.831Z","1.2.1":"2026-07-14T07:51:31.678Z"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","keywords":["ai","openai","gpt","gpt-4","gpt-3.5","embeddings","moderation","vision","function-calling","provider"],"description":"OpenAI API adapter implementing the unified AI provider interface","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/ai-provider-openai\n\nOpenAI API adapter implementing the unified AI provider interface for seamless integration across BernierLLC projects.\n\n## Installation\n\n```bash\nnpm install @bernierllc/ai-provider-openai\n# or\npnpm add @bernierllc/ai-provider-openai\n```\n\n## Features\n\n- **Complete OpenAI API Support**: GPT-4, GPT-3.5, embeddings, moderation, vision\n- **Streaming Completions**: Real-time text generation with async generators\n- **Function Calling**: Support for OpenAI function calling capabilities\n- **Vision Analysis**: GPT-4 Vision for image understanding\n- **Cost Estimation**: Accurate token and cost estimation before requests\n- **Type Safety**: Full TypeScript support with strict typing\n- **Error Handling**: Comprehensive error handling with retry logic\n- **Health Monitoring**: API health checks and availability detection\n\n## Usage\n\n### Basic Completion\n\n```typescript\nimport { OpenAIProvider } from '@bernierllc/ai-provider-openai';\n\nconst provider = new OpenAIProvider({\n  providerName: 'openai',\n  apiKey: process.env.OPENAI_API_KEY!,\n  defaultModel: 'gpt-4-turbo',\n  timeout: 30000,\n  maxRetries: 3\n});\n\n// Generate completion\nconst response = await provider.complete({\n  messages: [\n    { role: 'system', content: 'You are a helpful assistant.' },\n    { role: 'user', content: 'Explain TypeScript generics in simple terms.' }\n  ],\n  maxTokens: 500,\n  temperature: 0.7\n});\n\nif (response.success) {\n  console.log(response.content);\n  console.log(`Tokens used: ${response.usage?.totalTokens}`);\n}\n```\n\n### Streaming Completion\n\n```typescript\nconsole.log('Generating response...\\n');\n\nfor await (const chunk of provider.streamComplete({\n  messages: [\n    { role: 'user', content: 'Write a short poem about coding' }\n  ]\n})) {\n  process.stdout.write(chunk.delta);\n\n  if (chunk.finishReason) {\n    console.log(`\\n\\nFinished: ${chunk.finishReason}`);\n    if (chunk.usage) {\n      console.log(`Tokens: ${chunk.usage.totalTokens}`);\n    }\n  }\n}\n```\n\n### Function Calling\n\n```typescript\nconst response = await provider.completionWithFunctions({\n  messages: [\n    { role: 'user', content: 'What is the weather in San Francisco?' }\n  ],\n  functions: [\n    {\n      name: 'get_weather',\n      description: 'Get the current weather for a location',\n      parameters: {\n        type: 'object',\n        properties: {\n          location: {\n            type: 'string',\n            description: 'The city and state, e.g. San Francisco, CA'\n          },\n          unit: {\n            type: 'string',\n            enum: ['celsius', 'fahrenheit']\n          }\n        },\n        required: ['location']\n      }\n    }\n  ]\n});\n\nif (response.metadata?.functionCall) {\n  console.log('Function call:', response.metadata.functionCall);\n  // { name: 'get_weather', arguments: '{\"location\":\"San Francisco, CA\"}' }\n}\n```\n\n### Vision Analysis\n\n```typescript\nconst analysis = await provider.analyzeImage(\n  'https://example.com/image.jpg',\n  'What objects do you see in this image?',\n  'gpt-4-vision-preview'\n);\n\nif (analysis.success) {\n  console.log(analysis.content);\n}\n```\n\n### Embeddings\n\n```typescript\nconst embeddings = await provider.generateEmbeddings({\n  input: [\n    'TypeScript is a typed superset of JavaScript',\n    'Python is a high-level programming language'\n  ],\n  model: 'text-embedding-3-small'\n});\n\nif (embeddings.success) {\n  console.log(`Generated ${embeddings.embeddings?.length} embeddings`);\n  console.log(`Dimensions: ${embeddings.embeddings?.[0].length}`);\n}\n```\n\n### Content Moderation\n\n```typescript\nconst moderation = await provider.moderate(\n  'Some content to check for policy violations'\n);\n\nif (moderation.success) {\n  console.log(`Flagged: ${moderation.flagged}`);\n  if (moderation.flagged) {\n    console.log('Violated categories:', moderation.categories);\n  }\n}\n```\n\n### Cost Estimation\n\n```typescript\nconst request = {\n  messages: [\n    { role: 'user', content: 'Write a detailed article about TypeScript' }\n  ],\n  maxTokens: 2000\n};\n\nconst cost = provider.estimateCost(request);\nconsole.log(`Estimated cost: $${cost.estimatedCostUSD.toFixed(4)}`);\nconsole.log(`Input tokens: ${cost.inputTokens}`);\nconsole.log(`Output tokens: ${cost.outputTokens}`);\n```\n\n## API\n\n### Constructor\n\n```typescript\nnew OpenAIProvider(config: OpenAIProviderConfig)\n```\n\nConfiguration options:\n\n- `providerName`: Must be `'openai'`\n- `apiKey`: OpenAI API key (required)\n- `defaultModel`: Default model to use (optional, defaults to 'gpt-4-turbo')\n- `organizationId`: OpenAI organization ID (optional)\n- `baseURL`: Custom API base URL (optional)\n- `timeout`: Request timeout in milliseconds (optional, default: 60000)\n- `maxRetries`: Maximum retry attempts (optional, default: 3)\n\n### Methods\n\n#### Core Methods (Implements AIProvider interface)\n\n- `complete(request: CompletionRequest): Promise<CompletionResponse>` - Generate text completion\n- `streamComplete(request: CompletionRequest): AsyncGenerator<StreamChunk>` - Stream completion chunks\n- `generateEmbeddings(request: EmbeddingRequest): Promise<EmbeddingResponse>` - Generate embeddings\n- `moderate(content: string): Promise<ModerationResponse>` - Check content moderation\n- `getAvailableModels(): Promise<ModelInfo[]>` - List available models\n- `checkHealth(): Promise<HealthStatus>` - Check API health\n- `estimateCost(request: CompletionRequest): CostEstimate` - Estimate request cost\n\n#### OpenAI-Specific Methods\n\n- `completionWithFunctions(request & { functions }): Promise<CompletionResponse>` - Chat completion with function calling\n- `analyzeImage(imageUrl: string, prompt: string, model?: string): Promise<CompletionResponse>` - Analyze image with GPT-4 Vision\n\n## Available Models\n\n### Chat Models\n\n- **gpt-4-turbo** - 128K context, latest GPT-4 with improved performance\n- **gpt-4** - 8K context, powerful reasoning and understanding\n- **gpt-4-32k** - 32K context, extended context window\n- **gpt-3.5-turbo** - 16K context, fast and cost-effective\n- **gpt-4-vision-preview** - GPT-4 with vision capabilities\n\n### Embedding Models\n\n- **text-embedding-3-small** - 1536 dimensions, cost-effective embeddings\n- **text-embedding-3-large** - 3072 dimensions, higher quality embeddings\n- **text-embedding-ada-002** - 1536 dimensions, legacy embedding model\n\n## Pricing\n\nPricing is automatically handled based on the model used:\n\n- **GPT-4 Turbo**: $0.01/1K input tokens, $0.03/1K output tokens\n- **GPT-4**: $0.03/1K input tokens, $0.06/1K output tokens\n- **GPT-3.5 Turbo**: $0.0005/1K input tokens, $0.0015/1K output tokens\n- **Embeddings (3-small)**: $0.00002/1K tokens\n- **Embeddings (3-large)**: $0.00013/1K tokens\n\n## Error Handling\n\nThe package provides comprehensive error handling:\n\n```typescript\ntry {\n  const response = await provider.complete({ messages: [...] });\n  if (!response.success) {\n    console.error('Error:', response.error);\n  }\n} catch (error) {\n  // Handles network errors, timeouts, etc.\n  console.error('Request failed:', error);\n}\n```\n\nError codes:\n- `INVALID_REQUEST` - Invalid request parameters\n- `AUTHENTICATION_ERROR` - Invalid API key\n- `PERMISSION_DENIED` - Insufficient permissions\n- `NOT_FOUND` - Model or resource not found\n- `RATE_LIMIT_ERROR` - Rate limit exceeded (retryable)\n- `SERVER_ERROR` - OpenAI server error (retryable)\n- `TIMEOUT_ERROR` - Request timeout (retryable)\n\n## Integration Status\n\n- **Logger**: Required - Uses @bernierllc/logger for operation logging\n- **Docs-Suite**: Ready - Full API documentation available\n- **NeverHub**: Optional - Service discovery and event publishing supported\n\n## Development\n\n```bash\n# Install dependencies\npnpm install\n\n# Build package\npnpm run build\n\n# Run tests\npnpm test\n\n# Run tests with coverage\npnpm run test:coverage\n\n# Lint code\npnpm run lint\n```\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n\nThis package is part of the BernierLLC tools monorepo and follows the unified AI provider interface pattern for seamless provider switching and integration.\n\n## See Also\n\n- [@bernierllc/ai-provider-core](../ai-provider-core) - Abstract AI provider interface\n- [@bernierllc/ai-provider-anthropic](../ai-provider-anthropic) - Anthropic Claude provider\n- [@bernierllc/ai-content-generator](../../service/ai-content-generator) - AI-powered content generation service\n","readmeFilename":"README.md"}