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,475 @@
1
+ ---
2
+ title: "Plugin SDK Overview"
3
+ sidebarTitle: "SDK Overview"
4
+ summary: "Import map, registration API reference, and SDK architecture"
5
+ read_when:
6
+ - You need to know which SDK subpath to import from
7
+ - You want a reference for all registration methods on DurarPluginApi
8
+ - You are looking up a specific SDK export
9
+ ---
10
+
11
+ # Plugin SDK Overview
12
+
13
+ The plugin SDK is the typed contract between plugins and core. This page is the
14
+ reference for **what to import** and **what you can register**.
15
+
16
+ <Tip>
17
+ **Looking for a how-to guide?**
18
+ - First plugin? Start with [Getting Started](/plugins/building-plugins)
19
+ - Channel plugin? See [Channel Plugins](/plugins/sdk-channel-plugins)
20
+ - Provider plugin? See [Provider Plugins](/plugins/sdk-provider-plugins)
21
+ </Tip>
22
+
23
+ ## Import convention
24
+
25
+ Always import from a specific subpath:
26
+
27
+ ```typescript
28
+ import { definePluginEntry } from "Durar/plugin-sdk/plugin-entry";
29
+ import { defineChannelPluginEntry } from "Durar/plugin-sdk/channel-core";
30
+ ```
31
+
32
+ Each subpath is a small, self-contained module. This keeps startup fast and
33
+ prevents circular dependency issues. For channel-specific entry/build helpers,
34
+ prefer `Durar/plugin-sdk/channel-core`; keep `Durar/plugin-sdk/core` for
35
+ the broader umbrella surface and shared helpers such as
36
+ `buildChannelConfigSchema`.
37
+
38
+ Do not add or depend on provider-named convenience seams such as
39
+ `Durar/plugin-sdk/slack`, `Durar/plugin-sdk/discord`,
40
+ `Durar/plugin-sdk/signal`, `Durar/plugin-sdk/whatsapp`, or
41
+ channel-branded helper seams. Bundled plugins should compose generic
42
+ SDK subpaths inside their own `api.ts` or `runtime-api.ts` barrels, and core
43
+ should either use those plugin-local barrels or add a narrow generic SDK
44
+ contract when the need is truly cross-channel.
45
+
46
+ The generated export map still contains a small set of bundled-plugin helper
47
+ seams such as `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
48
+ `plugin-sdk/zalo`, `plugin-sdk/zalo-setup`, and `plugin-sdk/matrix*`. Those
49
+ subpaths exist for bundled-plugin maintenance and compatibility only; they are
50
+ intentionally omitted from the common table below and are not the recommended
51
+ import path for new third-party plugins.
52
+
53
+ ## Subpath reference
54
+
55
+ The most commonly used subpaths, grouped by purpose. The generated full list of
56
+ 200+ subpaths lives in `scripts/lib/plugin-sdk-entrypoints.json`.
57
+
58
+ Reserved bundled-plugin helper subpaths still appear in that generated list.
59
+ Treat those as implementation detail/compatibility surfaces unless a doc page
60
+ explicitly promotes one as public.
61
+
62
+ ### Plugin entry
63
+
64
+ | Subpath | Key exports |
65
+ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
66
+ | `plugin-sdk/plugin-entry` | `definePluginEntry` |
67
+ | `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
68
+ | `plugin-sdk/config-schema` | `DurarSchema` |
69
+ | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
70
+
71
+ <AccordionGroup>
72
+ <Accordion title="Channel subpaths">
73
+ | Subpath | Key exports |
74
+ | --- | --- |
75
+ | `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
76
+ | `plugin-sdk/config-schema` | Root `Durar.json` Zod schema export (`DurarSchema`) |
77
+ | `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, plus `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
78
+ | `plugin-sdk/setup` | Shared setup wizard helpers, allowlist prompts, setup status builders |
79
+ | `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
80
+ | `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
81
+ | `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
82
+ | `plugin-sdk/account-core` | Multi-account config/action-gate helpers, default-account fallback helpers |
83
+ | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, account-id normalization helpers |
84
+ | `plugin-sdk/account-resolution` | Account lookup + default-fallback helpers |
85
+ | `plugin-sdk/account-helpers` | Narrow account-list/account-action helpers |
86
+ | `plugin-sdk/channel-pairing` | `createChannelPairingController` |
87
+ | `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
88
+ | `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
89
+ | `plugin-sdk/channel-config-schema` | Channel config schema types |
90
+ | `plugin-sdk/telegram-command-config` | Telegram custom-command normalization/validation helpers with bundled-contract fallback |
91
+ | `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
92
+ | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
93
+ | `plugin-sdk/inbound-envelope` | Shared inbound route + envelope builder helpers |
94
+ | `plugin-sdk/inbound-reply-dispatch` | Shared inbound record-and-dispatch helpers |
95
+ | `plugin-sdk/messaging-targets` | Target parsing/matching helpers |
96
+ | `plugin-sdk/outbound-media` | Shared outbound media loading helpers |
97
+ | `plugin-sdk/outbound-runtime` | Outbound identity/send delegate helpers |
98
+ | `plugin-sdk/thread-bindings-runtime` | Thread-binding lifecycle and adapter helpers |
99
+ | `plugin-sdk/agent-media-payload` | Legacy agent media payload builder |
100
+ | `plugin-sdk/conversation-runtime` | Conversation/thread binding, pairing, and configured-binding helpers |
101
+ | `plugin-sdk/runtime-config-snapshot` | Runtime config snapshot helper |
102
+ | `plugin-sdk/runtime-group-policy` | Runtime group-policy resolution helpers |
103
+ | `plugin-sdk/channel-status` | Shared channel status snapshot/summary helpers |
104
+ | `plugin-sdk/channel-config-primitives` | Narrow channel config-schema primitives |
105
+ | `plugin-sdk/channel-config-writes` | Channel config-write authorization helpers |
106
+ | `plugin-sdk/channel-plugin-common` | Shared channel plugin prelude exports |
107
+ | `plugin-sdk/allowlist-config-edit` | Allowlist config edit/read helpers |
108
+ | `plugin-sdk/group-access` | Shared group-access decision helpers |
109
+ | `plugin-sdk/direct-dm` | Shared direct-DM auth/guard helpers |
110
+ | `plugin-sdk/interactive-runtime` | Interactive reply payload normalization/reduction helpers |
111
+ | `plugin-sdk/channel-inbound` | Debounce, mention matching, envelope helpers |
112
+ | `plugin-sdk/channel-send-result` | Reply result types |
113
+ | `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
114
+ | `plugin-sdk/channel-targets` | Target parsing/matching helpers |
115
+ | `plugin-sdk/channel-contract` | Channel contract types |
116
+ | `plugin-sdk/channel-feedback` | Feedback/reaction wiring |
117
+ </Accordion>
118
+
119
+ <Accordion title="Provider subpaths">
120
+ | Subpath | Key exports |
121
+ | --- | --- |
122
+ | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
123
+ | `plugin-sdk/provider-setup` | Curated local/self-hosted provider setup helpers |
124
+ | `plugin-sdk/self-hosted-provider-setup` | Focused OpenAI-compatible self-hosted provider setup helpers |
125
+ | `plugin-sdk/cli-backend` | CLI backend defaults + watchdog constants |
126
+ | `plugin-sdk/provider-auth-runtime` | Runtime API-key resolution helpers for provider plugins |
127
+ | `plugin-sdk/provider-auth-api-key` | API-key onboarding/profile-write helpers |
128
+ | `plugin-sdk/provider-auth-result` | Standard OAuth auth-result builder |
129
+ | `plugin-sdk/provider-auth-login` | Shared interactive login helpers for provider plugins |
130
+ | `plugin-sdk/provider-env-vars` | Provider auth env-var lookup helpers |
131
+ | `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile` |
132
+ | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, shared replay-policy builders, provider-endpoint helpers, and model-id normalization helpers such as `normalizeNativeXaiModelId` |
133
+ | `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
134
+ | `plugin-sdk/provider-http` | Generic provider HTTP/endpoint capability helpers |
135
+ | `plugin-sdk/provider-web-fetch` | Web-fetch provider registration/cache helpers |
136
+ | `plugin-sdk/provider-web-search` | Web-search provider registration/cache/config helpers |
137
+ | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, Gemini schema cleanup + diagnostics, and xAI compat helpers such as `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
138
+ | `plugin-sdk/provider-usage` | `fetchClaudeUsage` and similar |
139
+ | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, stream wrapper types, and shared Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot wrapper helpers |
140
+ | `plugin-sdk/provider-onboard` | Onboarding config patch helpers |
141
+ | `plugin-sdk/global-singleton` | Process-local singleton/map/cache helpers |
142
+ </Accordion>
143
+
144
+ <Accordion title="Auth and security subpaths">
145
+ | Subpath | Key exports |
146
+ | --- | --- |
147
+ | `plugin-sdk/command-auth` | `resolveControlCommandGate`, command registry helpers, sender-authorization helpers |
148
+ | `plugin-sdk/approval-auth-runtime` | Approver resolution and same-chat action-auth helpers |
149
+ | `plugin-sdk/approval-client-runtime` | Native exec approval profile/filter helpers |
150
+ | `plugin-sdk/approval-delivery-runtime` | Native approval capability/delivery adapters |
151
+ | `plugin-sdk/approval-native-runtime` | Native approval target + account-binding helpers |
152
+ | `plugin-sdk/approval-reply-runtime` | Exec/plugin approval reply payload helpers |
153
+ | `plugin-sdk/command-auth-native` | Native command auth + native session-target helpers |
154
+ | `plugin-sdk/command-detection` | Shared command detection helpers |
155
+ | `plugin-sdk/command-surface` | Command-body normalization and command-surface helpers |
156
+ | `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
157
+ | `plugin-sdk/security-runtime` | Shared trust, DM gating, external-content, and secret-collection helpers |
158
+ | `plugin-sdk/ssrf-policy` | Host allowlist and private-network SSRF policy helpers |
159
+ | `plugin-sdk/ssrf-runtime` | Pinned-dispatcher, SSRF-guarded fetch, and SSRF policy helpers |
160
+ | `plugin-sdk/secret-input` | Secret input parsing helpers |
161
+ | `plugin-sdk/webhook-ingress` | Webhook request/target helpers |
162
+ | `plugin-sdk/webhook-request-guards` | Request body size/timeout helpers |
163
+ </Accordion>
164
+
165
+ <Accordion title="Runtime and storage subpaths">
166
+ | Subpath | Key exports |
167
+ | --- | --- |
168
+ | `plugin-sdk/runtime` | Broad runtime/logging/backup/plugin-install helpers |
169
+ | `plugin-sdk/runtime-env` | Narrow runtime env, logger, timeout, retry, and backoff helpers |
170
+ | `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
171
+ | `plugin-sdk/plugin-runtime` | Shared plugin command/hook/http/interactive helpers |
172
+ | `plugin-sdk/hook-runtime` | Shared webhook/internal hook pipeline helpers |
173
+ | `plugin-sdk/lazy-runtime` | Lazy runtime import/binding helpers such as `createLazyRuntimeModule`, `createLazyRuntimeMethod`, and `createLazyRuntimeSurface` |
174
+ | `plugin-sdk/process-runtime` | Process exec helpers |
175
+ | `plugin-sdk/cli-runtime` | CLI formatting, wait, and version helpers |
176
+ | `plugin-sdk/gateway-runtime` | Gateway client and channel-status patch helpers |
177
+ | `plugin-sdk/config-runtime` | Config load/write helpers |
178
+ | `plugin-sdk/telegram-command-config` | Telegram command-name/description normalization and duplicate/conflict checks, even when the bundled Telegram contract surface is unavailable |
179
+ | `plugin-sdk/approval-runtime` | Exec/plugin approval helpers, approval-capability builders, auth/profile helpers, native routing/runtime helpers |
180
+ | `plugin-sdk/reply-runtime` | Shared inbound/reply runtime helpers, chunking, dispatch, heartbeat, reply planner |
181
+ | `plugin-sdk/reply-dispatch-runtime` | Narrow reply dispatch/finalize helpers |
182
+ | `plugin-sdk/reply-history` | Shared short-window reply-history helpers such as `buildHistoryContext`, `recordPendingHistoryEntry`, and `clearHistoryEntriesIfEnabled` |
183
+ | `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
184
+ | `plugin-sdk/reply-chunking` | Narrow text/markdown chunking helpers |
185
+ | `plugin-sdk/session-store-runtime` | Session store path + updated-at helpers |
186
+ | `plugin-sdk/state-paths` | State/OAuth dir path helpers |
187
+ | `plugin-sdk/routing` | Route/session-key/account binding helpers such as `resolveAgentRoute`, `buildAgentSessionKey`, and `resolveDefaultAgentBoundAccountId` |
188
+ | `plugin-sdk/status-helpers` | Shared channel/account status summary helpers, runtime-state defaults, and issue metadata helpers |
189
+ | `plugin-sdk/target-resolver-runtime` | Shared target resolver helpers |
190
+ | `plugin-sdk/string-normalization-runtime` | Slug/string normalization helpers |
191
+ | `plugin-sdk/request-url` | Extract string URLs from fetch/request-like inputs |
192
+ | `plugin-sdk/run-command` | Timed command runner with normalized stdout/stderr results |
193
+ | `plugin-sdk/param-readers` | Common tool/CLI param readers |
194
+ | `plugin-sdk/tool-send` | Extract canonical send target fields from tool args |
195
+ | `plugin-sdk/temp-path` | Shared temp-download path helpers |
196
+ | `plugin-sdk/logging-core` | Subsystem logger and redaction helpers |
197
+ | `plugin-sdk/markdown-table-runtime` | Markdown table mode helpers |
198
+ | `plugin-sdk/json-store` | Small JSON state read/write helpers |
199
+ | `plugin-sdk/file-lock` | Re-entrant file-lock helpers |
200
+ | `plugin-sdk/persistent-dedupe` | Disk-backed dedupe cache helpers |
201
+ | `plugin-sdk/acp-runtime` | ACP runtime/session and reply-dispatch helpers |
202
+ | `plugin-sdk/agent-config-primitives` | Narrow agent runtime config-schema primitives |
203
+ | `plugin-sdk/boolean-param` | Loose boolean param reader |
204
+ | `plugin-sdk/dangerous-name-runtime` | Dangerous-name matching resolution helpers |
205
+ | `plugin-sdk/device-bootstrap` | Device bootstrap and pairing token helpers |
206
+ | `plugin-sdk/extension-shared` | Shared passive-channel and status helper primitives |
207
+ | `plugin-sdk/models-provider-runtime` | `/models` command/provider reply helpers |
208
+ | `plugin-sdk/skill-commands-runtime` | Skill command listing helpers |
209
+ | `plugin-sdk/native-command-registry` | Native command registry/build/serialize helpers |
210
+ | `plugin-sdk/provider-zai-endpoint` | Z.AI endpoint detection helpers |
211
+ | `plugin-sdk/infra-runtime` | System event/heartbeat helpers |
212
+ | `plugin-sdk/collection-runtime` | Small bounded cache helpers |
213
+ | `plugin-sdk/diagnostic-runtime` | Diagnostic flag and event helpers |
214
+ | `plugin-sdk/error-runtime` | Error graph, formatting, shared error classification helpers, `isApprovalNotFoundError` |
215
+ | `plugin-sdk/fetch-runtime` | Wrapped fetch, proxy, and pinned lookup helpers |
216
+ | `plugin-sdk/host-runtime` | Hostname and SCP host normalization helpers |
217
+ | `plugin-sdk/retry-runtime` | Retry config and retry runner helpers |
218
+ | `plugin-sdk/agent-runtime` | Agent dir/identity/workspace helpers |
219
+ | `plugin-sdk/directory-runtime` | Config-backed directory query/dedup |
220
+ | `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
221
+ </Accordion>
222
+
223
+ <Accordion title="Capability and testing subpaths">
224
+ | Subpath | Key exports |
225
+ | --- | --- |
226
+ | `plugin-sdk/media-runtime` | Shared media fetch/transform/store helpers plus media payload builders |
227
+ | `plugin-sdk/media-understanding` | Media understanding provider types plus provider-facing image/audio helper exports |
228
+ | `plugin-sdk/text-runtime` | Shared text/markdown/logging helpers such as assistant-visible-text stripping, markdown render/chunking/table helpers, redaction helpers, directive-tag helpers, and safe-text utilities |
229
+ | `plugin-sdk/text-chunking` | Outbound text chunking helper |
230
+ | `plugin-sdk/speech` | Speech provider types plus provider-facing directive, registry, and validation helpers |
231
+ | `plugin-sdk/speech-core` | Shared speech provider types, registry, directive, and normalization helpers |
232
+ | `plugin-sdk/realtime-transcription` | Realtime transcription provider types and registry helpers |
233
+ | `plugin-sdk/realtime-voice` | Realtime voice provider types and registry helpers |
234
+ | `plugin-sdk/image-generation` | Image generation provider types |
235
+ | `plugin-sdk/image-generation-core` | Shared image-generation types, failover, auth, and registry helpers |
236
+ | `plugin-sdk/video-generation` | Video generation provider/request/result types |
237
+ | `plugin-sdk/video-generation-core` | Shared video-generation types, failover helpers, provider lookup, and model-ref parsing |
238
+ | `plugin-sdk/webhook-targets` | Webhook target registry and route-install helpers |
239
+ | `plugin-sdk/webhook-path` | Webhook path normalization helpers |
240
+ | `plugin-sdk/web-media` | Shared remote/local media loading helpers |
241
+ | `plugin-sdk/zod` | Re-exported `zod` for plugin SDK consumers |
242
+ | `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
243
+ </Accordion>
244
+
245
+ <Accordion title="Memory subpaths">
246
+ | Subpath | Key exports |
247
+ | --- | --- |
248
+ | `plugin-sdk/memory-core` | Bundled memory-core helper surface for manager/config/file/CLI helpers |
249
+ | `plugin-sdk/memory-core-engine-runtime` | Memory index/search runtime facade |
250
+ | `plugin-sdk/memory-core-host-engine-foundation` | Memory host foundation engine exports |
251
+ | `plugin-sdk/memory-core-host-engine-embeddings` | Memory host embedding engine exports |
252
+ | `plugin-sdk/memory-core-host-engine-qmd` | Memory host QMD engine exports |
253
+ | `plugin-sdk/memory-core-host-engine-storage` | Memory host storage engine exports |
254
+ | `plugin-sdk/memory-core-host-multimodal` | Memory host multimodal helpers |
255
+ | `plugin-sdk/memory-core-host-query` | Memory host query helpers |
256
+ | `plugin-sdk/memory-core-host-secret` | Memory host secret helpers |
257
+ | `plugin-sdk/memory-core-host-status` | Memory host status helpers |
258
+ | `plugin-sdk/memory-core-host-runtime-cli` | Memory host CLI runtime helpers |
259
+ | `plugin-sdk/memory-core-host-runtime-core` | Memory host core runtime helpers |
260
+ | `plugin-sdk/memory-core-host-runtime-files` | Memory host file/runtime helpers |
261
+ | `plugin-sdk/memory-lancedb` | Bundled memory-lancedb helper surface |
262
+ </Accordion>
263
+
264
+ <Accordion title="Reserved bundled-helper subpaths">
265
+ | Family | Current subpaths | Intended use |
266
+ | --- | --- | --- |
267
+ | Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-support` | Bundled browser plugin support helpers |
268
+ | Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Bundled Matrix helper/runtime surface |
269
+ | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Bundled LINE helper/runtime surface |
270
+ | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Bundled IRC helper surface |
271
+ | Channel-specific helpers | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Bundled channel compatibility/helper seams |
272
+ | Auth/plugin-specific helpers | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Bundled feature/plugin helper seams; `plugin-sdk/github-copilot-token` currently exports `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken`, and `resolveCopilotApiToken` |
273
+ </Accordion>
274
+ </AccordionGroup>
275
+
276
+ ## Registration API
277
+
278
+ The `register(api)` callback receives an `DurarPluginApi` object with these
279
+ methods:
280
+
281
+ ### Capability registration
282
+
283
+ | Method | What it registers |
284
+ | ------------------------------------------------ | -------------------------------- |
285
+ | `api.registerProvider(...)` | Text inference (LLM) |
286
+ | `api.registerCliBackend(...)` | Local CLI inference backend |
287
+ | `api.registerChannel(...)` | Messaging channel |
288
+ | `api.registerSpeechProvider(...)` | Text-to-speech / STT synthesis |
289
+ | `api.registerRealtimeTranscriptionProvider(...)` | Streaming realtime transcription |
290
+ | `api.registerRealtimeVoiceProvider(...)` | Duplex realtime voice sessions |
291
+ | `api.registerMediaUnderstandingProvider(...)` | Image/audio/video analysis |
292
+ | `api.registerImageGenerationProvider(...)` | Image generation |
293
+ | `api.registerVideoGenerationProvider(...)` | Video generation |
294
+ | `api.registerWebFetchProvider(...)` | Web fetch / scrape provider |
295
+ | `api.registerWebSearchProvider(...)` | Web search |
296
+
297
+ ### Tools and commands
298
+
299
+ | Method | What it registers |
300
+ | ------------------------------- | --------------------------------------------- |
301
+ | `api.registerTool(tool, opts?)` | Agent tool (required or `{ optional: true }`) |
302
+ | `api.registerCommand(def)` | Custom command (bypasses the LLM) |
303
+
304
+ ### Infrastructure
305
+
306
+ | Method | What it registers |
307
+ | ---------------------------------------------- | --------------------- |
308
+ | `api.registerHook(events, handler, opts?)` | Event hook |
309
+ | `api.registerHttpRoute(params)` | Gateway HTTP endpoint |
310
+ | `api.registerGatewayMethod(name, handler)` | Gateway RPC method |
311
+ | `api.registerCli(registrar, opts?)` | CLI subcommand |
312
+ | `api.registerService(service)` | Background service |
313
+ | `api.registerInteractiveHandler(registration)` | Interactive handler |
314
+
315
+ Reserved core admin namespaces (`config.*`, `exec.approvals.*`, `wizard.*`,
316
+ `update.*`) always stay `operator.admin`, even if a plugin tries to assign a
317
+ narrower gateway method scope. Prefer plugin-specific prefixes for
318
+ plugin-owned methods.
319
+
320
+ ### CLI registration metadata
321
+
322
+ `api.registerCli(registrar, opts?)` accepts two kinds of top-level metadata:
323
+
324
+ - `commands`: explicit command roots owned by the registrar
325
+ - `descriptors`: parse-time command descriptors used for root CLI help,
326
+ routing, and lazy plugin CLI registration
327
+
328
+ If you want a plugin command to stay lazy-loaded in the normal root CLI path,
329
+ provide `descriptors` that cover every top-level command root exposed by that
330
+ registrar.
331
+
332
+ ```typescript
333
+ api.registerCli(
334
+ async ({ program }) => {
335
+ const { registerMatrixCli } = await import("./src/cli.js");
336
+ registerMatrixCli({ program });
337
+ },
338
+ {
339
+ descriptors: [
340
+ {
341
+ name: "matrix",
342
+ description: "Manage Matrix accounts, verification, devices, and profile state",
343
+ hasSubcommands: true,
344
+ },
345
+ ],
346
+ },
347
+ );
348
+ ```
349
+
350
+ Use `commands` by itself only when you do not need lazy root CLI registration.
351
+ That eager compatibility path remains supported, but it does not install
352
+ descriptor-backed placeholders for parse-time lazy loading.
353
+
354
+ ### CLI backend registration
355
+
356
+ `api.registerCliBackend(...)` lets a plugin own the default config for a local
357
+ AI CLI backend such as `claude-cli` or `codex-cli`.
358
+
359
+ - The backend `id` becomes the provider prefix in model refs like `claude-cli/opus`.
360
+ - The backend `config` uses the same shape as `agents.defaults.cliBackends.<id>`.
361
+ - User config still wins. Durar merges `agents.defaults.cliBackends.<id>` over the
362
+ plugin default before running the CLI.
363
+ - Use `normalizeConfig` when a backend needs compatibility rewrites after merge
364
+ (for example normalizing old flag shapes).
365
+
366
+ ### Exclusive slots
367
+
368
+ | Method | What it registers |
369
+ | ------------------------------------------ | ------------------------------------- |
370
+ | `api.registerContextEngine(id, factory)` | Context engine (one active at a time) |
371
+ | `api.registerMemoryPromptSection(builder)` | Memory prompt section builder |
372
+ | `api.registerMemoryFlushPlan(resolver)` | Memory flush plan resolver |
373
+ | `api.registerMemoryRuntime(runtime)` | Memory runtime adapter |
374
+
375
+ ### Memory embedding adapters
376
+
377
+ | Method | What it registers |
378
+ | ---------------------------------------------- | ---------------------------------------------- |
379
+ | `api.registerMemoryEmbeddingProvider(adapter)` | Memory embedding adapter for the active plugin |
380
+
381
+ - `registerMemoryPromptSection`, `registerMemoryFlushPlan`, and
382
+ `registerMemoryRuntime` are exclusive to memory plugins.
383
+ - `registerMemoryEmbeddingProvider` lets the active memory plugin register one
384
+ or more embedding adapter ids (for example `openai`, `gemini`, or a custom
385
+ plugin-defined id).
386
+ - User config such as `agents.defaults.memorySearch.provider` and
387
+ `agents.defaults.memorySearch.fallback` resolves against those registered
388
+ adapter ids.
389
+
390
+ ### Events and lifecycle
391
+
392
+ | Method | What it does |
393
+ | -------------------------------------------- | ----------------------------- |
394
+ | `api.on(hookName, handler, opts?)` | Typed lifecycle hook |
395
+ | `api.onConversationBindingResolved(handler)` | Conversation binding callback |
396
+
397
+ ### Hook decision semantics
398
+
399
+ - `before_tool_call`: returning `{ block: true }` is terminal. Once any handler sets it, lower-priority handlers are skipped.
400
+ - `before_tool_call`: returning `{ block: false }` is treated as no decision (same as omitting `block`), not as an override.
401
+ - `before_install`: returning `{ block: true }` is terminal. Once any handler sets it, lower-priority handlers are skipped.
402
+ - `before_install`: returning `{ block: false }` is treated as no decision (same as omitting `block`), not as an override.
403
+ - `reply_dispatch`: returning `{ handled: true, ... }` is terminal. Once any handler claims dispatch, lower-priority handlers and the default model dispatch path are skipped.
404
+ - `message_sending`: returning `{ cancel: true }` is terminal. Once any handler sets it, lower-priority handlers are skipped.
405
+ - `message_sending`: returning `{ cancel: false }` is treated as no decision (same as omitting `cancel`), not as an override.
406
+
407
+ ### API object fields
408
+
409
+ | Field | Type | Description |
410
+ | ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
411
+ | `api.id` | `string` | Plugin id |
412
+ | `api.name` | `string` | Display name |
413
+ | `api.version` | `string?` | Plugin version (optional) |
414
+ | `api.description` | `string?` | Plugin description (optional) |
415
+ | `api.source` | `string` | Plugin source path |
416
+ | `api.rootDir` | `string?` | Plugin root directory (optional) |
417
+ | `api.config` | `DurarConfig` | Current config snapshot (active in-memory runtime snapshot when available) |
418
+ | `api.pluginConfig` | `Record<string, unknown>` | Plugin-specific config from `plugins.entries.<id>.config` |
419
+ | `api.runtime` | `PluginRuntime` | [Runtime helpers](/plugins/sdk-runtime) |
420
+ | `api.logger` | `PluginLogger` | Scoped logger (`debug`, `info`, `warn`, `error`) |
421
+ | `api.registrationMode` | `PluginRegistrationMode` | Current load mode; `"setup-runtime"` is the lightweight pre-full-entry startup/setup window |
422
+ | `api.resolvePath(input)` | `(string) => string` | Resolve path relative to plugin root |
423
+
424
+ ## Internal module convention
425
+
426
+ Within your plugin, use local barrel files for internal imports:
427
+
428
+ ```
429
+ my-plugin/
430
+ api.ts # Public exports for external consumers
431
+ runtime-api.ts # Internal-only runtime exports
432
+ index.ts # Plugin entry point
433
+ setup-entry.ts # Lightweight setup-only entry (optional)
434
+ ```
435
+
436
+ <Warning>
437
+ Never import your own plugin through `Durar/plugin-sdk/<your-plugin>`
438
+ from production code. Route internal imports through `./api.ts` or
439
+ `./runtime-api.ts`. The SDK path is the external contract only.
440
+ </Warning>
441
+
442
+ Facade-loaded bundled plugin public surfaces (`api.ts`, `runtime-api.ts`,
443
+ `index.ts`, `setup-entry.ts`, and similar public entry files) now prefer the
444
+ active runtime config snapshot when Durar is already running. If no runtime
445
+ snapshot exists yet, they fall back to the resolved config file on disk.
446
+
447
+ Provider plugins can also expose a narrow plugin-local contract barrel when a
448
+ helper is intentionally provider-specific and does not belong in a generic SDK
449
+ subpath yet. Current bundled example: the Anthropic provider keeps its Claude
450
+ stream helpers in its own public `api.ts` / `contract-api.ts` seam instead of
451
+ promoting Anthropic beta-header and `service_tier` logic into a generic
452
+ `plugin-sdk/*` contract.
453
+
454
+ Other current bundled examples:
455
+
456
+ - `@Durar/openai-provider`: `api.ts` exports provider builders,
457
+ default-model helpers, and realtime provider builders
458
+ - `@Durar/openrouter-provider`: `api.ts` exports the provider builder plus
459
+ onboarding/config helpers
460
+
461
+ <Warning>
462
+ Extension production code should also avoid `Durar/plugin-sdk/<other-plugin>`
463
+ imports. If a helper is truly shared, promote it to a neutral SDK subpath
464
+ such as `Durar/plugin-sdk/speech`, `.../provider-model-shared`, or another
465
+ capability-oriented surface instead of coupling two plugins together.
466
+ </Warning>
467
+
468
+ ## Related
469
+
470
+ - [Entry Points](/plugins/sdk-entrypoints) — `definePluginEntry` and `defineChannelPluginEntry` options
471
+ - [Runtime Helpers](/plugins/sdk-runtime) — full `api.runtime` namespace reference
472
+ - [Setup and Config](/plugins/sdk-setup) — packaging, manifests, config schemas
473
+ - [Testing](/plugins/sdk-testing) — test utilities and lint rules
474
+ - [SDK Migration](/plugins/sdk-migration) — migrating from deprecated surfaces
475
+ - [Plugin Internals](/plugins/architecture) — deep architecture and capability model