{"_id":"@aivoralabs/agenttrail-vercel","_rev":"2-2398bdb80ff7ba42bc9b350f20e521ca","name":"@aivoralabs/agenttrail-vercel","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@aivoralabs/agenttrail-vercel","version":"0.1.0","keywords":["ai-compliance","eu-ai-act","audit-trail","ai-agents","article-12","hash-chain","cryptographic-receipts","compliance","ai-governance","audit","llm","vercel-ai-sdk","ai-sdk","streaming","middleware"],"author":{"name":"AivoraLabs","email":"hello@aivoralabs.org"},"license":"MIT","_id":"@aivoralabs/agenttrail-vercel@0.1.0","maintainers":[{"name":"user_aivoralabs","email":"aivoralabs@aivoralabs.org"}],"homepage":"https://agenttrail.aivoralabs.org","bugs":{"url":"https://github.com/AiVoraLabs/agenttrail/issues"},"dist":{"shasum":"61c6132def2f72388ebb318b9273cc5f6b8c4806","tarball":"https://registry.npmjs.org/@aivoralabs/agenttrail-vercel/-/agenttrail-vercel-0.1.0.tgz","fileCount":3,"integrity":"sha512-O7pm72fL54t8gGeXAdH8yVyuH4t2W9nzSIVh5LDL4nTDTdbf1jm2nXngW7uheL26rXB2+0EEnOgf4MgPS4t4NQ==","signatures":[{"sig":"MEYCIQCJ6TnRtSgWQ/at+9mDWzw9ADU5BEb0X7HfGeLebwwQvgIhALyuIFxaURGLXEQBTRk5DWmnEtnIA435vgwJcjtyQQdR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7222},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1877bded265a5a7215d618e3787b6a65fed7ec7f","scripts":{"dev":"tsup src/index.ts --format esm --dts --watch","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"user_aivoralabs","email":"aivoralabs@aivoralabs.org"},"repository":{"url":"git+https://github.com/AiVoraLabs/agenttrail.git","type":"git"},"_npmVersion":"11.13.0","description":"Vercel AI SDK middleware for AgentTrail audit receipts","directories":{},"_nodeVersion":"26.2.0","dependencies":{"ai":"^4.0.0","@aivoralabs/agenttrail":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/agenttrail-vercel_0.1.0_1781286824223_0.3610111142743049","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aivoralabs/agenttrail-vercel","version":"0.1.1","description":"Vercel AI SDK middleware for AgentTrail audit receipts","license":"MIT","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"}},"scripts":{"build":"tsup src/index.ts --format esm --dts --clean","test":"vitest run","test:watch":"vitest","dev":"tsup src/index.ts --format esm --dts --watch","clean":"rm -rf dist","test:coverage":"vitest run --coverage"},"dependencies":{"@aivoralabs/agenttrail":"workspace:*","ai":"^4.0.0"},"devDependencies":{"@types/node":"^22.0.0","tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0"},"publishConfig":{"access":"public"},"engines":{"node":">=22.0.0"},"homepage":"https://agenttrail.aivoralabs.org","repository":{"type":"git","url":"git+https://github.com/AiVoraLabs/agenttrail.git"},"author":{"name":"AivoraLabs","email":"hello@aivoralabs.org"},"keywords":["ai-compliance","eu-ai-act","audit-trail","ai-agents","article-12","hash-chain","cryptographic-receipts","compliance","ai-governance","audit","llm","vercel-ai-sdk","ai-sdk","streaming","middleware"],"gitHead":"ee83022922dd905b9c8c653845198f7c5b1af6b6","_id":"@aivoralabs/agenttrail-vercel@0.1.1","bugs":{"url":"https://github.com/AiVoraLabs/agenttrail/issues"},"_nodeVersion":"26.2.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-RqgINMN4qe+ngtlGj2WElHbxiAoNybvSbxIvjyUyOcGHKKSMqUwvA8WvEpznb6t07B8hKZL+g3FjsX9a6YkG5w==","shasum":"e89e49af2ffc70585ae5b6c93cab0e00499a9311","tarball":"https://registry.npmjs.org/@aivoralabs/agenttrail-vercel/-/agenttrail-vercel-0.1.1.tgz","fileCount":4,"unpackedSize":10941,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIENoGG8dMcCnxz1QxofMUzkWg30X38f6UlO5iFNy8PteAiEA3ryx7tMfm7ZedZ6ji3Z0ZYO3u21A5Q8HaX6unO7xqro="}]},"_npmUser":{"name":"user_aivoralabs","email":"aivoralabs@aivoralabs.org"},"directories":{},"maintainers":[{"name":"user_aivoralabs","email":"aivoralabs@aivoralabs.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agenttrail-vercel_0.1.1_1781289078489_0.1080427766066332"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-12T17:53:44.073Z","modified":"2026-06-12T18:31:18.749Z","0.1.0":"2026-06-12T17:53:44.349Z","0.1.1":"2026-06-12T18:31:18.638Z"},"bugs":{"url":"https://github.com/AiVoraLabs/agenttrail/issues"},"author":{"name":"AivoraLabs","email":"hello@aivoralabs.org"},"license":"MIT","homepage":"https://agenttrail.aivoralabs.org","keywords":["ai-compliance","eu-ai-act","audit-trail","ai-agents","article-12","hash-chain","cryptographic-receipts","compliance","ai-governance","audit","llm","vercel-ai-sdk","ai-sdk","streaming","middleware"],"repository":{"type":"git","url":"git+https://github.com/AiVoraLabs/agenttrail.git"},"description":"Vercel AI SDK middleware for AgentTrail audit receipts","maintainers":[{"name":"user_aivoralabs","email":"aivoralabs@aivoralabs.org"}],"readme":"# @aivoralabs/agenttrail-vercel\n\n[![npm version](https://img.shields.io/npm/v/@aivoralabs/agenttrail-vercel?color=CB3837&logo=npm)](https://www.npmjs.com/package/@aivoralabs/agenttrail-vercel)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![EU AI Act](https://img.shields.io/badge/EU_AI_Act-Art._12-003399)](https://artificialintelligenceact.eu/article/12/)\n\n**Vercel AI SDK middleware for EU AI Act Article 12 compliance.**\n\nWraps `generateText` and `streamText` with automatic cryptographic audit receipts. No code changes — middleware pattern.\n\nPart of the [AgentTrail monorepo](https://github.com/AIvoraLabs/agenttrail). Requires [`@aivoralabs/agenttrail`](https://www.npmjs.com/package/@aivoralabs/agenttrail) and [`ai`](https://www.npmjs.com/package/ai) (Vercel AI SDK) as peer dependencies.\n\n---\n\n## Features\n\n- ✅ `generateText` — automatic receipts for non-streaming completions\n- ✅ `streamText` — receipts for streaming responses\n- ✅ Compliance modes: `strict` (fail-closed) and `permissive`\n- ✅ Pre-flight compliance gate in strict mode\n- ✅ Compatible with any Vercel AI SDK provider\n\n---\n\n## Installation\n\n```bash\nnpm install @aivoralabs/agenttrail-vercel @aivoralabs/agenttrail ai\n```\n\n---\n\n## Quick Start\n\n```typescript\nimport { generateText } from 'ai';\nimport { openai } from '@ai-sdk/openai';\nimport { auditReceiptMiddleware } from '@aivoralabs/agenttrail-vercel';\nimport { JSONLFileWriter } from '@aivoralabs/agenttrail';\n\nconst { wrapGenerate, wrapStream } = auditReceiptMiddleware({\n  agentId: 'hr-ai',\n  storage: new JSONLFileWriter('./audit-logs'),\n  complianceConfig: { mode: 'strict' },\n});\n\nconst wrappedGenerate = wrapGenerate(generateText);\n\nconst result = await wrappedGenerate({\n  model: openai('gpt-4o'),\n  prompt: 'Evaluate candidate profile for senior engineer position.',\n});\n\n// Every generateText call now produces a signed audit receipt\nconsole.log(result.text);\n```\n\n---\n\n## API Reference\n\n### `auditReceiptMiddleware(options)`\n\nReturns `{ wrapGenerate, wrapStream }`.\n\n| Option | Type | Required | Description |\n|--------|------|----------|-------------|\n| `agentId` | `string` | Yes | Agent identifier |\n| `storage` | `IReceiptStorage` | Yes | Receipt storage backend |\n| `complianceConfig.mode` | `'strict' \\| 'permissive'` | No | Default: `'strict'` |\n| `complianceConfig.redactPII` | `boolean` | No | Enable PII redaction |\n| `keyStore` | `IKeyStore` | No | Ed25519 key management |\n\n### `wrapGenerate(generateText)`\n\nWraps the Vercel AI SDK `generateText` function. Returns a function with the same signature + automatic receipt generation.\n\n### `wrapStream(streamText)`\n\nWraps the Vercel AI SDK `streamText` function. Accumulates the stream and generates a receipt when complete.\n\n---\n\n## Next.js Integration\n\n```typescript\n// app/api/chat/route.ts\nimport { generateText } from 'ai';\nimport { openai } from '@ai-sdk/openai';\nimport { auditReceiptMiddleware } from '@aivoralabs/agenttrail-vercel';\nimport { JSONLFileWriter } from '@aivoralabs/agenttrail';\n\nconst { wrapGenerate } = auditReceiptMiddleware({\n  agentId: 'nextjs-chat',\n  storage: new JSONLFileWriter('/tmp/audit-logs'),\n  complianceConfig: { mode: 'strict' },\n});\n\nexport async function POST(req: Request) {\n  const { prompt } = await req.json();\n  const result = await wrapGenerate(generateText)({\n    model: openai('gpt-4o'),\n    prompt,\n  });\n  return Response.json({ text: result.text });\n}\n```\n\n---\n\n## Links\n\n- 🌐 [agenttrail.aivoralabs.org](https://agenttrail.aivoralabs.org)\n- 🐙 [GitHub: AiVoraLabs/agenttrail](https://github.com/AIvoraLabs/agenttrail)\n- 📄 [EU AI Act Article 12](https://artificialintelligenceact.eu/article/12/)\n\n**License:** MIT\n","readmeFilename":"README.md"}