durar-ai 2026.4.4

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 (571) hide show
  1. package/CHANGELOG.md +5497 -0
  2. package/LICENSE +21 -0
  3. package/README.md +614 -0
  4. package/assets/avatar-placeholder.svg +19 -0
  5. package/assets/chrome-extension/icons/icon128.png +0 -0
  6. package/assets/chrome-extension/icons/icon16.png +0 -0
  7. package/assets/chrome-extension/icons/icon32.png +0 -0
  8. package/assets/chrome-extension/icons/icon48.png +0 -0
  9. package/assets/dmg-background-small.png +0 -0
  10. package/assets/dmg-background.png +0 -0
  11. package/docs/.i18n/README.md +72 -0
  12. package/docs/.i18n/ar-navigation.json +18 -0
  13. package/docs/.i18n/de-navigation.json +18 -0
  14. package/docs/.i18n/es-navigation.json +18 -0
  15. package/docs/.i18n/fr-navigation.json +18 -0
  16. package/docs/.i18n/glossary.ar.json +5 -0
  17. package/docs/.i18n/glossary.de.json +5 -0
  18. package/docs/.i18n/glossary.es.json +5 -0
  19. package/docs/.i18n/glossary.fr.json +5 -0
  20. package/docs/.i18n/glossary.id.json +5 -0
  21. package/docs/.i18n/glossary.it.json +5 -0
  22. package/docs/.i18n/glossary.ja-JP.json +14 -0
  23. package/docs/.i18n/glossary.ko.json +5 -0
  24. package/docs/.i18n/glossary.pl.json +5 -0
  25. package/docs/.i18n/glossary.pt-BR.json +5 -0
  26. package/docs/.i18n/glossary.tr.json +5 -0
  27. package/docs/.i18n/glossary.zh-CN.json +358 -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/zh-Hans-navigation.json +544 -0
  36. package/docs/assets/install-script.svg +1 -0
  37. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  38. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  39. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  40. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  41. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  42. package/docs/assets/openclaw-logo-text-dark.png +0 -0
  43. package/docs/assets/openclaw-logo-text-dark.svg +418 -0
  44. package/docs/assets/openclaw-logo-text.png +0 -0
  45. package/docs/assets/openclaw-logo-text.svg +418 -0
  46. package/docs/assets/pixel-lobster.svg +60 -0
  47. package/docs/assets/showcase/agents-ui.jpg +0 -0
  48. package/docs/assets/showcase/bambu-cli.png +0 -0
  49. package/docs/assets/showcase/codexmonitor.png +0 -0
  50. package/docs/assets/showcase/gohome-grafana.png +0 -0
  51. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  52. package/docs/assets/showcase/oura-health.png +0 -0
  53. package/docs/assets/showcase/padel-cli.svg +11 -0
  54. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  55. package/docs/assets/showcase/papla-tts.jpg +0 -0
  56. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  57. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  58. package/docs/assets/showcase/roborock-status.svg +13 -0
  59. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  60. package/docs/assets/showcase/snag.png +0 -0
  61. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  62. package/docs/assets/showcase/wienerlinien.png +0 -0
  63. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  64. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  65. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  66. package/docs/assets/sponsors/blacksmith-light.svg +14 -0
  67. package/docs/assets/sponsors/blacksmith.svg +14 -0
  68. package/docs/assets/sponsors/convex-light.svg +16 -0
  69. package/docs/assets/sponsors/convex.svg +16 -0
  70. package/docs/assets/sponsors/github-light.svg +3 -0
  71. package/docs/assets/sponsors/github.svg +3 -0
  72. package/docs/assets/sponsors/nvidia-dark.svg +9 -0
  73. package/docs/assets/sponsors/nvidia.svg +9 -0
  74. package/docs/assets/sponsors/openai-light.svg +3 -0
  75. package/docs/assets/sponsors/openai.svg +3 -0
  76. package/docs/assets/sponsors/vercel-light.svg +5 -0
  77. package/docs/assets/sponsors/vercel.svg +5 -0
  78. package/docs/auth-credential-semantics.md +80 -0
  79. package/docs/automation/auth-monitoring.md +8 -0
  80. package/docs/automation/clawflow.md +8 -0
  81. package/docs/automation/cron-jobs.md +410 -0
  82. package/docs/automation/cron-vs-heartbeat.md +8 -0
  83. package/docs/automation/gmail-pubsub.md +8 -0
  84. package/docs/automation/hooks.md +303 -0
  85. package/docs/automation/index.md +115 -0
  86. package/docs/automation/poll.md +8 -0
  87. package/docs/automation/standing-orders.md +254 -0
  88. package/docs/automation/taskflow.md +82 -0
  89. package/docs/automation/tasks.md +323 -0
  90. package/docs/automation/troubleshooting.md +8 -0
  91. package/docs/automation/webhook.md +8 -0
  92. package/docs/brave-search.md +103 -0
  93. package/docs/channels/bluebubbles.md +435 -0
  94. package/docs/channels/broadcast-groups.md +442 -0
  95. package/docs/channels/channel-routing.md +139 -0
  96. package/docs/channels/discord.md +1254 -0
  97. package/docs/channels/feishu.md +793 -0
  98. package/docs/channels/googlechat.md +270 -0
  99. package/docs/channels/group-messages.md +84 -0
  100. package/docs/channels/groups.md +410 -0
  101. package/docs/channels/imessage.md +427 -0
  102. package/docs/channels/index.md +50 -0
  103. package/docs/channels/irc.md +252 -0
  104. package/docs/channels/line.md +225 -0
  105. package/docs/channels/location.md +56 -0
  106. package/docs/channels/matrix.md +869 -0
  107. package/docs/channels/mattermost.md +472 -0
  108. package/docs/channels/msteams.md +805 -0
  109. package/docs/channels/nextcloud-talk.md +149 -0
  110. package/docs/channels/nostr.md +252 -0
  111. package/docs/channels/pairing.md +129 -0
  112. package/docs/channels/qqbot.md +193 -0
  113. package/docs/channels/signal.md +337 -0
  114. package/docs/channels/slack.md +681 -0
  115. package/docs/channels/synology-chat.md +185 -0
  116. package/docs/channels/telegram.md +1072 -0
  117. package/docs/channels/tlon.md +290 -0
  118. package/docs/channels/troubleshooting.md +133 -0
  119. package/docs/channels/twitch.md +394 -0
  120. package/docs/channels/whatsapp.md +488 -0
  121. package/docs/channels/zalo.md +254 -0
  122. package/docs/channels/zalouser.md +195 -0
  123. package/docs/ci.md +66 -0
  124. package/docs/cli/acp.md +316 -0
  125. package/docs/cli/agent.md +57 -0
  126. package/docs/cli/agents.md +220 -0
  127. package/docs/cli/approvals.md +136 -0
  128. package/docs/cli/backup.md +84 -0
  129. package/docs/cli/browser.md +233 -0
  130. package/docs/cli/channels.md +131 -0
  131. package/docs/cli/clawbot.md +21 -0
  132. package/docs/cli/completion.md +35 -0
  133. package/docs/cli/config.md +353 -0
  134. package/docs/cli/configure.md +70 -0
  135. package/docs/cli/cron.md +167 -0
  136. package/docs/cli/daemon.md +57 -0
  137. package/docs/cli/dashboard.md +22 -0
  138. package/docs/cli/devices.md +171 -0
  139. package/docs/cli/directory.md +63 -0
  140. package/docs/cli/dns.md +48 -0
  141. package/docs/cli/docs.md +28 -0
  142. package/docs/cli/doctor.md +63 -0
  143. package/docs/cli/flows.md +18 -0
  144. package/docs/cli/gateway.md +307 -0
  145. package/docs/cli/health.md +36 -0
  146. package/docs/cli/hooks.md +337 -0
  147. package/docs/cli/index.md +1836 -0
  148. package/docs/cli/logs.md +59 -0
  149. package/docs/cli/mcp.md +505 -0
  150. package/docs/cli/memory.md +139 -0
  151. package/docs/cli/message.md +300 -0
  152. package/docs/cli/models.md +136 -0
  153. package/docs/cli/node.md +137 -0
  154. package/docs/cli/nodes.md +66 -0
  155. package/docs/cli/onboard.md +171 -0
  156. package/docs/cli/pairing.md +65 -0
  157. package/docs/cli/plugins.md +305 -0
  158. package/docs/cli/qr.md +52 -0
  159. package/docs/cli/reset.md +35 -0
  160. package/docs/cli/sandbox.md +197 -0
  161. package/docs/cli/secrets.md +197 -0
  162. package/docs/cli/security.md +86 -0
  163. package/docs/cli/sessions.md +113 -0
  164. package/docs/cli/setup.md +45 -0
  165. package/docs/cli/skills.md +59 -0
  166. package/docs/cli/status.md +35 -0
  167. package/docs/cli/system.md +71 -0
  168. package/docs/cli/tui.md +30 -0
  169. package/docs/cli/uninstall.md +39 -0
  170. package/docs/cli/update.md +113 -0
  171. package/docs/cli/voicecall.md +34 -0
  172. package/docs/cli/webhooks.md +91 -0
  173. package/docs/concepts/agent-loop.md +168 -0
  174. package/docs/concepts/agent-workspace.md +246 -0
  175. package/docs/concepts/agent.md +129 -0
  176. package/docs/concepts/architecture.md +156 -0
  177. package/docs/concepts/compaction.md +122 -0
  178. package/docs/concepts/context-engine.md +274 -0
  179. package/docs/concepts/context.md +179 -0
  180. package/docs/concepts/delegate-architecture.md +307 -0
  181. package/docs/concepts/dreaming.md +173 -0
  182. package/docs/concepts/features.md +76 -0
  183. package/docs/concepts/markdown-formatting.md +130 -0
  184. package/docs/concepts/memory-builtin.md +105 -0
  185. package/docs/concepts/memory-honcho.md +140 -0
  186. package/docs/concepts/memory-qmd.md +163 -0
  187. package/docs/concepts/memory-search.md +141 -0
  188. package/docs/concepts/memory.md +121 -0
  189. package/docs/concepts/messages.md +161 -0
  190. package/docs/concepts/model-failover.md +349 -0
  191. package/docs/concepts/model-providers.md +799 -0
  192. package/docs/concepts/models.md +255 -0
  193. package/docs/concepts/multi-agent.md +615 -0
  194. package/docs/concepts/oauth.md +225 -0
  195. package/docs/concepts/presence.md +102 -0
  196. package/docs/concepts/queue.md +89 -0
  197. package/docs/concepts/retry.md +69 -0
  198. package/docs/concepts/session-pruning.md +92 -0
  199. package/docs/concepts/session-tool.md +141 -0
  200. package/docs/concepts/session.md +116 -0
  201. package/docs/concepts/soul.md +110 -0
  202. package/docs/concepts/streaming.md +161 -0
  203. package/docs/concepts/system-prompt.md +182 -0
  204. package/docs/concepts/timezone.md +97 -0
  205. package/docs/concepts/typebox.md +307 -0
  206. package/docs/concepts/typing-indicators.md +69 -0
  207. package/docs/concepts/usage-tracking.md +59 -0
  208. package/docs/date-time.md +128 -0
  209. package/docs/debug/node-issue.md +85 -0
  210. package/docs/diagnostics/flags.md +91 -0
  211. package/docs/docs.json +1601 -0
  212. package/docs/gateway/authentication.md +218 -0
  213. package/docs/gateway/background-process.md +131 -0
  214. package/docs/gateway/bonjour.md +179 -0
  215. package/docs/gateway/bridge-protocol.md +89 -0
  216. package/docs/gateway/cli-backends.md +310 -0
  217. package/docs/gateway/configuration-examples.md +631 -0
  218. package/docs/gateway/configuration-reference.md +3618 -0
  219. package/docs/gateway/configuration.md +698 -0
  220. package/docs/gateway/discovery.md +141 -0
  221. package/docs/gateway/doctor.md +494 -0
  222. package/docs/gateway/gateway-lock.md +37 -0
  223. package/docs/gateway/health.md +61 -0
  224. package/docs/gateway/heartbeat.md +443 -0
  225. package/docs/gateway/index.md +367 -0
  226. package/docs/gateway/local-models.md +163 -0
  227. package/docs/gateway/logging.md +113 -0
  228. package/docs/gateway/multiple-gateways.md +120 -0
  229. package/docs/gateway/network-model.md +25 -0
  230. package/docs/gateway/openai-http-api.md +280 -0
  231. package/docs/gateway/openresponses-http-api.md +340 -0
  232. package/docs/gateway/openshell.md +307 -0
  233. package/docs/gateway/pairing.md +138 -0
  234. package/docs/gateway/protocol.md +588 -0
  235. package/docs/gateway/remote-gateway-readme.md +164 -0
  236. package/docs/gateway/remote.md +251 -0
  237. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +141 -0
  238. package/docs/gateway/sandboxing.md +473 -0
  239. package/docs/gateway/secrets-plan-contract.md +116 -0
  240. package/docs/gateway/secrets.md +541 -0
  241. package/docs/gateway/security/index.md +1362 -0
  242. package/docs/gateway/tailscale.md +136 -0
  243. package/docs/gateway/tools-invoke-http-api.md +161 -0
  244. package/docs/gateway/troubleshooting.md +451 -0
  245. package/docs/gateway/trusted-proxy-auth.md +399 -0
  246. package/docs/help/debugging.md +168 -0
  247. package/docs/help/environment.md +165 -0
  248. package/docs/help/faq.md +3244 -0
  249. package/docs/help/index.md +28 -0
  250. package/docs/help/scripts.md +27 -0
  251. package/docs/help/testing.md +640 -0
  252. package/docs/help/troubleshooting.md +372 -0
  253. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  254. package/docs/images/feishu-step2-create-app.png +0 -0
  255. package/docs/images/feishu-step3-credentials.png +0 -0
  256. package/docs/images/feishu-step4-permissions.png +0 -0
  257. package/docs/images/feishu-step5-bot-capability.png +0 -0
  258. package/docs/images/feishu-step6-event-subscription.png +0 -0
  259. package/docs/images/feishu-verification-token.png +0 -0
  260. package/docs/images/groups-flow.svg +52 -0
  261. package/docs/images/mobile-ui-screenshot.png +0 -0
  262. package/docs/index.md +196 -0
  263. package/docs/install/ansible.md +230 -0
  264. package/docs/install/azure.md +311 -0
  265. package/docs/install/bun.md +55 -0
  266. package/docs/install/clawdock.md +106 -0
  267. package/docs/install/development-channels.md +131 -0
  268. package/docs/install/digitalocean.md +129 -0
  269. package/docs/install/docker-vm-runtime.md +142 -0
  270. package/docs/install/docker.md +412 -0
  271. package/docs/install/exe-dev.md +133 -0
  272. package/docs/install/fly.md +504 -0
  273. package/docs/install/gcp.md +412 -0
  274. package/docs/install/hetzner.md +259 -0
  275. package/docs/install/index.md +212 -0
  276. package/docs/install/installer.md +443 -0
  277. package/docs/install/kubernetes.md +192 -0
  278. package/docs/install/macos-vm.md +281 -0
  279. package/docs/install/migrating-matrix.md +349 -0
  280. package/docs/install/migrating.md +112 -0
  281. package/docs/install/nix.md +89 -0
  282. package/docs/install/node.md +144 -0
  283. package/docs/install/northflank.mdx +42 -0
  284. package/docs/install/oracle.md +158 -0
  285. package/docs/install/podman.md +210 -0
  286. package/docs/install/railway.mdx +90 -0
  287. package/docs/install/raspberry-pi.md +159 -0
  288. package/docs/install/render.mdx +165 -0
  289. package/docs/install/uninstall.md +128 -0
  290. package/docs/install/updating.md +142 -0
  291. package/docs/logging.md +389 -0
  292. package/docs/nav-tabs-underline.js +100 -0
  293. package/docs/network.md +69 -0
  294. package/docs/nodes/audio.md +191 -0
  295. package/docs/nodes/camera.md +162 -0
  296. package/docs/nodes/images.md +73 -0
  297. package/docs/nodes/index.md +408 -0
  298. package/docs/nodes/location-command.md +98 -0
  299. package/docs/nodes/media-understanding.md +432 -0
  300. package/docs/nodes/talk.md +92 -0
  301. package/docs/nodes/troubleshooting.md +123 -0
  302. package/docs/nodes/voicewake.md +66 -0
  303. package/docs/perplexity.md +181 -0
  304. package/docs/pi-dev.md +80 -0
  305. package/docs/pi.md +570 -0
  306. package/docs/platforms/android.md +244 -0
  307. package/docs/platforms/digitalocean.md +266 -0
  308. package/docs/platforms/index.md +55 -0
  309. package/docs/platforms/ios.md +223 -0
  310. package/docs/platforms/linux.md +100 -0
  311. package/docs/platforms/mac/bundled-gateway.md +75 -0
  312. package/docs/platforms/mac/canvas.md +125 -0
  313. package/docs/platforms/mac/child-process.md +69 -0
  314. package/docs/platforms/mac/dev-setup.md +107 -0
  315. package/docs/platforms/mac/health.md +34 -0
  316. package/docs/platforms/mac/icon.md +31 -0
  317. package/docs/platforms/mac/logging.md +57 -0
  318. package/docs/platforms/mac/menu-bar.md +81 -0
  319. package/docs/platforms/mac/peekaboo.md +65 -0
  320. package/docs/platforms/mac/permissions.md +50 -0
  321. package/docs/platforms/mac/remote.md +84 -0
  322. package/docs/platforms/mac/signing.md +47 -0
  323. package/docs/platforms/mac/skills.md +40 -0
  324. package/docs/platforms/mac/voice-overlay.md +60 -0
  325. package/docs/platforms/mac/voicewake.md +67 -0
  326. package/docs/platforms/mac/webchat.md +51 -0
  327. package/docs/platforms/mac/xpc.md +61 -0
  328. package/docs/platforms/macos.md +229 -0
  329. package/docs/platforms/oracle.md +305 -0
  330. package/docs/platforms/raspberry-pi.md +420 -0
  331. package/docs/platforms/windows.md +241 -0
  332. package/docs/plugins/agent-tools.md +10 -0
  333. package/docs/plugins/architecture.md +1609 -0
  334. package/docs/plugins/building-extensions.md +10 -0
  335. package/docs/plugins/building-plugins.md +319 -0
  336. package/docs/plugins/bundles.md +292 -0
  337. package/docs/plugins/community.md +149 -0
  338. package/docs/plugins/manifest.md +412 -0
  339. package/docs/plugins/sdk-channel-plugins.md +508 -0
  340. package/docs/plugins/sdk-entrypoints.md +210 -0
  341. package/docs/plugins/sdk-migration.md +359 -0
  342. package/docs/plugins/sdk-overview.md +475 -0
  343. package/docs/plugins/sdk-provider-plugins.md +712 -0
  344. package/docs/plugins/sdk-runtime.md +381 -0
  345. package/docs/plugins/sdk-setup.md +516 -0
  346. package/docs/plugins/sdk-testing.md +263 -0
  347. package/docs/plugins/voice-call.md +466 -0
  348. package/docs/plugins/zalouser.md +78 -0
  349. package/docs/prose.md +134 -0
  350. package/docs/providers/anthropic.md +402 -0
  351. package/docs/providers/bedrock-mantle.md +91 -0
  352. package/docs/providers/bedrock.md +273 -0
  353. package/docs/providers/chutes.md +103 -0
  354. package/docs/providers/claude-max-api-proxy.md +163 -0
  355. package/docs/providers/cloudflare-ai-gateway.md +71 -0
  356. package/docs/providers/deepgram.md +93 -0
  357. package/docs/providers/deepseek.md +53 -0
  358. package/docs/providers/fireworks.md +69 -0
  359. package/docs/providers/github-copilot.md +80 -0
  360. package/docs/providers/glm.md +68 -0
  361. package/docs/providers/google.md +149 -0
  362. package/docs/providers/groq.md +105 -0
  363. package/docs/providers/huggingface.md +193 -0
  364. package/docs/providers/index.md +81 -0
  365. package/docs/providers/kilocode.md +89 -0
  366. package/docs/providers/litellm.md +159 -0
  367. package/docs/providers/minimax.md +281 -0
  368. package/docs/providers/mistral.md +68 -0
  369. package/docs/providers/models.md +56 -0
  370. package/docs/providers/moonshot.md +224 -0
  371. package/docs/providers/nvidia.md +58 -0
  372. package/docs/providers/ollama.md +379 -0
  373. package/docs/providers/openai.md +472 -0
  374. package/docs/providers/opencode-go.md +45 -0
  375. package/docs/providers/opencode.md +68 -0
  376. package/docs/providers/openrouter.md +59 -0
  377. package/docs/providers/perplexity-provider.md +62 -0
  378. package/docs/providers/qianfan.md +90 -0
  379. package/docs/providers/qwen.md +128 -0
  380. package/docs/providers/qwen_modelstudio.md +137 -0
  381. package/docs/providers/sglang.md +115 -0
  382. package/docs/providers/stepfun.md +152 -0
  383. package/docs/providers/synthetic.md +101 -0
  384. package/docs/providers/together.md +70 -0
  385. package/docs/providers/venice.md +282 -0
  386. package/docs/providers/vercel-ai-gateway.md +60 -0
  387. package/docs/providers/vllm.md +103 -0
  388. package/docs/providers/volcengine.md +94 -0
  389. package/docs/providers/xai.md +94 -0
  390. package/docs/providers/xiaomi.md +89 -0
  391. package/docs/providers/zai.md +75 -0
  392. package/docs/reference/AGENTS.default.md +126 -0
  393. package/docs/reference/RELEASING.md +138 -0
  394. package/docs/reference/api-usage-costs.md +198 -0
  395. package/docs/reference/credits.md +30 -0
  396. package/docs/reference/device-models.md +47 -0
  397. package/docs/reference/memory-config.md +421 -0
  398. package/docs/reference/prompt-caching.md +344 -0
  399. package/docs/reference/rpc.md +43 -0
  400. package/docs/reference/secretref-credential-surface.md +148 -0
  401. package/docs/reference/secretref-user-supplied-credentials-matrix.json +607 -0
  402. package/docs/reference/session-management-compaction.md +352 -0
  403. package/docs/reference/templates/AGENTS.dev.md +84 -0
  404. package/docs/reference/templates/AGENTS.md +219 -0
  405. package/docs/reference/templates/BOOT.md +12 -0
  406. package/docs/reference/templates/BOOTSTRAP.md +62 -0
  407. package/docs/reference/templates/CLAUDE.md +1 -0
  408. package/docs/reference/templates/HEARTBEAT.md +14 -0
  409. package/docs/reference/templates/IDENTITY.dev.md +48 -0
  410. package/docs/reference/templates/IDENTITY.md +30 -0
  411. package/docs/reference/templates/SOUL.dev.md +77 -0
  412. package/docs/reference/templates/SOUL.md +45 -0
  413. package/docs/reference/templates/TOOLS.dev.md +25 -0
  414. package/docs/reference/templates/TOOLS.md +47 -0
  415. package/docs/reference/templates/USER.dev.md +19 -0
  416. package/docs/reference/templates/USER.md +24 -0
  417. package/docs/reference/test.md +119 -0
  418. package/docs/reference/token-use.md +197 -0
  419. package/docs/reference/transcript-hygiene.md +151 -0
  420. package/docs/reference/wizard.md +245 -0
  421. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
  422. package/docs/security/THREAT-MODEL-ATLAS.md +608 -0
  423. package/docs/security/formal-verification.md +167 -0
  424. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +9 -0
  425. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  426. package/docs/start/bootstrapping.md +41 -0
  427. package/docs/start/docs-directory.md +67 -0
  428. package/docs/start/getting-started.md +148 -0
  429. package/docs/start/hubs.md +199 -0
  430. package/docs/start/lore.md +219 -0
  431. package/docs/start/onboarding-overview.md +69 -0
  432. package/docs/start/onboarding.md +92 -0
  433. package/docs/start/openclaw.md +225 -0
  434. package/docs/start/quickstart.md +22 -0
  435. package/docs/start/setup.md +172 -0
  436. package/docs/start/showcase.md +418 -0
  437. package/docs/start/wizard-cli-automation.md +233 -0
  438. package/docs/start/wizard-cli-reference.md +324 -0
  439. package/docs/start/wizard.md +127 -0
  440. package/docs/style.css +37 -0
  441. package/docs/tools/acp-agents.md +837 -0
  442. package/docs/tools/agent-send.md +100 -0
  443. package/docs/tools/apply-patch.md +52 -0
  444. package/docs/tools/brave-search.md +107 -0
  445. package/docs/tools/browser-linux-troubleshooting.md +145 -0
  446. package/docs/tools/browser-login.md +73 -0
  447. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +221 -0
  448. package/docs/tools/browser.md +890 -0
  449. package/docs/tools/btw.md +142 -0
  450. package/docs/tools/capability-cookbook.md +119 -0
  451. package/docs/tools/clawhub.md +348 -0
  452. package/docs/tools/code-execution.md +90 -0
  453. package/docs/tools/creating-skills.md +119 -0
  454. package/docs/tools/diffs.md +434 -0
  455. package/docs/tools/duckduckgo-search.md +102 -0
  456. package/docs/tools/elevated.md +116 -0
  457. package/docs/tools/exa-search.md +127 -0
  458. package/docs/tools/exec-approvals.md +635 -0
  459. package/docs/tools/exec.md +237 -0
  460. package/docs/tools/firecrawl.md +147 -0
  461. package/docs/tools/gemini-search.md +98 -0
  462. package/docs/tools/grok-search.md +102 -0
  463. package/docs/tools/image-generation.md +139 -0
  464. package/docs/tools/index.md +174 -0
  465. package/docs/tools/kimi-search.md +98 -0
  466. package/docs/tools/llm-task.md +119 -0
  467. package/docs/tools/lobster.md +348 -0
  468. package/docs/tools/loop-detection.md +100 -0
  469. package/docs/tools/minimax-search.md +99 -0
  470. package/docs/tools/multi-agent-sandbox-tools.md +373 -0
  471. package/docs/tools/ollama-search.md +100 -0
  472. package/docs/tools/pdf.md +176 -0
  473. package/docs/tools/perplexity-search.md +185 -0
  474. package/docs/tools/plugin.md +348 -0
  475. package/docs/tools/reactions.md +78 -0
  476. package/docs/tools/searxng-search.md +132 -0
  477. package/docs/tools/skills-config.md +133 -0
  478. package/docs/tools/skills.md +377 -0
  479. package/docs/tools/slash-commands.md +322 -0
  480. package/docs/tools/subagents.md +341 -0
  481. package/docs/tools/tavily.md +129 -0
  482. package/docs/tools/thinking.md +102 -0
  483. package/docs/tools/tts.md +452 -0
  484. package/docs/tools/web-fetch.md +159 -0
  485. package/docs/tools/web.md +417 -0
  486. package/docs/tts.md +452 -0
  487. package/docs/vps.md +115 -0
  488. package/docs/web/control-ui.md +318 -0
  489. package/docs/web/dashboard.md +93 -0
  490. package/docs/web/index.md +126 -0
  491. package/docs/web/tui.md +176 -0
  492. package/docs/web/webchat.md +77 -0
  493. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  494. package/docs/whatsapp-openclaw.jpg +0 -0
  495. package/durar.mjs +180 -0
  496. package/package.json +1259 -0
  497. package/scripts/npm-runner.mjs +111 -0
  498. package/scripts/postinstall-bundled-plugins.mjs +188 -0
  499. package/skills/1password/SKILL.md +70 -0
  500. package/skills/1password/references/cli-examples.md +29 -0
  501. package/skills/1password/references/get-started.md +17 -0
  502. package/skills/apple-notes/SKILL.md +77 -0
  503. package/skills/apple-reminders/SKILL.md +118 -0
  504. package/skills/bear-notes/SKILL.md +107 -0
  505. package/skills/blogwatcher/SKILL.md +69 -0
  506. package/skills/blucli/SKILL.md +47 -0
  507. package/skills/bluebubbles/SKILL.md +131 -0
  508. package/skills/camsnap/SKILL.md +45 -0
  509. package/skills/canvas/SKILL.md +199 -0
  510. package/skills/clawhub/SKILL.md +77 -0
  511. package/skills/coding-agent/SKILL.md +316 -0
  512. package/skills/discord/SKILL.md +197 -0
  513. package/skills/eightctl/SKILL.md +50 -0
  514. package/skills/gemini/SKILL.md +43 -0
  515. package/skills/gh-issues/SKILL.md +885 -0
  516. package/skills/gifgrep/SKILL.md +79 -0
  517. package/skills/github/SKILL.md +163 -0
  518. package/skills/gog/SKILL.md +116 -0
  519. package/skills/goplaces/SKILL.md +52 -0
  520. package/skills/healthcheck/SKILL.md +245 -0
  521. package/skills/himalaya/SKILL.md +257 -0
  522. package/skills/himalaya/references/configuration.md +184 -0
  523. package/skills/himalaya/references/message-composition.md +199 -0
  524. package/skills/imsg/SKILL.md +122 -0
  525. package/skills/mcporter/SKILL.md +61 -0
  526. package/skills/model-usage/SKILL.md +69 -0
  527. package/skills/model-usage/references/codexbar-cli.md +33 -0
  528. package/skills/model-usage/scripts/model_usage.py +320 -0
  529. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  530. package/skills/nano-pdf/SKILL.md +38 -0
  531. package/skills/node-connect/SKILL.md +142 -0
  532. package/skills/notion/SKILL.md +174 -0
  533. package/skills/obsidian/SKILL.md +81 -0
  534. package/skills/openai-whisper/SKILL.md +38 -0
  535. package/skills/openai-whisper-api/SKILL.md +62 -0
  536. package/skills/openai-whisper-api/scripts/transcribe.sh +88 -0
  537. package/skills/openhue/SKILL.md +112 -0
  538. package/skills/oracle/SKILL.md +125 -0
  539. package/skills/ordercli/SKILL.md +78 -0
  540. package/skills/peekaboo/SKILL.md +190 -0
  541. package/skills/sag/SKILL.md +87 -0
  542. package/skills/session-logs/SKILL.md +151 -0
  543. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  544. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  545. package/skills/skill-creator/SKILL.md +372 -0
  546. package/skills/skill-creator/license.txt +202 -0
  547. package/skills/skill-creator/scripts/init_skill.py +378 -0
  548. package/skills/skill-creator/scripts/package_skill.py +139 -0
  549. package/skills/skill-creator/scripts/quick_validate.py +159 -0
  550. package/skills/skill-creator/scripts/test_package_skill.py +160 -0
  551. package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
  552. package/skills/slack/SKILL.md +144 -0
  553. package/skills/songsee/SKILL.md +49 -0
  554. package/skills/sonoscli/SKILL.md +65 -0
  555. package/skills/spotify-player/SKILL.md +64 -0
  556. package/skills/summarize/SKILL.md +87 -0
  557. package/skills/taskflow/SKILL.md +149 -0
  558. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  559. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  560. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  561. package/skills/things-mac/SKILL.md +86 -0
  562. package/skills/tmux/SKILL.md +170 -0
  563. package/skills/tmux/scripts/find-sessions.sh +112 -0
  564. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  565. package/skills/trello/SKILL.md +108 -0
  566. package/skills/video-frames/SKILL.md +46 -0
  567. package/skills/video-frames/scripts/frame.sh +81 -0
  568. package/skills/voice-call/SKILL.md +45 -0
  569. package/skills/wacli/SKILL.md +72 -0
  570. package/skills/weather/SKILL.md +129 -0
  571. package/skills/xurl/SKILL.md +461 -0
