{"_id":"@avanor/sdk-openai","_rev":"6-18b55b921f9759da07e21d43f3888735","name":"@avanor/sdk-openai","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@avanor/sdk-openai","version":"0.1.0","keywords":["openai","anthropic","llm","governance","observability","agents"],"license":"SEE LICENSE IN LICENSE","_id":"@avanor/sdk-openai@0.1.0","maintainers":[{"name":"avanorceo","email":"logan@avanor.ai"}],"dist":{"shasum":"f97e0b1881ea809377106abda2a4c01a59d65748","tarball":"https://registry.npmjs.org/@avanor/sdk-openai/-/sdk-openai-0.1.0.tgz","fileCount":10,"integrity":"sha512-LbNIXclzbf6fpnJ6la21tbBS3yu6Rw7knFgHsI911+Vm9WezxrWzSa62nO/b37hVaO8hdOfCDjlkrgVyZTL37g==","signatures":[{"sig":"MEQCIFdHD0LFXPdBZ5PCMZCixZFPwfPwUMAeaSi93Krs9NrvAiBTiHsQY4xC0onR1BFmaEdkAACq3uKDiwv1z039zIeBsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43215},"main":"./dist/index.cjs","type":"module","_from":"file:avanor-sdk-openai-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"avanorceo","email":"logan@avanor.ai"},"_resolved":"/tmp/cb79ff87698c48b1851c6e778ae416c5/avanor-sdk-openai-0.1.0.tgz","_integrity":"sha512-LbNIXclzbf6fpnJ6la21tbBS3yu6Rw7knFgHsI911+Vm9WezxrWzSa62nO/b37hVaO8hdOfCDjlkrgVyZTL37g==","deprecated":"depends on @avanor/sdk@0.1.0 which has known bugs — install @avanor/sdk-openai@^0.1.1","_npmVersion":"10.8.2","description":"Avanor SDK — OpenAI + Anthropic auto-instrumentation","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@avanor/sdk":"0.1.0"},"avanorIpClass":"background_perpetual_embedded","productBucket":"core","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","openai":"^6.38.0","vitest":"^4.0.0","typescript":"^5.8.2","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.97.1","@opentelemetry/api":"^1.9.1","@vitest/coverage-v8":"^4.0.0","@opentelemetry/sdk-trace-base":"^1.30.0"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0 || ^6.0.0","@anthropic-ai/sdk":"^0.30.0 || ^1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk-openai_0.1.0_1779340481205_0.7986336921500716","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@avanor/sdk-openai","version":"0.1.1","keywords":["openai","anthropic","llm","governance","observability","agents"],"license":"SEE LICENSE IN LICENSE","_id":"@avanor/sdk-openai@0.1.1","maintainers":[{"name":"avanorceo","email":"logan@avanor.ai"}],"dist":{"shasum":"b2ce70565a381af8f4d356f76127256eb4421e8f","tarball":"https://registry.npmjs.org/@avanor/sdk-openai/-/sdk-openai-0.1.1.tgz","fileCount":10,"integrity":"sha512-6YL49/Z6fH5WeFMw/6PQ/34tiLEslh/VC2o8EPBYE8k1b3dDeiwguC/pXmBK0GUBw3CoWXHODpsgjYvPHDvGmA==","signatures":[{"sig":"MEYCIQDS2P88+oo7wY4na8EYWLNQcX46IApRxGjNgEk5x5i9OwIhAMIXiKzTTwP+Wn4z30SeyJqwCBJgUdU+LkDJpO207ZNY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45446},"main":"./dist/index.cjs","type":"module","_from":"file:avanor-sdk-openai-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"avanorceo","email":"logan@avanor.ai"},"_resolved":"/tmp/04fe4073512339fba8636d6d41842212/avanor-sdk-openai-0.1.1.tgz","_integrity":"sha512-6YL49/Z6fH5WeFMw/6PQ/34tiLEslh/VC2o8EPBYE8k1b3dDeiwguC/pXmBK0GUBw3CoWXHODpsgjYvPHDvGmA==","deprecated":"depends on @avanor/sdk@0.1.1 — install @avanor/sdk-openai@^0.1.2","_npmVersion":"10.8.2","description":"Avanor SDK — OpenAI + Anthropic auto-instrumentation","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@avanor/sdk":"0.1.1"},"avanorIpClass":"background_perpetual_embedded","productBucket":"core","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","openai":"^6.38.0","vitest":"^4.0.0","typescript":"^5.8.2","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.97.1","@opentelemetry/api":"^1.9.1","@vitest/coverage-v8":"^4.0.0","@opentelemetry/sdk-trace-base":"^1.30.0"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0 || ^6.0.0","@anthropic-ai/sdk":"^0.30.0 || ^1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk-openai_0.1.1_1779344263710_0.14993500632961165","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@avanor/sdk-openai","version":"0.1.2","keywords":["openai","anthropic","llm","governance","observability","agents"],"license":"SEE LICENSE IN LICENSE","_id":"@avanor/sdk-openai@0.1.2","maintainers":[{"name":"avanorceo","email":"logan@avanor.ai"}],"dist":{"shasum":"8f6653b47e9849b595553f7f3b53680c89e30674","tarball":"https://registry.npmjs.org/@avanor/sdk-openai/-/sdk-openai-0.1.2.tgz","fileCount":10,"integrity":"sha512-3DTQ1DYln4fEngf2KKDtAObyF2IQOUA5FyYjlN5nxqpwtM7WoDAt3KzTGarguRO2gznE9TLaN/TdCpCyu921IQ==","signatures":[{"sig":"MEYCIQDGyrpfWxWAjEygJkhsNlTat7lNa92GBxeBfi0Ft9LNxwIhAIz5ls0myrBJfNdClteYUUlJmJk08wgfO04PJXQZTAlC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45558},"main":"./dist/index.cjs","type":"module","_from":"file:avanor-sdk-openai-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"avanorceo","email":"logan@avanor.ai"},"_resolved":"/tmp/c97ae7f2c54807ad261a632b5732354d/avanor-sdk-openai-0.1.2.tgz","_integrity":"sha512-3DTQ1DYln4fEngf2KKDtAObyF2IQOUA5FyYjlN5nxqpwtM7WoDAt3KzTGarguRO2gznE9TLaN/TdCpCyu921IQ==","_npmVersion":"10.8.2","description":"Avanor SDK — OpenAI + Anthropic auto-instrumentation","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@avanor/sdk":"0.1.2"},"avanorIpClass":"background_perpetual_embedded","productBucket":"core","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","openai":"^6.38.0","vitest":"^4.0.0","typescript":"^5.8.2","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.97.1","@opentelemetry/api":"^1.9.1","@vitest/coverage-v8":"^4.0.0","@opentelemetry/sdk-trace-base":"^1.30.0"},"peerDependencies":{"openai":"^4.0.0 || ^5.0.0 || ^6.0.0","@anthropic-ai/sdk":"^0.30.0 || ^1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk-openai_0.1.2_1779375977256_0.12419899955577063","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@avanor/sdk-openai","version":"0.1.3","description":"Avanor SDK — OpenAI + Anthropic auto-instrumentation","type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"engines":{"node":">=20"},"license":"SEE LICENSE IN LICENSE","avanorIpClass":"background_perpetual_embedded","productBucket":"core","publishConfig":{"access":"public"},"sideEffects":false,"dependencies":{"@avanor/sdk":"0.3.0"},"peerDependencies":{"@anthropic-ai/sdk":"^0.30.0 || ^1.0.0","openai":"^4.0.0 || ^5.0.0 || ^6.0.0"},"peerDependenciesMeta":{"@anthropic-ai/sdk":{"optional":true},"openai":{"optional":true}},"devDependencies":{"@anthropic-ai/sdk":"^0.97.1","@opentelemetry/api":"^1.9.1","@opentelemetry/sdk-trace-base":"^1.30.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.0.0","openai":"^6.38.0","tsup":"^8.3.0","typescript":"^5.8.2","vitest":"^4.0.0"},"keywords":["openai","anthropic","llm","governance","observability","agents"],"scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","coverage":"vitest run --coverage","typecheck":"tsc --noEmit"},"_id":"@avanor/sdk-openai@0.1.3","_integrity":"sha512-6nVsq3nZUQKyPAhlGFWCvWU8nITvtneDd8EDREW0D2kjSBrdIqKV3G6foVONMkbOaMFkVbuy7rOv08DVN1e86Q==","_resolved":"/tmp/b9b0f6e8a7c0f6260ca92faf8dc5a180/avanor-sdk-openai-0.1.3.tgz","_from":"file:avanor-sdk-openai-0.1.3.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-6nVsq3nZUQKyPAhlGFWCvWU8nITvtneDd8EDREW0D2kjSBrdIqKV3G6foVONMkbOaMFkVbuy7rOv08DVN1e86Q==","shasum":"6481204ad67dfa84426f89aae540ccebc0dd2731","tarball":"https://registry.npmjs.org/@avanor/sdk-openai/-/sdk-openai-0.1.3.tgz","fileCount":10,"unpackedSize":46600,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC2Rl3jKqlzV1dCElzNUatCEX9ZVgGbjcieLEPvjoEQXAiEAqxUaJxQ93caAZAjt+DglMsgw7OEi9VENsynQBYNGwDI="}]},"_npmUser":{"name":"avanorceo","email":"logan@avanor.ai"},"directories":{},"maintainers":[{"name":"avanorceo","email":"logan@avanor.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk-openai_0.1.3_1785614244026_0.24216938821442446"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T05:14:41.038Z","modified":"2026-08-01T19:57:24.346Z","0.1.0":"2026-05-21T05:14:41.405Z","0.1.1":"2026-05-21T06:17:43.844Z","0.1.2":"2026-05-21T15:06:17.418Z","0.1.3":"2026-08-01T19:57:24.176Z"},"license":"SEE LICENSE IN LICENSE","keywords":["openai","anthropic","llm","governance","observability","agents"],"description":"Avanor SDK — OpenAI + Anthropic auto-instrumentation","maintainers":[{"name":"avanorceo","email":"logan@avanor.ai"}],"readme":"# @avanor/sdk-openai\n\n> Avanor SDK — OpenAI + Anthropic auto-instrumentation.\n\nMonkey-patches your OpenAI or Anthropic client in place so every LLM call\nemits an `llm.call` span with OTel GenAI semconv attributes (`gen_ai.*`).\n\n## Install\n\n```bash\nnpm install @avanor/sdk @avanor/sdk-openai\n```\n\nAdd `openai` or `@anthropic-ai/sdk` to your dependencies if they aren't already.\n\n## OpenAI quickstart\n\n```ts\nimport OpenAI from 'openai';\nimport { Avanor } from '@avanor/sdk';\nimport { instrumentOpenAI } from '@avanor/sdk-openai';\n\nAvanor.init({\n  apiKey: process.env.AVANOR_API_KEY!,\n  environment: process.env.NODE_ENV ?? 'dev',\n  service: 'broker-portal',\n});\n\nconst openai = instrumentOpenAI(new OpenAI());\n// use as normal — every chat.completions.create call is instrumented\nconst result = await openai.chat.completions.create({\n  model: 'gpt-4o',\n  messages: [{ role: 'user', content: 'Hi' }],\n});\n```\n\n## Anthropic quickstart\n\n```ts\nimport Anthropic from '@anthropic-ai/sdk';\nimport { Avanor } from '@avanor/sdk';\nimport { instrumentAnthropic } from '@avanor/sdk-openai';\n\nAvanor.init({ /* ... */ });\n\nconst anthropic = instrumentAnthropic(new Anthropic());\nconst result = await anthropic.messages.create({\n  model: 'claude-opus-4-7',\n  max_tokens: 1024,\n  messages: [{ role: 'user', content: 'Hi' }],\n});\n```\n\n## Attributes captured per call\n\n| Attribute | Value |\n|---|---|\n| `gen_ai.provider.name` | `'openai'` or `'anthropic'` |\n| `gen_ai.operation.name` | `'chat.completions.create'`, `'messages.create'`, etc. |\n| `gen_ai.request.model` | The model arg (e.g., `'gpt-4o'`) |\n| `gen_ai.usage.input_tokens` | From the response usage field |\n| `gen_ai.usage.output_tokens` | From the response usage field |\n| `gen_ai.response.id` | The provider's response id |\n\n## Zero false-positive guarantee\n\nThe monkey-patch is OBSERVATION ONLY. The wrapped method returns the exact\nsame value as the original — no wrapping, no transformation, no extra fields.\nYour downstream code does not care that the SDK is in the loop.\n\n## Docs\n\n<https://www.avanor.ai/docs/sdk/recipes/express-openai>\n\n## License\n\nAvanor Source License v1 (BSL-modeled, 4-year Apache 2.0 sunset) — see\n[LICENSE](./LICENSE).\n","readmeFilename":"README.md"}