{"_id":"@aegis-runtime/adapters-openai","name":"@aegis-runtime/adapters-openai","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@aegis-runtime/adapters-openai","version":"1.0.0","description":"OpenAI provider adapter for Aegis Runtime with Chat Completions API support","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"keywords":["ai","llm","openai","adapter","governance","aegis"],"author":{"name":"Aegis Runtime Contributors"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TejasSathe010/Aegis-Runtime.git","directory":"packages/adapters-openai"},"engines":{"node":">=18.0.0"},"dependencies":{"@aegis-runtime/core":"^1.0.0"},"peerDependencies":{"@aegis-runtime/core":"^1.0.0"},"scripts":{"build":"tsc -p tsconfig.json","test":"node --test dist/**/*.test.js || true","clean":"rm -rf dist"},"devDependencies":{"typescript":"^5.6.3"},"gitHead":"e3c9dfe865db3dbe1d032da7715465e909e28273","_id":"@aegis-runtime/adapters-openai@1.0.0","bugs":{"url":"https://github.com/TejasSathe010/Aegis-Runtime/issues"},"homepage":"https://github.com/TejasSathe010/Aegis-Runtime#readme","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-4lzyUukYExizY9jP5hz7NG/kamiPUC9wIKkecl6Yl4QnhEyEtK3jcsbxq69SMvQY2qCSPiBR9iWxUMspwd2ygQ==","shasum":"29bd835a4c188a64e97c079c18493238adc8f2af","tarball":"https://registry.npmjs.org/@aegis-runtime/adapters-openai/-/adapters-openai-1.0.0.tgz","fileCount":14,"unpackedSize":16233,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA5evu7cQJtnMdrppdV7ovbihc4r2psM96sBr3NT81ZSAiAECpQ8MD4OPOfJBuoXhVBas93Ls1MpJI/6pqPQ9JUgnA=="}]},"_npmUser":{"name":"tejassathe117","email":"tejassathe010@gmail.com"},"directories":{},"maintainers":[{"name":"tejassathe117","email":"tejassathe010@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adapters-openai_1.0.0_1768095125375_0.26504262892472097"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-11T01:32:05.297Z","1.0.0":"2026-01-11T01:32:05.525Z","modified":"2026-01-11T01:32:05.831Z"},"maintainers":[{"name":"tejassathe117","email":"tejassathe010@gmail.com"}],"description":"OpenAI provider adapter for Aegis Runtime with Chat Completions API support","homepage":"https://github.com/TejasSathe010/Aegis-Runtime#readme","keywords":["ai","llm","openai","adapter","governance","aegis"],"repository":{"type":"git","url":"git+https://github.com/TejasSathe010/Aegis-Runtime.git","directory":"packages/adapters-openai"},"author":{"name":"Aegis Runtime Contributors"},"bugs":{"url":"https://github.com/TejasSathe010/Aegis-Runtime/issues"},"license":"MIT","readme":"# @aegis/adapters-openai\n\nOpenAI provider adapter for Aegis Runtime with Chat Completions API support, including streaming capabilities.\n\n## Installation\n\n```bash\nnpm install @aegis/adapters-openai @aegis/core\n# or\npnpm add @aegis/adapters-openai @aegis/core\n```\n\n## Features\n\n- OpenAI Chat Completions API integration\n- Server-Sent Events (SSE) streaming support\n- Usage tracking and tap integration\n- Automatic token estimation\n- Budget-aware request handling\n\n## Quick Start\n\n```typescript\nimport { openaiChatCompletionsViaGate } from \"@aegis/adapters-openai\";\nimport { Gate } from \"@aegis/core\";\n\nconst response = await openaiChatCompletionsViaGate({\n  gate: yourGateInstance,\n  tenantId: \"tenant_1\",\n  runId: \"run_123\",\n  requestId: crypto.randomUUID(),\n  env: {\n    apiKey: process.env.OPENAI_API_KEY!,\n    baseUrl: \"https://api.openai.com\" // optional, defaults to OpenAI\n  },\n  body: {\n    model: \"gpt-4o-mini\",\n    messages: [\n      { role: \"user\", content: \"Hello!\" }\n    ],\n    stream: false // or true for streaming\n  }\n});\n```\n\n## API Reference\n\n### `openaiChatCompletionsViaGate`\n\nMain function to make OpenAI Chat Completions requests through the Aegis Gate.\n\n```typescript\nfunction openaiChatCompletionsViaGate(args: {\n  gate: Gate;\n  tenantId: string;\n  runId: string;\n  requestId: string;\n  env: OpenAIEnv;\n  body: OpenAIChatCompletionsRequest;\n}): Promise<Response>;\n```\n\n### `tapSseForUsage`\n\nTap Server-Sent Events stream to extract usage information for budget tracking.\n\n```typescript\nfunction tapSseForUsage(\n  reader: ReadableStreamDefaultReader<Uint8Array>,\n  onUsage: (usage: Usage) => void\n): ReadableStream<Uint8Array>;\n```\n\n## Streaming Support\n\nThe adapter fully supports OpenAI's streaming responses with automatic usage extraction:\n\n```typescript\nconst response = await openaiChatCompletionsViaGate({\n  // ... other args\n  body: {\n    model: \"gpt-4o-mini\",\n    messages: [{ role: \"user\", content: \"Hello!\" }],\n    stream: true,\n    stream_options: { include_usage: true } // Recommended for accurate usage tracking\n  }\n});\n\n// Response body is a ReadableStream\nconst reader = response.body!.getReader();\n// ... consume stream\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-46ff73f283cf2cbde3eda1d3c9b78514"}