{"_id":"@docyrus/ai-sdk-provider","name":"@docyrus/ai-sdk-provider","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@docyrus/ai-sdk-provider","version":"0.0.1","description":"AI SDK provider and chat transport for Docyrus AI agent endpoints","repository":{"type":"git","url":"git+https://github.com/Docyrus/docyrus-devkit.git","directory":"packages/ai-sdk-provider"},"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"author":{"name":"Docyrus"},"license":"MIT","devDependencies":{"@ai-sdk/provider":"3.0.8","@types/node":"25.3.3","ai":"6.0.116","tsup":"8.5.1","tsx":"4.21.0","typescript":"5.9.3"},"peerDependencies":{"ai":">=6.0.116"},"scripts":{"build":"tsup","dev":"tsup --watch","lint":"eslint src","format":"eslint src --fix","typecheck":"eslint src && tsc --noEmit","test":"tsx --test src/**/*.test.ts","deploy":"pnpm run build && pnpm publish --access public"},"_id":"@docyrus/ai-sdk-provider@0.0.1","bugs":{"url":"https://github.com/Docyrus/docyrus-devkit/issues"},"homepage":"https://github.com/Docyrus/docyrus-devkit#readme","_integrity":"sha512-kGjh98EeYkA6VYCOTPyj4Ye0dTF8R7kUR72dPrA27PJ0T6tY6vSsaqsQIHWZyvG2dwHO8og/rYYfUZohMf9gAw==","_resolved":"/private/var/folders/f_/11lfj0jx15q81jpmd1dhv2hh0000gn/T/63a87fda49b7bbc6612ecc69cb59255b/docyrus-ai-sdk-provider-0.0.1.tgz","_from":"file:docyrus-ai-sdk-provider-0.0.1.tgz","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-kGjh98EeYkA6VYCOTPyj4Ye0dTF8R7kUR72dPrA27PJ0T6tY6vSsaqsQIHWZyvG2dwHO8og/rYYfUZohMf9gAw==","shasum":"f500b38de44b7f90650e0621ac9e0adde8afc039","tarball":"https://registry.npmjs.org/@docyrus/ai-sdk-provider/-/ai-sdk-provider-0.0.1.tgz","fileCount":5,"unpackedSize":126969,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE5dyT+fMX0q70YQIWvY5+RQQCcTYNo8QkuA5KTJT+lVAiBeferrMXh4lxbQtKUAsXceEtDuUb5NkzfKrFc4t8NAzQ=="}]},"_npmUser":{"name":"anil.beyazoglu","email":"anil.beyazoglu@docyrus.com"},"directories":{},"maintainers":[{"name":"ardabeyazoglu","email":"arda@beyazoglu.com"},{"name":"arzuecem","email":"ecem.tufekci@kiva.com.tr"},{"name":"anil.beyazoglu","email":"anil.beyazoglu@docyrus.com"},{"name":"erhan","email":"erhan@erdogan.gen.tr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-sdk-provider_0.0.1_1773678817894_0.3851911236705199"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-16T16:33:37.831Z","0.0.1":"2026-03-16T16:33:38.033Z","modified":"2026-03-16T16:33:38.225Z"},"maintainers":[{"name":"ardabeyazoglu","email":"arda@beyazoglu.com"},{"name":"arzuecem","email":"ecem.tufekci@kiva.com.tr"},{"name":"anil.beyazoglu","email":"anil.beyazoglu@docyrus.com"},{"name":"erhan","email":"erhan@erdogan.gen.tr"}],"description":"AI SDK provider and chat transport for Docyrus AI agent endpoints","homepage":"https://github.com/Docyrus/docyrus-devkit#readme","repository":{"type":"git","url":"git+https://github.com/Docyrus/docyrus-devkit.git","directory":"packages/ai-sdk-provider"},"author":{"name":"Docyrus"},"bugs":{"url":"https://github.com/Docyrus/docyrus-devkit/issues"},"license":"MIT","readme":"# @docyrus/ai-sdk-provider\n\nAI SDK provider and chat transport for Docyrus AI agent endpoints.\n\nThis package exposes a single factory, `createDocyrusProvider(...)`, that supports:\n\n- AI SDK Core server-side usage with `generateText` / `streamText`\n- AI SDK UI frontend usage with `useChat` via `provider.chatTransport()`\n\n## Installation\n\n```bash\npnpm add @docyrus/ai-sdk-provider ai\n```\n\n## Usage\n\n```ts\nimport { createDocyrusProvider } from '@docyrus/ai-sdk-provider';\n\nconst docyrus = createDocyrusProvider({\n  baseURL: 'https://api.docyrus.com/v1/ai/chat',\n  providerBaseURL: 'https://api.docyrus.com/v1/ai/provider',\n  apiKey: 'docyrus-oauth-client-id',\n  headers: async () => ({\n    Authorization: `Bearer ${await getAccessToken()}`,\n  }),\n});\n```\n\n### `streamText`\n\n```ts\nimport { streamText } from 'ai';\n\nconst docyrus = createDocyrusProvider({\n  providerBaseURL: 'https://api.docyrus.com/v1/ai/provider',\n  headers: {\n    Authorization: 'Bearer YOUR_DOCYRUS_ACCESS_TOKEN',\n  },\n});\n\nconst result = streamText({\n  model: docyrus('default'),\n  prompt: 'Summarize the latest project updates.',\n});\n\nfor await (const delta of result.textStream) {\n  process.stdout.write(delta);\n}\n```\n\n### `generateText`\n\n```ts\nimport { generateText } from 'ai';\n\nconst docyrus = createDocyrusProvider({\n  providerBaseURL: 'https://api.docyrus.com/v1/ai/provider',\n  headers: {\n    Authorization: 'Bearer YOUR_DOCYRUS_ACCESS_TOKEN',\n  },\n});\n\nconst result = await generateText({\n  model: docyrus('default'),\n  prompt: 'Say hello from Docyrus.',\n});\n\nconsole.log(result.text);\n```\n\n### `useChat`\n\n```tsx\nimport { useChat } from '@ai-sdk/react';\nimport { createDocyrusProvider } from '@docyrus/ai-sdk-provider';\n\nconst docyrus = createDocyrusProvider({\n  baseURL: 'https://api.docyrus.com/v1/ai/chat',\n  headers: async () => ({\n    Authorization: `Bearer ${await getAccessToken()}`,\n  }),\n});\n\nexport function Chat() {\n  const { messages, sendMessage } = useChat({\n    transport: docyrus.chatTransport({\n      body: {\n        projectId: 'project-id',\n        workId: 'work-id',\n        thinkingActive: true,\n      },\n    }),\n  });\n\n  return (\n    <div>\n      <button onClick={() => sendMessage({ text: 'Hello Docyrus' })}>\n        Send\n      </button>\n      <pre>{JSON.stringify(messages, null, 2)}</pre>\n    </div>\n  );\n}\n```\n\nThe transport sends:\n\n- `messages`: a Docyrus-compatible `{ role, content }[]` projection of the UI messages\n- `uiMessages`: the raw AI SDK UI messages for forward-compatible backend upgrades\n- `threadId`: defaults to the AI SDK chat id unless you override it in `body`\n\n## Backend Metadata Contract\n\nFor server-side provider parity, the provider endpoint should include AI SDK response metadata in either:\n\n- the JSON response body\n- `messageMetadata.docyrusProvider` on the streamed UI message response\n\nRecommended shape:\n\n```ts\n{\n  docyrusProvider: {\n    usage: {\n      inputTokens: {\n        total: 10,\n        noCache: 10,\n        cacheRead: 0,\n        cacheWrite: 0,\n      },\n      outputTokens: {\n        total: 20,\n        text: 18,\n        reasoning: 2,\n      },\n    },\n    warnings: [],\n    finishReason: { unified: 'stop', raw: 'stop' },\n    response: {\n      id: 'response-id',\n      modelId: 'default',\n      timestamp: '2026-03-16T12:00:00.000Z',\n    },\n  },\n}\n```\n\nSee [`docs/ai-sdk-provider-backend-contract.md`](/Users/anilbeyazoglu/Dev/docyrus-devkit/docs/ai-sdk-provider-backend-contract.md) for the full handoff.\n","readmeFilename":"README.md","_rev":"1-e27409f5e2368cfa14ed39bf074767b7"}