{"_id":"@dysporium-sdk/openai","_rev":"7-47602514363b2ebf550acbc5404d7107","name":"@dysporium-sdk/openai","dist-tags":{"latest":"3.0.0"},"versions":{"0.1.0":{"name":"@dysporium-sdk/openai","version":"0.1.0","keywords":["ai","sdk","openai","gpt","gpt-4","chatgpt","llm"],"license":"MIT","_id":"@dysporium-sdk/openai@0.1.0","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/dysporium/dysporium-sdk#readme","bugs":{"url":"https://github.com/dysporium/dysporium-sdk/issues"},"dist":{"shasum":"bea896dd7dd1f00c3034cf139c6bff7bc0461d2d","tarball":"https://registry.npmjs.org/@dysporium-sdk/openai/-/openai-0.1.0.tgz","fileCount":5,"integrity":"sha512-9ZX0iYSUxT7DjVVL2UdFCcd0ykuWBVCioj8T+ag2sUymDzLULs/ECrsqFQGTj1uRiqLFHasmBx+RWlqPVqWwLQ==","signatures":[{"sig":"MEUCIEzEplkghVYPg6fkLT+Fgf8w+cNH/ypCFil25Iucl9KNAiEAmrgyKW9k+L2K2byChMYWp0Ief8cMpTBJQhQdTyMnyFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76629},"main":"./dist/index.js","type":"module","_from":"file:dysporium-sdk-openai-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\eaf21a4dc64eca077b998e448a69b974\\dysporium-sdk-openai-0.1.0.tgz","_integrity":"sha512-9ZX0iYSUxT7DjVVL2UdFCcd0ykuWBVCioj8T+ag2sUymDzLULs/ECrsqFQGTj1uRiqLFHasmBx+RWlqPVqWwLQ==","repository":{"url":"git+https://github.com/dysporium/dysporium-sdk.git","type":"git","directory":"packages/openai"},"_npmVersion":"11.1.0","description":"OpenAI provider for Dysporium SDK","directories":{},"_nodeVersion":"20.18.2","dependencies":{"zod":"^3.22.4","@dysporium-sdk/provider":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openai_0.1.0_1764935755712_0.6312637085006214","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dysporium-sdk/openai","version":"0.1.1","keywords":["ai","sdk","openai","gpt","gpt-4","chatgpt","llm"],"license":"MIT","_id":"@dysporium-sdk/openai@0.1.1","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/dysporium/dysporium-sdk#readme","bugs":{"url":"https://github.com/dysporium/dysporium-sdk/issues"},"dist":{"shasum":"1f3009755312fb5016b7df636156cbfd29b2c947","tarball":"https://registry.npmjs.org/@dysporium-sdk/openai/-/openai-0.1.1.tgz","fileCount":5,"integrity":"sha512-/c+w1OOKNWliN5RwqtTfMPis7Nax5+OjH9TYekA9MYd/BrI5rBj2u8VaXM/Cxccu8Qh0eq1afhL9NoEynvUBEA==","signatures":[{"sig":"MEUCIBOOmZOfyXlEEv+v6wFLZLmRFmeyVN/RDO6vAxFZBHyiAiEAku01CynJpjmjzXG5z1q0pSXan+lgBE5XwmMzEslqiiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77379},"main":"./dist/index.js","type":"module","_from":"file:dysporium-sdk-openai-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\b6aa7a73784fa20c6e1b01d9673f913e\\dysporium-sdk-openai-0.1.1.tgz","_integrity":"sha512-/c+w1OOKNWliN5RwqtTfMPis7Nax5+OjH9TYekA9MYd/BrI5rBj2u8VaXM/Cxccu8Qh0eq1afhL9NoEynvUBEA==","repository":{"url":"git+https://github.com/dysporium/dysporium-sdk.git","type":"git","directory":"packages/openai"},"_npmVersion":"11.1.0","description":"OpenAI provider for Dysporium SDK","directories":{},"_nodeVersion":"20.18.2","dependencies":{"zod":"^3.22.4","@dysporium-sdk/core":"0.1.0","@dysporium-sdk/provider":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openai_0.1.1_1764937280270_0.6855983035525943","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dysporium-sdk/openai","version":"0.1.2","keywords":["ai","sdk","openai","gpt","gpt-4","chatgpt","llm"],"license":"MIT","_id":"@dysporium-sdk/openai@0.1.2","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"dist":{"shasum":"aaf8a31003ee3462b45c488249aa25dc01a68012","tarball":"https://registry.npmjs.org/@dysporium-sdk/openai/-/openai-0.1.2.tgz","fileCount":4,"integrity":"sha512-/jkrsWLM3XerxlOm8lZDHg497TbzZTGRU6qG04srBdNCfv6dUovQxmaNLBy2u16UYjEIyRQ2jGAx8XaCukwRlw==","signatures":[{"sig":"MEUCIBkmcVer7XBqIGPHxlZiEdWhqLB0bdvoWsN7Lub/TgR9AiEA8eZhNf4HIzEnywe8ZcC1+nEjA2ycq9t8lrly95py6is=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76356},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d030b8f349e279b4c6a9f0debba28701a554bb8e","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"repository":{"url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","type":"git","directory":"packages/openai"},"_npmVersion":"11.1.0","description":"OpenAI provider for Dysporium SDK","directories":{},"_nodeVersion":"20.18.2","dependencies":{"zod":"^3.22.4","@dysporium-sdk/core":"workspace:*","@dysporium-sdk/provider":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openai_0.1.2_1765275345278_0.19863348876254205","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@dysporium-sdk/openai","version":"1.0.0","keywords":["ai","sdk","openai","gpt","gpt-4","chatgpt","llm"],"license":"MIT","_id":"@dysporium-sdk/openai@1.0.0","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"dist":{"shasum":"84e5d27bea782a757bc5974a570710653b156600","tarball":"https://registry.npmjs.org/@dysporium-sdk/openai/-/openai-1.0.0.tgz","fileCount":6,"integrity":"sha512-+kKUhVs9eUdg555K0s4TSOzAVfGJmjpiQKTFP0beWGaMG7l2dU0Z0/pCfGfV1VLY00Rh6zh9GyfmGGJG0vCZmw==","signatures":[{"sig":"MEQCIHK3RvJSKrSCCRgQOmPaWCX5hGHhPtOq1oD1fhhJSkEfAiAq8sbtgF5pLKf4A8Bl3O+wtfBE3jelROyU5mJ9RVqs3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81422},"main":"./dist/index.js","type":"module","_from":"file:dysporium-sdk-openai-1.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\69bafa309b75c8d9f7510f94210c1276\\dysporium-sdk-openai-1.0.0.tgz","_integrity":"sha512-+kKUhVs9eUdg555K0s4TSOzAVfGJmjpiQKTFP0beWGaMG7l2dU0Z0/pCfGfV1VLY00Rh6zh9GyfmGGJG0vCZmw==","repository":{"url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","type":"git","directory":"packages/openai"},"_npmVersion":"11.1.0","description":"OpenAI provider for Dysporium SDK","directories":{},"_nodeVersion":"20.18.2","dependencies":{"zod":"^3.22.4","@dysporium-sdk/core":"1.0.0","@dysporium-sdk/provider":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openai_1.0.0_1765276584228_0.08760976560747036","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@dysporium-sdk/openai","version":"1.1.0","keywords":["ai","sdk","openai","gpt","gpt-4","chatgpt","llm"],"license":"MIT","_id":"@dysporium-sdk/openai@1.1.0","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"dist":{"shasum":"f8cc9ca8977519fce6e5c3bdedcce20b61820aca","tarball":"https://registry.npmjs.org/@dysporium-sdk/openai/-/openai-1.1.0.tgz","fileCount":6,"integrity":"sha512-1hZSUFAdY0rIjfgkihk8ZCeOgQqegQc1LoHGbW6Cr6qQFBIpJVv3bUM9mUR8wpktO87nib/yOMXuYZZxy8yXjw==","signatures":[{"sig":"MEQCIG4VG3857fNkuQu1eVPXesWOXYdSH0y8I8r083GFSdkMAiASK0p4oS19zjJ5IZg2rl3PmQ2Arytk6PvbH5X/Dz98MA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82792},"main":"./dist/index.js","type":"module","_from":"file:dysporium-sdk-openai-1.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\d7c12d763d38b5b563bb76d3a11d4f7f\\dysporium-sdk-openai-1.1.0.tgz","_integrity":"sha512-1hZSUFAdY0rIjfgkihk8ZCeOgQqegQc1LoHGbW6Cr6qQFBIpJVv3bUM9mUR8wpktO87nib/yOMXuYZZxy8yXjw==","repository":{"url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","type":"git","directory":"packages/openai"},"_npmVersion":"11.1.0","description":"OpenAI provider for Dysporium SDK","directories":{},"_nodeVersion":"20.18.2","dependencies":{"zod":"^3.22.4","@dysporium-sdk/core":"1.0.0","@dysporium-sdk/provider":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openai_1.1.0_1765277180543_0.9745757543604723","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@dysporium-sdk/openai","version":"2.0.0","keywords":["ai","sdk","openai","gpt","gpt-4","chatgpt","llm"],"license":"MIT","_id":"@dysporium-sdk/openai@2.0.0","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"dist":{"shasum":"af7dd9cb580d9ec1899d6d5d6c669588fcb5900f","tarball":"https://registry.npmjs.org/@dysporium-sdk/openai/-/openai-2.0.0.tgz","fileCount":6,"integrity":"sha512-n3leG5iC0r9ZzpzNOR9C7dWlSWx0uu88zOzZYUQK409ee2HHwX+eokAOVuBCwidaRWHxMy1dCt1XPrTwczyojA==","signatures":[{"sig":"MEUCIQCRqBJuBjxXhvK3fom/ldaX0vI2xxg2Itg535lpd1kNrAIgPWj8T3+7u3WbGFO8FdE71fJO69Rrhh6ud0sO+ZrqESg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97850},"main":"./dist/index.js","type":"module","_from":"file:dysporium-sdk-openai-2.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\d32d4393b22e681439c1e30167f78ec7\\dysporium-sdk-openai-2.0.0.tgz","_integrity":"sha512-n3leG5iC0r9ZzpzNOR9C7dWlSWx0uu88zOzZYUQK409ee2HHwX+eokAOVuBCwidaRWHxMy1dCt1XPrTwczyojA==","repository":{"url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","type":"git","directory":"packages/openai"},"_npmVersion":"11.1.0","description":"OpenAI provider for Dysporium SDK","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.4","@dysporium-sdk/core":"^2.0.0","@dysporium-sdk/provider":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openai_2.0.0_1766772945754_0.7396794967479543","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@dysporium-sdk/openai","version":"3.0.0","description":"OpenAI provider for Dysporium SDK","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"keywords":["ai","sdk","openai","gpt","gpt-4","chatgpt","llm"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","directory":"packages/openai"},"publishConfig":{"access":"public"},"dependencies":{"@dysporium-sdk/core":"^3.0.0","@dysporium-sdk/provider":"^3.0.0","@dysporium-sdk/utils":"^3.0.0","zod":"^3.22.4"},"devDependencies":{"@types/node":"^20.10.0","tsup":"^8.0.0","typescript":"^5.3.0"},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist"},"_id":"@dysporium-sdk/openai@3.0.0","bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","_integrity":"sha512-1dlXtyB0DsSeQ7W1BCYoK0n+st4GlObp+60ydFTsziwYb/VIOWBnd4eq4HdH5CgNUswVw8dWNbtZGT5uqSJX9g==","_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\aa2528da4722ee2f15c51e7a8eb34057\\dysporium-sdk-openai-3.0.0.tgz","_from":"file:dysporium-sdk-openai-3.0.0.tgz","_nodeVersion":"20.19.6","_npmVersion":"11.1.0","dist":{"integrity":"sha512-1dlXtyB0DsSeQ7W1BCYoK0n+st4GlObp+60ydFTsziwYb/VIOWBnd4eq4HdH5CgNUswVw8dWNbtZGT5uqSJX9g==","shasum":"eb0f9604a27410260fc183a62c47cf468e8a6aec","tarball":"https://registry.npmjs.org/@dysporium-sdk/openai/-/openai-3.0.0.tgz","fileCount":6,"unpackedSize":97888,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF2KY4ip1yQplEqu/AKdAmsIg5qgbwWoEuyYy89PpPG+AiEAuuEabfQ+Vr+ntpynm5D44mzg4fXMgon0a5eC0IUTelE="}]},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"directories":{},"maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openai_3.0.0_1766839875706_0.7292640814750075"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-05T11:55:55.591Z","modified":"2025-12-27T12:51:16.103Z","0.1.0":"2025-12-05T11:55:55.846Z","0.1.1":"2025-12-05T12:21:20.424Z","0.1.2":"2025-12-09T10:15:45.425Z","1.0.0":"2025-12-09T10:36:24.364Z","1.1.0":"2025-12-09T10:46:20.682Z","2.0.0":"2025-12-26T18:15:45.893Z","3.0.0":"2025-12-27T12:51:15.862Z"},"bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"license":"MIT","homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","keywords":["ai","sdk","openai","gpt","gpt-4","chatgpt","llm"],"repository":{"type":"git","url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","directory":"packages/openai"},"description":"OpenAI provider for Dysporium SDK","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"readme":"# @dysporium-sdk/openai\r\n\r\nOpenAI provider for Dysporium SDK - integrate OpenAI models with a simple, type-safe API.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @dysporium-sdk/openai\r\n# or\r\npnpm add @dysporium-sdk/openai\r\n# or\r\nyarn add @dysporium-sdk/openai\r\n```\r\n\r\n> **Note:** This package includes all exports from `@dysporium-sdk/core`, so you only need to install this single package.\r\n\r\n## Quick Start\r\n\r\n```typescript\r\nimport { createOpenAI, generateText, streamText } from '@dysporium-sdk/openai';\r\n\r\nconst openai = createOpenAI({\r\n  apiKey: process.env.OPENAI_API_KEY,\r\n});\r\n\r\n// Generate text\r\nconst result = await generateText({\r\n  model: openai('gpt-4'),\r\n  messages: [{ role: 'user', content: 'Hello!' }],\r\n});\r\n\r\nconsole.log(result.text);\r\n```\r\n\r\n## Features\r\n\r\n- Full OpenAI API support (GPT-4, GPT-4o, GPT-3.5-turbo, etc.)\r\n- Streaming responses\r\n- Tool/function calling\r\n- JSON mode and structured outputs\r\n- Embeddings (text-embedding-3-small, text-embedding-3-large, etc.)\r\n- Automatic retries with exponential backoff\r\n- Full TypeScript support\r\n\r\n## Usage\r\n\r\n### Text Generation\r\n\r\n```typescript\r\nimport { createOpenAI, generateText } from '@dysporium-sdk/openai';\r\n\r\nconst openai = createOpenAI({ apiKey: 'your-api-key' });\r\n\r\nconst result = await generateText({\r\n  model: openai('gpt-4o'),\r\n  messages: [\r\n    { role: 'system', content: 'You are a helpful assistant.' },\r\n    { role: 'user', content: 'What is the capital of France?' },\r\n  ],\r\n  maxTokens: 100,\r\n  temperature: 0.7,\r\n});\r\n\r\nconsole.log(result.text);\r\nconsole.log(result.usage); // { promptTokens, completionTokens, totalTokens }\r\n```\r\n\r\n### Streaming\r\n\r\n```typescript\r\nimport { createOpenAI, streamText } from '@dysporium-sdk/openai';\r\n\r\nconst openai = createOpenAI({ apiKey: 'your-api-key' });\r\n\r\nconst stream = await streamText({\r\n  model: openai('gpt-4o'),\r\n  messages: [{ role: 'user', content: 'Write a poem about coding' }],\r\n});\r\n\r\nfor await (const chunk of stream) {\r\n  process.stdout.write(chunk.text);\r\n}\r\n```\r\n\r\n### Tool Calling\r\n\r\n```typescript\r\nimport { createOpenAI, generateText } from '@dysporium-sdk/openai';\r\n\r\nconst openai = createOpenAI({ apiKey: 'your-api-key' });\r\n\r\nconst result = await generateText({\r\n  model: openai('gpt-4o'),\r\n  messages: [{ role: 'user', content: 'What is the weather in Paris?' }],\r\n  tools: [\r\n    {\r\n      name: 'get_weather',\r\n      description: 'Get current weather for a location',\r\n      parameters: {\r\n        type: 'object',\r\n        properties: {\r\n          location: { type: 'string', description: 'City name' },\r\n        },\r\n        required: ['location'],\r\n      },\r\n    },\r\n  ],\r\n});\r\n\r\nif (result.toolCalls) {\r\n  console.log(result.toolCalls);\r\n}\r\n```\r\n\r\n### Embeddings\r\n\r\n```typescript\r\nimport { createOpenAIEmbedding, embed, embedMany, cosineSimilarity } from '@dysporium-sdk/openai';\r\n\r\nconst embeddingModel = createOpenAIEmbedding({ apiKey: 'your-api-key' });\r\n\r\n// Single embedding\r\nconst result = await embed({\r\n  model: embeddingModel('text-embedding-3-small'),\r\n  value: 'Hello world',\r\n});\r\n\r\n// Multiple embeddings\r\nconst results = await embedMany({\r\n  model: embeddingModel('text-embedding-3-small'),\r\n  values: ['Hello', 'World', 'Foo', 'Bar'],\r\n});\r\n\r\n// Compare embeddings\r\nconst similarity = cosineSimilarity(results.embeddings[0], results.embeddings[1]);\r\n```\r\n\r\n## Supported Models\r\n\r\n### Language Models\r\n\r\n- `gpt-5.1` - Latest model (November 2025)\r\n- `gpt-5` - Advanced reasoning & multimodal (August 2025)\r\n- `gpt-5-mini` - Efficient GPT-5 variant\r\n- `gpt-4.1` - Enhanced GPT-4 (April 2025)\r\n- `gpt-4.1-mini` - Fast and efficient\r\n- `gpt-4.1-nano` - Smallest and fastest\r\n- `gpt-4o` - Multimodal model\r\n- `gpt-4o-mini` - Fast and affordable\r\n\r\n### Codex Models (Code-optimized)\r\n\r\n- `gpt-5.1-codex-max` - Complex, long-horizon coding tasks\r\n- `gpt-5.1-codex-mini` - Efficient coding assistance\r\n\r\n### Embedding Models\r\n\r\n- `text-embedding-3-small` - Efficient embeddings\r\n- `text-embedding-3-large` - Higher quality embeddings\r\n- `text-embedding-ada-002` - Legacy model\r\n\r\n## Configuration\r\n\r\n```typescript\r\nconst openai = createOpenAI({\r\n  apiKey: 'your-api-key',\r\n  baseURL: 'https://api.openai.com/v1', // Optional: custom base URL\r\n  organization: 'org-xxx', // Optional: organization ID\r\n  retry: {\r\n    maxRetries: 3,\r\n    initialDelay: 1000,\r\n    maxDelay: 30000,\r\n  },\r\n});\r\n```\r\n\r\n## License\r\n\r\nMIT\r\n\r\n","readmeFilename":"README.md"}