{"_id":"@converra/ai-sdk-middleware","_rev":"4-db7ab0febc48ebb920f0e39c32ea1b3c","name":"@converra/ai-sdk-middleware","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@converra/ai-sdk-middleware","version":"0.1.0","keywords":["ai","llm","middleware","converra","observability","tracing","vercel-ai-sdk"],"author":{"name":"Converra"},"license":"Apache-2.0","_id":"@converra/ai-sdk-middleware@0.1.0","maintainers":[{"name":"oren153","email":"oren@converra.ai"}],"dist":{"shasum":"3dd3ecb5d81559fd239c9f31265c52e307db3ee1","tarball":"https://registry.npmjs.org/@converra/ai-sdk-middleware/-/ai-sdk-middleware-0.1.0.tgz","fileCount":8,"integrity":"sha512-qM15ghDQtH1Eft5jvfTJNH/gnsF0RBdQBSu3v7faHlbEmhz7DAaqtmfP1rlE13epikj2zMY15pVUOhx31w75zw==","signatures":[{"sig":"MEYCIQDH8o0Sb471NuwOot/PvvUqddvL/1lWEtlT3QJZLNY7SAIhAPtvzJBU7ZfBeSkOLZST1c0mcqCxUJy0bGeVSwL2VgIk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11490},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c1f4271c5b2e5734fe48d16f27c2ea6567e53580","scripts":{"dev":"tsc --watch","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"oren153","email":"oren@converra.ai"},"_npmVersion":"11.7.0","description":"Vercel AI SDK middleware for capturing LLM traces with Converra","directories":{},"_nodeVersion":"25.3.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^4.0.0","typescript":"^5.0.0"},"peerDependencies":{"ai":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-sdk-middleware_0.1.0_1774579933375_0.934323838692112","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@converra/ai-sdk-middleware","version":"0.1.1","keywords":["ai","llm","middleware","converra","observability","tracing","vercel-ai-sdk"],"author":{"name":"Converra"},"license":"Apache-2.0","_id":"@converra/ai-sdk-middleware@0.1.1","maintainers":[{"name":"oren153","email":"oren@converra.ai"}],"dist":{"shasum":"c326e1d5d87c3219b990d5c580e6cb189b634424","tarball":"https://registry.npmjs.org/@converra/ai-sdk-middleware/-/ai-sdk-middleware-0.1.1.tgz","fileCount":8,"integrity":"sha512-nQNKqkFwNaJK8EbG64SE6XKmjDF6EyqwNBpNJFp0r72JjGi68SEaXfTu0PISuGwbkw1c1Qw6BAydfNQfmKSzbg==","signatures":[{"sig":"MEUCIGO4FgD5NnXXP9rUwS9SE/exHpJ7FwuFch1v4V4PmUVcAiEA2GIH4Dqs+BeJbf8YxvGBAN2KAVxT3UXPDEzwGMzqNX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11506},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"461fd38519c84c372d4ef62d5e460aa5da8821fd","scripts":{"dev":"tsc --watch","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"oren153","email":"oren@converra.ai"},"_npmVersion":"11.7.0","description":"Vercel AI SDK middleware for capturing LLM traces with Converra","directories":{},"_nodeVersion":"25.3.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^4.0.0","typescript":"^5.0.0"},"peerDependencies":{"ai":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-sdk-middleware_0.1.1_1774618679029_0.12229642734479462","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@converra/ai-sdk-middleware","version":"0.1.2","keywords":["ai","llm","middleware","converra","observability","tracing","vercel-ai-sdk"],"author":{"name":"Converra"},"license":"Apache-2.0","_id":"@converra/ai-sdk-middleware@0.1.2","maintainers":[{"name":"oren153","email":"oren@converra.ai"}],"dist":{"shasum":"92054d424de0161ccd5158012d0d9fa1a1c6639b","tarball":"https://registry.npmjs.org/@converra/ai-sdk-middleware/-/ai-sdk-middleware-0.1.2.tgz","fileCount":8,"integrity":"sha512-5qxxsrsryHcvKRtb4t8sQh3xHPKaGtlky0Dy1k5CbY0cw/Fn9saFUvN9q3wHg3d1orKUhS+vlXWSsao+MNIcGQ==","signatures":[{"sig":"MEQCIE6zH9BfKfXvCUFvlV0S6j3yFX8ySRL4cAyWEnxHLExoAiBesSnwPrgr8tGF1GCgciSMEJlSBFdbJe+ltN2Ni6N5Xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11912},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f6955e432d9b309f6da01f7117a9a1dcd941c217","scripts":{"dev":"tsc --watch","build":"tsc","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"oren153","email":"oren@converra.ai"},"_npmVersion":"11.7.0","description":"Vercel AI SDK middleware for capturing LLM traces with Converra","directories":{},"_nodeVersion":"25.3.0","_hasShrinkwrap":false,"devDependencies":{"ai":"^4.0.0","typescript":"^5.0.0","@ai-sdk/openai":"^1.3.24"},"peerDependencies":{"ai":"^4.0.0","@ai-sdk/openai":"^1.0.0"},"peerDependenciesMeta":{"@ai-sdk/openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ai-sdk-middleware_0.1.2_1779365738245_0.673504489735032","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@converra/ai-sdk-middleware","version":"0.2.1","description":"Vercel AI SDK middleware for capturing LLM traces with Converra","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","dev":"tsc --watch","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","prepack":"npm run build","prepublishOnly":"npm run build"},"keywords":["ai","llm","middleware","converra","observability","tracing","vercel-ai-sdk"],"author":{"name":"Converra"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/converra/converra.git","directory":"packages/ai-sdk-middleware"},"homepage":"https://converra.ai/docs/sdk","bugs":{"url":"https://github.com/converra/converra/issues"},"peerDependencies":{"@ai-sdk/openai":"^1.0.0 || ^2.0.0 || ^3.0.0","ai":"^4.0.0 || ^5.0.0 || ^6.0.0"},"peerDependenciesMeta":{"@ai-sdk/openai":{"optional":true}},"devDependencies":{"@ai-sdk/openai":"^3.0.53","@types/node":"^20","ai":"^6.0.168","typescript":"^5.0.0","vitest":"^4.1.0"},"_id":"@converra/ai-sdk-middleware@0.2.1","_nodeVersion":"25.3.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-tZCgkImxRHq+ZkRuN/J4XyahhoTsmADxMoUVWg3PcCa5yQS8I4OrnWA6Baw0a6T/uwniCTTYOPV1HGeFopFeuQ==","shasum":"79b4f8d1e94e27175d5bfc31590eb905cbb44d08","tarball":"https://registry.npmjs.org/@converra/ai-sdk-middleware/-/ai-sdk-middleware-0.2.1.tgz","fileCount":8,"unpackedSize":25116,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGAUS/u7E+HUN61vGTs/87Sq9R+aHgYLeHqrVGnDP4YCAiB//RuJXVSaAISr5/ngg2ZP6t1NLk5GCHNyaKJHlCH7cg=="}]},"_npmUser":{"name":"oren153","email":"oren@converra.ai"},"directories":{},"maintainers":[{"name":"oren153","email":"oren@converra.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-sdk-middleware_0.2.1_1780364980308_0.06810290481108017"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-27T02:52:13.276Z","modified":"2026-06-02T01:49:40.601Z","0.1.0":"2026-03-27T02:52:13.525Z","0.1.1":"2026-03-27T13:37:59.169Z","0.1.2":"2026-05-21T12:15:38.563Z","0.2.1":"2026-06-02T01:49:40.464Z"},"author":{"name":"Converra"},"license":"Apache-2.0","keywords":["ai","llm","middleware","converra","observability","tracing","vercel-ai-sdk"],"description":"Vercel AI SDK middleware for capturing LLM traces with Converra","maintainers":[{"name":"oren153","email":"oren@converra.ai"}],"readme":"# @converra/ai-sdk-middleware\n\nVercel AI SDK middleware that automatically captures LLM traces and sends them to [Converra](https://converra.ai) for diagnostics and optimization.\n\n## Installation\n\n```bash\nnpm install @converra/ai-sdk-middleware ai@4.3.19 @ai-sdk/openai@1.3.24\n```\n\nKeep the AI SDK and provider majors aligned. This package currently targets the\nAI SDK v4 middleware contract, so use `ai@4` with `@ai-sdk/openai@1`.\n\n## Quick Start\n\n```typescript\nimport { createConverraMiddleware } from '@converra/ai-sdk-middleware';\nimport { wrapLanguageModel, generateText } from 'ai';\nimport { openai } from '@ai-sdk/openai';\n\nconst model = wrapLanguageModel({\n  model: openai('gpt-4o'),\n  middleware: createConverraMiddleware({\n    apiKey: process.env.CONVERRA_API_KEY!,\n    promptName: 'My Support Bot',\n  }),\n});\n\n// Use normally - traces are captured automatically\nconst result = await generateText({\n  model,\n  prompt: 'Help me reset my password',\n});\n```\n\n## Configuration\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `apiKey` | `string` | *required* | Your Converra API key |\n| `endpoint` | `string` | `https://converra.ai/api/v1` | API endpoint |\n| `promptName` | `string` | `Untitled Prompt` | Name for auto-created prompt |\n| `batchSize` | `number` | `1` | Traces per batch before flushing |\n| `flushInterval` | `number` | `30000` | Milliseconds between flushes |\n| `enabled` | `boolean` | `true` | Kill switch to disable capture |\n\n## What it captures\n\n- Input messages (system prompt, user messages, assistant responses)\n- Tool definitions, tool calls, and tool results\n- Token usage (prompt, completion, total)\n- Latency (start to end timing)\n- Model ID and finish reason\n\n## How it works\n\nThe middleware wraps `generate` and `stream` calls via the AI SDK v4 middleware contract. Traces are buffered in memory and sent to Converra's conversation API in batches. Trace capture is non-blocking and never delays LLM responses.\n\n## Get an API key\n\nSign up at [converra.ai](https://converra.ai) or create an account programmatically:\n\n```bash\ncurl -X POST https://converra.ai/api/v1/auth/signup \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\": \"you@example.com\"}'\n```\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md","homepage":"https://converra.ai/docs/sdk","repository":{"type":"git","url":"git+https://github.com/converra/converra.git","directory":"packages/ai-sdk-middleware"},"bugs":{"url":"https://github.com/converra/converra/issues"}}