{"_id":"@agentreceipt/sdk","_rev":"7-439ec7ff4c1b69d58fad3b5fbdf05473","name":"@agentreceipt/sdk","dist-tags":{"latest":"0.3.3"},"versions":{"0.1.0":{"name":"@agentreceipt/sdk","version":"0.1.0","keywords":["ai","agent","audit","receipt","observability","compliance","llm"],"license":"MIT","_id":"@agentreceipt/sdk@0.1.0","maintainers":[{"name":"ramongalego","email":"ramongalegocs@gmail.com"}],"dist":{"shasum":"4309e54a53cc3f063316bb28f0a7034a39badabe","tarball":"https://registry.npmjs.org/@agentreceipt/sdk/-/sdk-0.1.0.tgz","fileCount":22,"integrity":"sha512-qJK+azuHsaTi+8yqOVGi1mqk2nFg+9fE8awBpWIwbPzcRBCE0rVLEgb9ogKkNYrTCLU2KyW3o2R4OQZyaJ44yQ==","signatures":[{"sig":"MEQCIERo1un5lwGbxmxDbJIn7Kaa+bh+O0GrnTok8bqFODq9AiAGRkUXMhRDkssyrrQ627nJj0UAwvcSkv4+DvNNr7R9kQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52463},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"6ccf8fbe0d86f8231afaaa60c626c6ac7f9e0b3e","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramongalego","email":"ramongalegocs@gmail.com"},"_npmVersion":"10.9.4","description":"TypeScript SDK for AgentReceipt, capture immutable audit trails of AI agent actions","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.0.0","@types/jest":"^30.0.0"},"peerDependencies":{"ai":">=3.0.0","openai":">=4.0.0","@google/genai":">=0.1.0","@anthropic-ai/sdk":">=0.20.0","@mistralai/mistralai":">=1.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@google/genai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mistralai/mistralai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1774187858059_0.2201645413259148","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@agentreceipt/sdk","version":"0.1.1","keywords":["ai","agent","audit","receipt","observability","compliance","llm"],"license":"MIT","_id":"@agentreceipt/sdk@0.1.1","maintainers":[{"name":"ramongalego","email":"ramongalegocs@gmail.com"}],"homepage":"https://agentreceipt.co/docs/sdk","bugs":{"url":"https://github.com/agentreceipt/agentreceipt/issues"},"dist":{"shasum":"d8bd2221a87bcc98ff4073637144ff98c28c2328","tarball":"https://registry.npmjs.org/@agentreceipt/sdk/-/sdk-0.1.1.tgz","fileCount":23,"integrity":"sha512-prNDa2XN23OYauleajS3eceKMf5Y/OiRrcAb6l3BaS1lcBZ2yLKHVvPK35AztKk0Cmzj1k43vuYz8o+3bdVuCw==","signatures":[{"sig":"MEQCIBomhMNR6UbQGUMqQOIaFJrFgeS3lNvveFfifq+f4Bj1AiBSbbsU5r0AtmOwtdloTSN9dugwi/KaZjK0h5grkyCSHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53815},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"6ccf8fbe0d86f8231afaaa60c626c6ac7f9e0b3e","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramongalego","email":"ramongalegocs@gmail.com"},"repository":{"url":"git+https://github.com/agentreceipt/agentreceipt.git","type":"git","directory":"packages/sdk-ts"},"_npmVersion":"10.9.4","description":"TypeScript SDK for AgentReceipt, capture immutable audit trails of AI agent actions","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.0.0","@types/jest":"^30.0.0"},"peerDependencies":{"ai":">=3.0.0","openai":">=4.0.0","@google/genai":">=0.1.0","@anthropic-ai/sdk":">=0.20.0","@mistralai/mistralai":">=1.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@google/genai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mistralai/mistralai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.1_1774189117295_0.037290104716636296","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agentreceipt/sdk","version":"0.2.0","keywords":["ai","agent","audit","receipt","observability","compliance","llm"],"license":"MIT","_id":"@agentreceipt/sdk@0.2.0","maintainers":[{"name":"ramongalego","email":"ramongalegocs@gmail.com"}],"homepage":"https://agentreceipt.co/docs/sdk","bugs":{"url":"https://github.com/agentreceipt/agentreceipt/issues"},"dist":{"shasum":"bcf363ce3294a65f9f57c0c2a0a126a48e2f484a","tarball":"https://registry.npmjs.org/@agentreceipt/sdk/-/sdk-0.2.0.tgz","fileCount":23,"integrity":"sha512-ForDWrM2TYfOoBYsfD1N8acrrL1uBm9i9YUSzYjYR3fiuS6JY//UkW/vF3NOA4JZ7sIZoVP8Hntvy8kUw3mbmQ==","signatures":[{"sig":"MEUCIQChzeiDNOhXnlWItVrg1rtxzUYWkPmbwUVn8Ex16TzMIgIgS6FKbBtzcp88N2TqJ3wrBrawzVvWF3oPSd0UV/gWZjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54781},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"6ece611969df5c73e754990fdd704341e838fb45","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramongalego","email":"ramongalegocs@gmail.com"},"repository":{"url":"git+https://github.com/agentreceipt/agentreceipt.git","type":"git","directory":"packages/sdk-ts"},"_npmVersion":"10.9.4","description":"TypeScript SDK for AgentReceipt, capture immutable audit trails of AI agent actions","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.0.0","@types/jest":"^30.0.0"},"peerDependencies":{"ai":">=3.0.0","openai":">=4.0.0","@google/genai":">=0.1.0","@anthropic-ai/sdk":">=0.20.0","@mistralai/mistralai":">=1.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@google/genai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mistralai/mistralai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1774197842750_0.40884308520218626","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@agentreceipt/sdk","version":"0.3.0","keywords":["ai","agent","audit","receipt","observability","compliance","llm"],"license":"MIT","_id":"@agentreceipt/sdk@0.3.0","maintainers":[{"name":"ramongalego","email":"ramongalegocs@gmail.com"}],"homepage":"https://agentreceipt.co/docs/sdk","bugs":{"url":"https://github.com/agentreceipt/agentreceipt/issues"},"dist":{"shasum":"3e0bb6bc7c5a567d97ef17a342e132b89ee5236e","tarball":"https://registry.npmjs.org/@agentreceipt/sdk/-/sdk-0.3.0.tgz","fileCount":23,"integrity":"sha512-6RFK5A39pStAkVo8wPNMqn8QZWHOYUvYufukaoqJDZ/obA6PFb+/FNM7mQYypwUFtbxDd1aL7rLVwSc4iQDppQ==","signatures":[{"sig":"MEYCIQCwUj3bIwzuPfg+zgbVoQkTmDEMIsa8c3VE2C3bz08CkgIhAMEy4dG/SyX2ojnz8TWqW1TRDJVGoWeWVwRZm/uYPmux","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58654},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d70e4bfe307420c6805f99af2c424f03e1673f8d","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramongalego","email":"ramongalegocs@gmail.com"},"repository":{"url":"git+https://github.com/agentreceipt/agentreceipt.git","type":"git","directory":"packages/sdk-ts"},"_npmVersion":"11.12.0","description":"TypeScript SDK for AgentReceipt, capture immutable audit trails of AI agent actions","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.0.0","@types/jest":"^30.0.0"},"peerDependencies":{"ai":">=3.0.0","openai":">=4.0.0","@google/genai":">=0.1.0","@anthropic-ai/sdk":">=0.20.0","@mistralai/mistralai":">=1.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@google/genai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mistralai/mistralai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1775504559999_0.9921453193230372","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@agentreceipt/sdk","version":"0.3.1","keywords":["ai","agent","audit","receipt","observability","compliance","llm"],"license":"MIT","_id":"@agentreceipt/sdk@0.3.1","maintainers":[{"name":"ramongalego","email":"ramongalegocs@gmail.com"}],"homepage":"https://agentreceipt.co/docs/sdk","bugs":{"url":"https://github.com/agentreceipt/agentreceipt/issues"},"dist":{"shasum":"b9845af2ffdfc9932b85832f3b267a924086f474","tarball":"https://registry.npmjs.org/@agentreceipt/sdk/-/sdk-0.3.1.tgz","fileCount":23,"integrity":"sha512-eNs9/XN3Aml0QlRO7dBtrF5sgKg4SpYR7IC6wn45j7DA+RsrFxGBpRp4rKUataiJ6pFp+8m3ycLQVBj9mEkeMA==","signatures":[{"sig":"MEYCIQDul0BUPMzAeCeUGHdnbIpgXiRhNUpOHjcdohNDjenB1QIhAOpdTx842IUIkRIMMuFaTeMDSZxYgDFk6W3OaveJO87/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61193},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d70e4bfe307420c6805f99af2c424f03e1673f8d","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramongalego","email":"ramongalegocs@gmail.com"},"repository":{"url":"git+https://github.com/agentreceipt/agentreceipt.git","type":"git","directory":"packages/sdk-ts"},"_npmVersion":"11.12.0","description":"TypeScript SDK for AgentReceipt, capture immutable audit trails of AI agent actions","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.0.0","@types/jest":"^30.0.0"},"peerDependencies":{"ai":">=3.0.0","openai":">=4.0.0","@google/genai":">=0.1.0","@anthropic-ai/sdk":">=0.20.0","@mistralai/mistralai":">=1.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@google/genai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mistralai/mistralai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.1_1775505048051_0.07173582282644952","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@agentreceipt/sdk","version":"0.3.2","keywords":["ai","agent","audit","receipt","observability","compliance","llm"],"license":"MIT","_id":"@agentreceipt/sdk@0.3.2","maintainers":[{"name":"ramongalego","email":"ramongalegocs@gmail.com"}],"homepage":"https://agentreceipt.co/docs/sdk","bugs":{"url":"https://github.com/agentreceipt/agentreceipt/issues"},"dist":{"shasum":"2802a398b8e52d78d053fffd44e2842db951b946","tarball":"https://registry.npmjs.org/@agentreceipt/sdk/-/sdk-0.3.2.tgz","fileCount":23,"integrity":"sha512-be1Z2TqVeMlSO9HnS9B0Lm72u9iTEBvFDSxrSGlHIf4mijK/QwKo6H2ifuJPFQAQKtyWRE5NJdjGgXEq/GWAPg==","signatures":[{"sig":"MEUCIC8tMf3SfAMm1mRCwTCR/HZBxu0Pa7n950QjUEW0Ys6LAiEAwy6/rxIJ5Dlj61Gwx/3MGTnbLOBunbAcBL4jLF/cWzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61946},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5425fd6b1fa79cf1f6976da2fcc0c18ad785d259","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramongalego","email":"ramongalegocs@gmail.com"},"repository":{"url":"git+https://github.com/agentreceipt/agentreceipt.git","type":"git","directory":"packages/sdk-ts"},"_npmVersion":"11.12.0","description":"TypeScript SDK for AgentReceipt, capture immutable audit trails of AI agent actions","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.0.0","@types/jest":"^30.0.0"},"peerDependencies":{"ai":">=3.0.0","openai":">=4.0.0","@google/genai":">=0.1.0","@anthropic-ai/sdk":">=0.20.0","@mistralai/mistralai":">=1.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"openai":{"optional":true},"@google/genai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mistralai/mistralai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.2_1775505410716_0.6659301137080273","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@agentreceipt/sdk","version":"0.3.3","description":"TypeScript SDK for AgentReceipt, capture immutable audit trails of AI agent actions","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"tsc","prepublishOnly":"npm run build","test":"jest","type-check":"tsc --noEmit","lint":"eslint src/"},"keywords":["ai","agent","audit","receipt","observability","compliance","llm"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/agentreceipt/agentreceipt.git","directory":"packages/sdk-ts"},"homepage":"https://agentreceipt.co/docs/sdk","bugs":{"url":"https://github.com/agentreceipt/agentreceipt/issues"},"peerDependencies":{"openai":">=4.0.0","@anthropic-ai/sdk":">=0.20.0","@google/genai":">=0.1.0","@mistralai/mistralai":">=1.0.0","ai":">=3.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@google/genai":{"optional":true},"@mistralai/mistralai":{"optional":true},"ai":{"optional":true}},"devDependencies":{"@types/jest":"^30.0.0","jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.0.0"},"gitHead":"63cd4f17c9bfbfcce4889f4f8b62a781e427e995","_id":"@agentreceipt/sdk@0.3.3","_nodeVersion":"22.22.1","_npmVersion":"11.12.0","dist":{"integrity":"sha512-HbBaDDKt8mAiyQIgV/+99mu+nxJySAgOExBAluMK74B83zPFBQPr4DHFNYmqGOEyKCcaBdErbztH7brpI3SXNg==","shasum":"d2d34c21963091397c4c1a3dd681ee32a5fb31b5","tarball":"https://registry.npmjs.org/@agentreceipt/sdk/-/sdk-0.3.3.tgz","fileCount":23,"unpackedSize":60754,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCA0E8Ac6B8sGWhtULtGh2fJBMrftbHuXR8jx8mKq+lxwIgJF5OhjOd3SIYMBdT9Gj9ko990Cx/q62jPeK0BGNjWNY="}]},"_npmUser":{"name":"ramongalego","email":"ramongalegocs@gmail.com"},"directories":{},"maintainers":[{"name":"ramongalego","email":"ramongalegocs@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.3.3_1776440503074_0.5924590648008354"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-22T13:57:37.966Z","modified":"2026-04-17T15:41:45.042Z","0.1.0":"2026-03-22T13:57:38.199Z","0.1.1":"2026-03-22T14:18:37.462Z","0.2.0":"2026-03-22T16:44:02.891Z","0.3.0":"2026-04-06T19:42:40.163Z","0.3.1":"2026-04-06T19:50:48.191Z","0.3.2":"2026-04-06T19:56:50.881Z","0.3.3":"2026-04-17T15:41:43.248Z"},"bugs":{"url":"https://github.com/agentreceipt/agentreceipt/issues"},"license":"MIT","homepage":"https://agentreceipt.co/docs/sdk","keywords":["ai","agent","audit","receipt","observability","compliance","llm"],"repository":{"type":"git","url":"git+https://github.com/agentreceipt/agentreceipt.git","directory":"packages/sdk-ts"},"description":"TypeScript SDK for AgentReceipt, capture immutable audit trails of AI agent actions","maintainers":[{"name":"ramongalego","email":"ramongalegocs@gmail.com"}],"readme":"# @agentreceipt/sdk\n\nTypeScript SDK for [AgentReceipt](https://agentreceipt.co). Capture immutable audit trails of every action your AI agent takes.\n\n## Installation\n\n```bash\nnpm install @agentreceipt/sdk\n```\n\n## Environment variable\n\nSet `AGENTRECEIPT_API_KEY` in your environment. You can get your key from the [AgentReceipt dashboard](https://agentreceipt.co).\n\n```bash\nexport AGENTRECEIPT_API_KEY=\"ar_live_...\"\n```\n\n## Quickstart: OpenAI\n\n```typescript\nimport OpenAI from \"openai\";\nimport { createClient } from \"@agentreceipt/sdk\";\n\nconst ar = createClient({ apiKey: process.env.AGENTRECEIPT_API_KEY! });\nconst openai = ar.wrapOpenAI(new OpenAI(), {\n  sessionName: \"Process invoice #441\",\n});\n\nconst response = await openai.chat.completions.create({\n  model: \"gpt-4o\",\n  messages: [{ role: \"user\", content: \"Parse this invoice.\" }],\n});\n```\n\n## Quickstart: Anthropic\n\n```typescript\nimport Anthropic from \"@anthropic-ai/sdk\";\nimport { createClient } from \"@agentreceipt/sdk\";\n\nconst ar = createClient({ apiKey: process.env.AGENTRECEIPT_API_KEY! });\nconst anthropic = ar.wrapAnthropic(new Anthropic(), {\n  sessionName: \"Review support ticket #89\",\n});\n\nconst response = await anthropic.messages.create({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  messages: [{ role: \"user\", content: \"Summarize this ticket.\" }],\n});\n```\n\n## Quickstart: Gemini\n\n```typescript\nimport { GoogleGenAI } from \"@google/genai\";\nimport { createClient } from \"@agentreceipt/sdk\";\n\nconst ar = createClient({ apiKey: process.env.AGENTRECEIPT_API_KEY! });\nconst ai = ar.wrapGemini(\n  new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY! }),\n  {\n    sessionName: \"Classify document\",\n  },\n);\n\nconst response = await ai.models.generateContent({\n  model: \"gemini-2.0-flash\",\n  contents: \"What type of document is this?\",\n});\n```\n\n## Quickstart: Mistral\n\n```typescript\nimport { Mistral } from \"@mistralai/mistralai\";\nimport { createClient } from \"@agentreceipt/sdk\";\n\nconst ar = createClient({ apiKey: process.env.AGENTRECEIPT_API_KEY! });\nconst mistral = ar.wrapMistral(\n  new Mistral({ apiKey: process.env.MISTRAL_API_KEY! }),\n  {\n    sessionName: \"Extract receipt data\",\n  },\n);\n\nconst response = await mistral.chat.complete({\n  model: \"mistral-small-latest\",\n  messages: [{ role: \"user\", content: \"Extract the total from this receipt.\" }],\n});\n```\n\n## Quickstart: Vercel AI SDK\n\n```typescript\nimport { generateText, streamText, generateObject, streamObject } from \"ai\";\nimport { openai } from \"@ai-sdk/openai\";\nimport { createClient } from \"@agentreceipt/sdk\";\n\nconst ar = createClient({ apiKey: process.env.AGENTRECEIPT_API_KEY! });\nconst wrapped = ar.wrapVercelAI(\n  { generateText, streamText, generateObject, streamObject },\n  {\n    sessionName: \"Chat session #12\",\n  },\n);\n\nconst result = await wrapped.generateText({\n  model: openai(\"gpt-4o-mini\"),\n  prompt: \"Reply with exactly three words.\",\n});\n```\n\n## Sessions\n\nEvery wrapper creates one session automatically. For most apps, you want one session per task. Create a new wrapper per request.\n\n```typescript\nasync function handleTicket(ticket: Ticket) {\n  const anthropic = ar.wrapAnthropic(new Anthropic(), {\n    sessionName: `Ticket #${ticket.id}`,\n  });\n  await anthropic.messages.create({ ... });\n}\n```\n\nYou can also create sessions manually with `startSession`.\n\n```typescript\nconst session = ar.startSession(\"Process invoice #441\");\n```\n\n## trackTool\n\nWraps an async function and records its input, output, and duration. If the function throws, the error is recorded and re-thrown.\n\n```typescript\nconst vendor = await session.trackTool(\n  \"look-up-vendor\",\n  { vendorName: \"Acme Corp\" },\n  async () => {\n    return db.vendors.findByName(\"Acme Corp\");\n  },\n);\n```\n\n## trackDecision\n\nRecords a decision your agent made. Takes a name, reasoning, and outcome.\n\n```typescript\nawait session.trackDecision(\n  \"approve-payment\",\n  \"Amount $450 is within $500 auto-approval limit. Vendor is verified.\",\n  \"approved\",\n);\n```\n\n## trackHumanReview\n\nRecords a human review step. Useful for approval workflows where a person signs off before the agent proceeds.\n\n```typescript\nawait session.trackHumanReview({\n  reviewer: \"sarah@acmecorp.com\",\n  decision: \"approved\",\n  notes: \"Amount within $5,000 auto-approval policy\",\n});\n```\n\nThe `decision` field accepts `\"approved\"`, `\"rejected\"`, or `\"modified\"`.\n\nHuman review events appear with a purple badge in the dashboard. No payload is stored in R2 for this event type.\n\n## Compliance metadata\n\nTag any event with compliance metadata to flag sensitive data.\n\nWhen you set `containsPII: true` or a `dataCategory` on an event:\n\n- The event shows a **PII badge** in the dashboard timeline.\n- The event payload is **hidden by default**. Team members must click \"Reveal sensitive data\" to view input and output.\n- On **shared receipts**, the payload is fully redacted. Public viewers can see that the event happened, but cannot access the payload at all.\n\n```typescript\nawait session.trackTool(\n  \"read-patient-record\",\n  { patientId: \"pt-1234\" },\n  async () => fetchPatientRecord(\"pt-1234\"),\n  {\n    compliance: {\n      containsPII: true,\n      dataCategory: \"health\",\n      retentionOverride: 2190, // days, overrides project default\n    },\n  },\n);\n```\n\nWorks with `trackDecision` and `trackHumanReview` too.\n\n```typescript\nawait session.trackDecision(\n  \"approve-referral\",\n  \"Patient meets criteria for specialist referral.\",\n  \"approved\",\n  { compliance: { containsPII: true, dataCategory: \"health\" } },\n);\n\nawait session.trackHumanReview({\n  reviewer: \"dr.smith@hospital.org\",\n  decision: \"approved\",\n  compliance: { containsPII: false, dataCategory: \"health\" },\n});\n```\n\n## Session context\n\nAttach context to a session to capture the conditions your agent started with. This is sent once, with the first event.\n\n```typescript\nconst session = ar.startSession(\"Process invoice #441\", {\n  context: {\n    systemPrompt: \"You are an accounts payable agent...\",\n    activeRules: [\n      { id: \"auto-approve\", description: \"Auto-approve invoices under $500\" },\n      { id: \"vendor-check\", description: \"Verify vendor exists in DB\" },\n    ],\n    permissions: [\"payments:create\", \"vendors:read\"],\n    environment: { region: \"us-east-1\", version: \"2.1.0\" },\n  },\n});\n```\n\nAll fields are optional. Use whichever ones are relevant to your agent.\n\n| Field          | Type                      | Purpose                                       |\n| -------------- | ------------------------- | --------------------------------------------- |\n| `systemPrompt` | `string`                  | The system prompt the LLM was given           |\n| `activeRules`  | `Rule[]`                  | Business rules governing the agent's behavior |\n| `permissions`  | `string[]`                | What the agent is allowed to do               |\n| `environment`  | `Record<string, unknown>` | Runtime info (region, version, feature flags) |\n\n## Event context\n\nAdd context to individual events to capture what the agent knew at the time of a specific action.\n\n```typescript\nawait session.trackTool(\n  \"charge-card\",\n  { amount: 450, currency: \"USD\" },\n  async () => stripe.charges.create({ amount: 45000, currency: \"usd\" }),\n  {\n    context: {\n      rulesEvaluated: [\"auto-approve\", \"fraud-check\"],\n      stateAtDecision: { invoiceTotal: 450, approvalThreshold: 500 },\n    },\n  },\n);\n\nawait session.trackDecision(\n  \"approve-payment\",\n  \"Amount is under auto-approval threshold.\",\n  \"approved\",\n  {\n    context: {\n      rulesEvaluated: [\"auto-approve\"],\n      stateAtDecision: { amount: 450, limit: 500 },\n      systemPrompt: \"You are an accounts payable agent...\",\n    },\n  },\n);\n```\n\n| Field             | Type                      | Purpose                                                   |\n| ----------------- | ------------------------- | --------------------------------------------------------- |\n| `rulesEvaluated`  | `string[]`                | Which rules the agent checked for this action             |\n| `stateAtDecision` | `Record<string, unknown>` | Key values the agent used to decide                       |\n| `systemPrompt`    | `string`                  | The system prompt at the time (if it changed mid-session) |\n\n## trackContextChange\n\nRecords when your agent's operating context changes mid-session. Useful for agents that update their rules, permissions, or configuration during a run.\n\n```typescript\nawait session.trackContextChange(\n  \"rules-updated\",\n  { approvalThreshold: 500 },\n  { approvalThreshold: 1000 },\n);\n```\n\nThis creates a `context_change` event with the previous and current state, so the receipt shows exactly when and how the agent's context shifted.\n\n## Ending a session\n\nCall `end()` to flush any queued events and mark the session as complete. This triggers summary generation and Rekor anchoring right away rather than waiting for the inactivity timeout. If you do not call `end()`, the session completes automatically after 3 minutes of inactivity.\n\nAlways use a `try`/`finally` block so `end()` runs even if your agent throws an error.\n\n```typescript\nconst session = ar.startSession(\"Process invoice #441\");\n\ntry {\n  // your agent logic\n} finally {\n  await session.end(); // always call this when your agent finishes\n}\n```\n\n## Configuration\n\n```typescript\nconst ar = createClient({\n  apiKey: \"ar_live_...\",\n  baseUrl: \"https://agentreceipt.co\", // optional, defaults to production\n});\n```\n\n## Links\n\n- [Dashboard](https://agentreceipt.co)\n- [Documentation](https://agentreceipt.co/docs)\n","readmeFilename":"README.md"}