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,303 @@
1
+ ---
2
+ summary: "Hooks: event-driven automation for commands and lifecycle events"
3
+ read_when:
4
+ - You want event-driven automation for /new, /reset, /stop, and agent lifecycle events
5
+ - You want to build, install, or debug hooks
6
+ title: "Hooks"
7
+ ---
8
+
9
+ # Hooks
10
+
11
+ Hooks are small scripts that run when something happens inside the Gateway. They are automatically discovered from directories and can be inspected with `Durar hooks`.
12
+
13
+ There are two kinds of hooks in Durar:
14
+
15
+ - **Internal hooks** (this page): run inside the Gateway when agent events fire, like `/new`, `/reset`, `/stop`, or lifecycle events.
16
+ - **Webhooks**: external HTTP endpoints that let other systems trigger work in Durar. See [Webhooks](/automation/cron-jobs#webhooks).
17
+
18
+ Hooks can also be bundled inside plugins. `Durar hooks list` shows both standalone hooks and plugin-managed hooks.
19
+
20
+ ## Quick start
21
+
22
+ ```bash
23
+ # List available hooks
24
+ Durar hooks list
25
+
26
+ # Enable a hook
27
+ Durar hooks enable session-memory
28
+
29
+ # Check hook status
30
+ Durar hooks check
31
+
32
+ # Get detailed information
33
+ Durar hooks info session-memory
34
+ ```
35
+
36
+ ## Event types
37
+
38
+ | Event | When it fires |
39
+ | ------------------------ | ------------------------------------------------ |
40
+ | `command:new` | `/new` command issued |
41
+ | `command:reset` | `/reset` command issued |
42
+ | `command:stop` | `/stop` command issued |
43
+ | `command` | Any command event (general listener) |
44
+ | `session:compact:before` | Before compaction summarizes history |
45
+ | `session:compact:after` | After compaction completes |
46
+ | `session:patch` | When session properties are modified |
47
+ | `agent:bootstrap` | Before workspace bootstrap files are injected |
48
+ | `gateway:startup` | After channels start and hooks are loaded |
49
+ | `message:received` | Inbound message from any channel |
50
+ | `message:transcribed` | After audio transcription completes |
51
+ | `message:preprocessed` | After all media and link understanding completes |
52
+ | `message:sent` | Outbound message delivered |
53
+
54
+ ## Writing hooks
55
+
56
+ ### Hook structure
57
+
58
+ Each hook is a directory containing two files:
59
+
60
+ ```
61
+ my-hook/
62
+ ├── HOOK.md # Metadata + documentation
63
+ └── handler.ts # Handler implementation
64
+ ```
65
+
66
+ ### HOOK.md format
67
+
68
+ ```markdown
69
+ ---
70
+ name: my-hook
71
+ description: "Short description of what this hook does"
72
+ metadata:
73
+ { "Durar": { "emoji": "🔗", "events": ["command:new"], "requires": { "bins": ["node"] } } }
74
+ ---
75
+
76
+ # My Hook
77
+
78
+ Detailed documentation goes here.
79
+ ```
80
+
81
+ **Metadata fields** (`metadata.Durar`):
82
+
83
+ | Field | Description |
84
+ | ---------- | ---------------------------------------------------- |
85
+ | `emoji` | Display emoji for CLI |
86
+ | `events` | Array of events to listen for |
87
+ | `export` | Named export to use (defaults to `"default"`) |
88
+ | `os` | Required platforms (e.g., `["darwin", "linux"]`) |
89
+ | `requires` | Required `bins`, `anyBins`, `env`, or `config` paths |
90
+ | `always` | Bypass eligibility checks (boolean) |
91
+ | `install` | Installation methods |
92
+
93
+ ### Handler implementation
94
+
95
+ ```typescript
96
+ const handler = async (event) => {
97
+ if (event.type !== "command" || event.action !== "new") {
98
+ return;
99
+ }
100
+
101
+ console.log(`[my-hook] New command triggered`);
102
+ // Your logic here
103
+
104
+ // Optionally send message to user
105
+ event.messages.push("Hook executed!");
106
+ };
107
+
108
+ export default handler;
109
+ ```
110
+
111
+ Each event includes: `type`, `action`, `sessionKey`, `timestamp`, `messages` (push to send to user), and `context` (event-specific data).
112
+
113
+ ### Event context highlights
114
+
115
+ **Command events** (`command:new`, `command:reset`): `context.sessionEntry`, `context.previousSessionEntry`, `context.commandSource`, `context.workspaceDir`, `context.cfg`.
116
+
117
+ **Message events** (`message:received`): `context.from`, `context.content`, `context.channelId`, `context.metadata` (provider-specific data including `senderId`, `senderName`, `guildId`).
118
+
119
+ **Message events** (`message:sent`): `context.to`, `context.content`, `context.success`, `context.channelId`.
120
+
121
+ **Message events** (`message:transcribed`): `context.transcript`, `context.from`, `context.channelId`, `context.mediaPath`.
122
+
123
+ **Message events** (`message:preprocessed`): `context.bodyForAgent` (final enriched body), `context.from`, `context.channelId`.
124
+
125
+ **Bootstrap events** (`agent:bootstrap`): `context.bootstrapFiles` (mutable array), `context.agentId`.
126
+
127
+ **Session patch events** (`session:patch`): `context.sessionEntry`, `context.patch` (only changed fields), `context.cfg`. Only privileged clients can trigger patch events.
128
+
129
+ **Compaction events**: `session:compact:before` includes `messageCount`, `tokenCount`. `session:compact:after` adds `compactedCount`, `summaryLength`, `tokensBefore`, `tokensAfter`.
130
+
131
+ ## Hook discovery
132
+
133
+ Hooks are discovered from these directories, in order of increasing override precedence:
134
+
135
+ 1. **Bundled hooks**: shipped with Durar
136
+ 2. **Plugin hooks**: hooks bundled inside installed plugins
137
+ 3. **Managed hooks**: `~/.Durar/hooks/` (user-installed, shared across workspaces). Extra directories from `hooks.internal.load.extraDirs` share this precedence.
138
+ 4. **Workspace hooks**: `<workspace>/hooks/` (per-agent, disabled by default until explicitly enabled)
139
+
140
+ Workspace hooks can add new hook names but cannot override bundled, managed, or plugin-provided hooks with the same name.
141
+
142
+ ### Hook packs
143
+
144
+ Hook packs are npm packages that export hooks via `Durar.hooks` in `package.json`. Install with:
145
+
146
+ ```bash
147
+ Durar plugins install <path-or-spec>
148
+ ```
149
+
150
+ Npm specs are registry-only (package name + optional exact version or dist-tag). Git/URL/file specs and semver ranges are rejected.
151
+
152
+ ## Bundled hooks
153
+
154
+ | Hook | Events | What it does |
155
+ | --------------------- | ------------------------------ | ----------------------------------------------------- |
156
+ | session-memory | `command:new`, `command:reset` | Saves session context to `<workspace>/memory/` |
157
+ | bootstrap-extra-files | `agent:bootstrap` | Injects additional bootstrap files from glob patterns |
158
+ | command-logger | `command` | Logs all commands to `~/.Durar/logs/commands.log` |
159
+ | boot-md | `gateway:startup` | Runs `BOOT.md` when the gateway starts |
160
+
161
+ Enable any bundled hook:
162
+
163
+ ```bash
164
+ Durar hooks enable <hook-name>
165
+ ```
166
+
167
+ ### session-memory details
168
+
169
+ Extracts the last 15 user/assistant messages, generates a descriptive filename slug via LLM, and saves to `<workspace>/memory/YYYY-MM-DD-slug.md`. Requires `workspace.dir` to be configured.
170
+
171
+ ### bootstrap-extra-files config
172
+
173
+ ```json
174
+ {
175
+ "hooks": {
176
+ "internal": {
177
+ "entries": {
178
+ "bootstrap-extra-files": {
179
+ "enabled": true,
180
+ "paths": ["packages/*/AGENTS.md", "packages/*/TOOLS.md"]
181
+ }
182
+ }
183
+ }
184
+ }
185
+ }
186
+ ```
187
+
188
+ Paths resolve relative to workspace. Only recognized bootstrap basenames are loaded (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`, `MEMORY.md`).
189
+
190
+ ## Plugin hooks
191
+
192
+ Plugins can register hooks through the Plugin SDK for deeper integration: intercepting tool calls, modifying prompts, controlling message flow, and more. The Plugin SDK exposes 28 hooks covering model resolution, agent lifecycle, message flow, tool execution, subagent coordination, and gateway lifecycle.
193
+
194
+ For the complete plugin hook reference including `before_tool_call`, `before_agent_reply`, `before_install`, and all other plugin hooks, see [Plugin Architecture](/plugins/architecture#provider-runtime-hooks).
195
+
196
+ ## Configuration
197
+
198
+ ```json
199
+ {
200
+ "hooks": {
201
+ "internal": {
202
+ "enabled": true,
203
+ "entries": {
204
+ "session-memory": { "enabled": true },
205
+ "command-logger": { "enabled": false }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ ```
211
+
212
+ Per-hook environment variables:
213
+
214
+ ```json
215
+ {
216
+ "hooks": {
217
+ "internal": {
218
+ "entries": {
219
+ "my-hook": {
220
+ "enabled": true,
221
+ "env": { "MY_CUSTOM_VAR": "value" }
222
+ }
223
+ }
224
+ }
225
+ }
226
+ }
227
+ ```
228
+
229
+ Extra hook directories:
230
+
231
+ ```json
232
+ {
233
+ "hooks": {
234
+ "internal": {
235
+ "load": {
236
+ "extraDirs": ["/path/to/more/hooks"]
237
+ }
238
+ }
239
+ }
240
+ }
241
+ ```
242
+
243
+ <Note>
244
+ The legacy `hooks.internal.handlers` array config format is still supported for backwards compatibility, but new hooks should use the discovery-based system.
245
+ </Note>
246
+
247
+ ## CLI reference
248
+
249
+ ```bash
250
+ # List all hooks (add --eligible, --verbose, or --json)
251
+ Durar hooks list
252
+
253
+ # Show detailed info about a hook
254
+ Durar hooks info <hook-name>
255
+
256
+ # Show eligibility summary
257
+ Durar hooks check
258
+
259
+ # Enable/disable
260
+ Durar hooks enable <hook-name>
261
+ Durar hooks disable <hook-name>
262
+ ```
263
+
264
+ ## Best practices
265
+
266
+ - **Keep handlers fast.** Hooks run during command processing. Fire-and-forget heavy work with `void processInBackground(event)`.
267
+ - **Handle errors gracefully.** Wrap risky operations in try/catch; do not throw so other handlers can run.
268
+ - **Filter events early.** Return immediately if the event type/action is not relevant.
269
+ - **Use specific event keys.** Prefer `"events": ["command:new"]` over `"events": ["command"]` to reduce overhead.
270
+
271
+ ## Troubleshooting
272
+
273
+ ### Hook not discovered
274
+
275
+ ```bash
276
+ # Verify directory structure
277
+ ls -la ~/.Durar/hooks/my-hook/
278
+ # Should show: HOOK.md, handler.ts
279
+
280
+ # List all discovered hooks
281
+ Durar hooks list
282
+ ```
283
+
284
+ ### Hook not eligible
285
+
286
+ ```bash
287
+ Durar hooks info my-hook
288
+ ```
289
+
290
+ Check for missing binaries (PATH), environment variables, config values, or OS compatibility.
291
+
292
+ ### Hook not executing
293
+
294
+ 1. Verify the hook is enabled: `Durar hooks list`
295
+ 2. Restart your gateway process so hooks reload.
296
+ 3. Check gateway logs: `./scripts/clawlog.sh | grep hook`
297
+
298
+ ## Related
299
+
300
+ - [CLI Reference: hooks](/cli/hooks)
301
+ - [Webhooks](/automation/cron-jobs#webhooks)
302
+ - [Plugin Architecture](/plugins/architecture#provider-runtime-hooks) — full plugin hook reference
303
+ - [Configuration](/gateway/configuration-reference#hooks)
@@ -0,0 +1,115 @@
1
+ ---
2
+ summary: "Overview of automation mechanisms: tasks, cron, hooks, standing orders, and Task Flow"
3
+ read_when:
4
+ - Deciding how to automate work with Durar
5
+ - Choosing between heartbeat, cron, hooks, and standing orders
6
+ - Looking for the right automation entry point
7
+ title: "Automation & Tasks"
8
+ ---
9
+
10
+ # Automation & Tasks
11
+
12
+ Durar runs work in the background through tasks, scheduled jobs, event hooks, and standing instructions. This page helps you choose the right mechanism and understand how they fit together.
13
+
14
+ ## Quick decision guide
15
+
16
+ ```mermaid
17
+ flowchart TD
18
+ START([What do you need?]) --> Q1{Schedule work?}
19
+ START --> Q2{Track detached work?}
20
+ START --> Q3{Orchestrate multi-step flows?}
21
+ START --> Q4{React to lifecycle events?}
22
+ START --> Q5{Give the agent persistent instructions?}
23
+
24
+ Q1 -->|Yes| Q1a{Exact timing or flexible?}
25
+ Q1a -->|Exact| CRON["Scheduled Tasks (Cron)"]
26
+ Q1a -->|Flexible| HEARTBEAT[Heartbeat]
27
+
28
+ Q2 -->|Yes| TASKS[Background Tasks]
29
+ Q3 -->|Yes| FLOW[Task Flow]
30
+ Q4 -->|Yes| HOOKS[Hooks]
31
+ Q5 -->|Yes| SO[Standing Orders]
32
+ ```
33
+
34
+ | Use case | Recommended | Why |
35
+ | --------------------------------------- | ---------------------- | ------------------------------------------------ |
36
+ | Send daily report at 9 AM sharp | Scheduled Tasks (Cron) | Exact timing, isolated execution |
37
+ | Remind me in 20 minutes | Scheduled Tasks (Cron) | One-shot with precise timing (`--at`) |
38
+ | Run weekly deep analysis | Scheduled Tasks (Cron) | Standalone task, can use different model |
39
+ | Check inbox every 30 min | Heartbeat | Batches with other checks, context-aware |
40
+ | Monitor calendar for upcoming events | Heartbeat | Natural fit for periodic awareness |
41
+ | Inspect status of a subagent or ACP run | Background Tasks | Tasks ledger tracks all detached work |
42
+ | Audit what ran and when | Background Tasks | `Durar tasks list` and `Durar tasks audit` |
43
+ | Multi-step research then summarize | Task Flow | Durable orchestration with revision tracking |
44
+ | Run a script on session reset | Hooks | Event-driven, fires on lifecycle events |
45
+ | Execute code on every tool call | Hooks | Hooks can filter by event type |
46
+ | Always check compliance before replying | Standing Orders | Injected into every session automatically |
47
+
48
+ ### Scheduled Tasks (Cron) vs Heartbeat
49
+
50
+ | Dimension | Scheduled Tasks (Cron) | Heartbeat |
51
+ | --------------- | ----------------------------------- | ------------------------------------- |
52
+ | Timing | Exact (cron expressions, one-shot) | Approximate (default every 30 min) |
53
+ | Session context | Fresh (isolated) or shared | Full main-session context |
54
+ | Task records | Always created | Never created |
55
+ | Delivery | Channel, webhook, or silent | Inline in main session |
56
+ | Best for | Reports, reminders, background jobs | Inbox checks, calendar, notifications |
57
+
58
+ Use Scheduled Tasks (Cron) when you need precise timing or isolated execution. Use Heartbeat when the work benefits from full session context and approximate timing is fine.
59
+
60
+ ## Core concepts
61
+
62
+ ### Scheduled tasks (cron)
63
+
64
+ Cron is the Gateway's built-in scheduler for precise timing. It persists jobs, wakes the agent at the right time, and can deliver output to a chat channel or webhook endpoint. Supports one-shot reminders, recurring expressions, and inbound webhook triggers.
65
+
66
+ See [Scheduled Tasks](/automation/cron-jobs).
67
+
68
+ ### Tasks
69
+
70
+ The background task ledger tracks all detached work: ACP runs, subagent spawns, isolated cron executions, and CLI operations. Tasks are records, not schedulers. Use `Durar tasks list` and `Durar tasks audit` to inspect them.
71
+
72
+ See [Background Tasks](/automation/tasks).
73
+
74
+ ### Task Flow
75
+
76
+ Task Flow is the flow orchestration substrate above background tasks. It manages durable multi-step flows with managed and mirrored sync modes, revision tracking, and `Durar tasks flow list|show|cancel` for inspection.
77
+
78
+ See [Task Flow](/automation/taskflow).
79
+
80
+ ### Standing orders
81
+
82
+ Standing orders grant the agent permanent operating authority for defined programs. They live in workspace files (typically `AGENTS.md`) and are injected into every session. Combine with cron for time-based enforcement.
83
+
84
+ See [Standing Orders](/automation/standing-orders).
85
+
86
+ ### Hooks
87
+
88
+ Hooks are event-driven scripts triggered by agent lifecycle events (`/new`, `/reset`, `/stop`), session compaction, gateway startup, message flow, and tool calls. Hooks are automatically discovered from directories and can be managed with `Durar hooks`.
89
+
90
+ See [Hooks](/automation/hooks).
91
+
92
+ ### Heartbeat
93
+
94
+ Heartbeat is a periodic main-session turn (default every 30 minutes). It batches multiple checks (inbox, calendar, notifications) in one agent turn with full session context. Heartbeat turns do not create task records. Use `HEARTBEAT.md` for a small checklist, or a `tasks:` block when you want due-only periodic checks inside heartbeat itself. Empty heartbeat files skip as `empty-heartbeat-file`; due-only task mode skips as `no-tasks-due`.
95
+
96
+ See [Heartbeat](/gateway/heartbeat).
97
+
98
+ ## How they work together
99
+
100
+ - **Cron** handles precise schedules (daily reports, weekly reviews) and one-shot reminders. All cron executions create task records.
101
+ - **Heartbeat** handles routine monitoring (inbox, calendar, notifications) in one batched turn every 30 minutes.
102
+ - **Hooks** react to specific events (tool calls, session resets, compaction) with custom scripts.
103
+ - **Standing orders** give the agent persistent context and authority boundaries.
104
+ - **Task Flow** coordinates multi-step flows above individual tasks.
105
+ - **Tasks** automatically track all detached work so you can inspect and audit it.
106
+
107
+ ## Related
108
+
109
+ - [Scheduled Tasks](/automation/cron-jobs) — precise scheduling and one-shot reminders
110
+ - [Background Tasks](/automation/tasks) — task ledger for all detached work
111
+ - [Task Flow](/automation/taskflow) — durable multi-step flow orchestration
112
+ - [Hooks](/automation/hooks) — event-driven lifecycle scripts
113
+ - [Standing Orders](/automation/standing-orders) — persistent agent instructions
114
+ - [Heartbeat](/gateway/heartbeat) — periodic main-session turns
115
+ - [Configuration Reference](/gateway/configuration-reference) — all config keys
@@ -0,0 +1,8 @@
1
+ ---
2
+ summary: "Redirect to /tools/message"
3
+ title: "Polls"
4
+ ---
5
+
6
+ # Polls
7
+
8
+ This page moved to [Message tool](/cli/message). See [Message tool](/cli/message) for poll documentation.
@@ -0,0 +1,254 @@
1
+ ---
2
+ summary: "Define permanent operating authority for autonomous agent programs"
3
+ read_when:
4
+ - Setting up autonomous agent workflows that run without per-task prompting
5
+ - Defining what the agent can do independently vs. what needs human approval
6
+ - Structuring multi-program agents with clear boundaries and escalation rules
7
+ title: "Standing Orders"
8
+ ---
9
+
10
+ # Standing Orders
11
+
12
+ Standing orders grant your agent **permanent operating authority** for defined programs. Instead of giving individual task instructions each time, you define programs with clear scope, triggers, and escalation rules — and the agent executes autonomously within those boundaries.
13
+
14
+ This is the difference between telling your assistant "send the weekly report" every Friday vs. granting standing authority: "You own the weekly report. Compile it every Friday, send it, and only escalate if something looks wrong."
15
+
16
+ ## Why Standing Orders?
17
+
18
+ **Without standing orders:**
19
+
20
+ - You must prompt the agent for every task
21
+ - The agent sits idle between requests
22
+ - Routine work gets forgotten or delayed
23
+ - You become the bottleneck
24
+
25
+ **With standing orders:**
26
+
27
+ - The agent executes autonomously within defined boundaries
28
+ - Routine work happens on schedule without prompting
29
+ - You only get involved for exceptions and approvals
30
+ - The agent fills idle time productively
31
+
32
+ ## How They Work
33
+
34
+ Standing orders are defined in your [agent workspace](/concepts/agent-workspace) files. The recommended approach is to include them directly in `AGENTS.md` (which is auto-injected every session) so the agent always has them in context. For larger configurations, you can also place them in a dedicated file like `standing-orders.md` and reference it from `AGENTS.md`.
35
+
36
+ Each program specifies:
37
+
38
+ 1. **Scope** — what the agent is authorized to do
39
+ 2. **Triggers** — when to execute (schedule, event, or condition)
40
+ 3. **Approval gates** — what requires human sign-off before acting
41
+ 4. **Escalation rules** — when to stop and ask for help
42
+
43
+ The agent loads these instructions every session via the workspace bootstrap files (see [Agent Workspace](/concepts/agent-workspace) for the full list of auto-injected files) and executes against them, combined with [cron jobs](/automation/cron-jobs) for time-based enforcement.
44
+
45
+ <Tip>
46
+ Put standing orders in `AGENTS.md` to guarantee they're loaded every session. The workspace bootstrap automatically injects `AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`, and `MEMORY.md` — but not arbitrary files in subdirectories.
47
+ </Tip>
48
+
49
+ ## Anatomy of a Standing Order
50
+
51
+ ```markdown
52
+ ## Program: Weekly Status Report
53
+
54
+ **Authority:** Compile data, generate report, deliver to stakeholders
55
+ **Trigger:** Every Friday at 4 PM (enforced via cron job)
56
+ **Approval gate:** None for standard reports. Flag anomalies for human review.
57
+ **Escalation:** If data source is unavailable or metrics look unusual (>2σ from norm)
58
+
59
+ ### Execution Steps
60
+
61
+ 1. Pull metrics from configured sources
62
+ 2. Compare to prior week and targets
63
+ 3. Generate report in Reports/weekly/YYYY-MM-DD.md
64
+ 4. Deliver summary via configured channel
65
+ 5. Log completion to Agent/Logs/
66
+
67
+ ### What NOT to Do
68
+
69
+ - Do not send reports to external parties
70
+ - Do not modify source data
71
+ - Do not skip delivery if metrics look bad — report accurately
72
+ ```
73
+
74
+ ## Standing Orders + Cron Jobs
75
+
76
+ Standing orders define **what** the agent is authorized to do. [Cron jobs](/automation/cron-jobs) define **when** it happens. They work together:
77
+
78
+ ```
79
+ Standing Order: "You own the daily inbox triage"
80
+
81
+ Cron Job (8 AM daily): "Execute inbox triage per standing orders"
82
+
83
+ Agent: Reads standing orders → executes steps → reports results
84
+ ```
85
+
86
+ The cron job prompt should reference the standing order rather than duplicating it:
87
+
88
+ ```bash
89
+ Durar cron add \
90
+ --name daily-inbox-triage \
91
+ --cron "0 8 * * 1-5" \
92
+ --tz America/New_York \
93
+ --timeout-seconds 300 \
94
+ --announce \
95
+ --channel bluebubbles \
96
+ --to "+1XXXXXXXXXX" \
97
+ --message "Execute daily inbox triage per standing orders. Check mail for new alerts. Parse, categorize, and persist each item. Report summary to owner. Escalate unknowns."
98
+ ```
99
+
100
+ ## Examples
101
+
102
+ ### Example 1: Content & Social Media (Weekly Cycle)
103
+
104
+ ```markdown
105
+ ## Program: Content & Social Media
106
+
107
+ **Authority:** Draft content, schedule posts, compile engagement reports
108
+ **Approval gate:** All posts require owner review for first 30 days, then standing approval
109
+ **Trigger:** Weekly cycle (Monday review → mid-week drafts → Friday brief)
110
+
111
+ ### Weekly Cycle
112
+
113
+ - **Monday:** Review platform metrics and audience engagement
114
+ - **Tuesday–Thursday:** Draft social posts, create blog content
115
+ - **Friday:** Compile weekly marketing brief → deliver to owner
116
+
117
+ ### Content Rules
118
+
119
+ - Voice must match the brand (see SOUL.md or brand voice guide)
120
+ - Never identify as AI in public-facing content
121
+ - Include metrics when available
122
+ - Focus on value to audience, not self-promotion
123
+ ```
124
+
125
+ ### Example 2: Finance Operations (Event-Triggered)
126
+
127
+ ```markdown
128
+ ## Program: Financial Processing
129
+
130
+ **Authority:** Process transaction data, generate reports, send summaries
131
+ **Approval gate:** None for analysis. Recommendations require owner approval.
132
+ **Trigger:** New data file detected OR scheduled monthly cycle
133
+
134
+ ### When New Data Arrives
135
+
136
+ 1. Detect new file in designated input directory
137
+ 2. Parse and categorize all transactions
138
+ 3. Compare against budget targets
139
+ 4. Flag: unusual items, threshold breaches, new recurring charges
140
+ 5. Generate report in designated output directory
141
+ 6. Deliver summary to owner via configured channel
142
+
143
+ ### Escalation Rules
144
+
145
+ - Single item > $500: immediate alert
146
+ - Category > budget by 20%: flag in report
147
+ - Unrecognizable transaction: ask owner for categorization
148
+ - Failed processing after 2 retries: report failure, do not guess
149
+ ```
150
+
151
+ ### Example 3: Monitoring & Alerts (Continuous)
152
+
153
+ ```markdown
154
+ ## Program: System Monitoring
155
+
156
+ **Authority:** Check system health, restart services, send alerts
157
+ **Approval gate:** Restart services automatically. Escalate if restart fails twice.
158
+ **Trigger:** Every heartbeat cycle
159
+
160
+ ### Checks
161
+
162
+ - Service health endpoints responding
163
+ - Disk space above threshold
164
+ - Pending tasks not stale (>24 hours)
165
+ - Delivery channels operational
166
+
167
+ ### Response Matrix
168
+
169
+ | Condition | Action | Escalate? |
170
+ | ---------------- | ------------------------ | ------------------------ |
171
+ | Service down | Restart automatically | Only if restart fails 2x |
172
+ | Disk space < 10% | Alert owner | Yes |
173
+ | Stale task > 24h | Remind owner | No |
174
+ | Channel offline | Log and retry next cycle | If offline > 2 hours |
175
+ ```
176
+
177
+ ## The Execute-Verify-Report Pattern
178
+
179
+ Standing orders work best when combined with strict execution discipline. Every task in a standing order should follow this loop:
180
+
181
+ 1. **Execute** — Do the actual work (don't just acknowledge the instruction)
182
+ 2. **Verify** — Confirm the result is correct (file exists, message delivered, data parsed)
183
+ 3. **Report** — Tell the owner what was done and what was verified
184
+
185
+ ```markdown
186
+ ### Execution Rules
187
+
188
+ - Every task follows Execute-Verify-Report. No exceptions.
189
+ - "I'll do that" is not execution. Do it, then report.
190
+ - "Done" without verification is not acceptable. Prove it.
191
+ - If execution fails: retry once with adjusted approach.
192
+ - If still fails: report failure with diagnosis. Never silently fail.
193
+ - Never retry indefinitely — 3 attempts max, then escalate.
194
+ ```
195
+
196
+ This pattern prevents the most common agent failure mode: acknowledging a task without completing it.
197
+
198
+ ## Multi-Program Architecture
199
+
200
+ For agents managing multiple concerns, organize standing orders as separate programs with clear boundaries:
201
+
202
+ ```markdown
203
+ # Standing Orders
204
+
205
+ ## Program 1: [Domain A] (Weekly)
206
+
207
+ ...
208
+
209
+ ## Program 2: [Domain B] (Monthly + On-Demand)
210
+
211
+ ...
212
+
213
+ ## Program 3: [Domain C] (As-Needed)
214
+
215
+ ...
216
+
217
+ ## Escalation Rules (All Programs)
218
+
219
+ - [Common escalation criteria]
220
+ - [Approval gates that apply across programs]
221
+ ```
222
+
223
+ Each program should have:
224
+
225
+ - Its own **trigger cadence** (weekly, monthly, event-driven, continuous)
226
+ - Its own **approval gates** (some programs need more oversight than others)
227
+ - Clear **boundaries** (the agent should know where one program ends and another begins)
228
+
229
+ ## Best Practices
230
+
231
+ ### Do
232
+
233
+ - Start with narrow authority and expand as trust builds
234
+ - Define explicit approval gates for high-risk actions
235
+ - Include "What NOT to do" sections — boundaries matter as much as permissions
236
+ - Combine with cron jobs for reliable time-based execution
237
+ - Review agent logs weekly to verify standing orders are being followed
238
+ - Update standing orders as your needs evolve — they're living documents
239
+
240
+ ### Avoid
241
+
242
+ - Grant broad authority on day one ("do whatever you think is best")
243
+ - Skip escalation rules — every program needs a "when to stop and ask" clause
244
+ - Assume the agent will remember verbal instructions — put everything in the file
245
+ - Mix concerns in a single program — separate programs for separate domains
246
+ - Forget to enforce with cron jobs — standing orders without triggers become suggestions
247
+
248
+ ## Related
249
+
250
+ - [Automation & Tasks](/automation) — all automation mechanisms at a glance
251
+ - [Cron Jobs](/automation/cron-jobs) — schedule enforcement for standing orders
252
+ - [Hooks](/automation/hooks) — event-driven scripts for agent lifecycle events
253
+ - [Webhooks](/automation/cron-jobs#webhooks) — inbound HTTP event triggers
254
+ - [Agent Workspace](/concepts/agent-workspace) — where standing orders live, including the full list of auto-injected bootstrap files (AGENTS.md, SOUL.md, etc.)