{"_id":"@atisse/provider-openai","_rev":"3-f63750f8da4df70a53ef3f7d193f0b23","name":"@atisse/provider-openai","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@atisse/provider-openai","version":"1.0.0","_id":"@atisse/provider-openai@1.0.0","maintainers":[{"name":"softendo","email":"kadirkaradas5@gmail.com"}],"dist":{"shasum":"c144291649c7ad695457b168be9b5056488a060f","tarball":"https://registry.npmjs.org/@atisse/provider-openai/-/provider-openai-1.0.0.tgz","fileCount":5,"integrity":"sha512-ucGd1JRaxMS12FVgeNl/cFHEAR/0uM592xPRcix7n3jFL4zuZF1nNQ33x92cGOLkzBClEvmw2kqgbkHUY5DcOQ==","signatures":[{"sig":"MEYCIQCTRxrelphcOPxX8T/V3nxP9RlHcrc+9X967hHCrzL0MQIhAPth6bHVy9Tyx4JCeujozzQBUcz6RGKbjUo3BafKK/z5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27203},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"766fc1f9364cd3ca6750ca4c1dc4110f5b613b73","scripts":{"lint":"eslint src/","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"softendo","email":"kadirkaradas5@gmail.com"},"_npmVersion":"11.17.0","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"packageManager":"pnpm@11.5.0","peerDependencies":{"openai":"^6.39.1","@atisse/core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_1.0.0_1781528308297_0.8146285132012943","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@atisse/provider-openai","version":"1.0.1","keywords":["llm","ai","openai","gpt","provider","adapter","typescript","orchestration"],"author":"Abdulkadir Karadas(saferias)","license":"MIT","_id":"@atisse/provider-openai@1.0.1","maintainers":[{"name":"softendo","email":"kadirkaradas5@gmail.com"}],"homepage":"https://github.com/abdulkadirkaradas/atisse#readme","bugs":{"url":"https://github.com/abdulkadirkaradas/atisse/issues"},"dist":{"shasum":"e6b375ae826a29c0a35847e4a4f3211f0823b723","tarball":"https://registry.npmjs.org/@atisse/provider-openai/-/provider-openai-1.0.1.tgz","fileCount":7,"integrity":"sha512-aZe4w5gWsFYRR5eq0PEpTrXOm+K2W/O5zxf1gJTOmmEVR+GT8do2CxSfvBRZnWmyfgil6olAScj4JRvNl30/Nw==","signatures":[{"sig":"MEUCIQCd/CBpX1a/2gvVO3gy+IPEHW0FELdVo/OX1mg9rcoKyQIgUTxqh7upcWoPgv9sAvAUllyLA5mhdSUx8pc5MAiGmPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34055},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint src/","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"softendo","email":"kadirkaradas5@gmail.com"},"repository":{"url":"git+https://github.com/abdulkadirkaradas/atisse.git","type":"git","directory":"packages/provider-openai"},"directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"peerDependencies":{"openai":"^6.39.1","@atisse/core":"1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_1.0.1_1781790866779_0.4768911374623086","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@atisse/provider-openai","version":"1.0.2","engines":{"node":">=24"},"type":"module","license":"MIT","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts","require":"./dist/index.cjs"}},"author":"Abdulkadir Karadas(saferias)","repository":{"type":"git","url":"git+https://github.com/abdulkadirkaradas/atisse.git","directory":"packages/provider-openai"},"bugs":{"url":"https://github.com/abdulkadirkaradas/atisse/issues"},"homepage":"https://github.com/abdulkadirkaradas/atisse#readme","keywords":["llm","ai","openai","gpt","provider","adapter","typescript","orchestration"],"peerDependencies":{"openai":"^7.15.0","@atisse/core":"1.1.0"},"scripts":{"typecheck":"tsc --noEmit","lint":"eslint src/","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","build":"tsup"},"_nodeVersion":"24.19.0","_id":"@atisse/provider-openai@1.0.2","dist":{"integrity":"sha512-oibDacb5KQZc/71AgDoECch2qupaHvMwlqFPQFaMHAXydxrAsFtxeI9TgQTf1BkvvbxQ7l0xNpkFoF1lAB3O8Q==","shasum":"35beb122c807a6e81f9073d39fe86c64316ae98b","tarball":"https://registry.npmjs.org/@atisse/provider-openai/-/provider-openai-1.0.2.tgz","fileCount":7,"unpackedSize":34055,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCABrNweXPv/wQC04V1v76qDIGQqIbWahPdNNxC1x3K9QIhALl9GzqYS5eRqMEXVq/K6vOWv4a4iR7bCw57eZVql1HK"}]},"_npmUser":{"name":"softendo","email":"kadirkaradas5@gmail.com"},"directories":{},"maintainers":[{"name":"softendo","email":"kadirkaradas5@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/provider-openai_1.0.2_1789407386727_0.3527938387154863"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-15T12:58:28.179Z","modified":"2026-09-14T17:36:27.101Z","1.0.0":"2026-06-15T12:58:28.454Z","1.0.1":"2026-06-18T13:54:26.916Z","1.0.2":"2026-09-14T17:36:26.907Z"},"bugs":{"url":"https://github.com/abdulkadirkaradas/atisse/issues"},"author":"Abdulkadir Karadas(saferias)","license":"MIT","homepage":"https://github.com/abdulkadirkaradas/atisse#readme","keywords":["llm","ai","openai","gpt","provider","adapter","typescript","orchestration"],"repository":{"type":"git","url":"git+https://github.com/abdulkadirkaradas/atisse.git","directory":"packages/provider-openai"},"maintainers":[{"name":"softendo","email":"kadirkaradas5@gmail.com"}],"readme":"# @atisse/provider-openai\n\n[![npm version](https://img.shields.io/npm/v/@atisse/provider-openai.svg)](https://www.npmjs.com/package/@atisse/provider-openai)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](../../LICENSE)\n\nAn OpenAI GPT provider adapter for `@atisse/core`. Implements the `AIProvider` interface to connect the orchestrator pipeline to OpenAI's GPT models, including GPT-4o.\n\n## Features\n\n- Full support for OpenAI GPT models via the Chat Completions API\n- Streaming via `generateStream()` with per-character text deltas and tool call accumulation\n- Tool calling with automatic function argument JSON parsing\n- Vision support via image URL content\n- 128K context window on supported models\n- Automatic error mapping to `@atisse/core` error types (rate limit, auth, timeout, unavailable)\n- Provider options passthrough with reserved key validation\n- AbortSignal support for cancellation\n\n## Installation\n\n```bash\nnpm install @atisse/provider-openai\n# or\npnpm add @atisse/provider-openai\n```\n\n> `@atisse/core` and `openai@^6.39.1` are peer dependencies. Install them alongside this package.\n\n## Quick Start\n\n```typescript\nimport { Orchestrator } from '@atisse/core';\nimport { OpenAIProvider } from '@atisse/provider-openai';\n\nconst provider = new OpenAIProvider({\n  apiKey: process.env.OPENAI_API_KEY,\n  model: 'gpt-4o',\n});\n\nconst orchestrator = new Orchestrator({\n  provider,\n  systemPrompt: 'You are a helpful assistant.',\n});\n\nconst result = await orchestrator.run({\n  prompt: 'What is the meaning of life?',\n});\n\nconsole.log(result.text);\n```\n\n### With streaming\n\n```typescript\nconst stream = await orchestrator.run({\n  prompt: 'Tell me a joke.',\n  stream: true,\n});\n\nfor await (const chunk of stream) {\n  if (chunk.type === 'text') {\n    process.stdout.write(chunk.delta);\n  }\n}\n```\n\n### With tools\n\n```typescript\nconst orchestrator = new Orchestrator({\n  provider: new OpenAIProvider({\n    apiKey: process.env.OPENAI_API_KEY,\n  }),\n  tools: [\n    {\n      name: 'search_web',\n      description: 'Search the web for information',\n      inputSchema: {\n        type: 'object',\n        properties: {\n          query: { type: 'string' },\n        },\n        required: ['query'],\n      },\n      async execute(input: { query: string }) {\n        return { results: [`Result for ${input.query}`] };\n      },\n    },\n  ],\n});\n\nconst result = await orchestrator.run({\n  prompt: 'Search for latest news about AI.',\n});\n```\n\n## API Reference\n\n`@atisse/provider-openai` package exports the following types and classes:\n\n<details>\n<summary>Click to expand</summary>\n\n### `OpenAIProvider`\n\nImplements `AIProvider` from `@atisse/core`.\n\n**Constructor**\n\n```typescript\nnew OpenAIProvider(config: OpenAIProviderConfig)\n```\n\n**`OpenAIProviderConfig` fields**\n\n| Field     | Type     | Default  | Description                                                          |\n| --------- | -------- | -------- | -------------------------------------------------------------------- |\n| `apiKey`  | `string` | —        | OpenAI API key (required)                                            |\n| `model`   | `string` | `gpt-4o` | GPT model identifier                                                 |\n| `baseURL` | `string` | —        | Custom API base URL (optional, supports OpenAI-compatible endpoints) |\n\n**Capabilities**\n\n| Property           | Value     |\n| ------------------ | --------- |\n| `streaming`        | `true`    |\n| `toolCalling`      | `true`    |\n| `vision`           | `true`    |\n| `maxContextTokens` | `128_000` |\n\n**Methods**\n\n| Method           | Signature                                                         | Description                                                                                           |\n| ---------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |\n| `generate`       | `(request: PromptRequest) => Promise<PromptResponse>`             | Non-streaming completion. Maps messages, tools, and options into an OpenAI Chat Completions API call. |\n| `generateStream` | `(request: PromptRequest) => Promise<AsyncIterable<StreamChunk>>` | Streaming completion. Yields `text`, `tool_call`, and `done` chunks.                                  |\n\n**Error mapping**\n\n| HTTP Status | Core Error                 | Retryable |\n| ----------- | -------------------------- | --------- |\n| 429         | `ProviderRateLimitError`   | Yes       |\n| 401, 403    | `ProviderAuthError`        | No        |\n| 408         | `ProviderTimeoutError`     | Yes       |\n| 500+        | `ProviderUnavailableError` | Yes       |\n\n</details>\n\n## Monorepo Ecosystem\n\n`@atisse/*` packages are part of the [atisse](https://github.com/abdulkadirkaradas/atisse) monorepo.\n\n- **[@atisse/core](../core)** — Execution kernel (required peer dependency)\n- **[@atisse/context-rag](../context-rag)** — RAG context provider\n- **[@atisse/memory-inmemory](../memory-inmemory)** — In-memory memory adapter\n- **[@atisse/memory-redis](../memory-redis)** — Redis memory adapter\n- **[@atisse/provider-anthropic](../provider-anthropic)** — Anthropic Claude provider\n\n## License\n\nMIT © [Abdulkadir Karadas(saferias)](https://github.com/abdulkadirkaradas)\n","readmeFilename":""}