{"_id":"@atheon-inc/openclaw-plugin","_rev":"4-3812b61f51b32e19ba62f7b400a971f5","name":"@atheon-inc/openclaw-plugin","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.0":{"name":"@atheon-inc/openclaw-plugin","version":"0.0.0","keywords":["atheon","openclaw","plugin","analytics"],"author":{"name":"Saurabh Ghanekar","email":"saurabh@atheon.ad"},"license":"Apache-2.0","_id":"@atheon-inc/openclaw-plugin@0.0.0","maintainers":[{"name":"dexter_prim","email":"ghanekarsaurabh8@gmail.com"}],"homepage":"https://github.com/atheon-inc/atheon-openclaw-plugin#readme","bugs":{"url":"https://github.com/atheon-inc/atheon-openclaw-plugin/issues"},"dist":{"shasum":"8526e9b46c0078454c90f1c864d5d6f3b92d01e2","tarball":"https://registry.npmjs.org/@atheon-inc/openclaw-plugin/-/openclaw-plugin-0.0.0.tgz","fileCount":3,"integrity":"sha512-hf2cjEkoVr6yAJWsTbIZoiSZg4sqSwGQZtUrU/BFlol33DhgK/4nLOSYt6zUVxKmRFUrQQKldgr1sFyWGPco5A==","signatures":[{"sig":"MEUCIB9LVV3mD+AHaeMfJCl7yK6iZNjQ9oXxyqAKjxXypv5PAiEAugfcC82q9MZ6K9K+npS1w6vV30SsFa3cd/kGuP7/x4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12710},"main":"./dist/index.js","type":"module","scripts":{"build":"node build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"dexter_prim","email":"ghanekarsaurabh8@gmail.com"},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/atheon-inc/atheon-openclaw-plugin.git","type":"git"},"versioning":{"files":["src/index.ts:__version__"]},"_npmVersion":"11.12.1","description":"Atheon OpenClaw analytics plugin","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@atheon-inc/codex":"^1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27","typescript":"^6.0","@types/node":"^25.5"},"peerDependencies":{"openclaw":">=2026.3"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.0.0_1775409529193_0.41432607753872985","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@atheon-inc/openclaw-plugin","version":"0.1.0","keywords":["atheon","openclaw","plugin","analytics"],"author":{"name":"Saurabh Ghanekar","email":"saurabh@atheon.ad"},"license":"Apache-2.0","_id":"@atheon-inc/openclaw-plugin@0.1.0","maintainers":[{"name":"dexter_prim","email":"ghanekarsaurabh8@gmail.com"}],"homepage":"https://github.com/atheon-inc/atheon-openclaw-plugin#readme","bugs":{"url":"https://github.com/atheon-inc/atheon-openclaw-plugin/issues"},"dist":{"shasum":"5a242550f78dcad494dcc8f1a351d9ea7723b83a","tarball":"https://registry.npmjs.org/@atheon-inc/openclaw-plugin/-/openclaw-plugin-0.1.0.tgz","fileCount":20,"integrity":"sha512-NY7nt5FL4v6QlbE1SrfLjR5oxMLPv1H4kPExRYHiDlBtHqHpbv3V/SnE0kYV1jyXojxUpBgnC6tkTwpHPZXDRA==","signatures":[{"sig":"MEUCIQC4hFrFCxRDopS0y1tt8Hzmv07eMu2NTDEL9ilcI7xFCwIgJuee1xCpR1MBHZayBvkkljOGjL1ZdEIHOlIL1RMws3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atheon-inc%2fopenclaw-plugin@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88158},"main":"./dist/index.js","type":"module","scripts":{"build":"node build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4c61b667-7a9c-4925-b312-6f109d640557"}},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/atheon-inc/atheon-openclaw-plugin.git","type":"git"},"versioning":{"files":["src/index.ts:__version__"]},"_npmVersion":"11.12.1","description":"Atheon OpenClaw analytics plugin","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@atheon-inc/codex":"^1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27","typescript":"^6.0","@types/node":"^25.5"},"peerDependencies":{"openclaw":">=2026.3"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.1.0_1775413131945_0.12386353805453765","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atheon-inc/openclaw-plugin","version":"0.1.1","keywords":["atheon","openclaw","plugin","analytics"],"author":{"name":"Saurabh Ghanekar","email":"saurabh@atheon.ad"},"license":"Apache-2.0","_id":"@atheon-inc/openclaw-plugin@0.1.1","maintainers":[{"name":"dexter_prim","email":"ghanekarsaurabh8@gmail.com"}],"homepage":"https://github.com/atheon-inc/atheon-openclaw-plugin#readme","bugs":{"url":"https://github.com/atheon-inc/atheon-openclaw-plugin/issues"},"dist":{"shasum":"33f537f1017bc1e01f85457b2dba4539c3ac234c","tarball":"https://registry.npmjs.org/@atheon-inc/openclaw-plugin/-/openclaw-plugin-0.1.1.tgz","fileCount":20,"integrity":"sha512-rW3l52r5a2D3V562LKQVNJBKAlIjhUbk/WZJrZnJDFuiHIYzBVMgfnmfCBTPA4n+uqPcnXXlYfQP6kzWAywmoQ==","signatures":[{"sig":"MEUCIDYPq+WSH/ia2O5QoX251kvSU5BszgpPm1RvzG9eGFbCAiEA8iVUcJxZnNayuaIPYcbCGNmeye3JlKc4lenZuWIlfGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atheon-inc%2fopenclaw-plugin@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90111},"main":"./dist/index.js","type":"module","scripts":{"build":"node build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4c61b667-7a9c-4925-b312-6f109d640557"}},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/atheon-inc/atheon-openclaw-plugin.git","type":"git"},"versioning":{"files":["src/index.ts:__version__"]},"_npmVersion":"11.12.1","description":"Atheon OpenClaw analytics plugin","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@atheon-inc/codex":"^1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.27","typescript":"^6.0","@types/node":"^25.5"},"peerDependencies":{"openclaw":">=2026.3"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.1.1_1775504287619_0.4767791868303888","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atheon-inc/openclaw-plugin","version":"0.1.2","description":"Atheon OpenClaw analytics plugin","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/atheon-inc/atheon-openclaw-plugin.git"},"type":"module","main":"./dist/index.js","openclaw":{"extensions":["./dist/index.js"]},"scripts":{"build":"node build.mjs","prepublishOnly":"npm run build"},"dependencies":{"@atheon-inc/codex":"^1.0"},"peerDependencies":{"openclaw":">=2026.3"},"devDependencies":{"@types/node":"^25.5","esbuild":"^0.27","typescript":"^6.0"},"versioning":{"files":["src/index.ts:__version__"]},"keywords":["atheon","openclaw","plugin","analytics"],"author":{"name":"Saurabh Ghanekar","email":"saurabh@atheon.ad"},"license":"Apache-2.0","_id":"@atheon-inc/openclaw-plugin@0.1.2","bugs":{"url":"https://github.com/atheon-inc/atheon-openclaw-plugin/issues"},"homepage":"https://github.com/atheon-inc/atheon-openclaw-plugin#readme","_nodeVersion":"22.22.1","_npmVersion":"11.13.0","dist":{"integrity":"sha512-nKsPL49YbyrollK/f9eCRTaY2Ezs62zWHfmUooFgAHCB0ndypzBNKH7diDmLMJ1ApAblydNKSUa+K0BlBItu0A==","shasum":"818c5168a291f6aebd084076a68afbffc295af7c","tarball":"https://registry.npmjs.org/@atheon-inc/openclaw-plugin/-/openclaw-plugin-0.1.2.tgz","fileCount":20,"unpackedSize":91324,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atheon-inc%2fopenclaw-plugin@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBVmYLHZYjSiEeKRTM6OvJaNz/60ldspd89tYk010o3mAiBbrpkuNeUJkSL/JVTl6SWxD7srjjdZ6tuFgyQJjc7PIg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4c61b667-7a9c-4925-b312-6f109d640557"}},"directories":{},"maintainers":[{"name":"dexter_prim","email":"ghanekarsaurabh8@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-plugin_0.1.2_1777584045378_0.8244314396725598"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-05T17:18:49.127Z","modified":"2026-04-30T21:20:45.916Z","0.0.0":"2026-04-05T17:18:49.331Z","0.1.0":"2026-04-05T18:18:52.108Z","0.1.1":"2026-04-06T19:38:07.764Z","0.1.2":"2026-04-30T21:20:45.528Z"},"bugs":{"url":"https://github.com/atheon-inc/atheon-openclaw-plugin/issues"},"author":{"name":"Saurabh Ghanekar","email":"saurabh@atheon.ad"},"license":"Apache-2.0","homepage":"https://github.com/atheon-inc/atheon-openclaw-plugin#readme","keywords":["atheon","openclaw","plugin","analytics"],"repository":{"type":"git","url":"git+https://github.com/atheon-inc/atheon-openclaw-plugin.git"},"description":"Atheon OpenClaw analytics plugin","maintainers":[{"name":"dexter_prim","email":"ghanekarsaurabh8@gmail.com"}],"readme":"# Atheon OpenClaw Plugin\n\n## Why This Plugin\n\n[Atheon](https://atheon-inc.com) is a purpose-build modern analytics platform for LLM agents.\n\n`@atheon-inc/openclaw-plugin` adds native Atheon analytics capabilities to OpenClaw runs:\n\n- LLM request and response traces with token usage\n- Sub-agent lifecycle nested under their parent trace\n- Tool call traces with latency, inputs, and errors\n- Automatic cleanup of abandoned or timed-out interactions\n- Payload sanitization — internal OpenClaw metadata is stripped before leaving the gateway\n\nThe plugin runs inside the OpenClaw Gateway process. If your gateway is remote, install and configure the plugin on that host.\n\n## Install and first run\n\nPrerequisites:\n\n- OpenClaw `>=2026.3.2`\n- Node.js `>=22.12.0`\n- npm `>=10`\n\n### 1. Install the plugin in OpenClaw\n\n```bash\nopenclaw plugins install clawhub:@atheon-inc/openclaw-plugin\n```\n\nFor older versions of OpenClaw `<2026.3.23` install directly from npm:\n\n```bash\nopenclaw plugins install @atheon-inc/openclaw-plugin\n```\n\nIf the gateway is already running, restart it after install.\n\n### 2. Set your API key\n\n```bash\nexport ATHEON_API_KEY=arc_...\n```\n\nOr pass it via the plugin config block — see [Configuration](#configuration) below.\n\n### 3. Check effective settings\n\n```bash\nopenclaw plugins status atheon-openclaw\n```\n\n### 4. Send a test message\n\n```bash\nopenclaw gateway run\nopenclaw message send \"hello from openclaw\"\n```\n\nThen confirm traces appear in your Atheon Codex project.\n\n## Configuration\n\n### Recommended config shape\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"atheon-openclaw\": {\n        \"enabled\": true,\n        \"hooks\": {\n            \"allowConversationAccess\": true\n        },\n        \"config\": {\n          \"apiKey\": \"arc_...\",\n          \"uploadSize\": 100,\n          \"uploadInterval\": 5000\n        }\n      }\n    }\n  }\n}\n```\n\n### Config reference\n\n| Option           | Environment variable | Type     | Required | Description                                                     |\n|------------------|----------------------|----------|-----------|-----------------------------------------------------------------|\n| `apiKey`         | `ATHEON_API_KEY`     | `string` | ✅        | Atheon Codex API key.                                           |\n| `uploadSize`     | —                    | `number` | —         | Number of spans to batch before uploading.                      |\n| `uploadInterval` | —                    | `number` | —         | Maximum milliseconds between uploads, regardless of batch size. |\n\n`apiKey` is required. The plugin will fail to start at startup if it is absent from both the config block and `ATHEON_API_KEY`.\n\n### Plugin trust allowlist\n\nOpenClaw warns when `plugins.allow` is empty and a community plugin is discovered. Pin trusted plugins explicitly:\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"atheon-openclaw\"]\n  }\n}\n```\n\n## Event mapping\n\n| OpenClaw event      | Atheon Codex entity          | Notes                                                                  |\n|---------------------|------------------------------|------------------------------------------------------------------------|\n| `llm_input`         | root interaction start       | Opens a new interaction; updates provider/model on an existing child.  |\n| `llm_output`        | root interaction finish      | Records output text and token usage; deferred if tools are in flight.  |\n| `before_tool_call`  | tool span start              | Captures tool name and start timestamp.                                |\n| `after_tool_call`   | tool span finish             | Records latency and error, then closes the span.                       |\n| `subagent_spawning` | child interaction start      | Spawns a child interaction nested under the parent.                    |\n| `subagent_spawned`  | child interaction update     | Enriches child with run ID and thread metadata.                        |\n| `subagent_ended`    | child interaction finish     | Finalizes child with outcome and error.                                |\n| `session_end`       | root interaction force-close | Closes any interaction still open when the session ends.               |\n\n## Trace structure\n\nEach session produces one root interaction. Subagents produce child interactions nested underneath it. Tool calls are recorded as spans on whichever interaction made the call.\n\n```\nSession\n└── Root interaction  (llm_input → llm_output)\n    ├── Tool span     (before_tool_call → after_tool_call)\n    ├── Tool span\n    └── Child interaction  (subagent_spawning → subagent_ended)\n        ├── Tool span\n        └── Tool span\n```\n\nIf a session ends while tool calls or subagents are still in flight, the plugin records them as abandoned with an error message and closes the tree cleanly.\n\nA background reaper runs every **5 minutes** and closes interactions idle for more than **1 hour**, preventing unbounded memory growth from sessions that end without a clean `session_end` event.\n\n## Supported providers\n\nProvider strings from the gateway are normalized before being sent to Atheon Codex:\n\n| Raw string (case-insensitive, substring match) | Normalized       |\n|------------------------------------------------|------------------|\n| `anthropic`                                    | `anthropic`      |\n| `openai`                                       | `openai`         |\n| `google`, `gemini`                             | `google`         |\n| `mistral`                                      | `mistral`        |\n| `cohere`                                       | `cohere`         |\n| anything else                                  | lowercased as-is |\n\n## Known limitations\n\n- No OpenClaw core changes are required or included. The plugin relies entirely on the native hook lifecycle exposed by the OpenClaw Plugin SDK.\n\n## Development\n\nPrerequisites:\n\n- Node.js `>=22.12.0`\n- npm `>=10`\n\n```bash\nnpm ci\nnpm run lint\nnpm run typecheck\nnpm run test\n```\n\nLog lines from the plugin are prefixed with `[atheon-openclaw]` for easy filtering:\n\n```bash\nopenclaw gateway run 2>&1 | grep '\\[atheon-openclaw\\]'\n```\n\n## License\n\nThis SDK is licensed under the **Apache License 2.0**. See [LICENSE](LICENSE) for details.\n\n## Links\n\n  - [Atheon Documentation](https://docs.atheon.ad)\n  - [Gateway Dashboard](https://gateway.atheon.ad)\n","readmeFilename":"README.md"}