{"_id":"@agentprodready/ai-provider","_rev":"4-a82f82d5061a04a4a6f62bc8fe45ae3f","name":"@agentprodready/ai-provider","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@agentprodready/ai-provider","version":"1.0.0","license":"MIT","_id":"@agentprodready/ai-provider@1.0.0","maintainers":[{"name":"ameenmari78","email":"ameenmari78@gmail.com"}],"homepage":"https://github.com/ameenmari/agentprodready#readme","bugs":{"url":"https://github.com/ameenmari/agentprodready/issues"},"dist":{"shasum":"e7af195ecfcf6f599efeee05c86f09c4f585bba3","tarball":"https://registry.npmjs.org/@agentprodready/ai-provider/-/ai-provider-1.0.0.tgz","fileCount":17,"integrity":"sha512-p8kE1SiAB814ca858D0tVzujE+YfxmfXDEvwd/wFXQkY/fR6Enra2MlTrStygdOTGjFKLebgKDLuUd+SaE2pog==","signatures":[{"sig":"MEUCIHOTBNUo9oqSp7r/lmrbxhQn/Nu1pEq8/O3QoBfmVB/xAiEAsigFbean65pqywpgAwn16qu/5EiWWnAz5IMZoO4Ah60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42034},"main":"dist/index.js","type":"module","_from":"file:agentprodready-ai-provider-1.0.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"_npmUser":{"name":"ameenmari78","email":"ameenmari78@gmail.com"},"_resolved":"C:\\Users\\AHLp\\AppData\\Local\\Temp\\2963f1c89be0a165b85df1d4d4aae575\\agentprodready-ai-provider-1.0.0.tgz","_integrity":"sha512-p8kE1SiAB814ca858D0tVzujE+YfxmfXDEvwd/wFXQkY/fR6Enra2MlTrStygdOTGjFKLebgKDLuUd+SaE2pog==","repository":{"url":"git+https://github.com/ameenmari/agentprodready.git","type":"git"},"_npmVersion":"11.17.0","description":"Blueprint 08's vendor-neutral AI interaction and normalization boundary. Runtime retains operational execution policy; Composition supplies adapter instances.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@agentprodready/foundation":"1.0.0","@agentprodready/capability-resolution":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-provider_1.0.0_1786147875322_0.9220283420172852","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@agentprodready/ai-provider","version":"1.0.1","license":"MIT","_id":"@agentprodready/ai-provider@1.0.1","maintainers":[{"name":"ameenmari78","email":"ameenmari78@gmail.com"}],"homepage":"https://github.com/ameenmari/agentprodready#readme","bugs":{"url":"https://github.com/ameenmari/agentprodready/issues"},"dist":{"shasum":"adcfd1d429f6d5cf233fcbf4321f06f0c4f2e5ca","tarball":"https://registry.npmjs.org/@agentprodready/ai-provider/-/ai-provider-1.0.1.tgz","fileCount":17,"integrity":"sha512-VTv5sr4M3IipYW7Ws0XpoOix1nwZDz+au2YQt67R3kET9SBdOkPr1KEDMO9RfYln8WGc5Vzp+9tnrAGq7pq7uA==","signatures":[{"sig":"MEQCIH+MvUbHwTwIIdSXUrVlIWZXTlP/Rgryqtvzqbyq96IqAiA/cxrfutP7v2EV+i38NSC/bpBZMwdQGtRrHcEN8ZX6Vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44344},"main":"dist/index.js","type":"module","_from":"file:agentprodready-ai-provider-1.0.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"_npmUser":{"name":"ameenmari78","email":"ameenmari78@gmail.com"},"_resolved":"C:\\Users\\AHLp\\AppData\\Local\\Temp\\92a86963e12e2b894c0ff20f5521a8cb\\agentprodready-ai-provider-1.0.1.tgz","_integrity":"sha512-VTv5sr4M3IipYW7Ws0XpoOix1nwZDz+au2YQt67R3kET9SBdOkPr1KEDMO9RfYln8WGc5Vzp+9tnrAGq7pq7uA==","repository":{"url":"git+https://github.com/ameenmari/agentprodready.git","type":"git"},"_npmVersion":"11.17.0","description":"**Vendor-neutral AI contracts** for AgentProdReady — chat, embeddings, streaming, and tool-calling shapes without locking your app to a single model vendor.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@agentprodready/foundation":"1.0.0","@agentprodready/capability-resolution":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-provider_1.0.1_1786171651799_0.677737817811368","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@agentprodready/ai-provider","version":"1.0.2","license":"MIT","_id":"@agentprodready/ai-provider@1.0.2","maintainers":[{"name":"ameenmari78","email":"ameenmari78@gmail.com"}],"homepage":"https://github.com/ameenmari/agentprodready#readme","bugs":{"url":"https://github.com/ameenmari/agentprodready/issues"},"dist":{"shasum":"c7c62df71635926f504d41b867573e773c46f623","tarball":"https://registry.npmjs.org/@agentprodready/ai-provider/-/ai-provider-1.0.2.tgz","fileCount":17,"integrity":"sha512-qZxg+xi1czvRQpPTbJOXq/3/YTCpTxkt4azpARyrniqM/jKejWyr5srQMnVq1WYaCb6C/LkiIZ6b5C5x6Xcs1g==","signatures":[{"sig":"MEQCIFOo25SL8G1x7NsnpOSLUYJU1po6BaY1Pojvtj5EkAMJAiA61rGlNeXVaqm8kkiqF8AJ9Ankyc8T/QMwkNQI8XbeJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45412},"main":"dist/index.js","type":"module","_from":"file:agentprodready-ai-provider-1.0.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"_npmUser":{"name":"ameenmari78","email":"ameenmari78@gmail.com"},"_resolved":"C:\\Users\\AHLp\\AppData\\Local\\Temp\\979e9c4e619ee81b30da220df8ef4fbd\\agentprodready-ai-provider-1.0.2.tgz","_integrity":"sha512-qZxg+xi1czvRQpPTbJOXq/3/YTCpTxkt4azpARyrniqM/jKejWyr5srQMnVq1WYaCb6C/LkiIZ6b5C5x6Xcs1g==","repository":{"url":"git+https://github.com/ameenmari/agentprodready.git","type":"git"},"_npmVersion":"11.17.0","description":"**Vendor-neutral AI contracts** for AgentProdReady — chat, embeddings, streaming, and tool-calling shapes without locking your app to a single model vendor.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@agentprodready/foundation":"1.0.0","@agentprodready/capability-resolution":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-provider_1.0.2_1786185717809_0.10182321847863518","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@agentprodready/ai-provider","version":"1.0.3","description":"Provider-neutral AI contracts for AgentProdReady — execute, stream, tools, and embeddings without vendor lock-in at the boundary.","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"keywords":["ai-provider","llm","streaming","tool-calling","embeddings","ai-agent","agentprodready","typescript","nodejs"],"dependencies":{"@agentprodready/foundation":"1.0.1","@agentprodready/capability-resolution":"1.0.1"},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/ameenmari/agentprodready.git"},"homepage":"https://github.com/ameenmari/agentprodready#readme","bugs":{"url":"https://github.com/ameenmari/agentprodready/issues"},"_id":"@agentprodready/ai-provider@1.0.3","_integrity":"sha512-8DfTd0CFkj3E0JJbLBrqIqbB/xCimtlpb8hb9/YceE4qxBQrcjLZgXWB8xmuiGeOQo2Iamgsn8q1q/vqtJsvKQ==","_resolved":"C:\\Users\\AHLp\\AppData\\Local\\Temp\\003f3bd4a89861b71bca4c94e396ea6d\\agentprodready-ai-provider-1.0.3.tgz","_from":"file:agentprodready-ai-provider-1.0.3.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-8DfTd0CFkj3E0JJbLBrqIqbB/xCimtlpb8hb9/YceE4qxBQrcjLZgXWB8xmuiGeOQo2Iamgsn8q1q/vqtJsvKQ==","shasum":"80f344370d724d9cab9acdaafa265237b522cc85","tarball":"https://registry.npmjs.org/@agentprodready/ai-provider/-/ai-provider-1.0.3.tgz","fileCount":17,"unpackedSize":45739,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF2c1ai9eifj20c+PWBaYoki4b0Xo37qMZp4qpOGe4hHAiEA5P8ypnLQLFBaA7cAHvSAwVFeRWRz4mWyHEUibnsF6Bk="}]},"_npmUser":{"name":"ameenmari78","email":"ameenmari78@gmail.com"},"directories":{},"maintainers":[{"name":"ameenmari78","email":"ameenmari78@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-provider_1.0.3_1786281367744_0.17895114756703823"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-08T00:11:15.157Z","modified":"2026-08-09T13:16:08.052Z","1.0.0":"2026-08-08T00:11:15.458Z","1.0.1":"2026-08-08T06:47:31.952Z","1.0.2":"2026-08-08T10:41:57.960Z","1.0.3":"2026-08-09T13:16:07.894Z"},"bugs":{"url":"https://github.com/ameenmari/agentprodready/issues"},"license":"MIT","homepage":"https://github.com/ameenmari/agentprodready#readme","repository":{"type":"git","url":"git+https://github.com/ameenmari/agentprodready.git"},"description":"Provider-neutral AI contracts for AgentProdReady — execute, stream, tools, and embeddings without vendor lock-in at the boundary.","maintainers":[{"name":"ameenmari78","email":"ameenmari78@gmail.com"}],"readme":"# `@agentprodready/ai-provider`\n\n**Vendor-neutral AI contracts** for AgentProdReady — chat, embeddings, streaming, and tool-calling shapes without locking your app to a single model vendor.\n\n| | |\n|---|---|\n| **Status** | Production contracts published (`1.0.x`) |\n| **Install** | `npm install @agentprodready/ai-provider` |\n| **Module** | ESM |\n| **License** | MIT |\n\n---\n\n## Installation\n\n```bash\nnpm install @agentprodready/ai-provider\n\n# OpenAI adapter (optional)\nnpm install @agentprodready/ai-provider-openai\n```\n\nSet `OPENAI_API_KEY` when using the OpenAI adapter.\n\n---\n\n## Features\n\n| Feature | Description |\n|---|---|\n| **Chat adapter contract** | `AiProviderAdapter` — generate / stream |\n| **Embedding adapter contract** | `AiEmbeddingAdapter` — parallel surface (chat adapters need not embed) |\n| **Normalized messages** | `AiMessage`, roles, tool calls |\n| **Streaming events** | `content` / `usage` / `completed` / `failed` / `cancelled` |\n| **Tool calling shapes** | `NormalizedToolCall`, continuation message builders |\n| **Reference adapters** | Deterministic CI adapters (no network) |\n| **AbortSignal** | Cancellation on requests |\n\n---\n\n## Why use this instead of the OpenAI SDK directly?\n\n```text\nYour app / Runtime\n        ↓\n@agentprodready/ai-provider  (contracts)\n        ↓\n@agentprodready/ai-provider-openai | reference | future Anthropic…\n```\n\nSwap providers in Composition / Capability Resolution without rewriting business logic.\n\n---\n\n## Usage (conceptual)\n\n```ts\nimport type { AiProviderAdapter, AiMessage } from '@agentprodready/ai-provider';\n\ndeclare const ai: AiProviderAdapter; // from Composition\n\nconst messages: AiMessage[] = [\n  { role: 'system', content: 'You are a helpful assistant.' },\n  { role: 'user', content: 'Hello!' },\n];\n\nconst result = await ai.generate({\n  messages,\n  // model, tools, signal, … per contract\n});\n\nconsole.log(result);\n```\n\n### Streaming\n\n```ts\nfor await (const event of ai.stream({ messages, signal: controller.signal })) {\n  switch (event.type) {\n    case 'content':\n      process.stdout.write(event.text);\n      break;\n    case 'completed':\n    case 'failed':\n    case 'cancelled':\n      // exactly one terminal event\n      break;\n  }\n}\n```\n\n### Tool calling\n\n- Assistant turns may include `toolCalls?: NormalizedToolCall[]`\n- Use `buildToolContinuationMessages(...)` for ordered continuations  \n- Guide: [Tools](https://github.com/ameenmari/agentprodready/blob/main/docs/guides/tools.md)\n\n---\n\n## Reference adapters (CI)\n\n| Adapter | Role |\n|---|---|\n| Reference chat | Deterministic responses; tool triggers like `USE_TOOL_ECHO:` |\n| `ReferenceEmbeddingAdapter` | Deterministic 32-d vectors, no network |\n\nNever treat reference adapters as production models.\n\n---\n\n## Related packages\n\n| Package | Role |\n|---|---|\n| [`@agentprodready/ai-provider-openai`](https://www.npmjs.com/package/@agentprodready/ai-provider-openai) | OpenAI implementation |\n| [`@agentprodready/runtime`](https://www.npmjs.com/package/@agentprodready/runtime) | Retries, timeouts, cancel |\n| [`@agentprodready/capability-resolution`](https://www.npmjs.com/package/@agentprodready/capability-resolution) | Provider selection / fallback |\n\n---\n\n## Documentation\n\n- [AI providers guide](https://github.com/ameenmari/agentprodready/blob/main/docs/guides/ai-providers.md)\n- [Streaming guide](https://github.com/ameenmari/agentprodready/blob/main/docs/guides/streaming.md)\n- [Multi-provider routing](https://github.com/ameenmari/agentprodready/blob/main/docs/guides/multi-provider-routing.md)\n- [Blueprint 08](https://github.com/ameenmari/agentprodready/blob/main/docs/blueprints/08-ai-provider-framework.md)\n\n---\n\n## License\n\nMIT © 2026 ameenmari\n","readmeFilename":"README.md","keywords":["ai-provider","llm","streaming","tool-calling","embeddings","ai-agent","agentprodready","typescript","nodejs"]}