{"_id":"@ai-application-toolkit/otel","_rev":"2-735357ae6dc421789f6cf712f9929ea7","name":"@ai-application-toolkit/otel","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.0":{"name":"@ai-application-toolkit/otel","version":"0.0.0","keywords":["ai","llm","toolkit","opentelemetry","otel","observability","tracing"],"author":{"name":"Danny LAN","email":"45042818+shaoyulan@users.noreply.github.com"},"license":"MIT","_id":"@ai-application-toolkit/otel@0.0.0","maintainers":[{"name":"dannyshao","email":"dannyshao94@gmail.com"}],"homepage":"https://github.com/shaoyulan/ai-application-toolkit/tree/main/packages/integrations/otel#readme","bugs":{"url":"https://github.com/shaoyulan/ai-application-toolkit/issues"},"dist":{"shasum":"9734f91c5600495561a5a65ddbde74f62e7d68dc","tarball":"https://registry.npmjs.org/@ai-application-toolkit/otel/-/otel-0.0.0.tgz","fileCount":11,"integrity":"sha512-MFJZeXBIHiu8kYYOVwPyHGE8gLT4B+HoqLlvQVabdHH8Ku66aI9noXyb9iyMvsukHhbukaHLgpUVFNcEo+mqtw==","signatures":[{"sig":"MEUCIQDykxgw0cohzWWVdzS8iBmwN56PCfYb/gQlo8d4hJdXzQIgM4M6x6OTy6UawsXHKBWPs3516Ce9djHtKeDamtKdA4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31765},"type":"module","_from":"file:ai-application-toolkit-otel-0.0.0.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"dannyshao","email":"dannyshao94@gmail.com"},"_resolved":"/private/var/folders/yd/ygwjqvld63b4z_j_0dk3krzm0000gq/T/3eed22cf4e5ce4316376c69edb60f35d/ai-application-toolkit-otel-0.0.0.tgz","_integrity":"sha512-MFJZeXBIHiu8kYYOVwPyHGE8gLT4B+HoqLlvQVabdHH8Ku66aI9noXyb9iyMvsukHhbukaHLgpUVFNcEo+mqtw==","repository":{"url":"git+https://github.com/shaoyulan/ai-application-toolkit.git","type":"git","directory":"packages/integrations/otel"},"_npmVersion":"11.11.0","description":"OpenTelemetry trace sink for the AI Application Toolkit — emit runtime execution as OTel spans.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@opentelemetry/api":"^1.9.0","@ai-application-toolkit/trace":"0.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","typescript":"^5.7.2","@ai-application-toolkit/tool":"0.0.0","@opentelemetry/sdk-trace-base":"^1.30.1","@ai-application-toolkit/runtime":"0.0.0","@ai-application-toolkit/guardrail":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/otel_0.0.0_1782911983262_0.27089451340116133","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@ai-application-toolkit/otel","version":"0.1.0","description":"OpenTelemetry trace sink for the AI Application Toolkit — emit runtime execution as OTel spans.","license":"MIT","author":{"name":"Danny LAN","email":"45042818+shaoyulan@users.noreply.github.com"},"homepage":"https://github.com/shaoyulan/ai-application-toolkit/tree/main/packages/integrations/otel#readme","repository":{"type":"git","url":"git+https://github.com/shaoyulan/ai-application-toolkit.git","directory":"packages/integrations/otel"},"bugs":{"url":"https://github.com/shaoyulan/ai-application-toolkit/issues"},"keywords":["ai","llm","toolkit","opentelemetry","otel","observability","tracing"],"type":"module","sideEffects":false,"engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@opentelemetry/api":"^1.9.0","@ai-application-toolkit/trace":"0.1.0"},"devDependencies":{"@opentelemetry/sdk-trace-base":"^1.30.1","typescript":"^5.7.2","vitest":"^2.1.8","@ai-application-toolkit/guardrail":"0.1.1","@ai-application-toolkit/runtime":"0.1.1","@ai-application-toolkit/tool":"0.1.1"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","lint":"eslint src","clean":"rm -rf dist"},"_id":"@ai-application-toolkit/otel@0.1.0","_integrity":"sha512-K/GB4QVHl+KbV0alTQTl9Qbxt2DUmtrUY5/SWB/vOu1qXvflvgd1jV77MRjkBigROFTgYMBPewWA04LIm2Mw9w==","_resolved":"/tmp/62a175dac5e6c5c9eb3b0de9cebf9923/ai-application-toolkit-otel-0.1.0.tgz","_from":"file:ai-application-toolkit-otel-0.1.0.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-K/GB4QVHl+KbV0alTQTl9Qbxt2DUmtrUY5/SWB/vOu1qXvflvgd1jV77MRjkBigROFTgYMBPewWA04LIm2Mw9w==","shasum":"6e36575051a64da8f9b74f5a60d86c7898d14664","tarball":"https://registry.npmjs.org/@ai-application-toolkit/otel/-/otel-0.1.0.tgz","fileCount":11,"unpackedSize":31765,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDielKAGmZteuXcUI087Iw2bNL//9/FCWh2KOA418Mh8wIhAKjuAMmyZxZBOEFQaCZQHwlv+1bC+JqGkzs/65sIscKM"}]},"_npmUser":{"name":"dannyshao","email":"dannyshao94@gmail.com"},"directories":{},"maintainers":[{"name":"dannyshao","email":"dannyshao94@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/otel_0.1.0_1782913594562_0.003427809794321224"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T13:19:43.160Z","modified":"2026-07-01T13:46:34.812Z","0.0.0":"2026-07-01T13:19:43.410Z","0.1.0":"2026-07-01T13:46:34.691Z"},"bugs":{"url":"https://github.com/shaoyulan/ai-application-toolkit/issues"},"author":{"name":"Danny LAN","email":"45042818+shaoyulan@users.noreply.github.com"},"license":"MIT","homepage":"https://github.com/shaoyulan/ai-application-toolkit/tree/main/packages/integrations/otel#readme","keywords":["ai","llm","toolkit","opentelemetry","otel","observability","tracing"],"repository":{"type":"git","url":"git+https://github.com/shaoyulan/ai-application-toolkit.git","directory":"packages/integrations/otel"},"description":"OpenTelemetry trace sink for the AI Application Toolkit — emit runtime execution as OTel spans.","maintainers":[{"name":"dannyshao","email":"dannyshao94@gmail.com"}],"readme":"# @ai-application-toolkit/otel\n\nExport AI Application Toolkit runtime execution as [OpenTelemetry](https://opentelemetry.io)\nspans. `createOpenTelemetryTraceSink` is a drop-in [trace sink](https://github.com/shaoyulan/ai-application-toolkit/tree/main/packages/trace#readme):\nhand it to `createRuntime({ trace })` and every tool execution becomes a span\nfollowing the OpenTelemetry GenAI semantic conventions.\n\nPart of the [AI Application Toolkit](https://github.com/shaoyulan/ai-application-toolkit#readme).\n\n## Install\n\n```bash\npnpm add @ai-application-toolkit/otel @opentelemetry/api\n```\n\n## Usage\n\nThe sink uses whatever tracer your application's OpenTelemetry SDK has\nconfigured — point your exporter (OTLP, Jaeger, etc.) at it as usual.\n\n```ts\nimport { createRuntime } from '@ai-application-toolkit/runtime'\nimport { createOpenTelemetryTraceSink } from '@ai-application-toolkit/otel'\n\nconst runtime = createRuntime({\n  tools,\n  trace: createOpenTelemetryTraceSink()\n})\n\n// Every executeTool call now emits a span.\nawait runtime.executeTool({ toolId: 'search', input: { query: 'otel' } })\n```\n\nPass an explicit `tracer` to scope spans to a named instrumentation:\n\n```ts\nimport { trace } from '@opentelemetry/api'\n\ncreateOpenTelemetryTraceSink({ tracer: trace.getTracer('my-app') })\n```\n\n## What it emits\n\nOne span per runtime run (correlated by `runId`):\n\n- **Name** — `execute_tool <toolId>`\n- **Attributes** — `gen_ai.operation.name = \"execute_tool\"`,\n  `gen_ai.tool.name`, `gen_ai.tool.type = \"function\"`, and `ai_toolkit.run_id`\n- **Span events** — `tool:start`, `tool:end`, and `guardrail:blocked`\n  (with the guardrail id and reason)\n- **Status** — `OK` on success; `ERROR` with `error.type` set to the\n  `ToolkitError` code (`TOOL_TIMEOUT`, `GUARDRAIL_BLOCKED`,\n  `TOOL_EXECUTION_FAILED`, …) on failure, with the thrown error recorded as a\n  span exception\n\n## License\n\nMIT © Danny LAN\n","readmeFilename":"README.md"}