vilvona 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (812) hide show
  1. package/CHANGELOG.md +12331 -0
  2. package/LICENSE +24 -0
  3. package/README.md +314 -0
  4. package/THIRD_PARTY_NOTICES.md +37 -0
  5. package/docs/.i18n/README.md +81 -0
  6. package/docs/.i18n/ar-navigation.json +18 -0
  7. package/docs/.i18n/de-navigation.json +18 -0
  8. package/docs/.i18n/es-navigation.json +18 -0
  9. package/docs/.i18n/fr-navigation.json +18 -0
  10. package/docs/.i18n/glossary.ar.json +82 -0
  11. package/docs/.i18n/glossary.de.json +82 -0
  12. package/docs/.i18n/glossary.es.json +82 -0
  13. package/docs/.i18n/glossary.fa.json +82 -0
  14. package/docs/.i18n/glossary.fr.json +82 -0
  15. package/docs/.i18n/glossary.id.json +82 -0
  16. package/docs/.i18n/glossary.it.json +82 -0
  17. package/docs/.i18n/glossary.ja-JP.json +102 -0
  18. package/docs/.i18n/glossary.ko.json +82 -0
  19. package/docs/.i18n/glossary.nl.json +82 -0
  20. package/docs/.i18n/glossary.pl.json +82 -0
  21. package/docs/.i18n/glossary.pt-BR.json +82 -0
  22. package/docs/.i18n/glossary.th.json +82 -0
  23. package/docs/.i18n/glossary.tr.json +82 -0
  24. package/docs/.i18n/glossary.uk.json +82 -0
  25. package/docs/.i18n/glossary.vi.json +82 -0
  26. package/docs/.i18n/glossary.zh-CN.json +1182 -0
  27. package/docs/.i18n/glossary.zh-TW.json +162 -0
  28. package/docs/.i18n/id-navigation.json +18 -0
  29. package/docs/.i18n/it-navigation.json +18 -0
  30. package/docs/.i18n/ja-navigation.json +18 -0
  31. package/docs/.i18n/ko-navigation.json +18 -0
  32. package/docs/.i18n/pl-navigation.json +18 -0
  33. package/docs/.i18n/pt-BR-navigation.json +18 -0
  34. package/docs/.i18n/tr-navigation.json +18 -0
  35. package/docs/.i18n/translation-workflow.md +111 -0
  36. package/docs/.i18n/zh-Hans-navigation.json +552 -0
  37. package/docs/AGENTS.md +36 -0
  38. package/docs/agent-runtime-architecture.md +48 -0
  39. package/docs/announcements/bluebubbles-imessage.md +79 -0
  40. package/docs/auth-credential-semantics.md +124 -0
  41. package/docs/automation/auth-monitoring.md +11 -0
  42. package/docs/automation/clawflow.md +12 -0
  43. package/docs/automation/cron-jobs.md +569 -0
  44. package/docs/automation/cron-vs-heartbeat.md +11 -0
  45. package/docs/automation/gmail-pubsub.md +11 -0
  46. package/docs/automation/hooks.md +387 -0
  47. package/docs/automation/index.md +135 -0
  48. package/docs/automation/poll.md +12 -0
  49. package/docs/automation/standing-orders.md +250 -0
  50. package/docs/automation/taskflow.md +155 -0
  51. package/docs/automation/tasks.md +374 -0
  52. package/docs/automation/troubleshooting.md +12 -0
  53. package/docs/automation/webhook.md +12 -0
  54. package/docs/brave-search.md +11 -0
  55. package/docs/channels/access-groups.md +201 -0
  56. package/docs/channels/ambient-room-events.md +214 -0
  57. package/docs/channels/bot-loop-protection.md +131 -0
  58. package/docs/channels/broadcast-groups.md +472 -0
  59. package/docs/channels/channel-routing.md +162 -0
  60. package/docs/channels/clickclack.md +146 -0
  61. package/docs/channels/discord.md +1758 -0
  62. package/docs/channels/feishu.md +654 -0
  63. package/docs/channels/googlechat.md +286 -0
  64. package/docs/channels/group-messages.md +95 -0
  65. package/docs/channels/groups.md +610 -0
  66. package/docs/channels/imessage-from-bluebubbles.md +259 -0
  67. package/docs/channels/imessage.md +864 -0
  68. package/docs/channels/index.md +65 -0
  69. package/docs/channels/irc.md +253 -0
  70. package/docs/channels/line.md +243 -0
  71. package/docs/channels/location.md +71 -0
  72. package/docs/channels/matrix-migration.md +375 -0
  73. package/docs/channels/matrix-presentation.md +77 -0
  74. package/docs/channels/matrix-push-rules.md +150 -0
  75. package/docs/channels/matrix.md +935 -0
  76. package/docs/channels/mattermost.md +542 -0
  77. package/docs/channels/msteams.md +1097 -0
  78. package/docs/channels/nextcloud-talk.md +176 -0
  79. package/docs/channels/nostr.md +253 -0
  80. package/docs/channels/pairing.md +214 -0
  81. package/docs/channels/qqbot.md +317 -0
  82. package/docs/channels/signal.md +417 -0
  83. package/docs/channels/slack.md +1623 -0
  84. package/docs/channels/sms.md +380 -0
  85. package/docs/channels/synology-chat.md +187 -0
  86. package/docs/channels/telegram.md +1121 -0
  87. package/docs/channels/tlon.md +296 -0
  88. package/docs/channels/troubleshooting.md +162 -0
  89. package/docs/channels/twitch.md +431 -0
  90. package/docs/channels/wechat.md +171 -0
  91. package/docs/channels/whatsapp.md +796 -0
  92. package/docs/channels/yuanbao.md +416 -0
  93. package/docs/channels/zalo.md +253 -0
  94. package/docs/channels/zalouser.md +217 -0
  95. package/docs/ci.md +665 -0
  96. package/docs/clawhub/cli.md +82 -0
  97. package/docs/clawhub/publishing.md +96 -0
  98. package/docs/cli/acp.md +370 -0
  99. package/docs/cli/agent.md +109 -0
  100. package/docs/cli/agents.md +253 -0
  101. package/docs/cli/approvals.md +193 -0
  102. package/docs/cli/backup.md +98 -0
  103. package/docs/cli/browser.md +322 -0
  104. package/docs/cli/channels.md +154 -0
  105. package/docs/cli/clawbot.md +25 -0
  106. package/docs/cli/commitments.md +90 -0
  107. package/docs/cli/completion.md +39 -0
  108. package/docs/cli/config.md +504 -0
  109. package/docs/cli/configure.md +77 -0
  110. package/docs/cli/crestodian.md +337 -0
  111. package/docs/cli/cron.md +344 -0
  112. package/docs/cli/daemon.md +67 -0
  113. package/docs/cli/dashboard.md +33 -0
  114. package/docs/cli/devices.md +240 -0
  115. package/docs/cli/directory.md +68 -0
  116. package/docs/cli/dns.md +53 -0
  117. package/docs/cli/docs.md +63 -0
  118. package/docs/cli/doctor.md +254 -0
  119. package/docs/cli/flows.md +52 -0
  120. package/docs/cli/gateway.md +572 -0
  121. package/docs/cli/health.md +43 -0
  122. package/docs/cli/hooks.md +345 -0
  123. package/docs/cli/index.md +406 -0
  124. package/docs/cli/infer.md +364 -0
  125. package/docs/cli/logs.md +68 -0
  126. package/docs/cli/mcp.md +851 -0
  127. package/docs/cli/memory.md +183 -0
  128. package/docs/cli/message.md +317 -0
  129. package/docs/cli/migrate.md +334 -0
  130. package/docs/cli/models.md +239 -0
  131. package/docs/cli/node.md +178 -0
  132. package/docs/cli/nodes.md +76 -0
  133. package/docs/cli/onboard.md +251 -0
  134. package/docs/cli/pairing.md +77 -0
  135. package/docs/cli/path.md +511 -0
  136. package/docs/cli/plugins.md +480 -0
  137. package/docs/cli/policy.md +929 -0
  138. package/docs/cli/proxy.md +89 -0
  139. package/docs/cli/qr.md +56 -0
  140. package/docs/cli/reset.md +39 -0
  141. package/docs/cli/sandbox.md +208 -0
  142. package/docs/cli/secrets.md +202 -0
  143. package/docs/cli/security.md +135 -0
  144. package/docs/cli/sessions.md +178 -0
  145. package/docs/cli/setup.md +60 -0
  146. package/docs/cli/skills.md +156 -0
  147. package/docs/cli/status.md +45 -0
  148. package/docs/cli/system.md +89 -0
  149. package/docs/cli/tasks.md +111 -0
  150. package/docs/cli/transcripts.md +151 -0
  151. package/docs/cli/tui.md +92 -0
  152. package/docs/cli/uninstall.md +45 -0
  153. package/docs/cli/update.md +283 -0
  154. package/docs/cli/voicecall.md +204 -0
  155. package/docs/cli/webhooks.md +117 -0
  156. package/docs/cli/wiki.md +256 -0
  157. package/docs/cli/workboard.md +228 -0
  158. package/docs/concepts/active-memory.md +856 -0
  159. package/docs/concepts/agent-loop.md +185 -0
  160. package/docs/concepts/agent-runtimes.md +276 -0
  161. package/docs/concepts/agent-workspace.md +230 -0
  162. package/docs/concepts/agent.md +142 -0
  163. package/docs/concepts/architecture.md +154 -0
  164. package/docs/concepts/channel-docking.md +145 -0
  165. package/docs/concepts/commitments.md +150 -0
  166. package/docs/concepts/compaction.md +203 -0
  167. package/docs/concepts/context-engine.md +347 -0
  168. package/docs/concepts/context.md +199 -0
  169. package/docs/concepts/delegate-architecture.md +319 -0
  170. package/docs/concepts/dreaming.md +279 -0
  171. package/docs/concepts/experimental-features.md +111 -0
  172. package/docs/concepts/features.md +91 -0
  173. package/docs/concepts/mantis-slack-desktop-runbook.md +231 -0
  174. package/docs/concepts/mantis.md +744 -0
  175. package/docs/concepts/markdown-formatting.md +139 -0
  176. package/docs/concepts/memory-builtin.md +151 -0
  177. package/docs/concepts/memory-honcho.md +144 -0
  178. package/docs/concepts/memory-qmd.md +277 -0
  179. package/docs/concepts/memory-search.md +175 -0
  180. package/docs/concepts/memory.md +299 -0
  181. package/docs/concepts/message-lifecycle-refactor.md +1126 -0
  182. package/docs/concepts/messages.md +216 -0
  183. package/docs/concepts/model-failover.md +405 -0
  184. package/docs/concepts/model-providers.md +719 -0
  185. package/docs/concepts/models.md +371 -0
  186. package/docs/concepts/multi-agent.md +625 -0
  187. package/docs/concepts/oauth.md +218 -0
  188. package/docs/concepts/parallel-specialist-lanes.md +127 -0
  189. package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
  190. package/docs/concepts/presence.md +117 -0
  191. package/docs/concepts/progress-drafts.md +406 -0
  192. package/docs/concepts/qa-e2e-automation.md +979 -0
  193. package/docs/concepts/qa-matrix.md +139 -0
  194. package/docs/concepts/queue-steering.md +90 -0
  195. package/docs/concepts/queue.md +136 -0
  196. package/docs/concepts/retry.md +86 -0
  197. package/docs/concepts/session-pruning.md +104 -0
  198. package/docs/concepts/session-tool.md +201 -0
  199. package/docs/concepts/session.md +164 -0
  200. package/docs/concepts/soul.md +116 -0
  201. package/docs/concepts/streaming.md +258 -0
  202. package/docs/concepts/system-prompt.md +330 -0
  203. package/docs/concepts/timezone.md +47 -0
  204. package/docs/concepts/typebox.md +309 -0
  205. package/docs/concepts/typing-indicators.md +88 -0
  206. package/docs/concepts/usage-tracking.md +72 -0
  207. package/docs/date-time.md +126 -0
  208. package/docs/debug/node-issue.md +90 -0
  209. package/docs/diagnostics/flags.md +182 -0
  210. package/docs/docs.json +1885 -0
  211. package/docs/gateway/authentication.md +286 -0
  212. package/docs/gateway/background-process.md +147 -0
  213. package/docs/gateway/bonjour.md +303 -0
  214. package/docs/gateway/bridge-protocol.md +97 -0
  215. package/docs/gateway/cli-backends.md +463 -0
  216. package/docs/gateway/config-agents.md +1525 -0
  217. package/docs/gateway/config-channels.md +942 -0
  218. package/docs/gateway/config-tools.md +806 -0
  219. package/docs/gateway/configuration-examples.md +706 -0
  220. package/docs/gateway/configuration-reference.md +1449 -0
  221. package/docs/gateway/configuration.md +748 -0
  222. package/docs/gateway/diagnostics.md +213 -0
  223. package/docs/gateway/discovery.md +154 -0
  224. package/docs/gateway/doctor.md +576 -0
  225. package/docs/gateway/external-apps.md +86 -0
  226. package/docs/gateway/gateway-lock.md +37 -0
  227. package/docs/gateway/health.md +73 -0
  228. package/docs/gateway/heartbeat.md +498 -0
  229. package/docs/gateway/index.md +385 -0
  230. package/docs/gateway/local-model-services.md +205 -0
  231. package/docs/gateway/local-models.md +355 -0
  232. package/docs/gateway/logging.md +149 -0
  233. package/docs/gateway/multiple-gateways.md +178 -0
  234. package/docs/gateway/network-model.md +15 -0
  235. package/docs/gateway/openai-http-api.md +379 -0
  236. package/docs/gateway/openresponses-http-api.md +349 -0
  237. package/docs/gateway/openshell.md +316 -0
  238. package/docs/gateway/opentelemetry.md +440 -0
  239. package/docs/gateway/operator-scopes.md +119 -0
  240. package/docs/gateway/pairing.md +207 -0
  241. package/docs/gateway/prometheus.md +249 -0
  242. package/docs/gateway/protocol.md +839 -0
  243. package/docs/gateway/remote-gateway-readme.md +169 -0
  244. package/docs/gateway/remote.md +280 -0
  245. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +148 -0
  246. package/docs/gateway/sandboxing.md +546 -0
  247. package/docs/gateway/secrets-plan-contract.md +159 -0
  248. package/docs/gateway/secrets.md +805 -0
  249. package/docs/gateway/security/audit-checks.md +127 -0
  250. package/docs/gateway/security/exposure-runbook.md +212 -0
  251. package/docs/gateway/security/index.md +1344 -0
  252. package/docs/gateway/security/secure-file-operations.md +76 -0
  253. package/docs/gateway/security/shrinkwrap.md +111 -0
  254. package/docs/gateway/tailscale.md +180 -0
  255. package/docs/gateway/tools-invoke-http-api.md +175 -0
  256. package/docs/gateway/troubleshooting.md +881 -0
  257. package/docs/gateway/trusted-proxy-auth.md +483 -0
  258. package/docs/help/debugging.md +341 -0
  259. package/docs/help/environment.md +240 -0
  260. package/docs/help/faq-first-run.md +872 -0
  261. package/docs/help/faq-models.md +557 -0
  262. package/docs/help/faq.md +2115 -0
  263. package/docs/help/index.md +39 -0
  264. package/docs/help/scripts.md +56 -0
  265. package/docs/help/testing-live.md +592 -0
  266. package/docs/help/testing-updates-plugins.md +299 -0
  267. package/docs/help/testing.md +977 -0
  268. package/docs/help/troubleshooting.md +500 -0
  269. package/docs/index.md +196 -0
  270. package/docs/install/ansible.md +233 -0
  271. package/docs/install/azure.md +315 -0
  272. package/docs/install/bun.md +59 -0
  273. package/docs/install/clawdock.md +112 -0
  274. package/docs/install/development-channels.md +148 -0
  275. package/docs/install/digitalocean.md +174 -0
  276. package/docs/install/docker-vm-runtime.md +154 -0
  277. package/docs/install/docker.md +564 -0
  278. package/docs/install/exe-dev.md +201 -0
  279. package/docs/install/fly.md +524 -0
  280. package/docs/install/gcp.md +418 -0
  281. package/docs/install/hetzner.md +285 -0
  282. package/docs/install/hostinger.md +98 -0
  283. package/docs/install/index.md +236 -0
  284. package/docs/install/installer.md +447 -0
  285. package/docs/install/kubernetes.md +196 -0
  286. package/docs/install/macos-vm.md +281 -0
  287. package/docs/install/migrating-claude.md +165 -0
  288. package/docs/install/migrating-hermes.md +178 -0
  289. package/docs/install/migrating.md +137 -0
  290. package/docs/install/nix.md +112 -0
  291. package/docs/install/node.md +142 -0
  292. package/docs/install/northflank.mdx +44 -0
  293. package/docs/install/oracle.md +218 -0
  294. package/docs/install/podman.md +216 -0
  295. package/docs/install/railway.mdx +92 -0
  296. package/docs/install/raspberry-pi.md +234 -0
  297. package/docs/install/render.mdx +167 -0
  298. package/docs/install/uninstall.md +140 -0
  299. package/docs/install/updating.md +284 -0
  300. package/docs/install/upstash.md +96 -0
  301. package/docs/logging.md +322 -0
  302. package/docs/maturity-scores.yaml +5361 -0
  303. package/docs/nav-tabs-underline.js +104 -0
  304. package/docs/network.md +72 -0
  305. package/docs/nodes/audio.md +216 -0
  306. package/docs/nodes/camera.md +166 -0
  307. package/docs/nodes/images.md +77 -0
  308. package/docs/nodes/index.md +444 -0
  309. package/docs/nodes/location-command.md +102 -0
  310. package/docs/nodes/media-understanding.md +495 -0
  311. package/docs/nodes/talk.md +160 -0
  312. package/docs/nodes/troubleshooting.md +123 -0
  313. package/docs/nodes/voicewake.md +93 -0
  314. package/docs/openclaw-agent-runtime.md +82 -0
  315. package/docs/perplexity.md +11 -0
  316. package/docs/plan/codex-context-engine-harness.md +624 -0
  317. package/docs/plan/ui-channels.md +284 -0
  318. package/docs/platforms/android.md +286 -0
  319. package/docs/platforms/digitalocean.md +12 -0
  320. package/docs/platforms/easyrunner.md +109 -0
  321. package/docs/platforms/index.md +65 -0
  322. package/docs/platforms/ios.md +287 -0
  323. package/docs/platforms/linux.md +141 -0
  324. package/docs/platforms/mac/bundled-gateway.md +79 -0
  325. package/docs/platforms/mac/canvas.md +128 -0
  326. package/docs/platforms/mac/child-process.md +72 -0
  327. package/docs/platforms/mac/dev-setup.md +112 -0
  328. package/docs/platforms/mac/health.md +39 -0
  329. package/docs/platforms/mac/icon.md +36 -0
  330. package/docs/platforms/mac/logging.md +62 -0
  331. package/docs/platforms/mac/menu-bar.md +93 -0
  332. package/docs/platforms/mac/peekaboo.md +96 -0
  333. package/docs/platforms/mac/permissions.md +73 -0
  334. package/docs/platforms/mac/remote.md +123 -0
  335. package/docs/platforms/mac/signing.md +52 -0
  336. package/docs/platforms/mac/skills.md +45 -0
  337. package/docs/platforms/mac/voice-overlay.md +66 -0
  338. package/docs/platforms/mac/voicewake.md +79 -0
  339. package/docs/platforms/mac/webchat.md +54 -0
  340. package/docs/platforms/mac/xpc.md +66 -0
  341. package/docs/platforms/macos.md +228 -0
  342. package/docs/platforms/oracle.md +12 -0
  343. package/docs/platforms/raspberry-pi.md +13 -0
  344. package/docs/platforms/windows.md +304 -0
  345. package/docs/plugins/adding-capabilities.md +146 -0
  346. package/docs/plugins/admin-http-rpc.md +216 -0
  347. package/docs/plugins/agent-tools.md +13 -0
  348. package/docs/plugins/architecture-internals.md +1203 -0
  349. package/docs/plugins/architecture.md +483 -0
  350. package/docs/plugins/building-extensions.md +13 -0
  351. package/docs/plugins/building-plugins.md +343 -0
  352. package/docs/plugins/bundles.md +310 -0
  353. package/docs/plugins/cli-backend-plugins.md +328 -0
  354. package/docs/plugins/codex-computer-use.md +297 -0
  355. package/docs/plugins/codex-harness-reference.md +480 -0
  356. package/docs/plugins/codex-harness-runtime.md +268 -0
  357. package/docs/plugins/codex-harness.md +800 -0
  358. package/docs/plugins/codex-native-plugins.md +280 -0
  359. package/docs/plugins/community.md +77 -0
  360. package/docs/plugins/compatibility.md +198 -0
  361. package/docs/plugins/copilot.md +355 -0
  362. package/docs/plugins/dependency-resolution.md +176 -0
  363. package/docs/plugins/google-meet.md +1737 -0
  364. package/docs/plugins/hooks.md +525 -0
  365. package/docs/plugins/install-overrides.md +80 -0
  366. package/docs/plugins/llama-cpp.md +58 -0
  367. package/docs/plugins/manage-plugins.md +214 -0
  368. package/docs/plugins/manifest.md +1468 -0
  369. package/docs/plugins/memory-lancedb.md +385 -0
  370. package/docs/plugins/memory-wiki.md +529 -0
  371. package/docs/plugins/message-presentation.md +487 -0
  372. package/docs/plugins/oc-path.md +166 -0
  373. package/docs/plugins/plugin-inventory.md +318 -0
  374. package/docs/plugins/plugin-permission-requests.md +193 -0
  375. package/docs/plugins/reference/acpx.md +23 -0
  376. package/docs/plugins/reference/admin-http-rpc.md +23 -0
  377. package/docs/plugins/reference/alibaba.md +23 -0
  378. package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
  379. package/docs/plugins/reference/amazon-bedrock.md +23 -0
  380. package/docs/plugins/reference/anthropic-vertex.md +29 -0
  381. package/docs/plugins/reference/anthropic.md +23 -0
  382. package/docs/plugins/reference/arcee.md +23 -0
  383. package/docs/plugins/reference/azure-speech.md +23 -0
  384. package/docs/plugins/reference/bonjour.md +19 -0
  385. package/docs/plugins/reference/brave.md +23 -0
  386. package/docs/plugins/reference/browser.md +23 -0
  387. package/docs/plugins/reference/byteplus.md +19 -0
  388. package/docs/plugins/reference/canvas.md +19 -0
  389. package/docs/plugins/reference/cerebras.md +23 -0
  390. package/docs/plugins/reference/chutes.md +23 -0
  391. package/docs/plugins/reference/clickclack.md +23 -0
  392. package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
  393. package/docs/plugins/reference/codex-supervisor.md +27 -0
  394. package/docs/plugins/reference/codex.md +23 -0
  395. package/docs/plugins/reference/comfy.md +23 -0
  396. package/docs/plugins/reference/copilot-proxy.md +19 -0
  397. package/docs/plugins/reference/copilot.md +23 -0
  398. package/docs/plugins/reference/deepgram.md +23 -0
  399. package/docs/plugins/reference/deepinfra.md +23 -0
  400. package/docs/plugins/reference/deepseek.md +23 -0
  401. package/docs/plugins/reference/diagnostics-otel.md +19 -0
  402. package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
  403. package/docs/plugins/reference/diffs-language-pack.md +31 -0
  404. package/docs/plugins/reference/diffs.md +19 -0
  405. package/docs/plugins/reference/discord.md +23 -0
  406. package/docs/plugins/reference/document-extract.md +23 -0
  407. package/docs/plugins/reference/duckduckgo.md +23 -0
  408. package/docs/plugins/reference/elevenlabs.md +23 -0
  409. package/docs/plugins/reference/exa.md +23 -0
  410. package/docs/plugins/reference/fal.md +23 -0
  411. package/docs/plugins/reference/feishu.md +23 -0
  412. package/docs/plugins/reference/file-transfer.md +19 -0
  413. package/docs/plugins/reference/firecrawl.md +23 -0
  414. package/docs/plugins/reference/fireworks.md +23 -0
  415. package/docs/plugins/reference/github-copilot.md +23 -0
  416. package/docs/plugins/reference/gmi.md +23 -0
  417. package/docs/plugins/reference/google-meet.md +23 -0
  418. package/docs/plugins/reference/google.md +23 -0
  419. package/docs/plugins/reference/googlechat.md +23 -0
  420. package/docs/plugins/reference/gradium.md +23 -0
  421. package/docs/plugins/reference/groq.md +23 -0
  422. package/docs/plugins/reference/huggingface.md +23 -0
  423. package/docs/plugins/reference/imessage.md +23 -0
  424. package/docs/plugins/reference/inworld.md +23 -0
  425. package/docs/plugins/reference/irc.md +23 -0
  426. package/docs/plugins/reference/kilocode.md +23 -0
  427. package/docs/plugins/reference/kimi.md +23 -0
  428. package/docs/plugins/reference/line.md +23 -0
  429. package/docs/plugins/reference/litellm.md +23 -0
  430. package/docs/plugins/reference/llama-cpp.md +23 -0
  431. package/docs/plugins/reference/llm-task.md +19 -0
  432. package/docs/plugins/reference/lmstudio.md +23 -0
  433. package/docs/plugins/reference/lobster.md +19 -0
  434. package/docs/plugins/reference/matrix.md +23 -0
  435. package/docs/plugins/reference/mattermost.md +23 -0
  436. package/docs/plugins/reference/memory-core.md +19 -0
  437. package/docs/plugins/reference/memory-lancedb.md +23 -0
  438. package/docs/plugins/reference/memory-wiki.md +23 -0
  439. package/docs/plugins/reference/microsoft-foundry.md +113 -0
  440. package/docs/plugins/reference/microsoft.md +19 -0
  441. package/docs/plugins/reference/migrate-claude.md +19 -0
  442. package/docs/plugins/reference/migrate-hermes.md +19 -0
  443. package/docs/plugins/reference/minimax.md +23 -0
  444. package/docs/plugins/reference/mistral.md +23 -0
  445. package/docs/plugins/reference/moonshot.md +23 -0
  446. package/docs/plugins/reference/msteams.md +23 -0
  447. package/docs/plugins/reference/nextcloud-talk.md +23 -0
  448. package/docs/plugins/reference/nostr.md +23 -0
  449. package/docs/plugins/reference/novita.md +23 -0
  450. package/docs/plugins/reference/nvidia.md +23 -0
  451. package/docs/plugins/reference/oc-path.md +23 -0
  452. package/docs/plugins/reference/ollama.md +24 -0
  453. package/docs/plugins/reference/open-prose.md +19 -0
  454. package/docs/plugins/reference/openai.md +23 -0
  455. package/docs/plugins/reference/opencode-go.md +23 -0
  456. package/docs/plugins/reference/opencode.md +23 -0
  457. package/docs/plugins/reference/openrouter.md +23 -0
  458. package/docs/plugins/reference/openshell.md +19 -0
  459. package/docs/plugins/reference/perplexity.md +23 -0
  460. package/docs/plugins/reference/pixverse.md +23 -0
  461. package/docs/plugins/reference/policy.md +79 -0
  462. package/docs/plugins/reference/qa-channel.md +23 -0
  463. package/docs/plugins/reference/qa-lab.md +19 -0
  464. package/docs/plugins/reference/qa-matrix.md +19 -0
  465. package/docs/plugins/reference/qianfan.md +23 -0
  466. package/docs/plugins/reference/qqbot.md +23 -0
  467. package/docs/plugins/reference/qwen.md +24 -0
  468. package/docs/plugins/reference/runway.md +23 -0
  469. package/docs/plugins/reference/searxng.md +19 -0
  470. package/docs/plugins/reference/senseaudio.md +23 -0
  471. package/docs/plugins/reference/sglang.md +23 -0
  472. package/docs/plugins/reference/signal.md +23 -0
  473. package/docs/plugins/reference/slack.md +23 -0
  474. package/docs/plugins/reference/sms.md +23 -0
  475. package/docs/plugins/reference/stepfun.md +23 -0
  476. package/docs/plugins/reference/synology-chat.md +23 -0
  477. package/docs/plugins/reference/synthetic.md +23 -0
  478. package/docs/plugins/reference/tavily.md +23 -0
  479. package/docs/plugins/reference/telegram.md +23 -0
  480. package/docs/plugins/reference/tencent.md +23 -0
  481. package/docs/plugins/reference/tlon.md +23 -0
  482. package/docs/plugins/reference/together.md +23 -0
  483. package/docs/plugins/reference/tokenjuice.md +23 -0
  484. package/docs/plugins/reference/tts-local-cli.md +19 -0
  485. package/docs/plugins/reference/twitch.md +23 -0
  486. package/docs/plugins/reference/venice.md +23 -0
  487. package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
  488. package/docs/plugins/reference/vllm.md +23 -0
  489. package/docs/plugins/reference/voice-call.md +23 -0
  490. package/docs/plugins/reference/volcengine.md +23 -0
  491. package/docs/plugins/reference/voyage.md +19 -0
  492. package/docs/plugins/reference/vydra.md +23 -0
  493. package/docs/plugins/reference/web-readability.md +19 -0
  494. package/docs/plugins/reference/webhooks.md +23 -0
  495. package/docs/plugins/reference/whatsapp.md +23 -0
  496. package/docs/plugins/reference/workboard.md +23 -0
  497. package/docs/plugins/reference/xai.md +23 -0
  498. package/docs/plugins/reference/xiaomi.md +23 -0
  499. package/docs/plugins/reference/zai.md +23 -0
  500. package/docs/plugins/reference/zalo.md +23 -0
  501. package/docs/plugins/reference/zalouser.md +24 -0
  502. package/docs/plugins/reference.md +19 -0
  503. package/docs/plugins/sdk-agent-harness.md +339 -0
  504. package/docs/plugins/sdk-channel-inbound.md +70 -0
  505. package/docs/plugins/sdk-channel-ingress.md +137 -0
  506. package/docs/plugins/sdk-channel-message.md +18 -0
  507. package/docs/plugins/sdk-channel-outbound.md +113 -0
  508. package/docs/plugins/sdk-channel-plugins.md +770 -0
  509. package/docs/plugins/sdk-channel-turn.md +9 -0
  510. package/docs/plugins/sdk-entrypoints.md +344 -0
  511. package/docs/plugins/sdk-migration.md +1011 -0
  512. package/docs/plugins/sdk-overview.md +525 -0
  513. package/docs/plugins/sdk-provider-plugins.md +1019 -0
  514. package/docs/plugins/sdk-runtime.md +683 -0
  515. package/docs/plugins/sdk-setup.md +550 -0
  516. package/docs/plugins/sdk-subpaths.md +401 -0
  517. package/docs/plugins/sdk-testing.md +403 -0
  518. package/docs/plugins/tool-plugins.md +411 -0
  519. package/docs/plugins/voice-call.md +942 -0
  520. package/docs/plugins/webhooks.md +192 -0
  521. package/docs/plugins/workboard.md +402 -0
  522. package/docs/plugins/zalouser.md +86 -0
  523. package/docs/prose.md +191 -0
  524. package/docs/providers/alibaba.md +158 -0
  525. package/docs/providers/anthropic.md +386 -0
  526. package/docs/providers/arcee.md +144 -0
  527. package/docs/providers/azure-speech.md +119 -0
  528. package/docs/providers/bedrock-mantle.md +224 -0
  529. package/docs/providers/bedrock.md +433 -0
  530. package/docs/providers/cerebras.md +130 -0
  531. package/docs/providers/chutes.md +153 -0
  532. package/docs/providers/claude-max-api-proxy.md +191 -0
  533. package/docs/providers/cloudflare-ai-gateway.md +119 -0
  534. package/docs/providers/comfy.md +362 -0
  535. package/docs/providers/deepgram.md +184 -0
  536. package/docs/providers/deepinfra.md +92 -0
  537. package/docs/providers/deepseek.md +146 -0
  538. package/docs/providers/ds4.md +309 -0
  539. package/docs/providers/elevenlabs.md +130 -0
  540. package/docs/providers/fal.md +240 -0
  541. package/docs/providers/fireworks.md +144 -0
  542. package/docs/providers/github-copilot.md +257 -0
  543. package/docs/providers/gmi.md +92 -0
  544. package/docs/providers/google.md +472 -0
  545. package/docs/providers/gradium.md +123 -0
  546. package/docs/providers/groq.md +171 -0
  547. package/docs/providers/huggingface.md +235 -0
  548. package/docs/providers/index.md +105 -0
  549. package/docs/providers/inferrs.md +272 -0
  550. package/docs/providers/inworld.md +120 -0
  551. package/docs/providers/kilocode.md +135 -0
  552. package/docs/providers/litellm.md +234 -0
  553. package/docs/providers/lmstudio.md +224 -0
  554. package/docs/providers/minimax.md +518 -0
  555. package/docs/providers/mistral.md +235 -0
  556. package/docs/providers/models.md +64 -0
  557. package/docs/providers/moonshot.md +413 -0
  558. package/docs/providers/novita.md +92 -0
  559. package/docs/providers/nvidia.md +208 -0
  560. package/docs/providers/ollama-cloud.md +115 -0
  561. package/docs/providers/ollama.md +1225 -0
  562. package/docs/providers/openai.md +1091 -0
  563. package/docs/providers/opencode-go.md +123 -0
  564. package/docs/providers/opencode.md +149 -0
  565. package/docs/providers/openrouter.md +390 -0
  566. package/docs/providers/perplexity-provider.md +123 -0
  567. package/docs/providers/pixverse.md +165 -0
  568. package/docs/providers/qianfan.md +132 -0
  569. package/docs/providers/qwen-oauth.md +115 -0
  570. package/docs/providers/qwen.md +364 -0
  571. package/docs/providers/runway.md +103 -0
  572. package/docs/providers/senseaudio.md +68 -0
  573. package/docs/providers/sglang.md +161 -0
  574. package/docs/providers/stepfun.md +229 -0
  575. package/docs/providers/synthetic.md +154 -0
  576. package/docs/providers/tencent.md +130 -0
  577. package/docs/providers/together.md +140 -0
  578. package/docs/providers/venice.md +312 -0
  579. package/docs/providers/vercel-ai-gateway.md +128 -0
  580. package/docs/providers/vllm.md +407 -0
  581. package/docs/providers/volcengine.md +199 -0
  582. package/docs/providers/vydra.md +180 -0
  583. package/docs/providers/xai.md +571 -0
  584. package/docs/providers/xiaomi.md +286 -0
  585. package/docs/providers/zai.md +224 -0
  586. package/docs/refactor/access.md +9 -0
  587. package/docs/refactor/acp.md +298 -0
  588. package/docs/refactor/canvas.md +131 -0
  589. package/docs/refactor/database-first.md +2263 -0
  590. package/docs/refactor/ingress-core.md +341 -0
  591. package/docs/reference/AGENTS.default.md +131 -0
  592. package/docs/reference/RELEASING.md +844 -0
  593. package/docs/reference/api-usage-costs.md +208 -0
  594. package/docs/reference/application-modernization-plan.md +208 -0
  595. package/docs/reference/code-mode.md +1058 -0
  596. package/docs/reference/credits.md +33 -0
  597. package/docs/reference/device-models.md +50 -0
  598. package/docs/reference/full-release-validation.md +206 -0
  599. package/docs/reference/memory-config.md +630 -0
  600. package/docs/reference/prompt-caching.md +358 -0
  601. package/docs/reference/release-performance-sweep.md +347 -0
  602. package/docs/reference/rich-output-protocol.md +93 -0
  603. package/docs/reference/rpc.md +43 -0
  604. package/docs/reference/secret-placeholder-conventions.md +33 -0
  605. package/docs/reference/secretref-credential-surface.md +163 -0
  606. package/docs/reference/secretref-user-supplied-credentials-matrix.json +691 -0
  607. package/docs/reference/session-management-compaction.md +474 -0
  608. package/docs/reference/templates/AGENTS.dev.md +90 -0
  609. package/docs/reference/templates/AGENTS.md +227 -0
  610. package/docs/reference/templates/BOOT.md +16 -0
  611. package/docs/reference/templates/BOOTSTRAP.md +66 -0
  612. package/docs/reference/templates/HEARTBEAT.md +24 -0
  613. package/docs/reference/templates/IDENTITY.dev.md +52 -0
  614. package/docs/reference/templates/IDENTITY.md +34 -0
  615. package/docs/reference/templates/SOUL.dev.md +82 -0
  616. package/docs/reference/templates/SOUL.md +49 -0
  617. package/docs/reference/templates/TOOLS.dev.md +29 -0
  618. package/docs/reference/templates/TOOLS.md +51 -0
  619. package/docs/reference/templates/USER.dev.md +23 -0
  620. package/docs/reference/templates/USER.md +28 -0
  621. package/docs/reference/test.md +248 -0
  622. package/docs/reference/token-use.md +246 -0
  623. package/docs/reference/transcript-hygiene.md +226 -0
  624. package/docs/reference/wizard.md +252 -0
  625. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
  626. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  627. package/docs/security/formal-verification.md +170 -0
  628. package/docs/security/incident-response.md +59 -0
  629. package/docs/security/network-proxy.md +268 -0
  630. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
  631. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  632. package/docs/specs/claw-supervisor.md +247 -0
  633. package/docs/start/bootstrapping.md +49 -0
  634. package/docs/start/docs-directory.md +69 -0
  635. package/docs/start/getting-started.md +152 -0
  636. package/docs/start/hubs.md +201 -0
  637. package/docs/start/lore.md +223 -0
  638. package/docs/start/onboarding-overview.md +72 -0
  639. package/docs/start/onboarding.md +98 -0
  640. package/docs/start/openclaw.md +246 -0
  641. package/docs/start/quickstart.md +25 -0
  642. package/docs/start/setup.md +178 -0
  643. package/docs/start/showcase.md +371 -0
  644. package/docs/start/wizard-cli-automation.md +232 -0
  645. package/docs/start/wizard-cli-reference.md +331 -0
  646. package/docs/start/wizard.md +142 -0
  647. package/docs/style.css +137 -0
  648. package/docs/tools/acp-agents-setup.md +356 -0
  649. package/docs/tools/acp-agents.md +865 -0
  650. package/docs/tools/agent-send.md +130 -0
  651. package/docs/tools/apply-patch.md +64 -0
  652. package/docs/tools/brave-search.md +139 -0
  653. package/docs/tools/browser-control.md +405 -0
  654. package/docs/tools/browser-linux-troubleshooting.md +173 -0
  655. package/docs/tools/browser-login.md +77 -0
  656. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
  657. package/docs/tools/browser.md +866 -0
  658. package/docs/tools/btw.md +159 -0
  659. package/docs/tools/capability-cookbook.md +12 -0
  660. package/docs/tools/clawhub.md +5 -0
  661. package/docs/tools/code-execution.md +173 -0
  662. package/docs/tools/creating-skills.md +271 -0
  663. package/docs/tools/diffs.md +527 -0
  664. package/docs/tools/duckduckgo-search.md +109 -0
  665. package/docs/tools/elevated.md +128 -0
  666. package/docs/tools/exa-search.md +152 -0
  667. package/docs/tools/exec-approvals-advanced.md +457 -0
  668. package/docs/tools/exec-approvals.md +520 -0
  669. package/docs/tools/exec.md +294 -0
  670. package/docs/tools/firecrawl.md +155 -0
  671. package/docs/tools/gemini-search.md +114 -0
  672. package/docs/tools/goal.md +217 -0
  673. package/docs/tools/grok-search.md +129 -0
  674. package/docs/tools/image-generation.md +538 -0
  675. package/docs/tools/index.md +176 -0
  676. package/docs/tools/kimi-search.md +105 -0
  677. package/docs/tools/llm-task.md +137 -0
  678. package/docs/tools/lobster.md +365 -0
  679. package/docs/tools/loop-detection.md +154 -0
  680. package/docs/tools/media-overview.md +161 -0
  681. package/docs/tools/minimax-search.md +102 -0
  682. package/docs/tools/multi-agent-sandbox-tools.md +409 -0
  683. package/docs/tools/music-generation.md +372 -0
  684. package/docs/tools/ollama-search.md +153 -0
  685. package/docs/tools/parallel-search.md +154 -0
  686. package/docs/tools/pdf.md +213 -0
  687. package/docs/tools/permission-modes.md +111 -0
  688. package/docs/tools/perplexity-search.md +220 -0
  689. package/docs/tools/plugin.md +378 -0
  690. package/docs/tools/reactions.md +100 -0
  691. package/docs/tools/searxng-search.md +141 -0
  692. package/docs/tools/skill-workshop.md +283 -0
  693. package/docs/tools/skills-config.md +457 -0
  694. package/docs/tools/skills.md +591 -0
  695. package/docs/tools/slash-commands.md +518 -0
  696. package/docs/tools/steer.md +77 -0
  697. package/docs/tools/subagents.md +652 -0
  698. package/docs/tools/tavily.md +162 -0
  699. package/docs/tools/thinking.md +142 -0
  700. package/docs/tools/tokenjuice.md +84 -0
  701. package/docs/tools/tool-search.md +269 -0
  702. package/docs/tools/trajectory.md +229 -0
  703. package/docs/tools/tts.md +1013 -0
  704. package/docs/tools/video-generation.md +555 -0
  705. package/docs/tools/web-fetch.md +210 -0
  706. package/docs/tools/web.md +476 -0
  707. package/docs/tts.md +11 -0
  708. package/docs/vps.md +139 -0
  709. package/docs/web/control-ui.md +530 -0
  710. package/docs/web/dashboard.md +107 -0
  711. package/docs/web/index.md +133 -0
  712. package/docs/web/tui.md +258 -0
  713. package/docs/web/webchat.md +102 -0
  714. package/npm-shrinkwrap.json +3485 -0
  715. package/openclaw.mjs +661 -0
  716. package/package.json +1971 -0
  717. package/patches/.gitkeep +0 -0
  718. package/patches/@agentclientprotocol__claude-agent-acp@0.39.0.patch +40 -0
  719. package/pnpm-workspace.yaml +124 -0
  720. package/scripts/crabbox-wrapper.mjs +2470 -0
  721. package/scripts/lib/official-external-channel-catalog.json +570 -0
  722. package/scripts/lib/official-external-plugin-catalog.json +284 -0
  723. package/scripts/lib/official-external-provider-catalog.json +158 -0
  724. package/scripts/lib/package-dist-imports.mjs +174 -0
  725. package/scripts/npm-runner.mjs +95 -0
  726. package/scripts/postinstall-bundled-plugins.mjs +978 -0
  727. package/scripts/preinstall-package-manager-warning.mjs +74 -0
  728. package/scripts/prepare-git-hooks.mjs +73 -0
  729. package/scripts/windows-cmd-helpers.mjs +29 -0
  730. package/skills/1password/SKILL.md +70 -0
  731. package/skills/1password/references/cli-examples.md +29 -0
  732. package/skills/1password/references/get-started.md +17 -0
  733. package/skills/apple-notes/SKILL.md +77 -0
  734. package/skills/apple-reminders/SKILL.md +118 -0
  735. package/skills/bear-notes/SKILL.md +107 -0
  736. package/skills/blogwatcher/SKILL.md +69 -0
  737. package/skills/blucli/SKILL.md +47 -0
  738. package/skills/camsnap/SKILL.md +45 -0
  739. package/skills/canvas/SKILL.md +78 -0
  740. package/skills/clawhub/SKILL.md +77 -0
  741. package/skills/coding-agent/SKILL.md +143 -0
  742. package/skills/diagram-maker/SKILL.md +53 -0
  743. package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
  744. package/skills/diagram-maker/references/svg-template.md +112 -0
  745. package/skills/discord/SKILL.md +136 -0
  746. package/skills/eightctl/SKILL.md +50 -0
  747. package/skills/gemini/SKILL.md +47 -0
  748. package/skills/gh-issues/SKILL.md +213 -0
  749. package/skills/gifgrep/SKILL.md +85 -0
  750. package/skills/github/SKILL.md +84 -0
  751. package/skills/gog/SKILL.md +116 -0
  752. package/skills/goplaces/SKILL.md +52 -0
  753. package/skills/healthcheck/SKILL.md +105 -0
  754. package/skills/himalaya/SKILL.md +80 -0
  755. package/skills/himalaya/references/configuration.md +184 -0
  756. package/skills/himalaya/references/message-composition.md +199 -0
  757. package/skills/imsg/SKILL.md +122 -0
  758. package/skills/mcporter/SKILL.md +61 -0
  759. package/skills/meme-maker/SKILL.md +42 -0
  760. package/skills/meme-maker/references/templates.json +358 -0
  761. package/skills/meme-maker/scripts/meme.mjs +398 -0
  762. package/skills/model-usage/SKILL.md +71 -0
  763. package/skills/model-usage/references/codexbar-cli.md +33 -0
  764. package/skills/model-usage/scripts/model_usage.py +319 -0
  765. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  766. package/skills/nano-pdf/SKILL.md +38 -0
  767. package/skills/node-connect/SKILL.md +143 -0
  768. package/skills/node-inspect-debugger/SKILL.md +85 -0
  769. package/skills/notion/SKILL.md +150 -0
  770. package/skills/obsidian/SKILL.md +119 -0
  771. package/skills/openai-whisper/SKILL.md +38 -0
  772. package/skills/openai-whisper-api/SKILL.md +71 -0
  773. package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
  774. package/skills/openhue/SKILL.md +112 -0
  775. package/skills/oracle/SKILL.md +126 -0
  776. package/skills/ordercli/SKILL.md +78 -0
  777. package/skills/peekaboo/SKILL.md +198 -0
  778. package/skills/pyproject.toml +10 -0
  779. package/skills/python-debugpy/SKILL.md +73 -0
  780. package/skills/sag/SKILL.md +87 -0
  781. package/skills/session-logs/SKILL.md +151 -0
  782. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  783. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  784. package/skills/skill-creator/SKILL.md +78 -0
  785. package/skills/skill-creator/license.txt +202 -0
  786. package/skills/skill-creator/scripts/init_skill.py +378 -0
  787. package/skills/skill-creator/scripts/package_skill.py +144 -0
  788. package/skills/skill-creator/scripts/quick_validate.py +169 -0
  789. package/skills/skill-creator/scripts/test_package_skill.py +199 -0
  790. package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
  791. package/skills/slack/SKILL.md +78 -0
  792. package/skills/songsee/SKILL.md +49 -0
  793. package/skills/sonoscli/SKILL.md +65 -0
  794. package/skills/spike/SKILL.md +51 -0
  795. package/skills/spotify-player/SKILL.md +64 -0
  796. package/skills/summarize/SKILL.md +87 -0
  797. package/skills/taskflow/SKILL.md +149 -0
  798. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  799. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  800. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  801. package/skills/things-mac/SKILL.md +86 -0
  802. package/skills/tmux/SKILL.md +91 -0
  803. package/skills/tmux/scripts/find-sessions.sh +112 -0
  804. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  805. package/skills/trello/SKILL.md +108 -0
  806. package/skills/video-frames/SKILL.md +46 -0
  807. package/skills/video-frames/scripts/frame.sh +81 -0
  808. package/skills/voice-call/SKILL.md +45 -0
  809. package/skills/wacli/SKILL.md +72 -0
  810. package/skills/weather/SKILL.md +87 -0
  811. package/skills/xurl/SKILL.md +120 -0
  812. package/src/agents/templates/HEARTBEAT.md +5 -0
