{"_id":"@aui-x/prism","_rev":"5-73177961e81be562faca66283ca923eb","name":"@aui-x/prism","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.1":{"name":"@aui-x/prism","version":"0.0.1","keywords":["ai","tracing","observability","ai-sdk","llm"],"license":"SEE LICENSE IN LICENSE","_id":"@aui-x/prism@0.0.1","maintainers":[{"name":"okisdev","email":"acc@okis.dev"}],"homepage":"https://auix.dev","dist":{"shasum":"f72355651a44bd305858335f3364c04b3cde1339","tarball":"https://registry.npmjs.org/@aui-x/prism/-/prism-0.0.1.tgz","fileCount":47,"integrity":"sha512-II6PHyrgATGqz0d6qsSfA9WMLir7QhZNtFpafZG3zjCgxxMsHkQY0mtSTiwIaU44mik6cCD7qJpB+0qoqzZKrQ==","signatures":[{"sig":"MEUCIQCznNTUympcfw4aIMzTsjKWDl+D/9/9LhAVgZRYIlmSHgIgbCNJOwLr2n99QHpCSbgMJDRgXlj5D6BAtw4+yjy5twg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190077},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./core":{"import":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"require":{"types":"./dist/core.d.cts","default":"./dist/core.cjs"}},"./integrations/ai-sdk":{"import":{"types":"./dist/integrations/ai-sdk.d.ts","default":"./dist/integrations/ai-sdk.js"},"require":{"types":"./dist/integrations/ai-sdk.d.cts","default":"./dist/integrations/ai-sdk.cjs"}},"./integrations/openai":{"import":{"types":"./dist/integrations/openai.d.ts","default":"./dist/integrations/openai.js"},"require":{"types":"./dist/integrations/openai.d.cts","default":"./dist/integrations/openai.cjs"}},"./integrations/anthropic":{"import":{"types":"./dist/integrations/anthropic.d.ts","default":"./dist/integrations/anthropic.js"},"require":{"types":"./dist/integrations/anthropic.d.cts","default":"./dist/integrations/anthropic.cjs"}}},"gitHead":"3da9543a67cdbd5534e22eb712ce61a9a2a964f6","scripts":{"build":"tsdown","ts-check":"tsc --noEmit"},"_npmUser":{"name":"okisdev","email":"acc@okis.dev"},"_npmVersion":"11.10.0","description":"LLM tracing SDK for auix — AI SDK middleware + manual tracing","directories":{},"sideEffects":false,"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"ai":"catalog:","tsdown":"catalog:","@auix/tsconfig":"workspace:*","@ai-sdk/provider":"catalog:"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=2.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prism_0.0.1_1771579593153_0.02247553877058084","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@aui-x/prism","version":"0.0.2","keywords":["ai","tracing","observability","ai-sdk","llm"],"license":"SEE LICENSE IN LICENSE","_id":"@aui-x/prism@0.0.2","maintainers":[{"name":"okisdev","email":"acc@okis.dev"}],"homepage":"https://auix.dev","dist":{"shasum":"47168edbf0b1d3117b45a04c62f9bc542fab4759","tarball":"https://registry.npmjs.org/@aui-x/prism/-/prism-0.0.2.tgz","fileCount":51,"integrity":"sha512-ddXxlL7Sy5E/XgUK/KXGSWl2sYm5NvVhUFpC1M6+rI5Z+R97Z5tUVMDXgm/T4gV3VGANQQps5i80E6qypGesTA==","signatures":[{"sig":"MEUCIQC3jl1zERRLl7PsdAP5NBNc2OS87+WOpZW8sqN4gLsqkQIgOqD8ZegRfjji8LUVQtQ4qYhVF8IVn2XPuMZACgl5BCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177286},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./core":{"import":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"require":{"types":"./dist/core.d.cts","default":"./dist/core.cjs"}},"./integrations/ai-sdk":{"import":{"types":"./dist/integrations/ai-sdk.d.ts","default":"./dist/integrations/ai-sdk.js"},"require":{"types":"./dist/integrations/ai-sdk.d.cts","default":"./dist/integrations/ai-sdk.cjs"}},"./integrations/openai":{"import":{"types":"./dist/integrations/openai.d.ts","default":"./dist/integrations/openai.js"},"require":{"types":"./dist/integrations/openai.d.cts","default":"./dist/integrations/openai.cjs"}},"./integrations/anthropic":{"import":{"types":"./dist/integrations/anthropic.d.ts","default":"./dist/integrations/anthropic.js"},"require":{"types":"./dist/integrations/anthropic.d.cts","default":"./dist/integrations/anthropic.cjs"}}},"gitHead":"3da9543a67cdbd5534e22eb712ce61a9a2a964f6","scripts":{"build":"tsdown","ts-check":"tsc --noEmit"},"_npmUser":{"name":"okisdev","email":"acc@okis.dev"},"_npmVersion":"11.10.0","description":"LLM tracing SDK for auix — AI SDK middleware + manual tracing","directories":{},"sideEffects":false,"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"ai":"catalog:","tsdown":"catalog:","@auix/tsconfig":"workspace:*","@ai-sdk/provider":"catalog:"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=2.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prism_0.0.2_1771581077095_0.27161509738751133","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@aui-x/prism","version":"0.0.3","keywords":["ai","tracing","observability","ai-sdk","llm"],"license":"SEE LICENSE IN LICENSE","_id":"@aui-x/prism@0.0.3","maintainers":[{"name":"okisdev","email":"acc@okis.dev"}],"homepage":"https://auix.dev","dist":{"shasum":"efadce94f7c8546eed1cd1d73dd830b5a692fbcd","tarball":"https://registry.npmjs.org/@aui-x/prism/-/prism-0.0.3.tgz","fileCount":51,"integrity":"sha512-ZfUtS3jNMVG/NP5lI3tQHtsE8cDPpZv/pCKB2GMqEmoaRy+aTCrFmZyAvQpDYLttwjyMU2P5MDD/xnM6pNZ4CQ==","signatures":[{"sig":"MEUCICxWAj9hnFrGqKCUPUcuHfd9/0FqJKGeiRfJqw6FSPH1AiEAyZIRI4oVNRKdyuCiQb4mZU0SfvJ68hyLTjcW3SQr5Dw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180965},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./core":{"import":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"require":{"types":"./dist/core.d.cts","default":"./dist/core.cjs"}},"./integrations/ai-sdk":{"import":{"types":"./dist/integrations/ai-sdk.d.ts","default":"./dist/integrations/ai-sdk.js"},"require":{"types":"./dist/integrations/ai-sdk.d.cts","default":"./dist/integrations/ai-sdk.cjs"}},"./integrations/openai":{"import":{"types":"./dist/integrations/openai.d.ts","default":"./dist/integrations/openai.js"},"require":{"types":"./dist/integrations/openai.d.cts","default":"./dist/integrations/openai.cjs"}},"./integrations/anthropic":{"import":{"types":"./dist/integrations/anthropic.d.ts","default":"./dist/integrations/anthropic.js"},"require":{"types":"./dist/integrations/anthropic.d.cts","default":"./dist/integrations/anthropic.cjs"}}},"gitHead":"c2e150ce17dbe8b4643a897b86e3c439b4dc05f8","scripts":{"build":"tsdown","ts-check":"tsc --noEmit"},"_npmUser":{"name":"okisdev","email":"acc@okis.dev"},"_npmVersion":"11.10.0","description":"LLM tracing SDK for auix — AI SDK middleware + manual tracing","directories":{},"sideEffects":false,"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"ai":"catalog:","tsdown":"catalog:","@auix/tsconfig":"workspace:*","@ai-sdk/provider":"catalog:"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=2.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prism_0.0.3_1771585288753_0.5517613164254982","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@aui-x/prism","version":"0.0.4","keywords":["ai","tracing","observability","ai-sdk","llm"],"license":"SEE LICENSE IN LICENSE","_id":"@aui-x/prism@0.0.4","maintainers":[{"name":"okisdev","email":"acc@okis.dev"}],"homepage":"https://auix.dev","dist":{"shasum":"dd9990a5f525f10d96678c8b548da2865927824d","tarball":"https://registry.npmjs.org/@aui-x/prism/-/prism-0.0.4.tgz","fileCount":51,"integrity":"sha512-URSq6htRmHKUg48b0xFe7U6Z5ymfbReQ/zGCexJO+5C2vIlOZsOg6msdw0sAyvjTbGFHyEwzDqxsychPbn+9yg==","signatures":[{"sig":"MEUCIHSGHKM7K/2GoyVcy6acmYLjwiyxRIPz70nEJLuOBuHeAiEA5cnP0yAbOCRkZQ2hlLG+hMORVAFbvoILhAgAynWfjR8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171218},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./core":{"import":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"require":{"types":"./dist/core.d.cts","default":"./dist/core.cjs"}},"./integrations/ai-sdk":{"import":{"types":"./dist/integrations/ai-sdk.d.ts","default":"./dist/integrations/ai-sdk.js"},"require":{"types":"./dist/integrations/ai-sdk.d.cts","default":"./dist/integrations/ai-sdk.cjs"}},"./integrations/openai":{"import":{"types":"./dist/integrations/openai.d.ts","default":"./dist/integrations/openai.js"},"require":{"types":"./dist/integrations/openai.d.cts","default":"./dist/integrations/openai.cjs"}},"./integrations/anthropic":{"import":{"types":"./dist/integrations/anthropic.d.ts","default":"./dist/integrations/anthropic.js"},"require":{"types":"./dist/integrations/anthropic.d.cts","default":"./dist/integrations/anthropic.cjs"}}},"gitHead":"d51f599ec7d50b9581ac13ede3e47349a35b9910","scripts":{"build":"tsdown","ts-check":"tsc --noEmit"},"_npmUser":{"name":"okisdev","email":"acc@okis.dev"},"_npmVersion":"11.10.0","description":"LLM tracing SDK for auix — AI SDK middleware + manual tracing","directories":{},"sideEffects":false,"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"ai":"catalog:","tsdown":"catalog:","@auix/tsconfig":"workspace:*","@ai-sdk/provider":"catalog:"},"peerDependencies":{"ai":">=6.0.0","openai":">=4.0.0","@ai-sdk/provider":">=2.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@ai-sdk/provider":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prism_0.0.4_1771600748572_0.1796668138381221","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@aui-x/prism","version":"0.0.5","description":"LLM tracing SDK for auix — AI SDK middleware + manual tracing","sideEffects":false,"type":"module","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./core":{"import":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"require":{"types":"./dist/core.d.cts","default":"./dist/core.cjs"}},"./integrations/ai-sdk":{"import":{"types":"./dist/integrations/ai-sdk.d.ts","default":"./dist/integrations/ai-sdk.js"},"require":{"types":"./dist/integrations/ai-sdk.d.cts","default":"./dist/integrations/ai-sdk.cjs"}},"./integrations/openai":{"import":{"types":"./dist/integrations/openai.d.ts","default":"./dist/integrations/openai.js"},"require":{"types":"./dist/integrations/openai.d.cts","default":"./dist/integrations/openai.cjs"}},"./integrations/anthropic":{"import":{"types":"./dist/integrations/anthropic.d.ts","default":"./dist/integrations/anthropic.js"},"require":{"types":"./dist/integrations/anthropic.d.cts","default":"./dist/integrations/anthropic.cjs"}}},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsdown","ts-check":"tsc --noEmit"},"license":"SEE LICENSE IN LICENSE","homepage":"https://auix.dev","keywords":["ai","tracing","observability","ai-sdk","llm"],"peerDependencies":{"@ai-sdk/provider":">=2.0.0","ai":">=6.0.0","openai":">=4.0.0","@anthropic-ai/sdk":">=0.30.0"},"peerDependenciesMeta":{"@ai-sdk/provider":{"optional":true},"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"devDependencies":{"@ai-sdk/provider":"catalog:","@auix/tsconfig":"workspace:*","ai":"catalog:","tsdown":"catalog:"},"gitHead":"4ed553ad332a4c146391322e2881d1b53a8bbb70","_id":"@aui-x/prism@0.0.5","_nodeVersion":"25.8.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-sBzJbQeFZOGV/+6NSHoCagcIRJY6vO36q/GFMTOsbeRM2MITU0v9CMLskfXNIvcPttoCgXUrjxPuWxwihIcx8w==","shasum":"3fd651645ec67ae3c9bbe62e1355580b5fba4574","tarball":"https://registry.npmjs.org/@aui-x/prism/-/prism-0.0.5.tgz","fileCount":51,"unpackedSize":171218,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDSudV5ywlARDfZ4AdW5SaCOPGUgr4Pdo/q9OGqJ3jSrAIhAIrEmc4ht+utQt8hmQsNIc99xvW3N7n8NVSHUkU3mCqX"}]},"_npmUser":{"name":"okisdev","email":"acc@okis.dev"},"directories":{},"maintainers":[{"name":"okisdev","email":"acc@okis.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prism_0.0.5_1773104245191_0.41403741812607775"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-20T09:26:33.021Z","modified":"2026-03-10T00:57:25.596Z","0.0.1":"2026-02-20T09:26:33.313Z","0.0.2":"2026-02-20T09:51:17.252Z","0.0.3":"2026-02-20T11:01:28.905Z","0.0.4":"2026-02-20T15:19:08.707Z","0.0.5":"2026-03-10T00:57:25.467Z"},"license":"SEE LICENSE IN LICENSE","homepage":"https://auix.dev","keywords":["ai","tracing","observability","ai-sdk","llm"],"description":"LLM tracing SDK for auix — AI SDK middleware + manual tracing","maintainers":[{"name":"okisdev","email":"acc@okis.dev"}],"readme":"# @auix/prism\n\nLLM tracing SDK for [auix](https://auix.dev) — collect LLM traces with zero friction.\n\nSupports [Vercel AI SDK](https://sdk.vercel.ai), [OpenAI](https://github.com/openai/openai-node), [Anthropic](https://github.com/anthropics/anthropic-sdk-typescript), and manual tracing.\n\n## Install\n\n```bash\nnpm install @auix/prism\n```\n\nPeer dependencies (install only what you use):\n\n- `ai` (>=6.0.0) + `@ai-sdk/provider` (>=2.0.0) — for AI SDK integration\n- `openai` (>=4.0.0) — for OpenAI integration\n- `@anthropic-ai/sdk` (>=0.30.0) — for Anthropic integration\n\n## Quick Start\n\n### AI SDK (recommended)\n\n`prismAISDK` wraps any AI SDK model and automatically captures traces, token usage, latency, and tool calls. It creates a root trace internally and returns `{ model, end }`:\n\n```ts\nimport { AuixPrism, prismAISDK } from \"@auix/prism\";\nimport { openai } from \"@ai-sdk/openai\";\nimport { generateText } from \"ai\";\n\nconst tracer = new AuixPrism({ apiKey: \"your-api-key\" });\n\nconst traced = prismAISDK(tracer, openai(\"gpt-4o\"), {\n  name: \"my-chat\",\n  tags: [\"production\"],\n  endUserId: \"user@example.com\",\n  metadata: { threadId: \"t_123\" },\n});\n\nconst { text, usage } = await generateText({\n  model: traced.model,\n  prompt: \"Hello!\",\n});\n\n// Token usage is captured automatically from spans — just call end():\nawait traced.end();\n\n// Or pass explicit values to override:\nawait traced.end({\n  output: text,\n  totalTokens: usage.totalTokens,\n  inputTokens: usage.inputTokens,\n  outputTokens: usage.outputTokens,\n});\n```\n\nMulti-step tool use is handled correctly — each LLM call becomes a child span under the root trace, and token usage is automatically aggregated:\n\n```ts\nimport { streamText, stepCountIs } from \"ai\";\n\nconst traced = prismAISDK(tracer, openai(\"gpt-4o\"), {\n  name: \"agent\",\n  tags: [\"chat\"],\n});\n\nconst result = streamText({\n  model: traced.model,\n  prompt: \"What's the weather?\",\n  tools: { /* ... */ },\n  stopWhen: stepCountIs(6),\n});\n\nfor await (const chunk of result.textStream) {\n  process.stdout.write(chunk);\n}\n\nawait traced.end();\n```\n\n### OpenAI\n\n`prismOpenAI` returns a proxied client that traces `chat.completions.create` calls:\n\n```ts\nimport { AuixPrism, prismOpenAI } from \"@auix/prism\";\nimport OpenAI from \"openai\";\n\nconst tracer = new AuixPrism({ apiKey: \"your-api-key\" });\nconst client = prismOpenAI(tracer, new OpenAI(), {\n  name: \"my-chat\",\n  tags: [\"production\"],\n});\n\nconst response = await client.chat.completions.create({\n  model: \"gpt-4o\",\n  messages: [{ role: \"user\", content: \"Hello!\" }],\n});\n```\n\n### Anthropic\n\n`prismAnthropic` returns a proxied client that traces `messages.create` calls:\n\n```ts\nimport { AuixPrism, prismAnthropic } from \"@auix/prism\";\nimport Anthropic from \"@anthropic-ai/sdk\";\n\nconst tracer = new AuixPrism({ apiKey: \"your-api-key\" });\nconst client = prismAnthropic(tracer, new Anthropic(), {\n  name: \"my-chat\",\n  tags: [\"production\"],\n});\n\nconst response = await client.messages.create({\n  model: \"claude-sonnet-4-20250514\",\n  max_tokens: 1024,\n  messages: [{ role: \"user\", content: \"Hello!\" }],\n});\n```\n\n### Manual Tracing\n\nFor full control over trace structure:\n\n```ts\nimport { AuixPrism } from \"@auix/prism\";\n\nconst tracer = new AuixPrism({ apiKey: \"your-api-key\" });\n\nconst trace = tracer.startTrace({\n  name: \"rag-pipeline\",\n  metadata: { userId: \"u_123\" },\n});\n\nconst span = trace.startSpan({\n  name: \"vector-search\",\n  type: \"retrieval\",\n  input: { query: \"How do I reset my password?\" },\n});\n\nspan.end({ output: { results: 5 }, status: \"completed\" });\n\ntrace.end({ output: \"Here's how to reset...\", status: \"completed\" });\n\nawait tracer.destroy();\n```\n\n## API\n\n### `new AuixPrism(config)`\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `apiKey` | `string` | *required* | Your auix API key |\n| `baseUrl` | `string` | `\"https://api.auix.dev\"` | API endpoint |\n| `sessionId` | `string` | — | Group traces under a session |\n| `transport` | `(events) => Promise<void>` | — | Custom transport (bypasses HTTP) |\n| `onFlushError` | `(error) => void` | — | Called when flush fails after retry |\n\n### `prismAISDK(tracer, model, options?)`\n\nReturns `{ model, end }`. The `model` is a wrapped AI SDK model. Call `end(opts?)` after the generation completes to finalize the root trace.\n\n| Option | Type | Description |\n|--------|------|-------------|\n| `name` | `string` | Trace name (defaults to model ID) |\n| `tags` | `string[]` | Tags for filtering |\n| `metadata` | `Record<string, unknown>` | Arbitrary metadata |\n| `endUserId` | `string` | End user identifier |\n\n### `prismOpenAI(tracer, client, options?)`\n\nReturns a proxied OpenAI client. Same options as `prismAISDK` plus `parentTraceId` for nesting under an existing trace.\n\n### `prismAnthropic(tracer, client, options?)`\n\nReturns a proxied Anthropic client. Same options as `prismOpenAI`.\n\n### `tracer.startTrace(options)`\n\nReturns a `TraceHandle` for manual tracing.\n\n### `trace.startSpan(options)`\n\nCreates a child span. `type` can be `\"llm\"`, `\"tool\"`, `\"retrieval\"`, or `\"custom\"`.\n\n### `tracer.destroy()`\n\nFlushes pending events and stops the background timer. Call this when done tracing.\n\n## License\n\nProprietary — see [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}