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,274 @@
1
+ ---
2
+ summary: "Context engine: pluggable context assembly, compaction, and subagent lifecycle"
3
+ read_when:
4
+ - You want to understand how Durar assembles model context
5
+ - You are switching between the legacy engine and a plugin engine
6
+ - You are building a context engine plugin
7
+ title: "Context Engine"
8
+ ---
9
+
10
+ # Context Engine
11
+
12
+ A **context engine** controls how Durar builds model context for each run.
13
+ It decides which messages to include, how to summarize older history, and how
14
+ to manage context across subagent boundaries.
15
+
16
+ Durar ships with a built-in `legacy` engine. Plugins can register
17
+ alternative engines that replace the active context-engine lifecycle.
18
+
19
+ ## Quick start
20
+
21
+ Check which engine is active:
22
+
23
+ ```bash
24
+ Durar doctor
25
+ # or inspect config directly:
26
+ cat ~/.Durar/Durar.json | jq '.plugins.slots.contextEngine'
27
+ ```
28
+
29
+ ### Installing a context engine plugin
30
+
31
+ Context engine plugins are installed like any other Durar plugin. Install
32
+ first, then select the engine in the slot:
33
+
34
+ ```bash
35
+ # Install from npm
36
+ Durar plugins install @martian-engineering/lossless-claw
37
+
38
+ # Or install from a local path (for development)
39
+ Durar plugins install -l ./my-context-engine
40
+ ```
41
+
42
+ Then enable the plugin and select it as the active engine in your config:
43
+
44
+ ```json5
45
+ // Durar.json
46
+ {
47
+ plugins: {
48
+ slots: {
49
+ contextEngine: "lossless-claw", // must match the plugin's registered engine id
50
+ },
51
+ entries: {
52
+ "lossless-claw": {
53
+ enabled: true,
54
+ // Plugin-specific config goes here (see the plugin's docs)
55
+ },
56
+ },
57
+ },
58
+ }
59
+ ```
60
+
61
+ Restart the gateway after installing and configuring.
62
+
63
+ To switch back to the built-in engine, set `contextEngine` to `"legacy"` (or
64
+ remove the key entirely — `"legacy"` is the default).
65
+
66
+ ## How it works
67
+
68
+ Every time Durar runs a model prompt, the context engine participates at
69
+ four lifecycle points:
70
+
71
+ 1. **Ingest** — called when a new message is added to the session. The engine
72
+ can store or index the message in its own data store.
73
+ 2. **Assemble** — called before each model run. The engine returns an ordered
74
+ set of messages (and an optional `systemPromptAddition`) that fit within
75
+ the token budget.
76
+ 3. **Compact** — called when the context window is full, or when the user runs
77
+ `/compact`. The engine summarizes older history to free space.
78
+ 4. **After turn** — called after a run completes. The engine can persist state,
79
+ trigger background compaction, or update indexes.
80
+
81
+ ### Subagent lifecycle (optional)
82
+
83
+ Durar currently calls one subagent lifecycle hook:
84
+
85
+ - **onSubagentEnded** — clean up when a subagent session completes or is swept.
86
+
87
+ The `prepareSubagentSpawn` hook is part of the interface for future use, but
88
+ the runtime does not invoke it yet.
89
+
90
+ ### System prompt addition
91
+
92
+ The `assemble` method can return a `systemPromptAddition` string. Durar
93
+ prepends this to the system prompt for the run. This lets engines inject
94
+ dynamic recall guidance, retrieval instructions, or context-aware hints
95
+ without requiring static workspace files.
96
+
97
+ ## The legacy engine
98
+
99
+ The built-in `legacy` engine preserves Durar's original behavior:
100
+
101
+ - **Ingest**: no-op (the session manager handles message persistence directly).
102
+ - **Assemble**: pass-through (the existing sanitize → validate → limit pipeline
103
+ in the runtime handles context assembly).
104
+ - **Compact**: delegates to the built-in summarization compaction, which creates
105
+ a single summary of older messages and keeps recent messages intact.
106
+ - **After turn**: no-op.
107
+
108
+ The legacy engine does not register tools or provide a `systemPromptAddition`.
109
+
110
+ When no `plugins.slots.contextEngine` is set (or it's set to `"legacy"`), this
111
+ engine is used automatically.
112
+
113
+ ## Plugin engines
114
+
115
+ A plugin can register a context engine using the plugin API:
116
+
117
+ ```ts
118
+ export default function register(api) {
119
+ api.registerContextEngine("my-engine", () => ({
120
+ info: {
121
+ id: "my-engine",
122
+ name: "My Context Engine",
123
+ ownsCompaction: true,
124
+ },
125
+
126
+ async ingest({ sessionId, message, isHeartbeat }) {
127
+ // Store the message in your data store
128
+ return { ingested: true };
129
+ },
130
+
131
+ async assemble({ sessionId, messages, tokenBudget }) {
132
+ // Return messages that fit the budget
133
+ return {
134
+ messages: buildContext(messages, tokenBudget),
135
+ estimatedTokens: countTokens(messages),
136
+ systemPromptAddition: "Use lcm_grep to search history...",
137
+ };
138
+ },
139
+
140
+ async compact({ sessionId, force }) {
141
+ // Summarize older context
142
+ return { ok: true, compacted: true };
143
+ },
144
+ }));
145
+ }
146
+ ```
147
+
148
+ Then enable it in config:
149
+
150
+ ```json5
151
+ {
152
+ plugins: {
153
+ slots: {
154
+ contextEngine: "my-engine",
155
+ },
156
+ entries: {
157
+ "my-engine": {
158
+ enabled: true,
159
+ },
160
+ },
161
+ },
162
+ }
163
+ ```
164
+
165
+ ### The ContextEngine interface
166
+
167
+ Required members:
168
+
169
+ | Member | Kind | Purpose |
170
+ | ------------------ | -------- | -------------------------------------------------------- |
171
+ | `info` | Property | Engine id, name, version, and whether it owns compaction |
172
+ | `ingest(params)` | Method | Store a single message |
173
+ | `assemble(params)` | Method | Build context for a model run (returns `AssembleResult`) |
174
+ | `compact(params)` | Method | Summarize/reduce context |
175
+
176
+ `assemble` returns an `AssembleResult` with:
177
+
178
+ - `messages` — the ordered messages to send to the model.
179
+ - `estimatedTokens` (required, `number`) — the engine's estimate of total
180
+ tokens in the assembled context. Durar uses this for compaction threshold
181
+ decisions and diagnostic reporting.
182
+ - `systemPromptAddition` (optional, `string`) — prepended to the system prompt.
183
+
184
+ Optional members:
185
+
186
+ | Member | Kind | Purpose |
187
+ | ------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------- |
188
+ | `bootstrap(params)` | Method | Initialize engine state for a session. Called once when the engine first sees a session (e.g., import history). |
189
+ | `ingestBatch(params)` | Method | Ingest a completed turn as a batch. Called after a run completes, with all messages from that turn at once. |
190
+ | `afterTurn(params)` | Method | Post-run lifecycle work (persist state, trigger background compaction). |
191
+ | `prepareSubagentSpawn(params)` | Method | Set up shared state for a child session. |
192
+ | `onSubagentEnded(params)` | Method | Clean up after a subagent ends. |
193
+ | `dispose()` | Method | Release resources. Called during gateway shutdown or plugin reload — not per-session. |
194
+
195
+ ### ownsCompaction
196
+
197
+ `ownsCompaction` controls whether Pi's built-in in-attempt auto-compaction stays
198
+ enabled for the run:
199
+
200
+ - `true` — the engine owns compaction behavior. Durar disables Pi's built-in
201
+ auto-compaction for that run, and the engine's `compact()` implementation is
202
+ responsible for `/compact`, overflow recovery compaction, and any proactive
203
+ compaction it wants to do in `afterTurn()`.
204
+ - `false` or unset — Pi's built-in auto-compaction may still run during prompt
205
+ execution, but the active engine's `compact()` method is still called for
206
+ `/compact` and overflow recovery.
207
+
208
+ `ownsCompaction: false` does **not** mean Durar automatically falls back to
209
+ the legacy engine's compaction path.
210
+
211
+ That means there are two valid plugin patterns:
212
+
213
+ - **Owning mode** — implement your own compaction algorithm and set
214
+ `ownsCompaction: true`.
215
+ - **Delegating mode** — set `ownsCompaction: false` and have `compact()` call
216
+ `delegateCompactionToRuntime(...)` from `Durar/plugin-sdk/core` to use
217
+ Durar's built-in compaction behavior.
218
+
219
+ A no-op `compact()` is unsafe for an active non-owning engine because it
220
+ disables the normal `/compact` and overflow-recovery compaction path for that
221
+ engine slot.
222
+
223
+ ## Configuration reference
224
+
225
+ ```json5
226
+ {
227
+ plugins: {
228
+ slots: {
229
+ // Select the active context engine. Default: "legacy".
230
+ // Set to a plugin id to use a plugin engine.
231
+ contextEngine: "legacy",
232
+ },
233
+ },
234
+ }
235
+ ```
236
+
237
+ The slot is exclusive at run time — only one registered context engine is
238
+ resolved for a given run or compaction operation. Other enabled
239
+ `kind: "context-engine"` plugins can still load and run their registration
240
+ code; `plugins.slots.contextEngine` only selects which registered engine id
241
+ Durar resolves when it needs a context engine.
242
+
243
+ ## Relationship to compaction and memory
244
+
245
+ - **Compaction** is one responsibility of the context engine. The legacy engine
246
+ delegates to Durar's built-in summarization. Plugin engines can implement
247
+ any compaction strategy (DAG summaries, vector retrieval, etc.).
248
+ - **Memory plugins** (`plugins.slots.memory`) are separate from context engines.
249
+ Memory plugins provide search/retrieval; context engines control what the
250
+ model sees. They can work together — a context engine might use memory
251
+ plugin data during assembly.
252
+ - **Session pruning** (trimming old tool results in-memory) still runs
253
+ regardless of which context engine is active.
254
+
255
+ ## Tips
256
+
257
+ - Use `Durar doctor` to verify your engine is loading correctly.
258
+ - If switching engines, existing sessions continue with their current history.
259
+ The new engine takes over for future runs.
260
+ - Engine errors are logged and surfaced in diagnostics. If a plugin engine
261
+ fails to register or the selected engine id cannot be resolved, Durar
262
+ does not fall back automatically; runs fail until you fix the plugin or
263
+ switch `plugins.slots.contextEngine` back to `"legacy"`.
264
+ - For development, use `Durar plugins install -l ./my-engine` to link a
265
+ local plugin directory without copying.
266
+
267
+ See also: [Compaction](/concepts/compaction), [Context](/concepts/context),
268
+ [Plugins](/tools/plugin), [Plugin manifest](/plugins/manifest).
269
+
270
+ ## Related
271
+
272
+ - [Context](/concepts/context) — how context is built for agent turns
273
+ - [Plugin Architecture](/plugins/architecture) — registering context engine plugins
274
+ - [Compaction](/concepts/compaction) — summarizing long conversations
@@ -0,0 +1,179 @@
1
+ ---
2
+ summary: "Context: what the model sees, how it is built, and how to inspect it"
3
+ read_when:
4
+ - You want to understand what “context” means in Durar
5
+ - You are debugging why the model “knows” something (or forgot it)
6
+ - You want to reduce context overhead (/context, /status, /compact)
7
+ title: "Context"
8
+ ---
9
+
10
+ # Context
11
+
12
+ “Context” is **everything Durar sends to the model for a run**. It is bounded by the model’s **context window** (token limit).
13
+
14
+ Beginner mental model:
15
+
16
+ - **System prompt** (Durar-built): rules, tools, skills list, time/runtime, and injected workspace files.
17
+ - **Conversation history**: your messages + the assistant’s messages for this session.
18
+ - **Tool calls/results + attachments**: command output, file reads, images/audio, etc.
19
+
20
+ Context is _not the same thing_ as “memory”: memory can be stored on disk and reloaded later; context is what’s inside the model’s current window.
21
+
22
+ ## Quick start (inspect context)
23
+
24
+ - `/status` → quick “how full is my window?” view + session settings.
25
+ - `/context list` → what’s injected + rough sizes (per file + totals).
26
+ - `/context detail` → deeper breakdown: per-file, per-tool schema sizes, per-skill entry sizes, and system prompt size.
27
+ - `/usage tokens` → append per-reply usage footer to normal replies.
28
+ - `/compact` → summarize older history into a compact entry to free window space.
29
+
30
+ See also: [Slash commands](/tools/slash-commands), [Token use & costs](/reference/token-use), [Compaction](/concepts/compaction).
31
+
32
+ ## Example output
33
+
34
+ Values vary by model, provider, tool policy, and what’s in your workspace.
35
+
36
+ ### `/context list`
37
+
38
+ ```
39
+ 🧠 Context breakdown
40
+ Workspace: <workspaceDir>
41
+ Bootstrap max/file: 20,000 chars
42
+ Sandbox: mode=non-main sandboxed=false
43
+ System prompt (run): 38,412 chars (~9,603 tok) (Project Context 23,901 chars (~5,976 tok))
44
+
45
+ Injected workspace files:
46
+ - AGENTS.md: OK | raw 1,742 chars (~436 tok) | injected 1,742 chars (~436 tok)
47
+ - SOUL.md: OK | raw 912 chars (~228 tok) | injected 912 chars (~228 tok)
48
+ - TOOLS.md: TRUNCATED | raw 54,210 chars (~13,553 tok) | injected 20,962 chars (~5,241 tok)
49
+ - IDENTITY.md: OK | raw 211 chars (~53 tok) | injected 211 chars (~53 tok)
50
+ - USER.md: OK | raw 388 chars (~97 tok) | injected 388 chars (~97 tok)
51
+ - HEARTBEAT.md: MISSING | raw 0 | injected 0
52
+ - BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok)
53
+
54
+ Skills list (system prompt text): 2,184 chars (~546 tok) (12 skills)
55
+ Tools: read, edit, write, exec, process, browser, message, sessions_send, …
56
+ Tool list (system prompt text): 1,032 chars (~258 tok)
57
+ Tool schemas (JSON): 31,988 chars (~7,997 tok) (counts toward context; not shown as text)
58
+ Tools: (same as above)
59
+
60
+ Session tokens (cached): 14,250 total / ctx=32,000
61
+ ```
62
+
63
+ ### `/context detail`
64
+
65
+ ```
66
+ 🧠 Context breakdown (detailed)
67
+
68
+ Top skills (prompt entry size):
69
+ - frontend-design: 412 chars (~103 tok)
70
+ - oracle: 401 chars (~101 tok)
71
+ … (+10 more skills)
72
+
73
+ Top tools (schema size):
74
+ - browser: 9,812 chars (~2,453 tok)
75
+ - exec: 6,240 chars (~1,560 tok)
76
+ … (+N more tools)
77
+ ```
78
+
79
+ ## What counts toward the context window
80
+
81
+ Everything the model receives counts, including:
82
+
83
+ - System prompt (all sections).
84
+ - Conversation history.
85
+ - Tool calls + tool results.
86
+ - Attachments/transcripts (images/audio/files).
87
+ - Compaction summaries and pruning artifacts.
88
+ - Provider “wrappers” or hidden headers (not visible, still counted).
89
+
90
+ ## How Durar builds the system prompt
91
+
92
+ The system prompt is **Durar-owned** and rebuilt each run. It includes:
93
+
94
+ - Tool list + short descriptions.
95
+ - Skills list (metadata only; see below).
96
+ - Workspace location.
97
+ - Time (UTC + converted user time if configured).
98
+ - Runtime metadata (host/OS/model/thinking).
99
+ - Injected workspace bootstrap files under **Project Context**.
100
+
101
+ Full breakdown: [System Prompt](/concepts/system-prompt).
102
+
103
+ ## Injected workspace files (Project Context)
104
+
105
+ By default, Durar injects a fixed set of workspace files (if present):
106
+
107
+ - `AGENTS.md`
108
+ - `SOUL.md`
109
+ - `TOOLS.md`
110
+ - `IDENTITY.md`
111
+ - `USER.md`
112
+ - `HEARTBEAT.md`
113
+ - `BOOTSTRAP.md` (first-run only)
114
+
115
+ Large files are truncated per-file using `agents.defaults.bootstrapMaxChars` (default `20000` chars). Durar also enforces a total bootstrap injection cap across files with `agents.defaults.bootstrapTotalMaxChars` (default `150000` chars). `/context` shows **raw vs injected** sizes and whether truncation happened.
116
+
117
+ When truncation occurs, the runtime can inject an in-prompt warning block under Project Context. Configure this with `agents.defaults.bootstrapPromptTruncationWarning` (`off`, `once`, `always`; default `once`).
118
+
119
+ ## Skills: injected vs loaded on-demand
120
+
121
+ The system prompt includes a compact **skills list** (name + description + location). This list has real overhead.
122
+
123
+ Skill instructions are _not_ included by default. The model is expected to `read` the skill’s `SKILL.md` **only when needed**.
124
+
125
+ ## Tools: there are two costs
126
+
127
+ Tools affect context in two ways:
128
+
129
+ 1. **Tool list text** in the system prompt (what you see as “Tooling”).
130
+ 2. **Tool schemas** (JSON). These are sent to the model so it can call tools. They count toward context even though you don’t see them as plain text.
131
+
132
+ `/context detail` breaks down the biggest tool schemas so you can see what dominates.
133
+
134
+ ## Commands, directives, and "inline shortcuts"
135
+
136
+ Slash commands are handled by the Gateway. There are a few different behaviors:
137
+
138
+ - **Standalone commands**: a message that is only `/...` runs as a command.
139
+ - **Directives**: `/think`, `/verbose`, `/reasoning`, `/elevated`, `/model`, `/queue` are stripped before the model sees the message.
140
+ - Directive-only messages persist session settings.
141
+ - Inline directives in a normal message act as per-message hints.
142
+ - **Inline shortcuts** (allowlisted senders only): certain `/...` tokens inside a normal message can run immediately (example: “hey /status”), and are stripped before the model sees the remaining text.
143
+
144
+ Details: [Slash commands](/tools/slash-commands).
145
+
146
+ ## Sessions, compaction, and pruning (what persists)
147
+
148
+ What persists across messages depends on the mechanism:
149
+
150
+ - **Normal history** persists in the session transcript until compacted/pruned by policy.
151
+ - **Compaction** persists a summary into the transcript and keeps recent messages intact.
152
+ - **Pruning** removes old tool results from the _in-memory_ prompt for a run, but does not rewrite the transcript.
153
+
154
+ Docs: [Session](/concepts/session), [Compaction](/concepts/compaction), [Session pruning](/concepts/session-pruning).
155
+
156
+ By default, Durar uses the built-in `legacy` context engine for assembly and
157
+ compaction. If you install a plugin that provides `kind: "context-engine"` and
158
+ select it with `plugins.slots.contextEngine`, Durar delegates context
159
+ assembly, `/compact`, and related subagent context lifecycle hooks to that
160
+ engine instead. `ownsCompaction: false` does not auto-fallback to the legacy
161
+ engine; the active engine must still implement `compact()` correctly. See
162
+ [Context Engine](/concepts/context-engine) for the full
163
+ pluggable interface, lifecycle hooks, and configuration.
164
+
165
+ ## What `/context` actually reports
166
+
167
+ `/context` prefers the latest **run-built** system prompt report when available:
168
+
169
+ - `System prompt (run)` = captured from the last embedded (tool-capable) run and persisted in the session store.
170
+ - `System prompt (estimate)` = computed on the fly when no run report exists (or when running via a CLI backend that doesn’t generate the report).
171
+
172
+ Either way, it reports sizes and top contributors; it does **not** dump the full system prompt or tool schemas.
173
+
174
+ ## Related
175
+
176
+ - [Context Engine](/concepts/context-engine) — custom context injection via plugins
177
+ - [Compaction](/concepts/compaction) — summarizing long conversations
178
+ - [System Prompt](/concepts/system-prompt) — how the system prompt is built
179
+ - [Agent Loop](/concepts/agent-loop) — the full agent execution cycle