@@ -0,0 +1,440 @@
1
+ ---
2
+ summary: "Export OpenClaw diagnostics to any OpenTelemetry collector via the diagnostics-otel plugin (OTLP/HTTP)"
3
+ title: "OpenTelemetry export"
4
+ read_when:
5
+ - You want to send OpenClaw model usage, message flow, or session metrics to an OpenTelemetry collector
6
+ - You are wiring traces, metrics, or logs into Grafana, Datadog, Honeycomb, New Relic, Tempo, or another OTLP backend
7
+ - You need the exact metric names, span names, or attribute shapes to build dashboards or alerts
8
+ ---
9
+
10
+ OpenClaw exports diagnostics through the official `diagnostics-otel` plugin
11
+ using **OTLP/HTTP (protobuf)**. Any collector or backend that accepts OTLP/HTTP
12
+ works without code changes. For local file logs and how to read them, see
13
+ [Logging](/logging).
14
+
15
+ ## How it fits together
16
+
17
+ - **Diagnostics events** are structured, in-process records emitted by the
18
+ Gateway and bundled plugins for model runs, message flow, sessions, queues,
19
+ and exec.
20
+ - **`diagnostics-otel` plugin** subscribes to those events and exports them as
21
+ OpenTelemetry **metrics**, **traces**, and **logs** over OTLP/HTTP.
22
+ - **Provider calls** receive a W3C `traceparent` header from OpenClaw's
23
+ trusted model-call span context when the provider transport accepts custom
24
+ headers. Plugin-emitted trace context is not propagated.
25
+ - Exporters only attach when both the diagnostics surface and the plugin are
26
+ enabled, so the in-process cost stays near zero by default.
27
+
28
+ ## Quick start
29
+
30
+ For packaged installs, install the plugin first:
31
+
32
+ ```bash
33
+ openclaw plugins install clawhub:@openclaw/diagnostics-otel
34
+ ```
35
+
36
+ ```json5
37
+ {
38
+ plugins: {
39
+ allow: ["diagnostics-otel"],
40
+ entries: {
41
+ "diagnostics-otel": { enabled: true },
42
+ },
43
+ },
44
+ diagnostics: {
45
+ enabled: true,
46
+ otel: {
47
+ enabled: true,
48
+ endpoint: "http://otel-collector:4318",
49
+ protocol: "http/protobuf",
50
+ serviceName: "openclaw-gateway",
51
+ traces: true,
52
+ metrics: true,
53
+ logs: true,
54
+ sampleRate: 0.2,
55
+ flushIntervalMs: 60000,
56
+ },
57
+ },
58
+ }
59
+ ```
60
+
61
+ You can also enable the plugin from the CLI:
62
+
63
+ ```bash
64
+ openclaw plugins enable diagnostics-otel
65
+ ```
66
+
67
+ <Note>
68
+ `protocol` currently supports `http/protobuf` only. `grpc` is ignored.
69
+ </Note>
70
+
71
+ ## Signals exported
72
+
73
+ | Signal | What goes in it |
74
+ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
75
+ | **Metrics** | Counters and histograms for token usage, cost, run duration, failover, skill usage, message flow, Talk events, queue lanes, session state/recovery, tool execution, oversized payloads, exec, and memory pressure. |
76
+ | **Traces** | Spans for model usage, model calls, harness lifecycle, skill usage, tool execution, exec, webhook/message processing, context assembly, and tool loops. |
77
+ | **Logs** | Structured `logging.file` records exported over OTLP when `diagnostics.otel.logs` is enabled; log bodies are withheld unless content capture is explicitly enabled. |
78
+
79
+ Toggle `traces`, `metrics`, and `logs` independently. Traces and metrics
80
+ default to on when `diagnostics.otel.enabled` is true. Logs default to off and
81
+ are exported only when `diagnostics.otel.logs` is explicitly `true`.
82
+
83
+ ## Configuration reference
84
+
85
+ ```json5
86
+ {
87
+ diagnostics: {
88
+ enabled: true,
89
+ otel: {
90
+ enabled: true,
91
+ endpoint: "http://otel-collector:4318",
92
+ tracesEndpoint: "http://otel-collector:4318/v1/traces",
93
+ metricsEndpoint: "http://otel-collector:4318/v1/metrics",
94
+ logsEndpoint: "http://otel-collector:4318/v1/logs",
95
+ protocol: "http/protobuf", // grpc is ignored
96
+ serviceName: "openclaw-gateway",
97
+ headers: { "x-collector-token": "..." },
98
+ traces: true,
99
+ metrics: true,
100
+ logs: true,
101
+ sampleRate: 0.2, // root-span sampler, 0.0..1.0
102
+ flushIntervalMs: 60000, // metric export interval (min 1000ms)
103
+ captureContent: {
104
+ enabled: false,
105
+ inputMessages: false,
106
+ outputMessages: false,
107
+ toolInputs: false,
108
+ toolOutputs: false,
109
+ systemPrompt: false,
110
+ toolDefinitions: false,
111
+ },
112
+ },
113
+ },
114
+ }
115
+ ```
116
+
117
+ ### Environment variables
118
+
119
+ | Variable | Purpose |
120
+ | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
121
+ | `OTEL_EXPORTER_OTLP_ENDPOINT` | Override `diagnostics.otel.endpoint`. If the value already contains `/v1/traces`, `/v1/metrics`, or `/v1/logs`, it is used as-is. |
122
+ | `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` / `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` / `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | Signal-specific endpoint overrides used when the matching `diagnostics.otel.*Endpoint` config key is unset. Signal-specific config wins over signal-specific env, which wins over the shared endpoint. |
123
+ | `OTEL_SERVICE_NAME` | Override `diagnostics.otel.serviceName`. |
124
+ | `OTEL_EXPORTER_OTLP_PROTOCOL` | Override the wire protocol (only `http/protobuf` is honored today). |
125
+ | `OTEL_SEMCONV_STABILITY_OPT_IN` | Set to `gen_ai_latest_experimental` to emit the latest experimental GenAI inference span shape, including `{gen_ai.operation.name} {gen_ai.request.model}` span names, `CLIENT` span kind, and `gen_ai.provider.name` instead of the legacy `gen_ai.system`. GenAI metrics always use bounded, low-cardinality semantic attributes regardless. |
126
+ | `OPENCLAW_OTEL_PRELOADED` | Set to `1` when another preload or host process already registered the global OpenTelemetry SDK. The plugin then skips its own NodeSDK lifecycle but still wires diagnostic listeners and honors `traces`/`metrics`/`logs`. |
127
+
128
+ ## Privacy and content capture
129
+
130
+ Raw model/tool content is **not** exported by default. Spans carry bounded
131
+ identifiers (channel, provider, model, error category, hash-only request ids,
132
+ tool source, tool owner, and skill name/source) and never include prompt text,
133
+ response text, tool inputs, tool outputs, skill file paths, or session keys.
134
+ OTLP log records keep severity, logger, code location, trusted trace context,
135
+ and sanitized attributes by default, but the raw log message body is exported
136
+ only when `diagnostics.otel.captureContent` is set to boolean `true`. Granular
137
+ `captureContent.*` subkeys do not enable log bodies. Labels that look like
138
+ scoped agent session keys are replaced with `unknown`.
139
+ Talk metrics export only bounded event metadata such as mode, transport,
140
+ provider, and event type. They do not include transcripts, audio payloads,
141
+ session ids, turn ids, call ids, room ids, or handoff tokens.
142
+
143
+ Outbound model requests may include a W3C `traceparent` header. That header is
144
+ generated only from OpenClaw-owned diagnostic trace context for the active model
145
+ call. Existing caller-supplied `traceparent` headers are replaced, so plugins or
146
+ custom provider options cannot spoof cross-service trace ancestry.
147
+
148
+ Set `diagnostics.otel.captureContent.*` to `true` only when your collector and
149
+ retention policy are approved for prompt, response, tool, or system-prompt
150
+ text. Each subkey is opt-in independently:
151
+
152
+ - `inputMessages` - user prompt content.
153
+ - `outputMessages` - model response content.
154
+ - `toolInputs` - tool argument payloads.
155
+ - `toolOutputs` - tool result payloads.
156
+ - `systemPrompt` - assembled system/developer prompt.
157
+ - `toolDefinitions` - model tool names, descriptions, and schemas.
158
+
159
+ When any subkey is enabled, model and tool spans get bounded, redacted
160
+ `openclaw.content.*` attributes for that class only. Use boolean
161
+ `captureContent: true` only for broad diagnostics captures where OTLP log
162
+ message bodies are also approved for export.
163
+
164
+ `toolInputs`/`toolOutputs` content is captured for the built-in agent runtime's
165
+ tool executions (`openclaw.content.tool_input` on completed/error spans,
166
+ `openclaw.content.tool_output` on completed spans). External harness tool calls
167
+ (Codex, Claude CLI) emit `tool.execution.*` spans without content payloads.
168
+ Captured content travels on a trusted, listener-only channel and is never placed
169
+ on the public diagnostic event bus.
170
+
171
+ ## Sampling and flushing
172
+
173
+ - **Traces:** `diagnostics.otel.sampleRate` (root-span only, `0.0` drops all,
174
+ `1.0` keeps all).
175
+ - **Metrics:** `diagnostics.otel.flushIntervalMs` (minimum `1000`).
176
+ - **Logs:** OTLP logs respect `logging.level` (file log level). They use the
177
+ diagnostic log-record redaction path, not console formatting. High-volume
178
+ installs should prefer OTLP collector sampling/filtering over local sampling.
179
+ - **File-log correlation:** JSONL file logs include top-level `traceId`,
180
+ `spanId`, `parentSpanId`, and `traceFlags` when the log call carries a valid
181
+ diagnostic trace context, which lets log processors join local log lines with
182
+ exported spans.
183
+ - **Request correlation:** Gateway HTTP requests and WebSocket frames create an
184
+ internal request trace scope. Logs and diagnostic events inside that scope
185
+ inherit the request trace by default, while agent run and model-call spans are
186
+ created as children so provider `traceparent` headers stay on the same trace.
187
+
188
+ ## Exported metrics
189
+
190
+ ### Model usage
191
+
192
+ - `openclaw.tokens` (counter, attrs: `openclaw.token`, `openclaw.channel`, `openclaw.provider`, `openclaw.model`, `openclaw.agent`)
193
+ - `openclaw.cost.usd` (counter, attrs: `openclaw.channel`, `openclaw.provider`, `openclaw.model`)
194
+ - `openclaw.run.duration_ms` (histogram, attrs: `openclaw.channel`, `openclaw.provider`, `openclaw.model`)
195
+ - `openclaw.context.tokens` (histogram, attrs: `openclaw.context`, `openclaw.channel`, `openclaw.provider`, `openclaw.model`)
196
+ - `gen_ai.client.token.usage` (histogram, GenAI semantic-conventions metric, attrs: `gen_ai.token.type` = `input`/`output`, `gen_ai.provider.name`, `gen_ai.operation.name`, `gen_ai.request.model`)
197
+ - `gen_ai.client.operation.duration` (histogram, seconds, GenAI semantic-conventions metric, attrs: `gen_ai.provider.name`, `gen_ai.operation.name`, `gen_ai.request.model`, optional `error.type`)
198
+ - `openclaw.model_call.duration_ms` (histogram, attrs: `openclaw.provider`, `openclaw.model`, `openclaw.api`, `openclaw.transport`, plus `openclaw.errorCategory` and `openclaw.failureKind` on classified errors)
199
+ - `openclaw.model_call.request_bytes` (histogram, UTF-8 byte size of the final model request payload; no raw payload content)
200
+ - `openclaw.model_call.response_bytes` (histogram, UTF-8 byte size of streamed response chunk payloads; high-frequency text, thinking, and tool-call deltas count only incremental `delta` bytes; no raw response content)
201
+ - `openclaw.model_call.time_to_first_byte_ms` (histogram, elapsed time before the first streamed response event)
202
+ - `openclaw.model.failover` (counter, attrs: `openclaw.provider`, `openclaw.model`, `openclaw.failover.to_provider`, `openclaw.failover.to_model`, `openclaw.failover.reason`, `openclaw.failover.suspended`, `openclaw.lane`)
203
+ - `openclaw.skill.used` (counter, attrs: `openclaw.skill.name`, `openclaw.skill.source`, `openclaw.skill.activation`, optional `openclaw.agent`, optional `openclaw.toolName`)
204
+
205
+ ### Message flow
206
+
207
+ - `openclaw.webhook.received` (counter, attrs: `openclaw.channel`, `openclaw.webhook`)
208
+ - `openclaw.webhook.error` (counter, attrs: `openclaw.channel`, `openclaw.webhook`)
209
+ - `openclaw.webhook.duration_ms` (histogram, attrs: `openclaw.channel`, `openclaw.webhook`)
210
+ - `openclaw.message.queued` (counter, attrs: `openclaw.channel`, `openclaw.source`)
211
+ - `openclaw.message.received` (counter, attrs: `openclaw.channel`, `openclaw.source`)
212
+ - `openclaw.message.dispatch.started` (counter, attrs: `openclaw.channel`, `openclaw.source`)
213
+ - `openclaw.message.dispatch.completed` (counter, attrs: `openclaw.channel`, `openclaw.outcome`, `openclaw.reason`, `openclaw.source`)
214
+ - `openclaw.message.dispatch.duration_ms` (histogram, attrs: `openclaw.channel`, `openclaw.outcome`, `openclaw.reason`, `openclaw.source`)
215
+ - `openclaw.message.processed` (counter, attrs: `openclaw.channel`, `openclaw.outcome`)
216
+ - `openclaw.message.duration_ms` (histogram, attrs: `openclaw.channel`, `openclaw.outcome`)
217
+ - `openclaw.message.delivery.started` (counter, attrs: `openclaw.channel`, `openclaw.delivery.kind`)
218
+ - `openclaw.message.delivery.duration_ms` (histogram, attrs: `openclaw.channel`, `openclaw.delivery.kind`, `openclaw.outcome`, `openclaw.errorCategory`)
219
+
220
+ ### Talk
221
+
222
+ - `openclaw.talk.event` (counter, attrs: `openclaw.talk.event_type`, `openclaw.talk.mode`, `openclaw.talk.transport`, `openclaw.talk.brain`, `openclaw.talk.provider`)
223
+ - `openclaw.talk.event.duration_ms` (histogram, attrs: same as `openclaw.talk.event`; emitted when a Talk event reports duration)
224
+ - `openclaw.talk.audio.bytes` (histogram, attrs: same as `openclaw.talk.event`; emitted for Talk audio frame events that report byte length)
225
+
226
+ ### Queues and sessions
227
+
228
+ - `openclaw.queue.lane.enqueue` (counter, attrs: `openclaw.lane`)
229
+ - `openclaw.queue.lane.dequeue` (counter, attrs: `openclaw.lane`)
230
+ - `openclaw.queue.depth` (histogram, attrs: `openclaw.lane` or `openclaw.channel=heartbeat`)
231
+ - `openclaw.queue.wait_ms` (histogram, attrs: `openclaw.lane`)
232
+ - `openclaw.session.state` (counter, attrs: `openclaw.state`, `openclaw.reason`)
233
+ - `openclaw.session.stuck` (counter, attrs: `openclaw.state`; emitted for recoverable stale session bookkeeping)
234
+ - `openclaw.session.stuck_age_ms` (histogram, attrs: `openclaw.state`; emitted for recoverable stale session bookkeeping)
235
+ - `openclaw.session.turn.created` (counter, attrs: `openclaw.agent`, `openclaw.channel`, `openclaw.trigger`)
236
+ - `openclaw.session.recovery.requested` (counter, attrs: `openclaw.state`, `openclaw.action`, `openclaw.active_work_kind`, `openclaw.reason`)
237
+ - `openclaw.session.recovery.completed` (counter, attrs: `openclaw.state`, `openclaw.action`, `openclaw.status`, `openclaw.active_work_kind`, `openclaw.reason`)
238
+ - `openclaw.session.recovery.age_ms` (histogram, attrs: same as the matching recovery counter)
239
+ - `openclaw.run.attempt` (counter, attrs: `openclaw.attempt`)
240
+
241
+ ### Session liveness telemetry
242
+
243
+ `diagnostics.stuckSessionWarnMs` is the no-progress age threshold for session
244
+ liveness diagnostics. A `processing` session does not age toward this threshold
245
+ while OpenClaw observes reply, tool, status, block, or ACP runtime progress.
246
+ Typing keepalives are not counted as progress, so a silent model or harness can
247
+ still be detected.
248
+
249
+ OpenClaw classifies sessions by the work it can still observe:
250
+
251
+ - `session.long_running`: active embedded work, model calls, or tool calls are
252
+ still making progress.
253
+ - `session.stalled`: active work exists, but the active run has not reported
254
+ recent progress. Stalled embedded runs stay observe-only at first, then
255
+ abort-drain after `diagnostics.stuckSessionAbortMs` with no progress so queued
256
+ turns behind the lane can resume. When unset, the abort threshold defaults to
257
+ the safer extended window of at least 5 minutes and 3x
258
+ `diagnostics.stuckSessionWarnMs`.
259
+ - `session.stuck`: stale session bookkeeping with no active work, or an idle
260
+ queued session with stale ownerless model/tool activity. This releases the
261
+ affected session lane immediately after recovery gates pass.
262
+
263
+ Recovery emits structured `session.recovery.requested` and
264
+ `session.recovery.completed` events. Diagnostic session state is marked idle
265
+ only after a mutating recovery outcome (`aborted` or `released`) and only if the
266
+ same processing generation is still current.
267
+
268
+ Only `session.stuck` emits the `openclaw.session.stuck` counter, the
269
+ `openclaw.session.stuck_age_ms` histogram, and the `openclaw.session.stuck`
270
+ span. Repeated `session.stuck` diagnostics back off while the session remains
271
+ unchanged, so dashboards should alert on sustained increases rather than every
272
+ heartbeat tick. For the config knob and defaults, see
273
+ [Configuration reference](/gateway/configuration-reference#diagnostics).
274
+
275
+ Liveness warnings also emit:
276
+
277
+ - `openclaw.liveness.warning` (counter, attrs: `openclaw.liveness.reason`)
278
+ - `openclaw.liveness.event_loop_delay_p99_ms` (histogram, attrs: `openclaw.liveness.reason`)
279
+ - `openclaw.liveness.event_loop_delay_max_ms` (histogram, attrs: `openclaw.liveness.reason`)
280
+ - `openclaw.liveness.event_loop_utilization` (histogram, attrs: `openclaw.liveness.reason`)
281
+ - `openclaw.liveness.cpu_core_ratio` (histogram, attrs: `openclaw.liveness.reason`)
282
+
283
+ ### Harness lifecycle
284
+
285
+ - `openclaw.harness.duration_ms` (histogram, attrs: `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.harness.phase` on errors)
286
+
287
+ ### Tool execution
288
+
289
+ - `openclaw.tool.execution.duration_ms` (histogram, attrs: `gen_ai.tool.name`, `openclaw.toolName`, `openclaw.tool.source`, `openclaw.tool.owner`, `openclaw.tool.params.kind`, plus `openclaw.errorCategory` on errors)
290
+ - `openclaw.tool.execution.blocked` (counter, attrs: `gen_ai.tool.name`, `openclaw.toolName`, `openclaw.tool.source`, `openclaw.tool.owner`, `openclaw.tool.params.kind`, `openclaw.deniedReason`)
291
+
292
+ ### Exec
293
+
294
+ - `openclaw.exec.duration_ms` (histogram, attrs: `openclaw.exec.target`, `openclaw.exec.mode`, `openclaw.outcome`, `openclaw.failureKind`)
295
+
296
+ ### Diagnostics internals (memory and tool loop)
297
+
298
+ - `openclaw.payload.large` (counter, attrs: `openclaw.payload.surface`, `openclaw.payload.action`, `openclaw.channel`, `openclaw.plugin`, `openclaw.reason`)
299
+ - `openclaw.payload.large_bytes` (histogram, attrs: same as `openclaw.payload.large`)
300
+ - `openclaw.memory.heap_used_bytes` (histogram, attrs: `openclaw.memory.kind`)
301
+ - `openclaw.memory.rss_bytes` (histogram)
302
+ - `openclaw.memory.pressure` (counter, attrs: `openclaw.memory.level`)
303
+ - `openclaw.tool.loop.iterations` (counter, attrs: `openclaw.toolName`, `openclaw.outcome`)
304
+ - `openclaw.tool.loop.duration_ms` (histogram, attrs: `openclaw.toolName`, `openclaw.outcome`)
305
+
306
+ ## Exported spans
307
+
308
+ - `openclaw.model.usage`
309
+ - `openclaw.channel`, `openclaw.provider`, `openclaw.model`
310
+ - `openclaw.tokens.*` (input/output/cache_read/cache_write/total)
311
+ - `gen_ai.system` by default, or `gen_ai.provider.name` when the latest GenAI semantic conventions are opted in
312
+ - `gen_ai.request.model`, `gen_ai.operation.name`, `gen_ai.usage.*`
313
+ - `openclaw.run`
314
+ - `openclaw.outcome`, `openclaw.channel`, `openclaw.provider`, `openclaw.model`, `openclaw.errorCategory`
315
+ - `openclaw.model.call`
316
+ - `gen_ai.system` by default, or `gen_ai.provider.name` when the latest GenAI semantic conventions are opted in
317
+ - `gen_ai.request.model`, `gen_ai.operation.name`, `openclaw.provider`, `openclaw.model`, `openclaw.api`, `openclaw.transport`
318
+ - `openclaw.errorCategory` and optional `openclaw.failureKind` on errors
319
+ - `openclaw.model_call.request_bytes`, `openclaw.model_call.response_bytes`, `openclaw.model_call.time_to_first_byte_ms`
320
+ - `openclaw.provider.request_id_hash` (bounded SHA-based hash of the upstream provider request id; raw ids are not exported)
321
+ - With `OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental`, model-call spans use the latest GenAI inference span name `{gen_ai.operation.name} {gen_ai.request.model}` and `CLIENT` span kind instead of `openclaw.model.call`.
322
+ - `openclaw.harness.run`
323
+ - `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.provider`, `openclaw.model`, `openclaw.channel`
324
+ - On completion: `openclaw.harness.result_classification`, `openclaw.harness.yield_detected`, `openclaw.harness.items.started`, `openclaw.harness.items.completed`, `openclaw.harness.items.active`
325
+ - On error: `openclaw.harness.phase`, `openclaw.errorCategory`, optional `openclaw.harness.cleanup_failed`
326
+ - `openclaw.tool.execution`
327
+ - `gen_ai.tool.name`, `openclaw.toolName`, `openclaw.errorCategory`, `openclaw.tool.params.*`
328
+ - `openclaw.exec`
329
+ - `openclaw.exec.target`, `openclaw.exec.mode`, `openclaw.outcome`, `openclaw.failureKind`, `openclaw.exec.command_length`, `openclaw.exec.exit_code`, `openclaw.exec.timed_out`
330
+ - `openclaw.webhook.processed`
331
+ - `openclaw.channel`, `openclaw.webhook`
332
+ - `openclaw.webhook.error`
333
+ - `openclaw.channel`, `openclaw.webhook`, `openclaw.error`
334
+ - `openclaw.message.processed`
335
+ - `openclaw.channel`, `openclaw.outcome`, `openclaw.reason`
336
+ - `openclaw.message.delivery`
337
+ - `openclaw.channel`, `openclaw.delivery.kind`, `openclaw.outcome`, `openclaw.errorCategory`, `openclaw.delivery.result_count`
338
+ - `openclaw.session.stuck`
339
+ - `openclaw.state`, `openclaw.ageMs`, `openclaw.queueDepth`
340
+ - `openclaw.context.assembled`
341
+ - `openclaw.prompt.size`, `openclaw.history.size`, `openclaw.context.tokens`, `openclaw.errorCategory` (no prompt, history, response, or session-key content)
342
+ - `openclaw.tool.loop`
343
+ - `openclaw.toolName`, `openclaw.outcome`, `openclaw.iterations`, `openclaw.errorCategory` (no loop messages, params, or tool output)
344
+ - `openclaw.memory.pressure`
345
+ - `openclaw.memory.level`, `openclaw.memory.heap_used_bytes`, `openclaw.memory.rss_bytes`
346
+
347
+ When content capture is explicitly enabled, model and tool spans can also
348
+ include bounded, redacted `openclaw.content.*` attributes for the specific
349
+ content classes you opted into.
350
+
351
+ ## Diagnostic event catalog
352
+
353
+ The events below back the metrics and spans above. Plugins can also subscribe
354
+ to them directly without OTLP export.
355
+
356
+ **Model usage**
357
+
358
+ - `model.usage` - tokens, cost, duration, context, provider/model/channel,
359
+ session ids. `usage` is provider/turn accounting for cost and telemetry;
360
+ `context.used` is the current prompt/context snapshot and can be lower than
361
+ provider `usage.total` when cached input or tool-loop calls are involved.
362
+
363
+ **Message flow**
364
+
365
+ - `webhook.received` / `webhook.processed` / `webhook.error`
366
+ - `message.queued` / `message.processed`
367
+ - `message.delivery.started` / `message.delivery.completed` / `message.delivery.error`
368
+
369
+ **Queue and session**
370
+
371
+ - `queue.lane.enqueue` / `queue.lane.dequeue`
372
+ - `session.state` / `session.long_running` / `session.stalled` / `session.stuck`
373
+ - `run.attempt` / `run.progress`
374
+ - `diagnostic.heartbeat` (aggregate counters: webhooks/queue/session)
375
+
376
+ **Harness lifecycle**
377
+
378
+ - `harness.run.started` / `harness.run.completed` / `harness.run.error` -
379
+ per-run lifecycle for the agent harness. Includes `harnessId`, optional
380
+ `pluginId`, provider/model/channel, and run id. Completion adds
381
+ `durationMs`, `outcome`, optional `resultClassification`, `yieldDetected`,
382
+ and `itemLifecycle` counts. Errors add `phase`
383
+ (`prepare`/`start`/`send`/`resolve`/`cleanup`), `errorCategory`, and
384
+ optional `cleanupFailed`.
385
+
386
+ **Exec**
387
+
388
+ - `exec.process.completed` - terminal outcome, duration, target, mode, exit
389
+ code, and failure kind. Command text and working directories are not
390
+ included.
391
+
392
+ ## Without an exporter
393
+
394
+ You can keep diagnostics events available to plugins or custom sinks without
395
+ running `diagnostics-otel`:
396
+
397
+ ```json5
398
+ {
399
+ diagnostics: { enabled: true },
400
+ }
401
+ ```
402
+
403
+ For targeted debug output without raising `logging.level`, use diagnostics
404
+ flags. Flags are case-insensitive and support wildcards (e.g. `telegram.*` or
405
+ `*`):
406
+
407
+ ```json5
408
+ {
409
+ diagnostics: { flags: ["telegram.http"] },
410
+ }
411
+ ```
412
+
413
+ Or as a one-off env override:
414
+
415
+ ```bash
416
+ OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload openclaw gateway
417
+ ```
418
+
419
+ Flag output goes to the standard log file (`logging.file`) and is still
420
+ redacted by `logging.redactSensitive`. Full guide:
421
+ [Diagnostics flags](/diagnostics/flags).
422
+
423
+ ## Disable
424
+
425
+ ```json5
426
+ {
427
+ diagnostics: { otel: { enabled: false } },
428
+ }
429
+ ```
430
+
431
+ You can also leave `diagnostics-otel` out of `plugins.allow`, or run
432
+ `openclaw plugins disable diagnostics-otel`.
433
+
434
+ ## Related
435
+
436
+ - [Logging](/logging) - file logs, console output, CLI tailing, and the Control UI Logs tab
437
+ - [Gateway logging internals](/gateway/logging) - WS log styles, subsystem prefixes, and console capture
438
+ - [Diagnostics flags](/diagnostics/flags) - targeted debug-log flags
439
+ - [Diagnostics export](/gateway/diagnostics) - operator support-bundle tool (separate from OTEL export)
440
+ - [Configuration reference](/gateway/configuration-reference#diagnostics) - full `diagnostics.*` field reference
@@ -0,0 +1,119 @@
1
+ ---
2
+ summary: "Operator roles, scopes, and approval-time checks for Gateway clients"
3
+ read_when:
4
+ - Debugging missing operator scope errors
5
+ - Reviewing device or node pairing approvals
6
+ - Adding or classifying Gateway RPC methods
7
+ title: "Operator scopes"
8
+ ---
9
+
10
+ Operator scopes define what a Gateway client may do after it authenticates.
11
+ They are a control-plane guardrail inside one trusted Gateway operator domain,
12
+ not hostile multi-tenant isolation. If you need strong separation between
13
+ people, teams, or machines, run separate Gateways under separate OS users or
14
+ hosts.
15
+
16
+ Related: [Security](/gateway/security), [Gateway protocol](/gateway/protocol),
17
+ [Gateway pairing](/gateway/pairing), [Devices CLI](/cli/devices).
18
+
19
+ ## Roles
20
+
21
+ Gateway WebSocket clients connect with one role:
22
+
23
+ - `operator`: control-plane clients such as CLI, Control UI, automation, and
24
+ trusted helper processes.
25
+ - `node`: capability hosts such as macOS, iOS, Android, or headless nodes that
26
+ expose commands through `node.invoke`.
27
+
28
+ Operator RPC methods require the `operator` role. Node-originated methods
29
+ require the `node` role.
30
+
31
+ ## Scope levels
32
+
33
+ | Scope | Meaning |
34
+ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
35
+ | `operator.read` | Read-only status, lists, catalog, logs, session reads, and other non-mutating control-plane calls. |
36
+ | `operator.write` | Normal mutating operator actions such as sending messages, invoking tools, updating talk/voice settings, and node command relay. Also satisfies `operator.read`. |
37
+ | `operator.admin` | Administrative control-plane access. Satisfies every `operator.*` scope. Required for config mutation, updates, native hooks, sensitive reserved namespaces, and high-risk approvals. |
38
+ | `operator.pairing` | Device and node pairing management, including listing, approving, rejecting, removing, rotating, and revoking pairing records or device tokens. |
39
+ | `operator.approvals` | Exec and plugin approval APIs. |
40
+ | `operator.talk.secrets` | Reading Talk configuration with secrets included. |
41
+
42
+ Unknown future `operator.*` scopes require an exact match unless the caller has
43
+ `operator.admin`.
44
+
45
+ ## Method scope is only the first gate
46
+
47
+ Each Gateway RPC has a least-privilege method scope. That method scope decides
48
+ whether the request can reach the handler. Some handlers then apply stricter
49
+ approval-time checks based on the concrete thing being approved or mutated.
50
+
51
+ Examples:
52
+
53
+ - `device.pair.approve` is reachable with `operator.pairing`, but approving an
54
+ operator device can only mint or preserve scopes the caller already holds.
55
+ - `node.pair.approve` is reachable with `operator.pairing`, then derives extra
56
+ approval scopes from the pending node command list.
57
+ - `chat.send` is normally a write-scoped method, but persistent `/config set`
58
+ and `/config unset` require `operator.admin` at command level.
59
+
60
+ This lets lower-scope operators perform low-risk pairing actions without making
61
+ all pairing approval admin-only.
62
+
63
+ ## Device pairing approvals
64
+
65
+ Device pairing records are the durable source of approved roles and scopes.
66
+ Already paired devices do not get broader access silently: reconnects that ask
67
+ for a broader role or broader scopes create a new pending upgrade request.
68
+
69
+ When approving a device request:
70
+
71
+ - A request with no operator role does not need operator token scope approval.
72
+ - A request for a non-operator device role, such as `node`, requires
73
+ `operator.admin`, even when `device.pair.approve` is reachable with
74
+ `operator.pairing`.
75
+ - A request for `operator.read`, `operator.write`, `operator.approvals`,
76
+ `operator.pairing`, or `operator.talk.secrets` requires the caller to hold
77
+ those scopes, or `operator.admin`.
78
+ - A request for `operator.admin` requires `operator.admin`.
79
+ - A repair request with no explicit scopes can inherit the existing operator
80
+ token scopes. If that existing token is admin-scoped, approval still requires
81
+ `operator.admin`.
82
+
83
+ Non-admin shared-secret and trusted-proxy sessions can approve operator-device
84
+ requests only inside their own declared operator scopes. Approving non-operator
85
+ roles is admin-only even when those sessions can otherwise use
86
+ `operator.pairing`.
87
+
88
+ For paired-device token sessions, management is also self-scoped unless the
89
+ caller has `operator.admin`: non-admin callers see only their own pairing
90
+ entries, can approve or reject only their own pending request, and can rotate,
91
+ revoke, or remove only their own device entry.
92
+
93
+ ## Node pairing approvals
94
+
95
+ Legacy `node.pair.*` uses a separate Gateway-owned node pairing store. WS nodes
96
+ use device pairing with `role: node`, but the same approval-level vocabulary
97
+ applies.
98
+
99
+ `node.pair.approve` uses the pending request command list to derive additional
100
+ required scopes:
101
+
102
+ - Commandless request: `operator.pairing`
103
+ - Non-exec node commands: `operator.pairing` + `operator.write`
104
+ - `system.run`, `system.run.prepare`, or `system.which`:
105
+ `operator.pairing` + `operator.admin`
106
+
107
+ Node pairing establishes identity and trust. It does not replace the node's
108
+ own `system.run` exec approval policy.
109
+
110
+ ## Shared-secret auth
111
+
112
+ Shared gateway token/password auth is treated as trusted operator access for
113
+ that Gateway. OpenAI-compatible HTTP surfaces, `/tools/invoke`, and HTTP session
114
+ history endpoints restore the normal full operator default scope set for
115
+ shared-secret bearer auth, even if a caller sends narrower declared scopes.
116
+
117
+ Identity-bearing modes, such as trusted proxy auth or private-ingress `none`,
118
+ can still honor explicit declared scopes. Use separate Gateways for real trust
119
+ boundary separation.