@@ -0,0 +1,59 @@
1
+ ---
2
+ summary: "CLI reference for `Durar skills` (search/install/update/list/info/check)"
3
+ read_when:
4
+ - You want to see which skills are available and ready to run
5
+ - You want to search, install, or update skills from Durar Gateway
6
+ - You want to debug missing binaries/env/config for skills
7
+ title: "skills"
8
+ ---
9
+
10
+ # `Durar skills`
11
+
12
+ Inspect local skills and install/update skills from Durar Gateway.
13
+
14
+ Related:
15
+
16
+ - Skills system: [Skills](/tools/skills)
17
+ - Skills config: [Skills config](/tools/skills-config)
18
+ - Durar Gateway installs: [Durar Gateway](/tools/Durar Gateway)
19
+
20
+ ## Commands
21
+
22
+ ```bash
23
+ Durar skills search "calendar"
24
+ Durar skills search --limit 20 --json
25
+ Durar skills install <slug>
26
+ Durar skills install <slug> --version <version>
27
+ Durar skills install <slug> --force
28
+ Durar skills update <slug>
29
+ Durar skills update --all
30
+ Durar skills list
31
+ Durar skills list --eligible
32
+ Durar skills list --json
33
+ Durar skills list --verbose
34
+ Durar skills info <name>
35
+ Durar skills info <name> --json
36
+ Durar skills check
37
+ Durar skills check --json
38
+ ```
39
+
40
+ `search`/`install`/`update` use Durar Gateway directly and install into the active
41
+ workspace `skills/` directory. `list`/`info`/`check` still inspect the local
42
+ skills visible to the current workspace and config.
43
+
44
+ This CLI `install` command downloads skill folders from Durar Gateway. Gateway-backed
45
+ skill dependency installs triggered from onboarding or Skills settings use the
46
+ separate `skills.install` request path instead.
47
+
48
+ Notes:
49
+
50
+ - `search [query...]` accepts an optional query; omit it to browse the default
51
+ Durar Gateway search feed.
52
+ - `search --limit <n>` caps returned results.
53
+ - `install --force` overwrites an existing workspace skill folder for the same
54
+ slug.
55
+ - `update --all` only updates tracked Durar Gateway installs in the active workspace.
56
+ - `list` is the default action when no subcommand is provided.
57
+ - `list`, `info`, and `check` write their rendered output to stdout. With
58
+ `--json`, that means the machine-readable payload stays on stdout for pipes
59
+ and scripts.
@@ -0,0 +1,35 @@
1
+ ---
2
+ summary: "CLI reference for `Durar status` (diagnostics, probes, usage snapshots)"
3
+ read_when:
4
+ - You want a quick diagnosis of channel health + recent session recipients
5
+ - You want a pasteable “all” status for debugging
6
+ title: "status"
7
+ ---
8
+
9
+ # `Durar status`
10
+
11
+ Diagnostics for channels + sessions.
12
+
13
+ ```bash
14
+ Durar status
15
+ Durar status --all
16
+ Durar status --deep
17
+ Durar status --usage
18
+ ```
19
+
20
+ Notes:
21
+
22
+ - `--deep` runs live probes (WhatsApp Web + Telegram + Discord + Slack + Signal).
23
+ - `--usage` prints normalized provider usage windows as `X% left`.
24
+ - MiniMax's raw `usage_percent` / `usagePercent` fields are remaining quota, so Durar inverts them before display; count-based fields win when present. `model_remains` responses prefer the chat-model entry, derive the window label from timestamps when needed, and include the model name in the plan label.
25
+ - When the current session snapshot is sparse, `/status` can backfill token and cache counters from the most recent transcript usage log. Existing nonzero live values still win over transcript fallback values.
26
+ - Transcript fallback can also recover the active runtime model label when the live session entry is missing it. If that transcript model differs from the selected model, status resolves the context window against the recovered runtime model instead of the selected one.
27
+ - For prompt-size accounting, transcript fallback prefers the larger prompt-oriented total when session metadata is missing or smaller, so custom-provider sessions do not collapse to `0` token displays.
28
+ - Output includes per-agent session stores when multiple agents are configured.
29
+ - Overview includes Gateway + node host service install/runtime status when available.
30
+ - Overview includes update channel + git SHA (for source checkouts).
31
+ - Update info surfaces in the Overview; if an update is available, status prints a hint to run `Durar update` (see [Updating](/install/updating)).
32
+ - Read-only status surfaces (`status`, `status --json`, `status --all`) resolve supported SecretRefs for their targeted config paths when possible.
33
+ - If a supported channel SecretRef is configured but unavailable in the current command path, status stays read-only and reports degraded output instead of crashing. Human output shows warnings such as “configured token unavailable in this command path”, and JSON output includes `secretDiagnostics`.
34
+ - When command-local SecretRef resolution succeeds, status prefers the resolved snapshot and clears transient “secret unavailable” channel markers from the final output.
35
+ - `status --all` includes a Secrets overview row and a diagnosis section that summarizes secret diagnostics (truncated for readability) without stopping report generation.
@@ -0,0 +1,71 @@
1
+ ---
2
+ summary: "CLI reference for `Durar system` (system events, heartbeat, presence)"
3
+ read_when:
4
+ - You want to enqueue a system event without creating a cron job
5
+ - You need to enable or disable heartbeats
6
+ - You want to inspect system presence entries
7
+ title: "system"
8
+ ---
9
+
10
+ # `Durar system`
11
+
12
+ System-level helpers for the Gateway: enqueue system events, control heartbeats,
13
+ and view presence.
14
+
15
+ All `system` subcommands use Gateway RPC and accept the shared client flags:
16
+
17
+ - `--url <url>`
18
+ - `--token <token>`
19
+ - `--timeout <ms>`
20
+ - `--expect-final`
21
+
22
+ ## Common commands
23
+
24
+ ```bash
25
+ Durar system event --text "Check for urgent follow-ups" --mode now
26
+ Durar system event --text "Check for urgent follow-ups" --url ws://127.0.0.1:18789 --token "$Durar_GATEWAY_TOKEN"
27
+ Durar system heartbeat enable
28
+ Durar system heartbeat last
29
+ Durar system presence
30
+ ```
31
+
32
+ ## `system event`
33
+
34
+ Enqueue a system event on the **main** session. The next heartbeat will inject
35
+ it as a `System:` line in the prompt. Use `--mode now` to trigger the heartbeat
36
+ immediately; `next-heartbeat` waits for the next scheduled tick.
37
+
38
+ Flags:
39
+
40
+ - `--text <text>`: required system event text.
41
+ - `--mode <mode>`: `now` or `next-heartbeat` (default).
42
+ - `--json`: machine-readable output.
43
+ - `--url`, `--token`, `--timeout`, `--expect-final`: shared Gateway RPC flags.
44
+
45
+ ## `system heartbeat last|enable|disable`
46
+
47
+ Heartbeat controls:
48
+
49
+ - `last`: show the last heartbeat event.
50
+ - `enable`: turn heartbeats back on (use this if they were disabled).
51
+ - `disable`: pause heartbeats.
52
+
53
+ Flags:
54
+
55
+ - `--json`: machine-readable output.
56
+ - `--url`, `--token`, `--timeout`, `--expect-final`: shared Gateway RPC flags.
57
+
58
+ ## `system presence`
59
+
60
+ List the current system presence entries the Gateway knows about (nodes,
61
+ instances, and similar status lines).
62
+
63
+ Flags:
64
+
65
+ - `--json`: machine-readable output.
66
+ - `--url`, `--token`, `--timeout`, `--expect-final`: shared Gateway RPC flags.
67
+
68
+ ## Notes
69
+
70
+ - Requires a running Gateway reachable by your current config (local or remote).
71
+ - System events are ephemeral and not persisted across restarts.
@@ -0,0 +1,30 @@
1
+ ---
2
+ summary: "CLI reference for `Durar tui` (terminal UI connected to the Gateway)"
3
+ read_when:
4
+ - You want a terminal UI for the Gateway (remote-friendly)
5
+ - You want to pass url/token/session from scripts
6
+ title: "tui"
7
+ ---
8
+
9
+ # `Durar tui`
10
+
11
+ Open the terminal UI connected to the Gateway.
12
+
13
+ Related:
14
+
15
+ - TUI guide: [TUI](/web/tui)
16
+
17
+ Notes:
18
+
19
+ - `tui` resolves configured gateway auth SecretRefs for token/password auth when possible (`env`/`file`/`exec` providers).
20
+ - When launched from inside a configured agent workspace directory, TUI auto-selects that agent for the session key default (unless `--session` is explicitly `agent:<id>:...`).
21
+
22
+ ## Examples
23
+
24
+ ```bash
25
+ Durar tui
26
+ Durar tui --url ws://127.0.0.1:18789 --token <token>
27
+ Durar tui --session main --deliver
28
+ # when run inside an agent workspace, infers that agent automatically
29
+ Durar tui --session bugfix
30
+ ```
@@ -0,0 +1,39 @@
1
+ ---
2
+ summary: "CLI reference for `Durar uninstall` (remove gateway service + local data)"
3
+ read_when:
4
+ - You want to remove the gateway service and/or local state
5
+ - You want a dry-run first
6
+ title: "uninstall"
7
+ ---
8
+
9
+ # `Durar uninstall`
10
+
11
+ Uninstall the gateway service + local data (CLI remains).
12
+
13
+ Options:
14
+
15
+ - `--service`: remove the gateway service
16
+ - `--state`: remove state and config
17
+ - `--workspace`: remove workspace directories
18
+ - `--app`: remove the macOS app
19
+ - `--all`: remove service, state, workspace, and app
20
+ - `--yes`: skip confirmation prompts
21
+ - `--non-interactive`: disable prompts; requires `--yes`
22
+ - `--dry-run`: print actions without removing files
23
+
24
+ Examples:
25
+
26
+ ```bash
27
+ Durar backup create
28
+ Durar uninstall
29
+ Durar uninstall --service --yes --non-interactive
30
+ Durar uninstall --state --workspace --yes --non-interactive
31
+ Durar uninstall --all --yes
32
+ Durar uninstall --dry-run
33
+ ```
34
+
35
+ Notes:
36
+
37
+ - Run `Durar backup create` first if you want a restorable snapshot before removing state or workspaces.
38
+ - `--all` is shorthand for removing service, state, workspace, and app together.
39
+ - `--non-interactive` requires `--yes`.
@@ -0,0 +1,113 @@
1
+ ---
2
+ summary: "CLI reference for `Durar update` (safe-ish source update + gateway auto-restart)"
3
+ read_when:
4
+ - You want to update a source checkout safely
5
+ - You need to understand `--update` shorthand behavior
6
+ title: "update"
7
+ ---
8
+
9
+ # `Durar update`
10
+
11
+ Safely update Durar and switch between stable/beta/dev channels.
12
+
13
+ If you installed via **npm/pnpm/bun** (global install, no git metadata),
14
+ updates happen via the package-manager flow in [Updating](/install/updating).
15
+
16
+ ## Usage
17
+
18
+ ```bash
19
+ Durar update
20
+ Durar update status
21
+ Durar update wizard
22
+ Durar update --channel beta
23
+ Durar update --channel dev
24
+ Durar update --tag beta
25
+ Durar update --tag main
26
+ Durar update --dry-run
27
+ Durar update --no-restart
28
+ Durar update --yes
29
+ Durar update --json
30
+ Durar --update
31
+ ```
32
+
33
+ ## Options
34
+
35
+ - `--no-restart`: skip restarting the Gateway service after a successful update.
36
+ - `--channel <stable|beta|dev>`: set the update channel (git + npm; persisted in config).
37
+ - `--tag <dist-tag|version|spec>`: override the package target for this update only. For package installs, `main` maps to `github:Durar/Durar#main`.
38
+ - `--dry-run`: preview planned update actions (channel/tag/target/restart flow) without writing config, installing, syncing plugins, or restarting.
39
+ - `--json`: print machine-readable `UpdateRunResult` JSON.
40
+ - `--timeout <seconds>`: per-step timeout (default is 1200s).
41
+ - `--yes`: skip confirmation prompts (for example downgrade confirmation)
42
+
43
+ Note: downgrades require confirmation because older versions can break configuration.
44
+
45
+ ## `update status`
46
+
47
+ Show the active update channel + git tag/branch/SHA (for source checkouts), plus update availability.
48
+
49
+ ```bash
50
+ Durar update status
51
+ Durar update status --json
52
+ Durar update status --timeout 10
53
+ ```
54
+
55
+ Options:
56
+
57
+ - `--json`: print machine-readable status JSON.
58
+ - `--timeout <seconds>`: timeout for checks (default is 3s).
59
+
60
+ ## `update wizard`
61
+
62
+ Interactive flow to pick an update channel and confirm whether to restart the Gateway
63
+ after updating (default is to restart). If you select `dev` without a git checkout, it
64
+ offers to create one.
65
+
66
+ Options:
67
+
68
+ - `--timeout <seconds>`: timeout for each update step (default `1200`)
69
+
70
+ ## What it does
71
+
72
+ When you switch channels explicitly (`--channel ...`), Durar also keeps the
73
+ install method aligned:
74
+
75
+ - `dev` → ensures a git checkout (default: `~/Durar`, override with `Durar_GIT_DIR`),
76
+ updates it, and installs the global CLI from that checkout.
77
+ - `stable` → installs from npm using `latest`.
78
+ - `beta` → prefers npm dist-tag `beta`, but falls back to `latest` when beta is
79
+ missing or older than the current stable release.
80
+
81
+ The Gateway core auto-updater (when enabled via config) reuses this same update path.
82
+
83
+ ## Git checkout flow
84
+
85
+ Channels:
86
+
87
+ - `stable`: checkout the latest non-beta tag, then build + doctor.
88
+ - `beta`: prefer the latest `-beta` tag, but fall back to the latest stable tag
89
+ when beta is missing or older.
90
+ - `dev`: checkout `main`, then fetch + rebase.
91
+
92
+ High-level:
93
+
94
+ 1. Requires a clean worktree (no uncommitted changes).
95
+ 2. Switches to the selected channel (tag or branch).
96
+ 3. Fetches upstream (dev only).
97
+ 4. Dev only: preflight lint + TypeScript build in a temp worktree; if the tip fails, walks back up to 10 commits to find the newest clean build.
98
+ 5. Rebases onto the selected commit (dev only).
99
+ 6. Installs deps (pnpm preferred; npm fallback; bun remains available as a secondary compatibility fallback).
100
+ 7. Builds + builds the Control UI.
101
+ 8. Runs `Durar doctor` as the final “safe update” check.
102
+ 9. Syncs plugins to the active channel (dev uses bundled extensions; stable/beta uses npm) and updates npm-installed plugins.
103
+
104
+ ## `--update` shorthand
105
+
106
+ `Durar --update` rewrites to `Durar update` (useful for shells and launcher scripts).
107
+
108
+ ## See also
109
+
110
+ - `Durar doctor` (offers to run update first on git checkouts)
111
+ - [Development channels](/install/development-channels)
112
+ - [Updating](/install/updating)
113
+ - [CLI reference](/cli)
@@ -0,0 +1,34 @@
1
+ ---
2
+ summary: "CLI reference for `Durar voicecall` (voice-call plugin command surface)"
3
+ read_when:
4
+ - You use the voice-call plugin and want the CLI entry points
5
+ - You want quick examples for `voicecall call|continue|status|tail|expose`
6
+ title: "voicecall"
7
+ ---
8
+
9
+ # `Durar voicecall`
10
+
11
+ `voicecall` is a plugin-provided command. It only appears if the voice-call plugin is installed and enabled.
12
+
13
+ Primary doc:
14
+
15
+ - Voice-call plugin: [Voice Call](/plugins/voice-call)
16
+
17
+ ## Common commands
18
+
19
+ ```bash
20
+ Durar voicecall status --call-id <id>
21
+ Durar voicecall call --to "+15555550123" --message "Hello" --mode notify
22
+ Durar voicecall continue --call-id <id> --message "Any questions?"
23
+ Durar voicecall end --call-id <id>
24
+ ```
25
+
26
+ ## Exposing webhooks (Tailscale)
27
+
28
+ ```bash
29
+ Durar voicecall expose --mode serve
30
+ Durar voicecall expose --mode funnel
31
+ Durar voicecall expose --mode off
32
+ ```
33
+
34
+ Security note: only expose the webhook endpoint to networks you trust. Prefer Tailscale Serve over Funnel when possible.
@@ -0,0 +1,91 @@
1
+ ---
2
+ summary: "CLI reference for `Durar webhooks` (webhook helpers + Gmail Pub/Sub)"
3
+ read_when:
4
+ - You want to wire Gmail Pub/Sub events into Durar
5
+ - You want webhook helper commands
6
+ title: "webhooks"
7
+ ---
8
+
9
+ # `Durar webhooks`
10
+
11
+ Webhook helpers and integrations (Gmail Pub/Sub, webhook helpers).
12
+
13
+ Related:
14
+
15
+ - Webhooks: [Webhooks](/automation/cron-jobs#webhooks)
16
+ - Gmail Pub/Sub: [Gmail Pub/Sub](/automation/cron-jobs#gmail-pubsub-integration)
17
+
18
+ ## Gmail
19
+
20
+ ```bash
21
+ Durar webhooks gmail setup --account you@example.com
22
+ Durar webhooks gmail run
23
+ ```
24
+
25
+ ### `webhooks gmail setup`
26
+
27
+ Configure Gmail watch, Pub/Sub, and Durar webhook delivery.
28
+
29
+ Required:
30
+
31
+ - `--account <email>`
32
+
33
+ Options:
34
+
35
+ - `--project <id>`
36
+ - `--topic <name>`
37
+ - `--subscription <name>`
38
+ - `--label <label>`
39
+ - `--hook-url <url>`
40
+ - `--hook-token <token>`
41
+ - `--push-token <token>`
42
+ - `--bind <host>`
43
+ - `--port <port>`
44
+ - `--path <path>`
45
+ - `--include-body`
46
+ - `--max-bytes <n>`
47
+ - `--renew-minutes <n>`
48
+ - `--tailscale <funnel|serve|off>`
49
+ - `--tailscale-path <path>`
50
+ - `--tailscale-target <target>`
51
+ - `--push-endpoint <url>`
52
+ - `--json`
53
+
54
+ Examples:
55
+
56
+ ```bash
57
+ Durar webhooks gmail setup --account you@example.com
58
+ Durar webhooks gmail setup --account you@example.com --project my-gcp-project --json
59
+ Durar webhooks gmail setup --account you@example.com --hook-url https://gateway.example.com/hooks/gmail
60
+ ```
61
+
62
+ ### `webhooks gmail run`
63
+
64
+ Run `gog watch serve` plus the watch auto-renew loop.
65
+
66
+ Options:
67
+
68
+ - `--account <email>`
69
+ - `--topic <topic>`
70
+ - `--subscription <name>`
71
+ - `--label <label>`
72
+ - `--hook-url <url>`
73
+ - `--hook-token <token>`
74
+ - `--push-token <token>`
75
+ - `--bind <host>`
76
+ - `--port <port>`
77
+ - `--path <path>`
78
+ - `--include-body`
79
+ - `--max-bytes <n>`
80
+ - `--renew-minutes <n>`
81
+ - `--tailscale <funnel|serve|off>`
82
+ - `--tailscale-path <path>`
83
+ - `--tailscale-target <target>`
84
+
85
+ Example:
86
+
87
+ ```bash
88
+ Durar webhooks gmail run --account you@example.com
89
+ ```
90
+
91
+ See [Gmail Pub/Sub documentation](/automation/cron-jobs#gmail-pubsub-integration) for the end-to-end setup flow and operational details.
@@ -0,0 +1,168 @@
1
+ ---
2
+ summary: "Agent loop lifecycle, streams, and wait semantics"
3
+ read_when:
4
+ - You need an exact walkthrough of the agent loop or lifecycle events
5
+ title: "Agent Loop"
6
+ ---
7
+
8
+ # Agent Loop (Durar)
9
+
10
+ An agentic loop is the full “real” run of an agent: intake → context assembly → model inference →
11
+ tool execution → streaming replies → persistence. It’s the authoritative path that turns a message
12
+ into actions and a final reply, while keeping session state consistent.
13
+
14
+ In Durar, a loop is a single, serialized run per session that emits lifecycle and stream events
15
+ as the model thinks, calls tools, and streams output. This doc explains how that authentic loop is
16
+ wired end-to-end.
17
+
18
+ ## Entry points
19
+
20
+ - Gateway RPC: `agent` and `agent.wait`.
21
+ - CLI: `agent` command.
22
+
23
+ ## How it works (high-level)
24
+
25
+ 1. `agent` RPC validates params, resolves session (sessionKey/sessionId), persists session metadata, returns `{ runId, acceptedAt }` immediately.
26
+ 2. `agentCommand` runs the agent:
27
+ - resolves model + thinking/verbose defaults
28
+ - loads skills snapshot
29
+ - calls `runEmbeddedPiAgent` (pi-agent-core runtime)
30
+ - emits **lifecycle end/error** if the embedded loop does not emit one
31
+ 3. `runEmbeddedPiAgent`:
32
+ - serializes runs via per-session + global queues
33
+ - resolves model + auth profile and builds the pi session
34
+ - subscribes to pi events and streams assistant/tool deltas
35
+ - enforces timeout -> aborts run if exceeded
36
+ - returns payloads + usage metadata
37
+ 4. `subscribeEmbeddedPiSession` bridges pi-agent-core events to Durar `agent` stream:
38
+ - tool events => `stream: "tool"`
39
+ - assistant deltas => `stream: "assistant"`
40
+ - lifecycle events => `stream: "lifecycle"` (`phase: "start" | "end" | "error"`)
41
+ 5. `agent.wait` uses `waitForAgentRun`:
42
+ - waits for **lifecycle end/error** for `runId`
43
+ - returns `{ status: ok|error|timeout, startedAt, endedAt, error? }`
44
+
45
+ ## Queueing + concurrency
46
+
47
+ - Runs are serialized per session key (session lane) and optionally through a global lane.
48
+ - This prevents tool/session races and keeps session history consistent.
49
+ - Messaging channels can choose queue modes (collect/steer/followup) that feed this lane system.
50
+ See [Command Queue](/concepts/queue).
51
+
52
+ ## Session + workspace preparation
53
+
54
+ - Workspace is resolved and created; sandboxed runs may redirect to a sandbox workspace root.
55
+ - Skills are loaded (or reused from a snapshot) and injected into env and prompt.
56
+ - Bootstrap/context files are resolved and injected into the system prompt report.
57
+ - A session write lock is acquired; `SessionManager` is opened and prepared before streaming.
58
+
59
+ ## Prompt assembly + system prompt
60
+
61
+ - System prompt is built from Durar’s base prompt, skills prompt, bootstrap context, and per-run overrides.
62
+ - Model-specific limits and compaction reserve tokens are enforced.
63
+ - See [System prompt](/concepts/system-prompt) for what the model sees.
64
+
65
+ ## Hook points (where you can intercept)
66
+
67
+ Durar has two hook systems:
68
+
69
+ - **Internal hooks** (Gateway hooks): event-driven scripts for commands and lifecycle events.
70
+ - **Plugin hooks**: extension points inside the agent/tool lifecycle and gateway pipeline.
71
+
72
+ ### Internal hooks (Gateway hooks)
73
+
74
+ - **`agent:bootstrap`**: runs while building bootstrap files before the system prompt is finalized.
75
+ Use this to add/remove bootstrap context files.
76
+ - **Command hooks**: `/new`, `/reset`, `/stop`, and other command events (see Hooks doc).
77
+
78
+ See [Hooks](/automation/hooks) for setup and examples.
79
+
80
+ ### Plugin hooks (agent + gateway lifecycle)
81
+
82
+ These run inside the agent loop or gateway pipeline:
83
+
84
+ - **`before_model_resolve`**: runs pre-session (no `messages`) to deterministically override provider/model before model resolution.
85
+ - **`before_prompt_build`**: runs after session load (with `messages`) to inject `prependContext`, `systemPrompt`, `prependSystemContext`, or `appendSystemContext` before prompt submission. Use `prependContext` for per-turn dynamic text and system-context fields for stable guidance that should sit in system prompt space.
86
+ - **`before_agent_start`**: legacy compatibility hook that may run in either phase; prefer the explicit hooks above.
87
+ - **`before_agent_reply`**: runs after inline actions and before the LLM call, letting a plugin claim the turn and return a synthetic reply or silence the turn entirely.
88
+ - **`agent_end`**: inspect the final message list and run metadata after completion.
89
+ - **`before_compaction` / `after_compaction`**: observe or annotate compaction cycles.
90
+ - **`before_tool_call` / `after_tool_call`**: intercept tool params/results.
91
+ - **`before_install`**: inspect built-in scan findings and optionally block skill or plugin installs.
92
+ - **`tool_result_persist`**: synchronously transform tool results before they are written to the session transcript.
93
+ - **`message_received` / `message_sending` / `message_sent`**: inbound + outbound message hooks.
94
+ - **`session_start` / `session_end`**: session lifecycle boundaries.
95
+ - **`gateway_start` / `gateway_stop`**: gateway lifecycle events.
96
+
97
+ Hook decision rules for outbound/tool guards:
98
+
99
+ - `before_tool_call`: `{ block: true }` is terminal and stops lower-priority handlers.
100
+ - `before_tool_call`: `{ block: false }` is a no-op and does not clear a prior block.
101
+ - `before_install`: `{ block: true }` is terminal and stops lower-priority handlers.
102
+ - `before_install`: `{ block: false }` is a no-op and does not clear a prior block.
103
+ - `message_sending`: `{ cancel: true }` is terminal and stops lower-priority handlers.
104
+ - `message_sending`: `{ cancel: false }` is a no-op and does not clear a prior cancel.
105
+
106
+ See [Plugin hooks](/plugins/architecture#provider-runtime-hooks) for the hook API and registration details.
107
+
108
+ ## Streaming + partial replies
109
+
110
+ - Assistant deltas are streamed from pi-agent-core and emitted as `assistant` events.
111
+ - Block streaming can emit partial replies either on `text_end` or `message_end`.
112
+ - Reasoning streaming can be emitted as a separate stream or as block replies.
113
+ - See [Streaming](/concepts/streaming) for chunking and block reply behavior.
114
+
115
+ ## Tool execution + messaging tools
116
+
117
+ - Tool start/update/end events are emitted on the `tool` stream.
118
+ - Tool results are sanitized for size and image payloads before logging/emitting.
119
+ - Messaging tool sends are tracked to suppress duplicate assistant confirmations.
120
+
121
+ ## Reply shaping + suppression
122
+
123
+ - Final payloads are assembled from:
124
+ - assistant text (and optional reasoning)
125
+ - inline tool summaries (when verbose + allowed)
126
+ - assistant error text when the model errors
127
+ - The exact silent token `NO_REPLY` / `no_reply` is filtered from outgoing
128
+ payloads.
129
+ - Messaging tool duplicates are removed from the final payload list.
130
+ - If no renderable payloads remain and a tool errored, a fallback tool error reply is emitted
131
+ (unless a messaging tool already sent a user-visible reply).
132
+
133
+ ## Compaction + retries
134
+
135
+ - Auto-compaction emits `compaction` stream events and can trigger a retry.
136
+ - On retry, in-memory buffers and tool summaries are reset to avoid duplicate output.
137
+ - See [Compaction](/concepts/compaction) for the compaction pipeline.
138
+
139
+ ## Event streams (today)
140
+
141
+ - `lifecycle`: emitted by `subscribeEmbeddedPiSession` (and as a fallback by `agentCommand`)
142
+ - `assistant`: streamed deltas from pi-agent-core
143
+ - `tool`: streamed tool events from pi-agent-core
144
+
145
+ ## Chat channel handling
146
+
147
+ - Assistant deltas are buffered into chat `delta` messages.
148
+ - A chat `final` is emitted on **lifecycle end/error**.
149
+
150
+ ## Timeouts
151
+
152
+ - `agent.wait` default: 30s (just the wait). `timeoutMs` param overrides.
153
+ - Agent runtime: `agents.defaults.timeoutSeconds` default 172800s (48 hours); enforced in `runEmbeddedPiAgent` abort timer.
154
+
155
+ ## Where things can end early
156
+
157
+ - Agent timeout (abort)
158
+ - AbortSignal (cancel)
159
+ - Gateway disconnect or RPC timeout
160
+ - `agent.wait` timeout (wait-only, does not stop agent)
161
+
162
+ ## Related
163
+
164
+ - [Tools](/tools) — available agent tools
165
+ - [Hooks](/automation/hooks) — event-driven scripts triggered by agent lifecycle events
166
+ - [Compaction](/concepts/compaction) — how long conversations are summarized
167
+ - [Exec Approvals](/tools/exec-approvals) — approval gates for shell commands
168
+ - [Thinking](/tools/thinking) — thinking/reasoning level configuration