{"_id":"@cogentwizards/openclaw-localtrace","_rev":"3-1e9811df289c60e86113dca488d4a1dc","name":"@cogentwizards/openclaw-localtrace","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.3":{"name":"@cogentwizards/openclaw-localtrace","version":"0.1.3","license":"MIT","_id":"@cogentwizards/openclaw-localtrace@0.1.3","maintainers":[{"name":"jay-k","email":"jayesh@getcogent.io"}],"homepage":"https://github.com/CogentWizards/openclaw-localtrace#readme","bugs":{"url":"https://github.com/CogentWizards/openclaw-localtrace/issues"},"bin":{"openclaw-localtrace-update-pricing":"dist/update-pricing-cli.js"},"dist":{"shasum":"3559c6d5891cd854f70cfbf11905de21f7fcece2","tarball":"https://registry.npmjs.org/@cogentwizards/openclaw-localtrace/-/openclaw-localtrace-0.1.3.tgz","fileCount":18,"integrity":"sha512-ew9Y9u1iGiXrZDAkG/y+uAlQr/WizhvvzqoPJ4Vc0zOG7m0aU4FthOfklKXARA5wZDCSXZesooHR4VERkZgZWA==","signatures":[{"sig":"MEUCIEAB/ouAKwjBXRD6mshNDCqWKAa5K41sSYNhqBU+dR+VAiEA3hyNDuqqkUdOtM4swGZbbErFkl4c4a6sRIbr26+qrdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169768},"type":"module","engines":{"node":">=24.16.0 <25 || >=26.1.0"},"gitHead":"0cbde92e24f05f87708b242d38ac0562f8fd6183","scripts":{"pack":"openclaw plugins pack --json","test":"npm run build:test && node --test dist-test/test/","build":"tsc -p tsconfig.json","validate":"openclaw plugins validate --json","build:test":"tsc -p tsconfig.test.json","update-pricing-table":"node scripts/update-pricing-table.mjs"},"_npmUser":{"name":"jay-k","email":"jayesh@getcogent.io"},"openclaw":{"build":{"openclawVersion":"2026.9.3"},"compat":{"pluginApi":">=2026.9.3"},"install":{"npmSpec":"@cogentwizards/openclaw-localtrace","defaultChoice":"npm","minHostVersion":">=2026.4.25"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/CogentWizards/openclaw-localtrace.git","type":"git"},"_npmVersion":"12.0.2","description":"Full-fidelity OpenTelemetry capture for OpenClaw, written to your local filesystem only -- no redaction, no network export, no third-party backend.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.10.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@opentelemetry/semantic-conventions":"1.43.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":"2026.9.3","typescript":"^5.9.0","@types/node":"^26.0.0"},"peerDependencies":{"openclaw":">=2026.9.3"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw-localtrace_0.1.3_1789092515088_0.8683800513426156","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@cogentwizards/openclaw-localtrace","version":"0.1.4","license":"MIT","_id":"@cogentwizards/openclaw-localtrace@0.1.4","maintainers":[{"name":"jay-k","email":"jayesh@getcogent.io"}],"homepage":"https://github.com/CogentWizards/openclaw-localtrace#readme","bugs":{"url":"https://github.com/CogentWizards/openclaw-localtrace/issues"},"bin":{"openclaw-localtrace-update-pricing":"dist/update-pricing-cli.js"},"dist":{"shasum":"f19eee6b773faeb332ed86a3e1946ad03cc2b822","tarball":"https://registry.npmjs.org/@cogentwizards/openclaw-localtrace/-/openclaw-localtrace-0.1.4.tgz","fileCount":18,"integrity":"sha512-aLAbwu5YeQVt7cQXCgWbqdc93AAAVOixf5C9+ai4YdmTR96kIFG1G6ZdQA+JmBSkBNidbYlinqzlAtTrjgl7gg==","signatures":[{"sig":"MEQCIGZt0qAN4/ln5oBX056v/UKqW19SnawaVYcHfrGE42ncAiBv1PkxacUJKCfIBaUj++9xAQ2FSyZYaueSKXW6Doq1UA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDu6+y8n9mAjYPbsgmtZi6rsWbY9qOe5JSxLGwJ/WEl8gIgcfRLaXNuISjrLO0AJnzCQAM2gAQUoS3uAbYytDtBju8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cogentwizards%2fopenclaw-localtrace@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161408},"type":"module","engines":{"node":">=24.16.0 <25 || >=26.1.0"},"gitHead":"7f9e18f3caafb886790614e0a20012a01aadf2b2","scripts":{"pack":"openclaw plugins pack --json","test":"npm run build:test && node --test dist-test/test/","build":"tsc -p tsconfig.json","validate":"openclaw plugins validate --json","build:test":"tsc -p tsconfig.test.json","update-pricing-table":"node scripts/update-pricing-table.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f80efcb3-da5d-4593-9c70-0936f90924c7"}},"openclaw":{"build":{"openclawVersion":"2026.9.3"},"compat":{"pluginApi":">=2026.9.3"},"install":{"npmSpec":"@cogentwizards/openclaw-localtrace","defaultChoice":"npm","minHostVersion":">=2026.4.25"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/CogentWizards/openclaw-localtrace.git","type":"git"},"_npmVersion":"11.19.1","description":"Full-fidelity OpenTelemetry capture for OpenClaw, written to your local filesystem only -- no redaction, no network export, no third-party backend.","directories":{},"_nodeVersion":"26.9.0","dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.10.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@opentelemetry/semantic-conventions":"1.43.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":"2026.9.3","typescript":"^5.9.0","@types/node":"^26.0.0"},"peerDependencies":{"openclaw":">=2026.9.3"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw-localtrace_0.1.4_1789698820871_0.7011714736244099","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"_id":"@cogentwizards/openclaw-localtrace@0.1.5","bin":{"openclaw-localtrace-update-pricing":"dist/update-pricing-cli.js"},"bugs":{"url":"https://github.com/CogentWizards/openclaw-localtrace/issues"},"dist":{"shasum":"12d0ee4d23ad8873da95e0b8b4fe44d86f1483ad","tarball":"https://registry.npmjs.org/@cogentwizards/openclaw-localtrace/-/openclaw-localtrace-0.1.5.tgz","fileCount":18,"integrity":"sha512-tHeZdquIzdnQDJe+h2ID/M+7KPUmCAZq+sj8k18X0NG8bCO4EcRqsSSldKLlovSM2MuGrIneISkMp7LAZgpMAw==","signatures":[{"sig":"MEUCIQDxfdY2p8MtzCQMwWi6d+fVokzysfIcGGrxv10dZoHApAIgZPl2Mh55DhsqeZrRK3Dc5yQ6jcv1oWWsFyaXF82YaOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFCb96ugedkixT4nJt5nL4Alrry/dolyMrFlnYR1WcF3AiEA/fWivXKBsQJde6C0Rm9tkDIhDtAyRiWaiAhX1NhTdDE="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cogentwizards%2fopenclaw-localtrace@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161450},"name":"@cogentwizards/openclaw-localtrace","type":"module","engines":{"node":">=24.16.0 <25 || >=26.1.0"},"gitHead":"71307cc6623fb08edbdc603ffbdd919da78d9a83","license":"MIT","scripts":{"pack":"openclaw plugins pack --json","test":"npm run build:test && node --test dist-test/test/","build":"tsc -p tsconfig.json","validate":"openclaw plugins validate --json","build:test":"tsc -p tsconfig.test.json","update-pricing-table":"node scripts/update-pricing-table.mjs"},"version":"0.1.5","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f80efcb3-da5d-4593-9c70-0936f90924c7"}},"homepage":"https://github.com/CogentWizards/openclaw-localtrace#readme","openclaw":{"build":{"openclawVersion":"2026.9.3"},"compat":{"pluginApi":">=2026.9.3"},"install":{"npmSpec":"@cogentwizards/openclaw-localtrace","defaultChoice":"npm","minHostVersion":">=2026.4.25"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/CogentWizards/openclaw-localtrace.git","type":"git"},"_npmVersion":"11.19.1","description":"Full-fidelity OpenTelemetry capture for OpenClaw, written to your local filesystem only -- no redaction, no network export, no third-party backend.","directories":{},"maintainers":[{"name":"jay-k","email":"jayesh@getcogent.io"}],"_nodeVersion":"26.9.0","dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.10.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@opentelemetry/semantic-conventions":"1.43.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":"2026.9.3","typescript":"^5.9.0","@types/node":"^26.0.0"},"peerDependencies":{"openclaw":">=2026.9.3"},"peerDependenciesMeta":{"openclaw":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-localtrace_0.1.5_1789699325584_0.37143803871819503"}}},"time":{"created":"2026-09-11T02:08:34.872Z","modified":"2026-09-18T02:42:06.174Z","0.1.3":"2026-09-11T02:08:35.232Z","0.1.4":"2026-09-18T02:33:40.957Z","0.1.5":"2026-09-18T02:42:05.667Z"},"bugs":{"url":"https://github.com/CogentWizards/openclaw-localtrace/issues"},"license":"MIT","homepage":"https://github.com/CogentWizards/openclaw-localtrace#readme","repository":{"url":"git+https://github.com/CogentWizards/openclaw-localtrace.git","type":"git"},"description":"Full-fidelity OpenTelemetry capture for OpenClaw, written to your local filesystem only -- no redaction, no network export, no third-party backend.","maintainers":[{"name":"jay-k","email":"jayesh@getcogent.io"}],"readme":"# openclaw-localtrace\n\n[![npm](https://img.shields.io/npm/v/%40cogentwizards%2Fopenclaw-localtrace.svg)](https://www.npmjs.com/package/@cogentwizards/openclaw-localtrace)\n[![CI](https://github.com/CogentWizards/openclaw-localtrace/actions/workflows/ci.yml/badge.svg)](https://github.com/CogentWizards/openclaw-localtrace/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/CogentWizards/openclaw-localtrace/blob/main/LICENSE)\n\nFull-fidelity OpenTelemetry capture for [OpenClaw](https://openclaw.ai), written only to your local filesystem. No redaction, no network export, no third-party backend.\n\n- **Real session IDs and a real write/mutation flag** on every tool call. Exactly what OpenClaw's own official exporter (`@openclaw/diagnostics-otel`) strips out before exporting anything.\n- **Nothing leaves your machine.** There is no code path here that can send data anywhere except a directory on disk.\n- **A real per-call cost estimate**, from this plugin's own bundled pricing snapshot.\n\n```json\n{ \"name\": \"openclaw-localtrace.tool.execution\", \"attributes\": {\n    \"openclaw.toolName\": \"apply_patch\",\n    \"openclaw.mutatingAction\": true,\n    \"openclaw.sessionId\": \"sess_abc123\" } }\n```\n\nReal output from this plugin's own `SpanMapper`, not a mockup. Full comparison with the official exporter: [docs/vs-diagnostics-otel.md](https://github.com/CogentWizards/openclaw-localtrace/blob/main/docs/vs-diagnostics-otel.md). Not a drop-in replacement, you can run both plugins at once.\n\n## Install\n\n```bash\nopenclaw plugins install clawhub:@cogentwizards/openclaw-localtrace\nopenclaw plugins enable openclaw-localtrace\nopenclaw config set plugins.entries.openclaw-localtrace.config.enabled true\n```\n\n<details>\n<summary>Installing from npm instead</summary>\n\n```bash\nopenclaw plugins install @cogentwizards/openclaw-localtrace --force --accept-capabilities --acknowledge-install-policy-warning\nopenclaw plugins enable openclaw-localtrace\nopenclaw config set plugins.entries.openclaw-localtrace.config.enabled true\n```\n\nAll three flags are required, not optional convenience. A bare install\nfails twice in a row and leaves the plugin disabled with its config\nwiped rather than rolling back cleanly. `--force` confirms installing\nfrom outside ClawHub's own trust metadata. `--accept-capabilities`\nconsents to the conversation-content hooks this plugin registers, gated\nseparately behind `hooks.allowConversationAccess` below.\n`--acknowledge-install-policy-warning` acknowledges any\n`security.installPolicy` warning non-interactively.\n\nPin a specific version with `@cogentwizards/openclaw-localtrace@<version>` and `--pin`.\n\n</details>\n\n## Turn it on\n\nEvery capability beyond basic tool/model spans is an explicit, off-by-default opt-in:\n\n```bash\nopenclaw config set plugins.entries.openclaw-localtrace.hooks.allowConversationAccess true      # unlocks run/llm.call spans\nopenclaw config set plugins.entries.openclaw-localtrace.config.captureIdentifiers true           # real session/run/call ids\nopenclaw config set plugins.entries.openclaw-localtrace.config.captureContent true               # raw prompt/tool content\nopenclaw gateway restart\n```\n\nVerify it worked:\n\n```bash\nls ~/.openclaw/openclaw-localtrace/traces/\nopenclaw plugins inspect openclaw-localtrace --runtime --json   # look for \"status\": \"loaded\"\n```\n\n## What it captures\n\n| Hook(s) | Written as | Needs an opt-in? |\n|---|---|---|\n| `before_agent_run` / `agent_end` | span `openclaw-localtrace.run` | `allowConversationAccess` |\n| `model_call_started` / `model_call_ended` | span `openclaw-localtrace.model.call` | no |\n| `llm_input` / `llm_output` | span `openclaw-localtrace.llm.call` | content needs both opt-ins, token usage and cost always attach |\n| `before_tool_call` / `after_tool_call` | span `openclaw-localtrace.tool.execution` | no |\n| `reply_payload_sending` | metric `openclaw.turn.cost.usd` | no |\n\nPairs naturally with [redundo](https://github.com/CogentWizards/redundo), which reads this plugin's output directly with no collector step.\n\n## Pricing data\n\nEvery `llm.call` span carries a cost estimate from this plugin's own bundled pricing snapshot. Refresh it any time:\n\n```bash\nnpx -p @cogentwizards/openclaw-localtrace openclaw-localtrace-update-pricing\n```\n\nFull detail: [docs/pricing.md](https://github.com/CogentWizards/openclaw-localtrace/blob/main/docs/pricing.md).\n\n## Docs\n\n- [docs/vs-diagnostics-otel.md](https://github.com/CogentWizards/openclaw-localtrace/blob/main/docs/vs-diagnostics-otel.md): why this plugin exists, and why hooks instead of the internal diagnostics bus\n- [docs/pricing.md](https://github.com/CogentWizards/openclaw-localtrace/blob/main/docs/pricing.md): how cost estimates work, and how to refresh the bundled pricing table\n- [docs/config.md](https://github.com/CogentWizards/openclaw-localtrace/blob/main/docs/config.md): every config key, plus how local retention and cleanup work\n\n## Development\n\n```bash\nnpm install\nnpm run build       # compiles src/ into dist/, this is what actually ships\nnpm test            # compiles src/ and test/ into dist-test/, runs node --test against it\n```\n\nNo live Gateway or network access needed. The span-construction logic is tested against the real OTel SDK with an in-memory exporter.\n\n## License\n\nMIT. See [LICENSE](https://github.com/CogentWizards/openclaw-localtrace/blob/main/LICENSE).\n","readmeFilename":"README.md"}