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,252 @@
1
+ ---
2
+ title: IRC
3
+ summary: "IRC plugin setup, access controls, and troubleshooting"
4
+ read_when:
5
+ - You want to connect Durar to IRC channels or DMs
6
+ - You are configuring IRC allowlists, group policy, or mention gating
7
+ ---
8
+
9
+ # IRC
10
+
11
+ Use IRC when you want Durar in classic channels (`#room`) and direct messages.
12
+ IRC ships as an extension plugin, but it is configured in the main config under `channels.irc`.
13
+
14
+ ## Quick start
15
+
16
+ 1. Enable IRC config in `~/.Durar/Durar.json`.
17
+ 2. Set at least:
18
+
19
+ ```json5
20
+ {
21
+ channels: {
22
+ irc: {
23
+ enabled: true,
24
+ host: "irc.example.com",
25
+ port: 6697,
26
+ tls: true,
27
+ nick: "Durar-bot",
28
+ channels: ["#Durar"],
29
+ },
30
+ },
31
+ }
32
+ ```
33
+
34
+ Prefer a private IRC server for bot coordination. If you intentionally use a public IRC network, common choices include Libera.Chat, OFTC, and Snoonet. Avoid predictable public channels for bot or swarm backchannel traffic.
35
+
36
+ 3. Start/restart gateway:
37
+
38
+ ```bash
39
+ Durar gateway run
40
+ ```
41
+
42
+ ## Security defaults
43
+
44
+ - `channels.irc.dmPolicy` defaults to `"pairing"`.
45
+ - `channels.irc.groupPolicy` defaults to `"allowlist"`.
46
+ - With `groupPolicy="allowlist"`, set `channels.irc.groups` to define allowed channels.
47
+ - Use TLS (`channels.irc.tls=true`) unless you intentionally accept plaintext transport.
48
+
49
+ ## Access control
50
+
51
+ There are two separate “gates” for IRC channels:
52
+
53
+ 1. **Channel access** (`groupPolicy` + `groups`): whether the bot accepts messages from a channel at all.
54
+ 2. **Sender access** (`groupAllowFrom` / per-channel `groups["#channel"].allowFrom`): who is allowed to trigger the bot inside that channel.
55
+
56
+ Config keys:
57
+
58
+ - DM allowlist (DM sender access): `channels.irc.allowFrom`
59
+ - Group sender allowlist (channel sender access): `channels.irc.groupAllowFrom`
60
+ - Per-channel controls (channel + sender + mention rules): `channels.irc.groups["#channel"]`
61
+ - `channels.irc.groupPolicy="open"` allows unconfigured channels (**still mention-gated by default**)
62
+
63
+ Allowlist entries should use stable sender identities (`nick!user@host`).
64
+ Bare nick matching is mutable and only enabled when `channels.irc.dangerouslyAllowNameMatching: true`.
65
+
66
+ ### Common gotcha: `allowFrom` is for DMs, not channels
67
+
68
+ If you see logs like:
69
+
70
+ - `irc: drop group sender alice!ident@host (policy=allowlist)`
71
+
72
+ …it means the sender wasn’t allowed for **group/channel** messages. Fix it by either:
73
+
74
+ - setting `channels.irc.groupAllowFrom` (global for all channels), or
75
+ - setting per-channel sender allowlists: `channels.irc.groups["#channel"].allowFrom`
76
+
77
+ Example (allow anyone in `#tuirc-dev` to talk to the bot):
78
+
79
+ ```json5
80
+ {
81
+ channels: {
82
+ irc: {
83
+ groupPolicy: "allowlist",
84
+ groups: {
85
+ "#tuirc-dev": { allowFrom: ["*"] },
86
+ },
87
+ },
88
+ },
89
+ }
90
+ ```
91
+
92
+ ## Reply triggering (mentions)
93
+
94
+ Even if a channel is allowed (via `groupPolicy` + `groups`) and the sender is allowed, Durar defaults to **mention-gating** in group contexts.
95
+
96
+ That means you may see logs like `drop channel … (missing-mention)` unless the message includes a mention pattern that matches the bot.
97
+
98
+ To make the bot reply in an IRC channel **without needing a mention**, disable mention gating for that channel:
99
+
100
+ ```json5
101
+ {
102
+ channels: {
103
+ irc: {
104
+ groupPolicy: "allowlist",
105
+ groups: {
106
+ "#tuirc-dev": {
107
+ requireMention: false,
108
+ allowFrom: ["*"],
109
+ },
110
+ },
111
+ },
112
+ },
113
+ }
114
+ ```
115
+
116
+ Or to allow **all** IRC channels (no per-channel allowlist) and still reply without mentions:
117
+
118
+ ```json5
119
+ {
120
+ channels: {
121
+ irc: {
122
+ groupPolicy: "open",
123
+ groups: {
124
+ "*": { requireMention: false, allowFrom: ["*"] },
125
+ },
126
+ },
127
+ },
128
+ }
129
+ ```
130
+
131
+ ## Security note (recommended for public channels)
132
+
133
+ If you allow `allowFrom: ["*"]` in a public channel, anyone can prompt the bot.
134
+ To reduce risk, restrict tools for that channel.
135
+
136
+ ### Same tools for everyone in the channel
137
+
138
+ ```json5
139
+ {
140
+ channels: {
141
+ irc: {
142
+ groups: {
143
+ "#tuirc-dev": {
144
+ allowFrom: ["*"],
145
+ tools: {
146
+ deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
147
+ },
148
+ },
149
+ },
150
+ },
151
+ },
152
+ }
153
+ ```
154
+
155
+ ### Different tools per sender (owner gets more power)
156
+
157
+ Use `toolsBySender` to apply a stricter policy to `"*"` and a looser one to your nick:
158
+
159
+ ```json5
160
+ {
161
+ channels: {
162
+ irc: {
163
+ groups: {
164
+ "#tuirc-dev": {
165
+ allowFrom: ["*"],
166
+ toolsBySender: {
167
+ "*": {
168
+ deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
169
+ },
170
+ "id:eigen": {
171
+ deny: ["gateway", "nodes", "cron"],
172
+ },
173
+ },
174
+ },
175
+ },
176
+ },
177
+ },
178
+ }
179
+ ```
180
+
181
+ Notes:
182
+
183
+ - `toolsBySender` keys should use `id:` for IRC sender identity values:
184
+ `id:eigen` or `id:eigen!~eigen@174.127.248.171` for stronger matching.
185
+ - Legacy unprefixed keys are still accepted and matched as `id:` only.
186
+ - The first matching sender policy wins; `"*"` is the wildcard fallback.
187
+
188
+ For more on group access vs mention-gating (and how they interact), see: [/channels/groups](/channels/groups).
189
+
190
+ ## NickServ
191
+
192
+ To identify with NickServ after connect:
193
+
194
+ ```json5
195
+ {
196
+ channels: {
197
+ irc: {
198
+ nickserv: {
199
+ enabled: true,
200
+ service: "NickServ",
201
+ password: "your-nickserv-password",
202
+ },
203
+ },
204
+ },
205
+ }
206
+ ```
207
+
208
+ Optional one-time registration on connect:
209
+
210
+ ```json5
211
+ {
212
+ channels: {
213
+ irc: {
214
+ nickserv: {
215
+ register: true,
216
+ registerEmail: "bot@example.com",
217
+ },
218
+ },
219
+ },
220
+ }
221
+ ```
222
+
223
+ Disable `register` after the nick is registered to avoid repeated REGISTER attempts.
224
+
225
+ ## Environment variables
226
+
227
+ Default account supports:
228
+
229
+ - `IRC_HOST`
230
+ - `IRC_PORT`
231
+ - `IRC_TLS`
232
+ - `IRC_NICK`
233
+ - `IRC_USERNAME`
234
+ - `IRC_REALNAME`
235
+ - `IRC_PASSWORD`
236
+ - `IRC_CHANNELS` (comma-separated)
237
+ - `IRC_NICKSERV_PASSWORD`
238
+ - `IRC_NICKSERV_REGISTER_EMAIL`
239
+
240
+ ## Troubleshooting
241
+
242
+ - If the bot connects but never replies in channels, verify `channels.irc.groups` **and** whether mention-gating is dropping messages (`missing-mention`). If you want it to reply without pings, set `requireMention:false` for the channel.
243
+ - If login fails, verify nick availability and server password.
244
+ - If TLS fails on a custom network, verify host/port and certificate setup.
245
+
246
+ ## Related
247
+
248
+ - [Channels Overview](/channels) — all supported channels
249
+ - [Pairing](/channels/pairing) — DM authentication and pairing flow
250
+ - [Groups](/channels/groups) — group chat behavior and mention gating
251
+ - [Channel Routing](/channels/channel-routing) — session routing for messages
252
+ - [Security](/gateway/security) — access model and hardening
@@ -0,0 +1,225 @@
1
+ ---
2
+ summary: "LINE Messaging API plugin setup, config, and usage"
3
+ read_when:
4
+ - You want to connect Durar to LINE
5
+ - You need LINE webhook + credential setup
6
+ - You want LINE-specific message options
7
+ title: LINE
8
+ ---
9
+
10
+ # LINE
11
+
12
+ LINE connects to Durar via the LINE Messaging API. The plugin runs as a webhook
13
+ receiver on the gateway and uses your channel access token + channel secret for
14
+ authentication.
15
+
16
+ Status: bundled plugin. Direct messages, group chats, media, locations, Flex
17
+ messages, template messages, and quick replies are supported. Reactions and threads
18
+ are not supported.
19
+
20
+ ## Bundled plugin
21
+
22
+ LINE ships as a bundled plugin in current Durar releases, so normal
23
+ packaged builds do not need a separate install.
24
+
25
+ If you are on an older build or a custom install that excludes LINE, install it
26
+ manually:
27
+
28
+ ```bash
29
+ Durar plugins install @Durar/line
30
+ ```
31
+
32
+ Local checkout (when running from a git repo):
33
+
34
+ ```bash
35
+ Durar plugins install ./path/to/local/line-plugin
36
+ ```
37
+
38
+ ## Setup
39
+
40
+ 1. Create a LINE Developers account and open the Console:
41
+ [https://developers.line.biz/console/](https://developers.line.biz/console/)
42
+ 2. Create (or pick) a Provider and add a **Messaging API** channel.
43
+ 3. Copy the **Channel access token** and **Channel secret** from the channel settings.
44
+ 4. Enable **Use webhook** in the Messaging API settings.
45
+ 5. Set the webhook URL to your gateway endpoint (HTTPS required):
46
+
47
+ ```
48
+ https://gateway-host/line/webhook
49
+ ```
50
+
51
+ The gateway responds to LINE’s webhook verification (GET) and inbound events (POST).
52
+ If you need a custom path, set `channels.line.webhookPath` or
53
+ `channels.line.accounts.<id>.webhookPath` and update the URL accordingly.
54
+
55
+ Security note:
56
+
57
+ - LINE signature verification is body-dependent (HMAC over the raw body), so Durar applies strict pre-auth body limits and timeout before verification.
58
+ - Durar processes webhook events from the verified raw request bytes. Upstream middleware-transformed `req.body` values are ignored for signature-integrity safety.
59
+
60
+ ## Configure
61
+
62
+ Minimal config:
63
+
64
+ ```json5
65
+ {
66
+ channels: {
67
+ line: {
68
+ enabled: true,
69
+ channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
70
+ channelSecret: "LINE_CHANNEL_SECRET",
71
+ dmPolicy: "pairing",
72
+ },
73
+ },
74
+ }
75
+ ```
76
+
77
+ Env vars (default account only):
78
+
79
+ - `LINE_CHANNEL_ACCESS_TOKEN`
80
+ - `LINE_CHANNEL_SECRET`
81
+
82
+ Token/secret files:
83
+
84
+ ```json5
85
+ {
86
+ channels: {
87
+ line: {
88
+ tokenFile: "/path/to/line-token.txt",
89
+ secretFile: "/path/to/line-secret.txt",
90
+ },
91
+ },
92
+ }
93
+ ```
94
+
95
+ `tokenFile` and `secretFile` must point to regular files. Symlinks are rejected.
96
+
97
+ Multiple accounts:
98
+
99
+ ```json5
100
+ {
101
+ channels: {
102
+ line: {
103
+ accounts: {
104
+ marketing: {
105
+ channelAccessToken: "...",
106
+ channelSecret: "...",
107
+ webhookPath: "/line/marketing",
108
+ },
109
+ },
110
+ },
111
+ },
112
+ }
113
+ ```
114
+
115
+ ## Access control
116
+
117
+ Direct messages default to pairing. Unknown senders get a pairing code and their
118
+ messages are ignored until approved.
119
+
120
+ ```bash
121
+ Durar pairing list line
122
+ Durar pairing approve line <CODE>
123
+ ```
124
+
125
+ Allowlists and policies:
126
+
127
+ - `channels.line.dmPolicy`: `pairing | allowlist | open | disabled`
128
+ - `channels.line.allowFrom`: allowlisted LINE user IDs for DMs
129
+ - `channels.line.groupPolicy`: `allowlist | open | disabled`
130
+ - `channels.line.groupAllowFrom`: allowlisted LINE user IDs for groups
131
+ - Per-group overrides: `channels.line.groups.<groupId>.allowFrom`
132
+ - Runtime note: if `channels.line` is completely missing, runtime falls back to `groupPolicy="allowlist"` for group checks (even if `channels.defaults.groupPolicy` is set).
133
+
134
+ LINE IDs are case-sensitive. Valid IDs look like:
135
+
136
+ - User: `U` + 32 hex chars
137
+ - Group: `C` + 32 hex chars
138
+ - Room: `R` + 32 hex chars
139
+
140
+ ## Message behavior
141
+
142
+ - Text is chunked at 5000 characters.
143
+ - Markdown formatting is stripped; code blocks and tables are converted into Flex
144
+ cards when possible.
145
+ - Streaming responses are buffered; LINE receives full chunks with a loading
146
+ animation while the agent works.
147
+ - Media downloads are capped by `channels.line.mediaMaxMb` (default 10).
148
+
149
+ ## Channel data (rich messages)
150
+
151
+ Use `channelData.line` to send quick replies, locations, Flex cards, or template
152
+ messages.
153
+
154
+ ```json5
155
+ {
156
+ text: "Here you go",
157
+ channelData: {
158
+ line: {
159
+ quickReplies: ["Status", "Help"],
160
+ location: {
161
+ title: "Office",
162
+ address: "123 Main St",
163
+ latitude: 35.681236,
164
+ longitude: 139.767125,
165
+ },
166
+ flexMessage: {
167
+ altText: "Status card",
168
+ contents: {
169
+ /* Flex payload */
170
+ },
171
+ },
172
+ templateMessage: {
173
+ type: "confirm",
174
+ text: "Proceed?",
175
+ confirmLabel: "Yes",
176
+ confirmData: "yes",
177
+ cancelLabel: "No",
178
+ cancelData: "no",
179
+ },
180
+ },
181
+ },
182
+ }
183
+ ```
184
+
185
+ The LINE plugin also ships a `/card` command for Flex message presets:
186
+
187
+ ```
188
+ /card info "Welcome" "Thanks for joining!"
189
+ ```
190
+
191
+ ## ACP support
192
+
193
+ LINE supports ACP (Agent Communication Protocol) conversation bindings:
194
+
195
+ - `/acp spawn <agent> --bind here` binds the current LINE chat to an ACP session without creating a child thread.
196
+ - Configured ACP bindings and active conversation-bound ACP sessions work on LINE like other conversation channels.
197
+
198
+ See [ACP agents](/tools/acp-agents) for details.
199
+
200
+ ## Outbound media
201
+
202
+ The LINE plugin supports sending images, videos, and audio files through the agent message tool. Media is sent via the LINE-specific delivery path with appropriate preview and tracking handling:
203
+
204
+ - **Images**: sent as LINE image messages with automatic preview generation.
205
+ - **Videos**: sent with explicit preview and content-type handling.
206
+ - **Audio**: sent as LINE audio messages.
207
+
208
+ Generic media sends fall back to the existing image-only route when a LINE-specific path is not available.
209
+
210
+ ## Troubleshooting
211
+
212
+ - **Webhook verification fails:** ensure the webhook URL is HTTPS and the
213
+ `channelSecret` matches the LINE console.
214
+ - **No inbound events:** confirm the webhook path matches `channels.line.webhookPath`
215
+ and that the gateway is reachable from LINE.
216
+ - **Media download errors:** raise `channels.line.mediaMaxMb` if media exceeds the
217
+ default limit.
218
+
219
+ ## Related
220
+
221
+ - [Channels Overview](/channels) — all supported channels
222
+ - [Pairing](/channels/pairing) — DM authentication and pairing flow
223
+ - [Groups](/channels/groups) — group chat behavior and mention gating
224
+ - [Channel Routing](/channels/channel-routing) — session routing for messages
225
+ - [Security](/gateway/security) — access model and hardening
@@ -0,0 +1,56 @@
1
+ ---
2
+ summary: "Inbound channel location parsing (Telegram/WhatsApp/Matrix) and context fields"
3
+ read_when:
4
+ - Adding or modifying channel location parsing
5
+ - Using location context fields in agent prompts or tools
6
+ title: "Channel Location Parsing"
7
+ ---
8
+
9
+ # Channel location parsing
10
+
11
+ Durar normalizes shared locations from chat channels into:
12
+
13
+ - human-readable text appended to the inbound body, and
14
+ - structured fields in the auto-reply context payload.
15
+
16
+ Currently supported:
17
+
18
+ - **Telegram** (location pins + venues + live locations)
19
+ - **WhatsApp** (locationMessage + liveLocationMessage)
20
+ - **Matrix** (`m.location` with `geo_uri`)
21
+
22
+ ## Text formatting
23
+
24
+ Locations are rendered as friendly lines without brackets:
25
+
26
+ - Pin:
27
+ - `📍 48.858844, 2.294351 ±12m`
28
+ - Named place:
29
+ - `📍 Eiffel Tower — Champ de Mars, Paris (48.858844, 2.294351 ±12m)`
30
+ - Live share:
31
+ - `🛰 Live location: 48.858844, 2.294351 ±12m`
32
+
33
+ If the channel includes a caption/comment, it is appended on the next line:
34
+
35
+ ```
36
+ 📍 48.858844, 2.294351 ±12m
37
+ Meet here
38
+ ```
39
+
40
+ ## Context fields
41
+
42
+ When a location is present, these fields are added to `ctx`:
43
+
44
+ - `LocationLat` (number)
45
+ - `LocationLon` (number)
46
+ - `LocationAccuracy` (number, meters; optional)
47
+ - `LocationName` (string; optional)
48
+ - `LocationAddress` (string; optional)
49
+ - `LocationSource` (`pin | place | live`)
50
+ - `LocationIsLive` (boolean)
51
+
52
+ ## Channel notes
53
+
54
+ - **Telegram**: venues map to `LocationName/LocationAddress`; live locations use `live_period`.
55
+ - **WhatsApp**: `locationMessage.comment` and `liveLocationMessage.caption` are appended as the caption line.
56
+ - **Matrix**: `geo_uri` is parsed as a pin location; altitude is ignored and `LocationIsLive` is always false.