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,367 @@
1
+ ---
2
+ summary: "Runbook for the Gateway service, lifecycle, and operations"
3
+ read_when:
4
+ - Running or debugging the gateway process
5
+ title: "Gateway Runbook"
6
+ ---
7
+
8
+ # Gateway runbook
9
+
10
+ Use this page for day-1 startup and day-2 operations of the Gateway service.
11
+
12
+ <CardGroup cols={2}>
13
+ <Card title="Deep troubleshooting" icon="siren" href="/gateway/troubleshooting">
14
+ Symptom-first diagnostics with exact command ladders and log signatures.
15
+ </Card>
16
+ <Card title="Configuration" icon="sliders" href="/gateway/configuration">
17
+ Task-oriented setup guide + full configuration reference.
18
+ </Card>
19
+ <Card title="Secrets management" icon="key-round" href="/gateway/secrets">
20
+ SecretRef contract, runtime snapshot behavior, and migrate/reload operations.
21
+ </Card>
22
+ <Card title="Secrets plan contract" icon="shield-check" href="/gateway/secrets-plan-contract">
23
+ Exact `secrets apply` target/path rules and ref-only auth-profile behavior.
24
+ </Card>
25
+ </CardGroup>
26
+
27
+ ## 5-minute local startup
28
+
29
+ <Steps>
30
+ <Step title="Start the Gateway">
31
+
32
+ ```bash
33
+ Durar gateway --port 18789
34
+ # debug/trace mirrored to stdio
35
+ Durar gateway --port 18789 --verbose
36
+ # force-kill listener on selected port, then start
37
+ Durar gateway --force
38
+ ```
39
+
40
+ </Step>
41
+
42
+ <Step title="Verify service health">
43
+
44
+ ```bash
45
+ Durar gateway status
46
+ Durar status
47
+ Durar logs --follow
48
+ ```
49
+
50
+ Healthy baseline: `Runtime: running` and `RPC probe: ok`.
51
+
52
+ </Step>
53
+
54
+ <Step title="Validate channel readiness">
55
+
56
+ ```bash
57
+ Durar channels status --probe
58
+ ```
59
+
60
+ With a reachable gateway this runs live per-account channel probes and optional audits.
61
+ If the gateway is unreachable, the CLI falls back to config-only channel summaries instead
62
+ of live probe output.
63
+
64
+ </Step>
65
+ </Steps>
66
+
67
+ <Note>
68
+ Gateway config reload watches the active config file path (resolved from profile/state defaults, or `Durar_CONFIG_PATH` when set).
69
+ Default mode is `gateway.reload.mode="hybrid"`.
70
+ After the first successful load, the running process serves the active in-memory config snapshot; successful reload swaps that snapshot atomically.
71
+ </Note>
72
+
73
+ ## Runtime model
74
+
75
+ - One always-on process for routing, control plane, and channel connections.
76
+ - Single multiplexed port for:
77
+ - WebSocket control/RPC
78
+ - HTTP APIs, OpenAI compatible (`/v1/models`, `/v1/embeddings`, `/v1/chat/completions`, `/v1/responses`, `/tools/invoke`)
79
+ - Control UI and hooks
80
+ - Default bind mode: `loopback`.
81
+ - Auth is required by default. Shared-secret setups use
82
+ `gateway.auth.token` / `gateway.auth.password` (or
83
+ `Durar_GATEWAY_TOKEN` / `Durar_GATEWAY_PASSWORD`), and non-loopback
84
+ reverse-proxy setups can use `gateway.auth.mode: "trusted-proxy"`.
85
+
86
+ ## OpenAI-compatible endpoints
87
+
88
+ Durar’s highest-leverage compatibility surface is now:
89
+
90
+ - `GET /v1/models`
91
+ - `GET /v1/models/{id}`
92
+ - `POST /v1/embeddings`
93
+ - `POST /v1/chat/completions`
94
+ - `POST /v1/responses`
95
+
96
+ Why this set matters:
97
+
98
+ - Most Open WebUI, LobeChat, and LibreChat integrations probe `/v1/models` first.
99
+ - Many RAG and memory pipelines expect `/v1/embeddings`.
100
+ - Agent-native clients increasingly prefer `/v1/responses`.
101
+
102
+ Planning note:
103
+
104
+ - `/v1/models` is agent-first: it returns `Durar`, `Durar/default`, and `Durar/<agentId>`.
105
+ - `Durar/default` is the stable alias that always maps to the configured default agent.
106
+ - Use `x-Durar-model` when you want a backend provider/model override; otherwise the selected agent's normal model and embedding setup stays in control.
107
+
108
+ All of these run on the main Gateway port and use the same trusted operator auth boundary as the rest of the Gateway HTTP API.
109
+
110
+ ### Port and bind precedence
111
+
112
+ | Setting | Resolution order |
113
+ | ------------ | ------------------------------------------------------------- |
114
+ | Gateway port | `--port` → `Durar_GATEWAY_PORT` → `gateway.port` → `18789` |
115
+ | Bind mode | CLI/override → `gateway.bind` → `loopback` |
116
+
117
+ ### Hot reload modes
118
+
119
+ | `gateway.reload.mode` | Behavior |
120
+ | --------------------- | ------------------------------------------ |
121
+ | `off` | No config reload |
122
+ | `hot` | Apply only hot-safe changes |
123
+ | `restart` | Restart on reload-required changes |
124
+ | `hybrid` (default) | Hot-apply when safe, restart when required |
125
+
126
+ ## Operator command set
127
+
128
+ ```bash
129
+ Durar gateway status
130
+ Durar gateway status --deep # adds a system-level service scan
131
+ Durar gateway status --json
132
+ Durar gateway install
133
+ Durar gateway restart
134
+ Durar gateway stop
135
+ Durar secrets reload
136
+ Durar logs --follow
137
+ Durar doctor
138
+ ```
139
+
140
+ `gateway status --deep` is for extra service discovery (LaunchDaemons/systemd system
141
+ units/schtasks), not a deeper RPC health probe.
142
+
143
+ ## Multiple gateways (same host)
144
+
145
+ Most installs should run one gateway per machine. A single gateway can host multiple
146
+ agents and channels.
147
+
148
+ You only need multiple gateways when you intentionally want isolation or a rescue bot.
149
+
150
+ Useful checks:
151
+
152
+ ```bash
153
+ Durar gateway status --deep
154
+ Durar gateway probe
155
+ ```
156
+
157
+ What to expect:
158
+
159
+ - `gateway status --deep` can report `Other gateway-like services detected (best effort)`
160
+ and print cleanup hints when stale launchd/systemd/schtasks installs are still around.
161
+ - `gateway probe` can warn about `multiple reachable gateways` when more than one target
162
+ answers.
163
+ - If that is intentional, isolate ports, config/state, and workspace roots per gateway.
164
+
165
+ Detailed setup: [/gateway/multiple-gateways](/gateway/multiple-gateways).
166
+
167
+ ## Remote access
168
+
169
+ Preferred: Tailscale/VPN.
170
+ Fallback: SSH tunnel.
171
+
172
+ ```bash
173
+ ssh -N -L 18789:127.0.0.1:18789 user@host
174
+ ```
175
+
176
+ Then connect clients to `ws://127.0.0.1:18789` locally.
177
+
178
+ <Warning>
179
+ SSH tunnels do not bypass gateway auth. For shared-secret auth, clients still
180
+ must send `token`/`password` even over the tunnel. For identity-bearing modes,
181
+ the request still has to satisfy that auth path.
182
+ </Warning>
183
+
184
+ See: [Remote Gateway](/gateway/remote), [Authentication](/gateway/authentication), [Tailscale](/gateway/tailscale).
185
+
186
+ ## Supervision and service lifecycle
187
+
188
+ Use supervised runs for production-like reliability.
189
+
190
+ <Tabs>
191
+ <Tab title="macOS (launchd)">
192
+
193
+ ```bash
194
+ Durar gateway install
195
+ Durar gateway status
196
+ Durar gateway restart
197
+ Durar gateway stop
198
+ ```
199
+
200
+ LaunchAgent labels are `ai.Durar.gateway` (default) or `ai.Durar.<profile>` (named profile). `Durar doctor` audits and repairs service config drift.
201
+
202
+ </Tab>
203
+
204
+ <Tab title="Linux (systemd user)">
205
+
206
+ ```bash
207
+ Durar gateway install
208
+ systemctl --user enable --now Durar-gateway[-<profile>].service
209
+ Durar gateway status
210
+ ```
211
+
212
+ For persistence after logout, enable lingering:
213
+
214
+ ```bash
215
+ sudo loginctl enable-linger <user>
216
+ ```
217
+
218
+ Manual user-unit example when you need a custom install path:
219
+
220
+ ```ini
221
+ [Unit]
222
+ Description=Durar Gateway
223
+ After=network-online.target
224
+ Wants=network-online.target
225
+
226
+ [Service]
227
+ ExecStart=/usr/local/bin/Durar gateway --port 18789
228
+ Restart=always
229
+ RestartSec=5
230
+ TimeoutStopSec=30
231
+ TimeoutStartSec=30
232
+ SuccessExitStatus=0 143
233
+ KillMode=control-group
234
+
235
+ [Install]
236
+ WantedBy=default.target
237
+ ```
238
+
239
+ </Tab>
240
+
241
+ <Tab title="Windows (native)">
242
+
243
+ ```powershell
244
+ Durar gateway install
245
+ Durar gateway status --json
246
+ Durar gateway restart
247
+ Durar gateway stop
248
+ ```
249
+
250
+ Native Windows managed startup uses a Scheduled Task named `Durar Gateway`
251
+ (or `Durar Gateway (<profile>)` for named profiles). If Scheduled Task
252
+ creation is denied, Durar falls back to a per-user Startup-folder launcher
253
+ that points at `gateway.cmd` inside the state directory.
254
+
255
+ </Tab>
256
+
257
+ <Tab title="Linux (system service)">
258
+
259
+ Use a system unit for multi-user/always-on hosts.
260
+
261
+ ```bash
262
+ sudo systemctl daemon-reload
263
+ sudo systemctl enable --now Durar-gateway[-<profile>].service
264
+ ```
265
+
266
+ Use the same service body as the user unit, but install it under
267
+ `/etc/systemd/system/Durar-gateway[-<profile>].service` and adjust
268
+ `ExecStart=` if your `Durar` binary lives elsewhere.
269
+
270
+ </Tab>
271
+ </Tabs>
272
+
273
+ ## Multiple gateways on one host
274
+
275
+ Most setups should run **one** Gateway.
276
+ Use multiple only for strict isolation/redundancy (for example a rescue profile).
277
+
278
+ Checklist per instance:
279
+
280
+ - Unique `gateway.port`
281
+ - Unique `Durar_CONFIG_PATH`
282
+ - Unique `Durar_STATE_DIR`
283
+ - Unique `agents.defaults.workspace`
284
+
285
+ Example:
286
+
287
+ ```bash
288
+ Durar_CONFIG_PATH=~/.Durar/a.json Durar_STATE_DIR=~/.Durar-a Durar gateway --port 19001
289
+ Durar_CONFIG_PATH=~/.Durar/b.json Durar_STATE_DIR=~/.Durar-b Durar gateway --port 19002
290
+ ```
291
+
292
+ See: [Multiple gateways](/gateway/multiple-gateways).
293
+
294
+ ### Dev profile quick path
295
+
296
+ ```bash
297
+ Durar --dev setup
298
+ Durar --dev gateway --allow-unconfigured
299
+ Durar --dev status
300
+ ```
301
+
302
+ Defaults include isolated state/config and base gateway port `19001`.
303
+
304
+ ## Protocol quick reference (operator view)
305
+
306
+ - First client frame must be `connect`.
307
+ - Gateway returns `hello-ok` snapshot (`presence`, `health`, `stateVersion`, `uptimeMs`, limits/policy).
308
+ - `hello-ok.features.methods` / `events` are a conservative discovery list, not
309
+ a generated dump of every callable helper route.
310
+ - Requests: `req(method, params)` → `res(ok/payload|error)`.
311
+ - Common events include `connect.challenge`, `agent`, `chat`,
312
+ `session.message`, `session.tool`, `sessions.changed`, `presence`, `tick`,
313
+ `health`, `heartbeat`, pairing/approval lifecycle events, and `shutdown`.
314
+
315
+ Agent runs are two-stage:
316
+
317
+ 1. Immediate accepted ack (`status:"accepted"`)
318
+ 2. Final completion response (`status:"ok"|"error"`), with streamed `agent` events in between.
319
+
320
+ See full protocol docs: [Gateway Protocol](/gateway/protocol).
321
+
322
+ ## Operational checks
323
+
324
+ ### Liveness
325
+
326
+ - Open WS and send `connect`.
327
+ - Expect `hello-ok` response with snapshot.
328
+
329
+ ### Readiness
330
+
331
+ ```bash
332
+ Durar gateway status
333
+ Durar channels status --probe
334
+ Durar health
335
+ ```
336
+
337
+ ### Gap recovery
338
+
339
+ Events are not replayed. On sequence gaps, refresh state (`health`, `system-presence`) before continuing.
340
+
341
+ ## Common failure signatures
342
+
343
+ | Signature | Likely issue |
344
+ | -------------------------------------------------------------- | ------------------------------------------------------------------------------- |
345
+ | `refusing to bind gateway ... without auth` | Non-loopback bind without a valid gateway auth path |
346
+ | `another gateway instance is already listening` / `EADDRINUSE` | Port conflict |
347
+ | `Gateway start blocked: set gateway.mode=local` | Config set to remote mode, or local-mode stamp is missing from a damaged config |
348
+ | `unauthorized` during connect | Auth mismatch between client and gateway |
349
+
350
+ For full diagnosis ladders, use [Gateway Troubleshooting](/gateway/troubleshooting).
351
+
352
+ ## Safety guarantees
353
+
354
+ - Gateway protocol clients fail fast when Gateway is unavailable (no implicit direct-channel fallback).
355
+ - Invalid/non-connect first frames are rejected and closed.
356
+ - Graceful shutdown emits `shutdown` event before socket close.
357
+
358
+ ---
359
+
360
+ Related:
361
+
362
+ - [Troubleshooting](/gateway/troubleshooting)
363
+ - [Background Process](/gateway/background-process)
364
+ - [Configuration](/gateway/configuration)
365
+ - [Health](/gateway/health)
366
+ - [Doctor](/gateway/doctor)
367
+ - [Authentication](/gateway/authentication)
@@ -0,0 +1,163 @@
1
+ ---
2
+ summary: "Run Durar on local LLMs (LM Studio, vLLM, LiteLLM, custom OpenAI endpoints)"
3
+ read_when:
4
+ - You want to serve models from your own GPU box
5
+ - You are wiring LM Studio or an OpenAI-compatible proxy
6
+ - You need the safest local model guidance
7
+ title: "Local Models"
8
+ ---
9
+
10
+ # Local models
11
+
12
+ Local is doable, but Durar expects large context + strong defenses against prompt injection. Small cards truncate context and leak safety. Aim high: **≥2 maxed-out Mac Studios or equivalent GPU rig (~$30k+)**. A single **24 GB** GPU works only for lighter prompts with higher latency. Use the **largest / full-size model variant you can run**; aggressively quantized or “small” checkpoints raise prompt-injection risk (see [Security](/gateway/security)).
13
+
14
+ If you want the lowest-friction local setup, start with [Ollama](/providers/ollama) and `Durar onboard`. This page is the opinionated guide for higher-end local stacks and custom OpenAI-compatible local servers.
15
+
16
+ ## Recommended: LM Studio + large local model (Responses API)
17
+
18
+ Best current local stack. Load a large model in LM Studio (for example, a full-size Qwen, DeepSeek, or Llama build), enable the local server (default `http://127.0.0.1:1234`), and use Responses API to keep reasoning separate from final text.
19
+
20
+ ```json5
21
+ {
22
+ agents: {
23
+ defaults: {
24
+ model: { primary: “lmstudio/my-local-model” },
25
+ models: {
26
+ “anthropic/claude-opus-4-6”: { alias: “Opus” },
27
+ “lmstudio/my-local-model”: { alias: “Local” },
28
+ },
29
+ },
30
+ },
31
+ models: {
32
+ mode: “merge”,
33
+ providers: {
34
+ lmstudio: {
35
+ baseUrl: “http://127.0.0.1:1234/v1”,
36
+ apiKey: “lmstudio”,
37
+ api: “openai-responses”,
38
+ models: [
39
+ {
40
+ id: “my-local-model”,
41
+ name: “Local Model”,
42
+ reasoning: false,
43
+ input: [“text”],
44
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
45
+ contextWindow: 196608,
46
+ maxTokens: 8192,
47
+ },
48
+ ],
49
+ },
50
+ },
51
+ },
52
+ }
53
+ ```
54
+
55
+ **Setup checklist**
56
+
57
+ - Install LM Studio: [https://lmstudio.ai](https://lmstudio.ai)
58
+ - In LM Studio, download the **largest model build available** (avoid “small”/heavily quantized variants), start the server, confirm `http://127.0.0.1:1234/v1/models` lists it.
59
+ - Replace `my-local-model` with the actual model ID shown in LM Studio.
60
+ - Keep the model loaded; cold-load adds startup latency.
61
+ - Adjust `contextWindow`/`maxTokens` if your LM Studio build differs.
62
+ - For WhatsApp, stick to Responses API so only final text is sent.
63
+
64
+ Keep hosted models configured even when running local; use `models.mode: "merge"` so fallbacks stay available.
65
+
66
+ ### Hybrid config: hosted primary, local fallback
67
+
68
+ ```json5
69
+ {
70
+ agents: {
71
+ defaults: {
72
+ model: {
73
+ primary: "anthropic/claude-sonnet-4-6",
74
+ fallbacks: ["lmstudio/my-local-model", "anthropic/claude-opus-4-6"],
75
+ },
76
+ models: {
77
+ "anthropic/claude-sonnet-4-6": { alias: "Sonnet" },
78
+ "lmstudio/my-local-model": { alias: "Local" },
79
+ "anthropic/claude-opus-4-6": { alias: "Opus" },
80
+ },
81
+ },
82
+ },
83
+ models: {
84
+ mode: "merge",
85
+ providers: {
86
+ lmstudio: {
87
+ baseUrl: "http://127.0.0.1:1234/v1",
88
+ apiKey: "lmstudio",
89
+ api: "openai-responses",
90
+ models: [
91
+ {
92
+ id: "my-local-model",
93
+ name: "Local Model",
94
+ reasoning: false,
95
+ input: ["text"],
96
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
97
+ contextWindow: 196608,
98
+ maxTokens: 8192,
99
+ },
100
+ ],
101
+ },
102
+ },
103
+ },
104
+ }
105
+ ```
106
+
107
+ ### Local-first with hosted safety net
108
+
109
+ Swap the primary and fallback order; keep the same providers block and `models.mode: "merge"` so you can fall back to Sonnet or Opus when the local box is down.
110
+
111
+ ### Regional hosting / data routing
112
+
113
+ - Hosted MiniMax/Kimi/GLM variants also exist on OpenRouter with region-pinned endpoints (e.g., US-hosted). Pick the regional variant there to keep traffic in your chosen jurisdiction while still using `models.mode: "merge"` for Anthropic/OpenAI fallbacks.
114
+ - Local-only remains the strongest privacy path; hosted regional routing is the middle ground when you need provider features but want control over data flow.
115
+
116
+ ## Other OpenAI-compatible local proxies
117
+
118
+ vLLM, LiteLLM, OAI-proxy, or custom gateways work if they expose an OpenAI-style `/v1` endpoint. Replace the provider block above with your endpoint and model ID:
119
+
120
+ ```json5
121
+ {
122
+ models: {
123
+ mode: "merge",
124
+ providers: {
125
+ local: {
126
+ baseUrl: "http://127.0.0.1:8000/v1",
127
+ apiKey: "sk-local",
128
+ api: "openai-responses",
129
+ models: [
130
+ {
131
+ id: "my-local-model",
132
+ name: "Local Model",
133
+ reasoning: false,
134
+ input: ["text"],
135
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
136
+ contextWindow: 120000,
137
+ maxTokens: 8192,
138
+ },
139
+ ],
140
+ },
141
+ },
142
+ },
143
+ }
144
+ ```
145
+
146
+ Keep `models.mode: "merge"` so hosted models stay available as fallbacks.
147
+
148
+ Behavior note for local/proxied `/v1` backends:
149
+
150
+ - Durar treats these as proxy-style OpenAI-compatible routes, not native
151
+ OpenAI endpoints
152
+ - native OpenAI-only request shaping does not apply here: no
153
+ `service_tier`, no Responses `store`, no OpenAI reasoning-compat payload
154
+ shaping, and no prompt-cache hints
155
+ - hidden Durar attribution headers (`originator`, `version`, `User-Agent`)
156
+ are not injected on these custom proxy URLs
157
+
158
+ ## Troubleshooting
159
+
160
+ - Gateway can reach the proxy? `curl http://127.0.0.1:1234/v1/models`.
161
+ - LM Studio model unloaded? Reload; cold start is a common “hanging” cause.
162
+ - Context errors? Lower `contextWindow` or raise your server limit.
163
+ - Safety: local models skip provider-side filters; keep agents narrow and compaction on to limit prompt injection blast radius.
@@ -0,0 +1,113 @@
1
+ ---
2
+ summary: "Logging surfaces, file logs, WS log styles, and console formatting"
3
+ read_when:
4
+ - Changing logging output or formats
5
+ - Debugging CLI or gateway output
6
+ title: "Gateway Logging"
7
+ ---
8
+
9
+ # Logging
10
+
11
+ For a user-facing overview (CLI + Control UI + config), see [/logging](/logging).
12
+
13
+ Durar has two log “surfaces”:
14
+
15
+ - **Console output** (what you see in the terminal / Debug UI).
16
+ - **File logs** (JSON lines) written by the gateway logger.
17
+
18
+ ## File-based logger
19
+
20
+ - Default rolling log file is under `/tmp/Durar/` (one file per day): `Durar-YYYY-MM-DD.log`
21
+ - Date uses the gateway host's local timezone.
22
+ - The log file path and level can be configured via `~/.Durar/Durar.json`:
23
+ - `logging.file`
24
+ - `logging.level`
25
+
26
+ The file format is one JSON object per line.
27
+
28
+ The Control UI Logs tab tails this file via the gateway (`logs.tail`).
29
+ CLI can do the same:
30
+
31
+ ```bash
32
+ Durar logs --follow
33
+ ```
34
+
35
+ **Verbose vs. log levels**
36
+
37
+ - **File logs** are controlled exclusively by `logging.level`.
38
+ - `--verbose` only affects **console verbosity** (and WS log style); it does **not**
39
+ raise the file log level.
40
+ - To capture verbose-only details in file logs, set `logging.level` to `debug` or
41
+ `trace`.
42
+
43
+ ## Console capture
44
+
45
+ The CLI captures `console.log/info/warn/error/debug/trace` and writes them to file logs,
46
+ while still printing to stdout/stderr.
47
+
48
+ You can tune console verbosity independently via:
49
+
50
+ - `logging.consoleLevel` (default `info`)
51
+ - `logging.consoleStyle` (`pretty` | `compact` | `json`)
52
+
53
+ ## Tool summary redaction
54
+
55
+ Verbose tool summaries (e.g. `🛠️ Exec: ...`) can mask sensitive tokens before they hit the
56
+ console stream. This is **tools-only** and does not alter file logs.
57
+
58
+ - `logging.redactSensitive`: `off` | `tools` (default: `tools`)
59
+ - `logging.redactPatterns`: array of regex strings (overrides defaults)
60
+ - Use raw regex strings (auto `gi`), or `/pattern/flags` if you need custom flags.
61
+ - Matches are masked by keeping the first 6 + last 4 chars (length >= 18), otherwise `***`.
62
+ - Defaults cover common key assignments, CLI flags, JSON fields, bearer headers, PEM blocks, and popular token prefixes.
63
+
64
+ ## Gateway WebSocket logs
65
+
66
+ The gateway prints WebSocket protocol logs in two modes:
67
+
68
+ - **Normal mode (no `--verbose`)**: only “interesting” RPC results are printed:
69
+ - errors (`ok=false`)
70
+ - slow calls (default threshold: `>= 50ms`)
71
+ - parse errors
72
+ - **Verbose mode (`--verbose`)**: prints all WS request/response traffic.
73
+
74
+ ### WS log style
75
+
76
+ `Durar gateway` supports a per-gateway style switch:
77
+
78
+ - `--ws-log auto` (default): normal mode is optimized; verbose mode uses compact output
79
+ - `--ws-log compact`: compact output (paired request/response) when verbose
80
+ - `--ws-log full`: full per-frame output when verbose
81
+ - `--compact`: alias for `--ws-log compact`
82
+
83
+ Examples:
84
+
85
+ ```bash
86
+ # optimized (only errors/slow)
87
+ Durar gateway
88
+
89
+ # show all WS traffic (paired)
90
+ Durar gateway --verbose --ws-log compact
91
+
92
+ # show all WS traffic (full meta)
93
+ Durar gateway --verbose --ws-log full
94
+ ```
95
+
96
+ ## Console formatting (subsystem logging)
97
+
98
+ The console formatter is **TTY-aware** and prints consistent, prefixed lines.
99
+ Subsystem loggers keep output grouped and scannable.
100
+
101
+ Behavior:
102
+
103
+ - **Subsystem prefixes** on every line (e.g. `[gateway]`, `[canvas]`, `[tailscale]`)
104
+ - **Subsystem colors** (stable per subsystem) plus level coloring
105
+ - **Color when output is a TTY or the environment looks like a rich terminal** (`TERM`/`COLORTERM`/`TERM_PROGRAM`), respects `NO_COLOR`
106
+ - **Shortened subsystem prefixes**: drops leading `gateway/` + `channels/`, keeps last 2 segments (e.g. `whatsapp/outbound`)
107
+ - **Sub-loggers by subsystem** (auto prefix + structured field `{ subsystem }`)
108
+ - **`logRaw()`** for QR/UX output (no prefix, no formatting)
109
+ - **Console styles** (e.g. `pretty | compact | json`)
110
+ - **Console log level** separate from file log level (file keeps full detail when `logging.level` is set to `debug`/`trace`)
111
+ - **WhatsApp message bodies** are logged at `debug` (use `--verbose` to see them)
112
+
113
+ This keeps existing file logs stable while making interactive output scannable.