silentlake 2026.3.24

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 (1893) hide show
  1. package/CHANGELOG.md +4587 -0
  2. package/LICENSE +21 -0
  3. package/README.md +248 -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/assets/silentlake-banner.png +0 -0
  12. package/dist/APEv2Parser-BZv_dP9t.js +269 -0
  13. package/dist/APEv2Parser-CPzxFNBB.js +5 -0
  14. package/dist/AbstractID3Parser-mvDFcjYV.js +47 -0
  15. package/dist/AiffParser-BXQ9SRZk.js +145 -0
  16. package/dist/AsfParser-CmBDUlZE.js +631 -0
  17. package/dist/BasicParser-DhmXREDo.js +853 -0
  18. package/dist/DsdiffParser-CTKKGyZg.js +150 -0
  19. package/dist/DsfParser-Ds-YQe4Z.js +101 -0
  20. package/dist/FlacParser-B1XVPgXF.js +5 -0
  21. package/dist/FlacParser-DMPyL1y4.js +367 -0
  22. package/dist/ID3v1Parser-BICWWVDG.js +289 -0
  23. package/dist/ID3v2Parser-BmZHSUqs.js +650 -0
  24. package/dist/ID3v2Token-DeJf4tYQ.js +145 -0
  25. package/dist/MP4Parser-Cjf-Zs8T.js +1061 -0
  26. package/dist/MatroskaParser-DgBzBe8t.js +909 -0
  27. package/dist/MpegParser-D5swTpA1.js +744 -0
  28. package/dist/MusepackParser-D8EQXnpK.js +285 -0
  29. package/dist/OggParser-BcIYPHwP.js +390 -0
  30. package/dist/Util-D_zGsr97.js +170 -0
  31. package/dist/WavPackParser-hosU8gfo.js +166 -0
  32. package/dist/WaveParser-CA00FZrC.js +273 -0
  33. package/dist/abort-cutoff-CERmtgZI.js +56 -0
  34. package/dist/abort-cutoff.runtime-DZkGKKzv.js +61 -0
  35. package/dist/abort-signal-CsrBEr94.js +13 -0
  36. package/dist/account-helpers-D3c_eI7c.js +37 -0
  37. package/dist/account-helpers-ru3jdZSV.js +12 -0
  38. package/dist/account-id-DZnNZg8x.js +1 -0
  39. package/dist/account-id-ZCrgXl7Z.js +44 -0
  40. package/dist/account-lookup-nkoa-foB.js +10 -0
  41. package/dist/account-snapshot-fields-Cvq7803C.js +116 -0
  42. package/dist/account-summary-B5Xzvntm.js +36 -0
  43. package/dist/accounts-43SvCDEA.js +212 -0
  44. package/dist/accounts-CYgFhv2o.js +105 -0
  45. package/dist/accounts-ChlyF7cx.js +112 -0
  46. package/dist/ack-reactions-CNVwfOBj.js +43 -0
  47. package/dist/acp-cli-B4Rv7-xU.js +2033 -0
  48. package/dist/acp-runtime-BdLdT-QY.js +1 -0
  49. package/dist/actions.runtime-CqnQssoB.js +217 -0
  50. package/dist/actions.runtime-FLmCvVRd.js +236 -0
  51. package/dist/agent-CBOdzEvR.js +1 -0
  52. package/dist/agent-scope-BLhzf-o0.js +17 -0
  53. package/dist/agent-scope-DPP4Z_UU.js +193 -0
  54. package/dist/agents-D8pBK0II.js +855 -0
  55. package/dist/agents-Dihz1Ihx.js +323 -0
  56. package/dist/agents.config-C_lrnc9J.js +18 -0
  57. package/dist/agents.config-D1VqC78r.js +121 -0
  58. package/dist/allow-from-BPSBITdd.js +9 -0
  59. package/dist/allow-from-BwTLpvhp.js +20 -0
  60. package/dist/allow-from-C4iBpqFI.js +62 -0
  61. package/dist/allowlist-config-edit-CKbnMmwS.js +279 -0
  62. package/dist/allowlist-match-CYmPgg1K.js +63 -0
  63. package/dist/ansi-BEJF8NKS.js +54 -0
  64. package/dist/anthropic-vertex-provider-Dd5agCN9.js +60 -0
  65. package/dist/apply.runtime-DhKxNSJE.js +370 -0
  66. package/dist/apply.runtime-ghlh-P6X.js +211 -0
  67. package/dist/archive-Tr0wIUO-.js +532 -0
  68. package/dist/arg-split-Dtda0YDl.js +38 -0
  69. package/dist/artifacts-C_4LekPC.js +39 -0
  70. package/dist/audit-BOPSQQtd.js +54 -0
  71. package/dist/audit-C5kdrCi_.js +788 -0
  72. package/dist/audit-channel.allow-from.runtime-B7BHNblL.js +17 -0
  73. package/dist/audit-channel.collect.runtime-CjAbXFBV.js +521 -0
  74. package/dist/audit-channel.discord.runtime-BBY6S9lg.js +5 -0
  75. package/dist/audit-channel.telegram.runtime-SJnxOJH2.js +8 -0
  76. package/dist/audit-channel.zalouser.runtime-SGRWvHxT.js +5 -0
  77. package/dist/audit-extra.async-DY8v7LXH.js +817 -0
  78. package/dist/audit-fs-oDMUa5N_.js +375 -0
  79. package/dist/audit-membership-runtime-BPjFryEx.js +261 -0
  80. package/dist/audit.deep.runtime-WFf-TpsD.js +31 -0
  81. package/dist/audit.nondeep.runtime-B4BaEaRU.js +842 -0
  82. package/dist/audit.runtime-rFjCrods.js +74 -0
  83. package/dist/auth-O6LQFLHJ.js +416 -0
  84. package/dist/auth-choice-DIBaxmAQ.js +219 -0
  85. package/dist/auth-choice-PrbpIjyg.js +610 -0
  86. package/dist/auth-choice-legacy-Clyw2lVc.js +17 -0
  87. package/dist/auth-choice-options-ohUw8QR-.js +127 -0
  88. package/dist/auth-choice-prompt-Cm0s-9Du.js +215 -0
  89. package/dist/auth-choice-prompt-DI-Xl1Nv.js +36 -0
  90. package/dist/auth-choice-rKBOd02a.js +64 -0
  91. package/dist/auth-choice.apply-helpers-BibBSEl9.js +66 -0
  92. package/dist/auth-choice.plugin-providers.runtime-gqF9NO7_.js +219 -0
  93. package/dist/auth-health-TWboMYA5.js +166 -0
  94. package/dist/auth-mode-policy-DywddkT-.js +18 -0
  95. package/dist/auth-profiles-CWEIQV77.js +1047 -0
  96. package/dist/auth-profiles.runtime-B98lwopF.js +48 -0
  97. package/dist/avatar-policy-Ds9e6uHI.js +67 -0
  98. package/dist/axios-xDDnM0KG.js +12831 -0
  99. package/dist/backup-create-B6JAR6jJ.js +461 -0
  100. package/dist/banner-bez5CpOK.js +351 -0
  101. package/dist/base-session-key-Cf2rkwag.js +14 -0
  102. package/dist/bindings-BV4AtNSY.js +21 -0
  103. package/dist/bindings-kjwuC11Q.js +69 -0
  104. package/dist/bluebubbles-C1M3Geg0.js +87 -0
  105. package/dist/bluebubbles-DRW3JdOY.js +603 -0
  106. package/dist/bluebubbles-dEl4QpYz.js +37 -0
  107. package/dist/bonjour-discovery-C2oY96BG.js +376 -0
  108. package/dist/boolean-DKtCJu_W.js +29 -0
  109. package/dist/boolean-param-xAGXUSSN.js +13 -0
  110. package/dist/boundary-file-read-BP6VMpqH.js +106 -0
  111. package/dist/boundary-path-B3FFLYNx.js +557 -0
  112. package/dist/brave-CkimJe4j.js +405 -0
  113. package/dist/brew-DSwWqzLd.js +44 -0
  114. package/dist/browser-cli-D3kBUBNc.js +1502 -0
  115. package/dist/bundled/boot-md/handler.js +381 -0
  116. package/dist/bundled/bootstrap-extra-files/handler.js +56 -0
  117. package/dist/bundled/command-logger/handler.js +62 -0
  118. package/dist/bundled/session-memory/handler.js +401 -0
  119. package/dist/call-BDvaXe4i.js +44 -0
  120. package/dist/call-BmLt3xO1.js +639 -0
  121. package/dist/catalog-BwAYUfL7.js +240 -0
  122. package/dist/channel-BBCuV5OT.js +4945 -0
  123. package/dist/channel-BDBXuqeg.js +321 -0
  124. package/dist/channel-C8h1Irxm.js +1284 -0
  125. package/dist/channel-CbGpFzo4.js +1602 -0
  126. package/dist/channel-Ci3K8fI9.js +1006 -0
  127. package/dist/channel-DGT5N1v7.js +1077 -0
  128. package/dist/channel-account-context-Bwa-YH_o.js +104 -0
  129. package/dist/channel-actions-DU2CR3xW.js +37 -0
  130. package/dist/channel-activity-B8aReQoE.js +35 -0
  131. package/dist/channel-config-3Uv6ve2_.js +115 -0
  132. package/dist/channel-config-helpers-CieQWILI.js +377 -0
  133. package/dist/channel-config-schema-DEVsCZpj.js +1 -0
  134. package/dist/channel-feedback-G6zh8efr.js +245 -0
  135. package/dist/channel-inbound-DwzVf2PK.js +395 -0
  136. package/dist/channel-lifecycle-CpU1dRbh.js +354 -0
  137. package/dist/channel-options-DJaIP4Dv.js +38 -0
  138. package/dist/channel-pairing-D54mn51y.js +66 -0
  139. package/dist/channel-plugin-common-BhTxCE5t.js +1 -0
  140. package/dist/channel-plugin-ids-CFeS3qir.js +26 -0
  141. package/dist/channel-plugin-resolution-DUngfdFj.js +112 -0
  142. package/dist/channel-policy-C4GKHvhz.js +1 -0
  143. package/dist/channel-reply-pipeline-CPTuaW8n.js +15 -0
  144. package/dist/channel-send-result-By8EpCPw.js +40 -0
  145. package/dist/channel-setup-Ck35g7zI.js +49 -0
  146. package/dist/channel-shared-LkXtTPXk.js +308 -0
  147. package/dist/channel-summary-CdYLGMVt.js +137 -0
  148. package/dist/channel-summary-D33z52ft.js +41 -0
  149. package/dist/channel-targets-DfnKGXez.js +87 -0
  150. package/dist/channel.runtime-DAyBR2A5.js +324 -0
  151. package/dist/channel.runtime-DVq5tC2D.js +35 -0
  152. package/dist/channel.runtime-DaLTDGtF.js +288 -0
  153. package/dist/channel.runtime-FKfTev2g.js +512 -0
  154. package/dist/channel.runtime-owqedh1t.js +268 -0
  155. package/dist/channel.runtime-wOTeiifp.js +230 -0
  156. package/dist/channels-CIHgkPea.js +408 -0
  157. package/dist/channels-ZXK6Jiuk.js +1393 -0
  158. package/dist/channels-cli-Bj6qSlkE.js +412 -0
  159. package/dist/channels-status-issues-C_U44M8Y.js +16 -0
  160. package/dist/chat-type-C-n03mQY.js +10 -0
  161. package/dist/clack-prompter-DuzDnaLi.js +112 -0
  162. package/dist/clawbot-cli-YNPuwmTB.js +218 -0
  163. package/dist/cli/daemon-cli.js +88 -0
  164. package/dist/cli-CW46WAZn.js +254 -0
  165. package/dist/cli-name-Daok7A7-.js +25 -0
  166. package/dist/cli-runtime-aAVwbEYy.js +7 -0
  167. package/dist/cli-utils-Np4NAAtt.js +39 -0
  168. package/dist/command-format-CYK9XiUC.js +16 -0
  169. package/dist/command-format-g8YUHNir.js +2 -0
  170. package/dist/command-gating-BQXGSqc9.js +40 -0
  171. package/dist/command-options-5coRiipK.js +25 -0
  172. package/dist/command-poll-backoff-CpkSns-6.js +56 -0
  173. package/dist/command-poll-backoff.runtime-YT6EGcLN.js +7 -0
  174. package/dist/command-registry-BI2MOs89.js +242 -0
  175. package/dist/command-registry-BMsxnuoC.js +14 -0
  176. package/dist/command-secret-gateway-ChXyZwos.js +211 -0
  177. package/dist/command-secret-targets-COcwhn-D.js +88 -0
  178. package/dist/command-secret-targets-CQJT3viO.js +3 -0
  179. package/dist/commands-Bb9xUwz9.js +42 -0
  180. package/dist/commands-core-C1usZXC2.js +4923 -0
  181. package/dist/commands-core.runtime-OTZivlO2.js +232 -0
  182. package/dist/commands-registry-ChCep1KJ.js +295 -0
  183. package/dist/commands-registry.data-XyUTELK9.js +904 -0
  184. package/dist/commands-registry.runtime-m5WTxFtv.js +25 -0
  185. package/dist/commands-status.runtime-C8_hpNgj.js +211 -0
  186. package/dist/commands.runtime-BZPnQKcW.js +232 -0
  187. package/dist/common-CUBlLRXB.js +457 -0
  188. package/dist/compact.runtime-Djmzpbn6.js +216 -0
  189. package/dist/completion-cli-D8tLgE5W.js +445 -0
  190. package/dist/completion-cli-Dz89naVA.js +17 -0
  191. package/dist/config-6sZwvXJD.js +88 -0
  192. package/dist/config-B7tPwoHZ.js +38 -0
  193. package/dist/config-DdDLrP_v.js +273 -0
  194. package/dist/config-cli-C10R8azD.js +945 -0
  195. package/dist/config-guard-B1c73BYQ.js +126 -0
  196. package/dist/config-helpers-3u5wfLBu.js +117 -0
  197. package/dist/config-pn7LKJdW.js +23 -0
  198. package/dist/config-presence-BmUF_5K9.js +79 -0
  199. package/dist/config-regex-CvZFnWkO.js +39 -0
  200. package/dist/config-runtime-CstET7fq.js +142 -0
  201. package/dist/config-schema-5YkIW1xw.js +270 -0
  202. package/dist/config-schema-B1UGMwZ8.js +31 -0
  203. package/dist/config-schema-DzlnsY3D.js +33 -0
  204. package/dist/config-state-CE0CGjey.js +288 -0
  205. package/dist/config-validation-CkVqgkHr.js +272 -0
  206. package/dist/config-value-DgJrpclm.js +25 -0
  207. package/dist/configure-DMkp7Sr4.js +1126 -0
  208. package/dist/configure-DOrQthLy.js +344 -0
  209. package/dist/connection-auth-BSQJeDOU.js +30 -0
  210. package/dist/constants-C_Scc680.js +71 -0
  211. package/dist/control-ui-assets-DjqeIg6A.js +232 -0
  212. package/dist/control-ui-shared-DP000Pxd.js +29 -0
  213. package/dist/conversation-runtime-1O0Aaolb.js +1458 -0
  214. package/dist/core-C7aHA4Aq.js +187 -0
  215. package/dist/core-command-descriptors-DCUYAEZd.js +96 -0
  216. package/dist/credentials-BPwBlm1X.js +265 -0
  217. package/dist/cron-cli-N2Hw_02d.js +579 -0
  218. package/dist/daemon-cli-DgfaF9xx.js +354 -0
  219. package/dist/daemon-install-CbclJo5M.js +134 -0
  220. package/dist/daemon-install-plan.shared-DK6BHlWI.js +222 -0
  221. package/dist/daemon-runtime-CbClrCwc.js +12 -0
  222. package/dist/dangerous-config-flags-BJtLWIk7.js +15 -0
  223. package/dist/dangerous-name-matching-DZa_t0RM.js +44 -0
  224. package/dist/dangerous-tools-yGPDFTHh.js +27 -0
  225. package/dist/date-time-DCAyaBop.js +118 -0
  226. package/dist/dedupe-Cgnk5BbX.js +55 -0
  227. package/dist/defaults-CEdZhIIb.js +6 -0
  228. package/dist/delegate-D4ql5N70.js +43 -0
  229. package/dist/deliver-B004w1Mv.js +212 -0
  230. package/dist/deliver-runtime-IYvc0giI.js +211 -0
  231. package/dist/delivery-queue-B19wDCjT.js +3 -0
  232. package/dist/delivery-queue-DrrqB4Hi.js +299 -0
  233. package/dist/device-auth-GEXe9vqR.js +15 -0
  234. package/dist/device-bootstrap-CwwokLEY.js +96 -0
  235. package/dist/device-bootstrap-Dbhe6oe8.js +1 -0
  236. package/dist/device-metadata-normalization-BDSQ_eA7.js +21 -0
  237. package/dist/device-pairing-cFWbBray.js +553 -0
  238. package/dist/devices-cli-DzycjFzS.js +366 -0
  239. package/dist/diagnostic-DqJXx_4Q.js +310 -0
  240. package/dist/diagnostic-events-ktCoG8Br.js +48 -0
  241. package/dist/diagnostics-CMhyGsPu.js +33 -0
  242. package/dist/diagnostics-DpLHpQ9c.js +14 -0
  243. package/dist/directive-handling.fast-lane-toP_ri_H.js +273 -0
  244. package/dist/directive-handling.impl-BRARyrsT.js +638 -0
  245. package/dist/directive-handling.impl-CUB4MOnK.js +214 -0
  246. package/dist/directive-handling.levels-8vnMeuGX.js +2 -0
  247. package/dist/directive-handling.levels-CoruY1AA.js +13 -0
  248. package/dist/directive-handling.persist.runtime-78Du6PgL.js +170 -0
  249. package/dist/directive-handling.shared-DCGUCHjn.js +147 -0
  250. package/dist/directory-cli-DVsDcgIU.js +437 -0
  251. package/dist/directory-config-helpers-CURJ8mj7.js +129 -0
  252. package/dist/directory-runtime-DhC8QkMq.js +19 -0
  253. package/dist/directory.static-DQaG9ohH.js +44 -0
  254. package/dist/discord-CYj8s73O.js +214 -0
  255. package/dist/discord-L9zvSHVn.js +635 -0
  256. package/dist/discord-core-5tkl-BzP.js +1 -0
  257. package/dist/dm-policy-shared-6bCJzHOS.js +188 -0
  258. package/dist/dns-cli-BMvHy265.js +223 -0
  259. package/dist/docker-XFNiArwM.js +1254 -0
  260. package/dist/docs-cli-BTaH94wD.js +176 -0
  261. package/dist/doctor-completion-DKx5m2UC.js +90 -0
  262. package/dist/doctor-config-preflight-BzQgc3_t.js +40 -0
  263. package/dist/doctor-config-preflight-DxVCut8L.js +150 -0
  264. package/dist/doctor-state-migrations-CTF66iAy.js +732 -0
  265. package/dist/doctor-state-migrations-D0VP4dUh.js +212 -0
  266. package/dist/entry-status-B2OWAf0s.js +172 -0
  267. package/dist/entry.js +210 -0
  268. package/dist/env-BP70DGuy.js +30 -0
  269. package/dist/env-overrides-JneV60sd.js +434 -0
  270. package/dist/env-overrides.runtime-DLrwions.js +18 -0
  271. package/dist/env-substitution-D6t_sLS_.js +136 -0
  272. package/dist/errors-BxyFnvP3.js +58 -0
  273. package/dist/exec-Dmex2w_d.js +310 -0
  274. package/dist/exec-approvals-BJhuySBz.js +386 -0
  275. package/dist/exec-approvals-allowlist-B_wPddCb.js +384 -0
  276. package/dist/exec-approvals-cli-C2dwhSkX.js +427 -0
  277. package/dist/exec-safe-bin-runtime-policy-BZkObC8r.js +89 -0
  278. package/dist/exec-safety-CaaBy-Zw.js +24 -0
  279. package/dist/extension-shared-5txN7IXK.js +74 -0
  280. package/dist/extensionAPI.js +218 -0
  281. package/dist/extensions/amazon-bedrock/index.js +231 -0
  282. package/dist/extensions/anthropic/index.js +330 -0
  283. package/dist/extensions/bluebubbles/index.js +224 -0
  284. package/dist/extensions/bluebubbles/setup-entry.js +289 -0
  285. package/dist/extensions/brave/index.js +23 -0
  286. package/dist/extensions/byteplus/index.js +112 -0
  287. package/dist/extensions/chutes/index.js +221 -0
  288. package/dist/extensions/cloudflare-ai-gateway/index.js +218 -0
  289. package/dist/extensions/copilot-proxy/index.js +125 -0
  290. package/dist/extensions/device-pair/index.js +1040 -0
  291. package/dist/extensions/discord/index.js +215 -0
  292. package/dist/extensions/discord/setup-entry.js +215 -0
  293. package/dist/extensions/elevenlabs/index.js +223 -0
  294. package/dist/extensions/fal/index.js +112 -0
  295. package/dist/extensions/feishu/index.js +227 -0
  296. package/dist/extensions/feishu/setup-entry.js +112 -0
  297. package/dist/extensions/firecrawl/index.js +211 -0
  298. package/dist/extensions/github-copilot/index.js +490 -0
  299. package/dist/extensions/google/index.js +211 -0
  300. package/dist/extensions/huggingface/index.js +108 -0
  301. package/dist/extensions/imessage/index.js +223 -0
  302. package/dist/extensions/imessage/setup-entry.js +220 -0
  303. package/dist/extensions/irc/index.js +220 -0
  304. package/dist/extensions/irc/setup-entry.js +222 -0
  305. package/dist/extensions/kilocode/index.js +282 -0
  306. package/dist/extensions/kimi-coding/index.js +148 -0
  307. package/dist/extensions/line/index.js +57 -0
  308. package/dist/extensions/line/setup-entry.js +49 -0
  309. package/dist/extensions/llm-task/index.js +157 -0
  310. package/dist/extensions/lobster/index.js +261 -0
  311. package/dist/extensions/mattermost/index.js +220 -0
  312. package/dist/extensions/mattermost/setup-entry.js +222 -0
  313. package/dist/extensions/memory-core/index.js +36 -0
  314. package/dist/extensions/microsoft/index.js +223 -0
  315. package/dist/extensions/minimax/index.js +437 -0
  316. package/dist/extensions/mistral/index.js +149 -0
  317. package/dist/extensions/modelstudio/index.js +144 -0
  318. package/dist/extensions/moonshot/index.js +211 -0
  319. package/dist/extensions/nextcloud-talk/index.js +221 -0
  320. package/dist/extensions/nextcloud-talk/setup-entry.js +223 -0
  321. package/dist/extensions/nvidia/index.js +29 -0
  322. package/dist/extensions/ollama/index.js +118 -0
  323. package/dist/extensions/open-prose/index.js +10 -0
  324. package/dist/extensions/openai/index.js +677 -0
  325. package/dist/extensions/opencode/index.js +116 -0
  326. package/dist/extensions/opencode-go/index.js +114 -0
  327. package/dist/extensions/openrouter/index.js +398 -0
  328. package/dist/extensions/openshell/index.js +923 -0
  329. package/dist/extensions/perplexity/index.js +23 -0
  330. package/dist/extensions/phone-control/index.js +276 -0
  331. package/dist/extensions/qianfan/index.js +114 -0
  332. package/dist/extensions/qwen-portal-auth/index.js +350 -0
  333. package/dist/extensions/sglang/index.js +285 -0
  334. package/dist/extensions/signal/index.js +218 -0
  335. package/dist/extensions/signal/setup-entry.js +218 -0
  336. package/dist/extensions/slack/index.js +222 -0
  337. package/dist/extensions/slack/setup-entry.js +220 -0
  338. package/dist/extensions/synology-chat/index.js +56 -0
  339. package/dist/extensions/synology-chat/setup-entry.js +58 -0
  340. package/dist/extensions/synthetic/index.js +112 -0
  341. package/dist/extensions/talk-voice/index.js +197 -0
  342. package/dist/extensions/tavily/index.js +211 -0
  343. package/dist/extensions/telegram/index.js +221 -0
  344. package/dist/extensions/telegram/setup-entry.js +221 -0
  345. package/dist/extensions/thread-ownership/index.js +70 -0
  346. package/dist/extensions/together/index.js +113 -0
  347. package/dist/extensions/venice/index.js +132 -0
  348. package/dist/extensions/vercel-ai-gateway/index.js +86 -0
  349. package/dist/extensions/vllm/index.js +285 -0
  350. package/dist/extensions/voice-call/index.js +5715 -0
  351. package/dist/extensions/volcengine/index.js +112 -0
  352. package/dist/extensions/xai/index.js +211 -0
  353. package/dist/extensions/xiaomi/index.js +115 -0
  354. package/dist/extensions/zai/index.js +559 -0
  355. package/dist/extensions/zalo/index.js +225 -0
  356. package/dist/extensions/zalo/setup-entry.js +226 -0
  357. package/dist/external-content-BUdUOqkv.js +238 -0
  358. package/dist/feishu-CgbwAF0e.js +2664 -0
  359. package/dist/feishu-Dh5fEbh5.js +59127 -0
  360. package/dist/fetch-guard-DIyN1HW5.js +165 -0
  361. package/dist/fetch-timeout-C5xpMuGd.js +36 -0
  362. package/dist/file-identity-Cw0fQxYY.js +11 -0
  363. package/dist/file-lock-WbEmczmY.js +107 -0
  364. package/dist/filter-oMGaNOM1.js +20 -0
  365. package/dist/format-DH8ysi7s.js +19 -0
  366. package/dist/format-datetime-BGS6tLDE.js +73 -0
  367. package/dist/format-duration-CO0BGWB0.js +57 -0
  368. package/dist/format-relative-C3nDxnXz.js +54 -0
  369. package/dist/frontmatter-S5vS-I4a.js +309 -0
  370. package/dist/fs-safe-D3qzH-ab.js +731 -0
  371. package/dist/gateway-cli-PQNp7o0j.js +28378 -0
  372. package/dist/gateway-install-token-DV5KjD4F.js +164 -0
  373. package/dist/gateway-rpc-C0Ey-rik.js +26 -0
  374. package/dist/gateway-runtime-ih2e7a2K.js +42 -0
  375. package/dist/gaxios-fetch-compat-KX6bsqFm.js +165 -0
  376. package/dist/gemini-auth-B5ljg7jr.js +29 -0
  377. package/dist/git-commit-BIdLubm5.js +2 -0
  378. package/dist/git-commit-OvUvjri2.js +177 -0
  379. package/dist/github-copilot-auth-Ccm-cBwy.js +104 -0
  380. package/dist/global-singleton-4KwY5RvX.js +13 -0
  381. package/dist/globals-41sdSaKv.js +38 -0
  382. package/dist/gmail-setup-utils-BX68dZla.js +419 -0
  383. package/dist/group-access-DJZrYPx1.js +113 -0
  384. package/dist/group-keys-BD_IYSMs.js +44 -0
  385. package/dist/group-policy-CWFxv3iB.js +201 -0
  386. package/dist/group-policy-warnings-Ddu6lBkh.js +175 -0
  387. package/dist/health-Bu1sbyYy.js +573 -0
  388. package/dist/health-Cbxc9Bn3.js +59 -0
  389. package/dist/health-format-B5XfOTuJ.js +26 -0
  390. package/dist/heartbeat-7aHh0m3d.js +169 -0
  391. package/dist/heartbeat-summary-Das49TYq.js +57 -0
  392. package/dist/help-CcbF7-ha.js +81 -0
  393. package/dist/help-format-Dv45FpYu.js +15 -0
  394. package/dist/helpers-DJ-5HEbE.js +24 -0
  395. package/dist/helpers-MxyaLZUk.js +32 -0
  396. package/dist/history-CHjo8B5W.js +102 -0
  397. package/dist/hook-runtime-BnNBi_q4.js +1 -0
  398. package/dist/hooks-cli-DUYK4RM1.js +1102 -0
  399. package/dist/hooks-policy-BL6HDLUn.js +20 -0
  400. package/dist/hooks-status-gzNmo3li.js +78 -0
  401. package/dist/host-env-security-BogNN146.js +223 -0
  402. package/dist/http-body-CCiSfloA.js +237 -0
  403. package/dist/http-registry-WFFbLYRd.js +153 -0
  404. package/dist/identity-DovQV4zD.js +112 -0
  405. package/dist/identity-cyBYcoXS.js +84 -0
  406. package/dist/identity-file-EndG1nfc.js +60 -0
  407. package/dist/image-generation-CNKc-mFK.js +441 -0
  408. package/dist/image-kJ7Tbov4.js +211 -0
  409. package/dist/image-ops-j01UkxEv.js +371 -0
  410. package/dist/imessage-B5pSMT47.js +219 -0
  411. package/dist/imessage-CoIuY1Ro.js +1451 -0
  412. package/dist/imessage-Cqjsq4VW.js +190 -0
  413. package/dist/imessage-core-CsYJuaRZ.js +1 -0
  414. package/dist/inbound-envelope-4P3IIJc3.js +61 -0
  415. package/dist/inbound-reply-dispatch-i2Vekqyy.js +72 -0
  416. package/dist/includes-7XyL3p1c.js +188 -0
  417. package/dist/includes-scan-y-rS6tTw.js +55 -0
  418. package/dist/index.js +57 -0
  419. package/dist/infra/warning-filter.js +2 -0
  420. package/dist/inspect-CcxlJ1ba.js +279 -0
  421. package/dist/install-safe-path-Rwbw1XCZ.js +62 -0
  422. package/dist/installs-iHi2aSjM.js +532 -0
  423. package/dist/interactive-F7iY0yED.js +8 -0
  424. package/dist/interactive-runtime-OweOj_Vv.js +90 -0
  425. package/dist/internal-hooks-0uipqzRY.js +156 -0
  426. package/dist/io-BX49DsSJ.js +35 -0
  427. package/dist/io-jOnQRia2.js +7178 -0
  428. package/dist/ip-C8vmzVu0.js +203 -0
  429. package/dist/ipv4-DAmsJVOV.js +82 -0
  430. package/dist/irc-AZ-Ec8be.js +12 -0
  431. package/dist/irc-CCSRuEC2.js +660 -0
  432. package/dist/is-main-YViS6wOn.js +27 -0
  433. package/dist/issue-format-CBEXVico.js +31 -0
  434. package/dist/issue-format-D3HehoKZ.js +4 -0
  435. package/dist/json-file-C2zjA0Gv.js +23 -0
  436. package/dist/json-files-WW-H_psG.js +60 -0
  437. package/dist/json-pointer-f9dEnBoR.js +43 -0
  438. package/dist/json-store-O1LwpnBH.js +37 -0
  439. package/dist/kb-cli-DMZs6PCu.js +65 -0
  440. package/dist/keyed-async-queue-CPUWV5Pm.js +32 -0
  441. package/dist/kill-tree-CbjXBw3z.js +149 -0
  442. package/dist/kilocode-shared-DS7_0IMs.js +29 -0
  443. package/dist/launchd-tyqGVx9U.js +491 -0
  444. package/dist/lazy-runtime-BcXbyAaC.js +1 -0
  445. package/dist/lazy-runtime-bWkd2cs3.js +29 -0
  446. package/dist/legacy-names-CUNZ4vHN.js +7 -0
  447. package/dist/legacy-web-search-BgZjNG2h.js +222 -0
  448. package/dist/lib-CERS7N4b.js +503 -0
  449. package/dist/lib-PPICrHv1.js +1938 -0
  450. package/dist/library-CZ461krl.js +211 -0
  451. package/dist/lifecycle-core-Dnxnw0oy.js +382 -0
  452. package/dist/line/accounts.js +10 -0
  453. package/dist/line/send.js +39 -0
  454. package/dist/line/template-messages.js +2 -0
  455. package/dist/line-CJSvwApm.js +1 -0
  456. package/dist/line-N9vL-2JB.js +688 -0
  457. package/dist/line-core-BOIxkjgu.js +1 -0
  458. package/dist/links-Bilm-v0z.js +13 -0
  459. package/dist/llm-slug-generator-BuAuQ5Ft.js +68 -0
  460. package/dist/llm-slug-generator.js +212 -0
  461. package/dist/llm-task-Dx8ymRFr.js +1 -0
  462. package/dist/local-roots-DAzCjWbC.js +34 -0
  463. package/dist/location-DefAH9WS.js +42 -0
  464. package/dist/logger-CoEtkjhn.js +550 -0
  465. package/dist/logger-Cqy7-Maj.js +70 -0
  466. package/dist/logging-B2wMcpWV.js +13 -0
  467. package/dist/logging-Bz1qZDPg.js +16 -0
  468. package/dist/logging-CArEWRgI.js +36 -0
  469. package/dist/logging-CbTTfADU.js +1 -0
  470. package/dist/logs-cli-BSjKwaur.js +261 -0
  471. package/dist/magic-string.es-DJPWMt-n.js +1011 -0
  472. package/dist/main-session-DKr0lBVk.js +36 -0
  473. package/dist/manager-ChTGDe87.js +2005 -0
  474. package/dist/manager-DuwFn87U.js +4226 -0
  475. package/dist/manager-runtime-E16jsvRe.js +59 -0
  476. package/dist/manager.runtime-F9F1eFiB.js +827 -0
  477. package/dist/manifest-registry-B90TyTWl.js +1350 -0
  478. package/dist/map-size-CMTQVKUV.js +15 -0
  479. package/dist/markdown-to-line-BWwaRx5F.js +640 -0
  480. package/dist/mask-api-key-CprzEe7l.js +10 -0
  481. package/dist/matrix-DzvdUw97.js +228 -0
  482. package/dist/matrix-migration-snapshot-adoDbNii.js +702 -0
  483. package/dist/mattermost-DO0BCfF3.js +1 -0
  484. package/dist/mattermost-SjOt4QDb.js +15 -0
  485. package/dist/mcp-cli-BC_VPl_o.js +94 -0
  486. package/dist/mcp-config-Coky4zS4.js +108 -0
  487. package/dist/media-limits-Cuvmmhop.js +14 -0
  488. package/dist/media-understanding-DD2uMjK8.js +48 -0
  489. package/dist/media-understanding.runtime-Kbb2bRmk.js +216 -0
  490. package/dist/memory-DBjQ0TPd.js +1 -0
  491. package/dist/memory-cli-Cm4Df0hJ.js +215 -0
  492. package/dist/memory-cli-yzqneSF8.js +541 -0
  493. package/dist/memory-search-Das1tiuB.js +204 -0
  494. package/dist/memory-search-DxmSTjHq.js +18 -0
  495. package/dist/mention-gating-B_q-EHFx.js +25 -0
  496. package/dist/mentions-Bxys_va0.js +154 -0
  497. package/dist/message-channel-Cy-gN4K2.js +106 -0
  498. package/dist/message-hook-mappers-BBTV3JRQ.js +249 -0
  499. package/dist/method-scopes-DgypDW23.js +2649 -0
  500. package/dist/mime-C4vVTBso.js +150 -0
  501. package/dist/minimal-C5yUxtHy.js +2120 -0
  502. package/dist/model-auth-B__TJTPw.js +309 -0
  503. package/dist/model-auth-env-CF9ts7Th.js +111 -0
  504. package/dist/model-catalog.runtime-CWh17vcc.js +211 -0
  505. package/dist/model-id-normalization-Y-MIsyK_.js +16 -0
  506. package/dist/model-input-BB2wSAHb.js +20 -0
  507. package/dist/model-overrides-sIzKU2wo.js +84 -0
  508. package/dist/model-param-b-DIFEhICm.js +15 -0
  509. package/dist/model-picker-CAPjetT3.js +400 -0
  510. package/dist/model-picker-DEw9viWc.js +215 -0
  511. package/dist/model-picker.runtime-ixYl7lB5.js +224 -0
  512. package/dist/model-selection-BTpJnslv.js +437 -0
  513. package/dist/model-selection-Ci9cPkL2.js +765 -0
  514. package/dist/model-suppression.runtime-D8cIb6Y5.js +216 -0
  515. package/dist/models-BQtc3khN.js +226 -0
  516. package/dist/models-CQgBV5dW.js +2536 -0
  517. package/dist/models-cli-DbQ-QpQk.js +418 -0
  518. package/dist/models-config-D2xK-G6c.js +211 -0
  519. package/dist/models-config.providers.discovery-BaIk1NKL.js +141 -0
  520. package/dist/models-config.runtime-Cf7q9uAQ.js +211 -0
  521. package/dist/monitor-B5QmKaD7.js +3272 -0
  522. package/dist/monitor-CL5OYLih.js +878 -0
  523. package/dist/monitor-CNZxrM4d.js +3145 -0
  524. package/dist/monitor-CyQVZdDh.js +223 -0
  525. package/dist/multimodal-DC43jYNv.js +75 -0
  526. package/dist/mutable-allowlist-detectors-C6EAzWYE.js +62 -0
  527. package/dist/net-DlJFp95v.js +270 -0
  528. package/dist/network-mode-DOgvmom4.js +17 -0
  529. package/dist/nextcloud-talk-ChMP88s-.js +12 -0
  530. package/dist/nextcloud-talk-CwnkUy8E.js +1 -0
  531. package/dist/node-cli-BZDC7rXg.js +2484 -0
  532. package/dist/node-command-policy-Bg2g6Xjp.js +192 -0
  533. package/dist/node-commands-B6W6Eo0b.js +11 -0
  534. package/dist/node-require-BgDD9bTi.js +14 -0
  535. package/dist/node-resolve-BunMro3f.js +69 -0
  536. package/dist/node-service-CEZZaqba.js +65 -0
  537. package/dist/node-startup-env-Gz8ZQniA.js +50 -0
  538. package/dist/nodes-cli-B4Jr9vct.js +1330 -0
  539. package/dist/nodes-screen-CQ7IvP62.js +401 -0
  540. package/dist/normalize-secret-input-_PgpexOG.js +32 -0
  541. package/dist/note-dfjacCV8.js +109 -0
  542. package/dist/npm-pack-install-CYNRv-vM.js +574 -0
  543. package/dist/npm-resolution-Ml2aA6Nu.js +60 -0
  544. package/dist/oauth.runtime-DA_48MPQ.js +687 -0
  545. package/dist/oauth.runtime-DS1ry5__.js +318 -0
  546. package/dist/oauth.runtime-qCkidk8J.js +180 -0
  547. package/dist/ollama-defaults-asNuGW4_.js +4 -0
  548. package/dist/onboard-BM6gO6Uw.js +589 -0
  549. package/dist/onboard-D9IU-7uw.js +48 -0
  550. package/dist/onboard-DQaHGPRm.js +25 -0
  551. package/dist/onboard-channels-BdQtLjYb.js +300 -0
  552. package/dist/onboard-channels-DIVUygs5.js +1257 -0
  553. package/dist/onboard-config-DFKb-0sE.js +29 -0
  554. package/dist/onboard-config-DYykzJhx.js +2 -0
  555. package/dist/onboard-custom-CDP4w1AT.js +216 -0
  556. package/dist/onboard-custom-DhJN13UV.js +644 -0
  557. package/dist/onboard-helpers-B7XTd4Pw.js +335 -0
  558. package/dist/onboard-helpers-BUKtx5Bq.js +54 -0
  559. package/dist/onboard-hooks-BHSSLAhI.js +73 -0
  560. package/dist/onboard-remote-BOzEPdHA.js +59 -0
  561. package/dist/onboard-remote-DVza19_k.js +182 -0
  562. package/dist/onboard-search-CrS-n9_3.js +446 -0
  563. package/dist/onboard-skills-BojzIPvk.js +133 -0
  564. package/dist/onboard-skills-D7HyCVjz.js +69 -0
  565. package/dist/openai-codex-provider.runtime-BFsopDHI.js +2 -0
  566. package/dist/openai-defaults-B7FUywsh.js +10 -0
  567. package/dist/openclaw-exec-env-AcZ9we1N.js +14 -0
  568. package/dist/openclaw-root-TUHYdr9B.js +88 -0
  569. package/dist/openclaw-tools.runtime-draZJo5r.js +211 -0
  570. package/dist/outbound-media-69yrWRDt.js +11 -0
  571. package/dist/outbound-runtime-ic_7ulJJ.js +1 -0
  572. package/dist/pairing-challenge-CNrPmmi9.js +48 -0
  573. package/dist/pairing-cli-BohXW2BK.js +150 -0
  574. package/dist/pairing-labels-CNKCSmBK.js +7 -0
  575. package/dist/pairing-message-CBv2njJT.js +4 -0
  576. package/dist/pairing-store-C4lsd4pO.js +590 -0
  577. package/dist/pairing-token-gKj4SNFJ.js +55 -0
  578. package/dist/parse-duration-BBGYkY0S.js +41 -0
  579. package/dist/parse-finite-number-CP4MQF_w.js +30 -0
  580. package/dist/parse-log-line-CVh9zu3Q.js +43 -0
  581. package/dist/parse-port-COyt3COn.js +8 -0
  582. package/dist/path-alias-guards-ZTKqurNH.js +40 -0
  583. package/dist/path-env-CPkz6U0Y.js +87 -0
  584. package/dist/paths-CTjJI9l0.js +179 -0
  585. package/dist/paths-GHJ97ebE.js +268 -0
  586. package/dist/paths-nCHyK08H.js +56 -0
  587. package/dist/perplexity-Beshd9zu.js +422 -0
  588. package/dist/persistent-dedupe-bjKjVI5u.js +116 -0
  589. package/dist/pi-embedded-CSQySvOV.js +168518 -0
  590. package/dist/pi-model-discovery-CuX5CDyZ.js +125 -0
  591. package/dist/pi-model-discovery-runtime-DNsMrX1n.js +44 -0
  592. package/dist/pi-tools.before-tool-call.runtime-DxVqzMVf.js +387 -0
  593. package/dist/platform-launcher-CqGy6UhP.js +83 -0
  594. package/dist/plugin-entry-CwuwM1jC.js +17 -0
  595. package/dist/plugin-install-JJwfOXtg.js +216 -0
  596. package/dist/plugin-install-plan-cixz1_W4.js +49 -0
  597. package/dist/plugin-install-vkpI1UNd.js +184 -0
  598. package/dist/plugin-registry-C3j_DUnj.js +51 -0
  599. package/dist/plugin-registry-DB_yxabS.js +213 -0
  600. package/dist/plugin-sdk/account-helpers.js +3 -0
  601. package/dist/plugin-sdk/account-id.js +2 -0
  602. package/dist/plugin-sdk/account-resolution.js +216 -0
  603. package/dist/plugin-sdk/acp-runtime.js +46 -0
  604. package/dist/plugin-sdk/agent-runtime.js +215 -0
  605. package/dist/plugin-sdk/allow-from.js +17 -0
  606. package/dist/plugin-sdk/allowlist-config-edit.js +2 -0
  607. package/dist/plugin-sdk/bluebubbles.js +232 -0
  608. package/dist/plugin-sdk/boolean-param.js +2 -0
  609. package/dist/plugin-sdk/channel-actions.js +16 -0
  610. package/dist/plugin-sdk/channel-config-helpers.js +15 -0
  611. package/dist/plugin-sdk/channel-config-schema.js +5 -0
  612. package/dist/plugin-sdk/channel-contract.js +1 -0
  613. package/dist/plugin-sdk/channel-feedback.js +4 -0
  614. package/dist/plugin-sdk/channel-inbound.js +53 -0
  615. package/dist/plugin-sdk/channel-lifecycle.js +2 -0
  616. package/dist/plugin-sdk/channel-pairing.js +2 -0
  617. package/dist/plugin-sdk/channel-policy.js +19 -0
  618. package/dist/plugin-sdk/channel-reply-pipeline.js +23 -0
  619. package/dist/plugin-sdk/channel-runtime.js +33 -0
  620. package/dist/plugin-sdk/channel-send-result.js +2 -0
  621. package/dist/plugin-sdk/channel-setup.js +24 -0
  622. package/dist/plugin-sdk/channel-targets.js +3 -0
  623. package/dist/plugin-sdk/cli-runtime.js +5 -0
  624. package/dist/plugin-sdk/command-auth.js +212 -0
  625. package/dist/plugin-sdk/compat.js +59 -0
  626. package/dist/plugin-sdk/config-runtime.js +51 -0
  627. package/dist/plugin-sdk/conversation-runtime.js +55 -0
  628. package/dist/plugin-sdk/core.js +40 -0
  629. package/dist/plugin-sdk/device-bootstrap.js +6 -0
  630. package/dist/plugin-sdk/diagnostics-otel.js +7 -0
  631. package/dist/plugin-sdk/diffs.js +3 -0
  632. package/dist/plugin-sdk/directory-runtime.js +5 -0
  633. package/dist/plugin-sdk/discord-core.js +26 -0
  634. package/dist/plugin-sdk/discord.js +219 -0
  635. package/dist/plugin-sdk/extension-shared.js +15 -0
  636. package/dist/plugin-sdk/feishu.js +101 -0
  637. package/dist/plugin-sdk/gateway-runtime.js +46 -0
  638. package/dist/plugin-sdk/googlechat.js +93 -0
  639. package/dist/plugin-sdk/group-access.js +2 -0
  640. package/dist/plugin-sdk/hook-runtime.js +12 -0
  641. package/dist/plugin-sdk/image-generation.js +51 -0
  642. package/dist/plugin-sdk/imessage-core.js +214 -0
  643. package/dist/plugin-sdk/imessage.js +223 -0
  644. package/dist/plugin-sdk/index.js +55 -0
  645. package/dist/plugin-sdk/infra-runtime.js +223 -0
  646. package/dist/plugin-sdk/interactive-runtime.js +3 -0
  647. package/dist/plugin-sdk/irc.js +232 -0
  648. package/dist/plugin-sdk/json-store.js +9 -0
  649. package/dist/plugin-sdk/keyed-async-queue.js +2 -0
  650. package/dist/plugin-sdk/lazy-runtime.js +2 -0
  651. package/dist/plugin-sdk/line-core.js +29 -0
  652. package/dist/plugin-sdk/line.js +22 -0
  653. package/dist/plugin-sdk/llm-task.js +7 -0
  654. package/dist/plugin-sdk/matrix-runtime-heavy.js +223 -0
  655. package/dist/plugin-sdk/matrix-runtime-shared.js +2 -0
  656. package/dist/plugin-sdk/matrix.js +84 -0
  657. package/dist/plugin-sdk/mattermost.js +233 -0
  658. package/dist/plugin-sdk/media-runtime.js +212 -0
  659. package/dist/plugin-sdk/media-understanding-runtime.js +211 -0
  660. package/dist/plugin-sdk/media-understanding.js +15 -0
  661. package/dist/plugin-sdk/memory-core.js +2 -0
  662. package/dist/plugin-sdk/memory-lancedb.js +2 -0
  663. package/dist/plugin-sdk/msteams.js +244 -0
  664. package/dist/plugin-sdk/nextcloud-talk.js +231 -0
  665. package/dist/plugin-sdk/nostr.js +50 -0
  666. package/dist/plugin-sdk/ollama-setup.js +33 -0
  667. package/dist/plugin-sdk/outbound-runtime.js +23 -0
  668. package/dist/plugin-sdk/plugin-entry.js +3 -0
  669. package/dist/plugin-sdk/plugin-runtime.js +211 -0
  670. package/dist/plugin-sdk/process-runtime.js +12 -0
  671. package/dist/plugin-sdk/provider-auth-api-key.js +53 -0
  672. package/dist/plugin-sdk/provider-auth-login.js +2 -0
  673. package/dist/plugin-sdk/provider-auth.js +37 -0
  674. package/dist/plugin-sdk/provider-catalog.js +2 -0
  675. package/dist/plugin-sdk/provider-env-vars.js +2 -0
  676. package/dist/plugin-sdk/provider-google.js +3 -0
  677. package/dist/plugin-sdk/provider-models.js +27 -0
  678. package/dist/plugin-sdk/provider-onboard.js +20 -0
  679. package/dist/plugin-sdk/provider-setup.js +58 -0
  680. package/dist/plugin-sdk/provider-stream.js +211 -0
  681. package/dist/plugin-sdk/provider-usage.js +18 -0
  682. package/dist/plugin-sdk/provider-web-search.js +23 -0
  683. package/dist/plugin-sdk/provider-zai-endpoint.js +3 -0
  684. package/dist/plugin-sdk/reply-history.js +23 -0
  685. package/dist/plugin-sdk/reply-payload.js +2 -0
  686. package/dist/plugin-sdk/reply-runtime.js +211 -0
  687. package/dist/plugin-sdk/request-url.js +2 -0
  688. package/dist/plugin-sdk/routing.js +25 -0
  689. package/dist/plugin-sdk/runtime-env.js +15 -0
  690. package/dist/plugin-sdk/runtime-store.js +2 -0
  691. package/dist/plugin-sdk/runtime.js +15 -0
  692. package/dist/plugin-sdk/sandbox.js +66 -0
  693. package/dist/plugin-sdk/secret-input.js +3 -0
  694. package/dist/plugin-sdk/security-runtime.js +18 -0
  695. package/dist/plugin-sdk/self-hosted-provider-setup.js +33 -0
  696. package/dist/plugin-sdk/setup-adapter-runtime.js +2 -0
  697. package/dist/plugin-sdk/setup-runtime.js +17 -0
  698. package/dist/plugin-sdk/setup-tools.js +21 -0
  699. package/dist/plugin-sdk/setup.js +26 -0
  700. package/dist/plugin-sdk/signal.js +220 -0
  701. package/dist/plugin-sdk/slack-core.js +22 -0
  702. package/dist/plugin-sdk/slack.js +223 -0
  703. package/dist/plugin-sdk/speech-runtime.js +213 -0
  704. package/dist/plugin-sdk/speech.js +212 -0
  705. package/dist/plugin-sdk/ssrf-runtime.js +5 -0
  706. package/dist/plugin-sdk/state-paths.js +3 -0
  707. package/dist/plugin-sdk/status-helpers.js +9 -0
  708. package/dist/plugin-sdk/telegram-core.js +23 -0
  709. package/dist/plugin-sdk/telegram.js +224 -0
  710. package/dist/plugin-sdk/testing.js +13174 -0
  711. package/dist/plugin-sdk/text-runtime.js +45 -0
  712. package/dist/plugin-sdk/thread-bindings-runtime.js +2 -0
  713. package/dist/plugin-sdk/thread-ownership.js +2 -0
  714. package/dist/plugin-sdk/tlon.js +57 -0
  715. package/dist/plugin-sdk/tool-send.js +2 -0
  716. package/dist/plugin-sdk/twitch.js +46 -0
  717. package/dist/plugin-sdk/voice-call.js +213 -0
  718. package/dist/plugin-sdk/web-media.js +28 -0
  719. package/dist/plugin-sdk/webhook-ingress.js +7 -0
  720. package/dist/plugin-sdk/webhook-path.js +2 -0
  721. package/dist/plugin-sdk/whatsapp-core.js +219 -0
  722. package/dist/plugin-sdk/whatsapp-shared.js +18 -0
  723. package/dist/plugin-sdk/windows-spawn.js +2 -0
  724. package/dist/plugin-sdk/zalo.js +239 -0
  725. package/dist/plugin-sdk/zalouser.js +240 -0
  726. package/dist/plugins/build-smoke-entry.js +211 -0
  727. package/dist/plugins/runtime/index.js +229 -0
  728. package/dist/plugins-1Z50ecJ6.js +1 -0
  729. package/dist/plugins-C6fKmNuA.js +7 -0
  730. package/dist/plugins-cli-BkgQkGaU.js +1192 -0
  731. package/dist/policy-CpkbSAfm.js +60 -0
  732. package/dist/polls-B2VH7SN9.js +35 -0
  733. package/dist/ports-BjWuIIQw.js +262 -0
  734. package/dist/ports-DFiK_Jc-.js +385 -0
  735. package/dist/ports-lsof-DtJqhFOr.js +25 -0
  736. package/dist/ports-probe-BQqp8l8E.js +14 -0
  737. package/dist/preflight-audio.runtime-Fi9mofpp.js +216 -0
  738. package/dist/probe-BM9sbCgS.js +20 -0
  739. package/dist/probe-DLBOZftS.js +134 -0
  740. package/dist/probe-auth-Bjp3G4CI.js +48 -0
  741. package/dist/probe-auth-DMSPTRRk.js +45 -0
  742. package/dist/process-runtime-C7el-Ri4.js +1 -0
  743. package/dist/process-scoped-map-C4gOa-gv.js +61 -0
  744. package/dist/profile-utils-BcMYGFPT.js +15 -0
  745. package/dist/profiles-D17eMKQZ.js +683 -0
  746. package/dist/program-Ch-76sgl.js +155 -0
  747. package/dist/program-context-BMWNUfqL.js +10 -0
  748. package/dist/program-context-CD_RvRYh.js +2 -0
  749. package/dist/progress-D1r9bZU1.js +132 -0
  750. package/dist/prompt-select-styled-NUKYS9QR.js +4879 -0
  751. package/dist/prompt-style-BvciNCqy.js +7 -0
  752. package/dist/prompts-NtuylUyl.js +9 -0
  753. package/dist/prototype-keys-Cm_8mWvq.js +11 -0
  754. package/dist/provider-api-key-auth-BE0taXiB.js +108 -0
  755. package/dist/provider-api-key-auth.runtime-jDZZUAMX.js +34 -0
  756. package/dist/provider-auth-Bw8x1a3o.js +58 -0
  757. package/dist/provider-auth-api-key-BrQYvdxi.js +1 -0
  758. package/dist/provider-auth-choice-BYbPq0eC.js +128 -0
  759. package/dist/provider-auth-choice-helpers-Bj1GkOSn.js +48 -0
  760. package/dist/provider-auth-choice-preference-tKq5gaJL.js +192 -0
  761. package/dist/provider-auth-choice.runtime-DegPpvRJ.js +223 -0
  762. package/dist/provider-auth-choices-QSilukI1.js +58 -0
  763. package/dist/provider-auth-guidance-gninjjq8.js +34 -0
  764. package/dist/provider-auth-helpers-B0dS-1WK.js +86 -0
  765. package/dist/provider-auth-input-BftBdgvW.js +112 -0
  766. package/dist/provider-auth-login-D0n0lMuc.js +8 -0
  767. package/dist/provider-auth-login.runtime-LvuBkQrc.js +243 -0
  768. package/dist/provider-auth-mode-sTdccIKL.js +20 -0
  769. package/dist/provider-auth-ref-BS3gwrNr.js +168 -0
  770. package/dist/provider-auth-ref-BmEcEN7K.js +3 -0
  771. package/dist/provider-catalog--18-pW5t.js +11 -0
  772. package/dist/provider-catalog-2P2hel74.js +48 -0
  773. package/dist/provider-catalog-B0FqWSwe.js +48 -0
  774. package/dist/provider-catalog-BvORKzzD.js +91 -0
  775. package/dist/provider-catalog-C34j1_or.js +26 -0
  776. package/dist/provider-catalog-C5vmXjmb.js +11 -0
  777. package/dist/provider-catalog-CBufm2Dr.js +36 -0
  778. package/dist/provider-catalog-D7QvsUXS.js +12 -0
  779. package/dist/provider-catalog-DKy_dzQZ.js +41 -0
  780. package/dist/provider-env-vars-CsQlY7bF.js +110 -0
  781. package/dist/provider-id-BpXo5t6v.js +31 -0
  782. package/dist/provider-model-allowlist-4HSOnlX-.js +24 -0
  783. package/dist/provider-model-primary-NJ-xlhec.js +53 -0
  784. package/dist/provider-models-C2EjYMwW.js +2416 -0
  785. package/dist/provider-oauth-flow-BQN6F6EC.js +33 -0
  786. package/dist/provider-ollama-setup-DhQvDwAj.js +309 -0
  787. package/dist/provider-onboard-CjOfyeQG.js +1 -0
  788. package/dist/provider-onboarding-config-DOZ3pFA6.js +165 -0
  789. package/dist/provider-openai-codex-oauth-tls-Bo8U4D3E.js +101 -0
  790. package/dist/provider-runtime.runtime-DnP2jpoM.js +211 -0
  791. package/dist/provider-self-hosted-setup-CUrmsugW.js +182 -0
  792. package/dist/provider-usage-ClDVmkhl.js +633 -0
  793. package/dist/provider-usage-DIC6cn-3.js +211 -0
  794. package/dist/provider-web-search-NzK8ep1E.js +507 -0
  795. package/dist/provider-wizard-C6jCuyQe.js +236 -0
  796. package/dist/provider-zai-endpoint-DeDABzT4.js +106 -0
  797. package/dist/proxy-H5O2p6AP.js +121 -0
  798. package/dist/proxy-env-DG2u55RW.js +40 -0
  799. package/dist/push-apns-D4zD2tmP.js +1050 -0
  800. package/dist/pw-ai-BuPUVeUK.js +1876 -0
  801. package/dist/qmd-manager-BpygGMW9.js +1571 -0
  802. package/dist/qr-cli-DnWHXcxh.js +370 -0
  803. package/dist/qr-cli-yaZ0FZ6z.js +213 -0
  804. package/dist/query-expansion-Do45hILP.js +1114 -0
  805. package/dist/reactions-BcC_XZqD.js +281 -0
  806. package/dist/read-only-account-inspect-DPJzadPo.js +42 -0
  807. package/dist/read-only-account-inspect.discord.runtime-CW9DDKH8.js +216 -0
  808. package/dist/read-only-account-inspect.slack.runtime-BcXBPyh3.js +216 -0
  809. package/dist/read-only-account-inspect.telegram.runtime-Y7h0Jbdj.js +216 -0
  810. package/dist/redact-BDinS1q9.js +102 -0
  811. package/dist/redact-identifier-FUiWQxv5.js +13 -0
  812. package/dist/redact-snapshot-DBPmeYy2.js +2654 -0
  813. package/dist/ref-contract-CCBBbf1r.js +53 -0
  814. package/dist/register-CppP7Ddc.js +43 -0
  815. package/dist/register.agent-BOD5ROGQ.js +546 -0
  816. package/dist/register.backup-Y2VGqcRu.js +269 -0
  817. package/dist/register.configure-1qiTINph.js +354 -0
  818. package/dist/register.maintenance-shn-zigv.js +694 -0
  819. package/dist/register.message-mR4CLSoo.js +812 -0
  820. package/dist/register.onboard-CkDryVid.js +298 -0
  821. package/dist/register.setup-B0xW5olD.js +318 -0
  822. package/dist/register.status-health-sessions-CuhWc03j.js +604 -0
  823. package/dist/register.subclis-BazXM5TW.js +315 -0
  824. package/dist/register.subclis-C2d8UDhH.js +13 -0
  825. package/dist/registry-C3q59Qj0.js +55 -0
  826. package/dist/registry-CPsHw6xU.js +219 -0
  827. package/dist/registry-CxgtJ09C.js +28 -0
  828. package/dist/registry-rgYi7KoO.js +160 -0
  829. package/dist/repair-qXnOAvDy.js +105 -0
  830. package/dist/replies-EiwmmZ_W.js +122 -0
  831. package/dist/reply-history-CVCD5oE9.js +1 -0
  832. package/dist/reply-payload-DBGc074f.js +232 -0
  833. package/dist/report-cli-DB1jQx32.js +42 -0
  834. package/dist/request-url-BKfWAQx8.js +10 -0
  835. package/dist/resolve-Ckjd8TAk.js +14 -0
  836. package/dist/resolve-T2q_0ARF.js +619 -0
  837. package/dist/resolve-route-vEY3ONZ2.js +466 -0
  838. package/dist/resolve-utils-CbqJY2bs.js +102 -0
  839. package/dist/response-generator-VdoCcQ3y.js +153 -0
  840. package/dist/restart-stale-pids-CLGiqU2E.js +187 -0
  841. package/dist/retry-D15TD1S3.js +168 -0
  842. package/dist/root-help-B9Aou4ho.js +32 -0
  843. package/dist/routes-TpLEcKO8.js +7084 -0
  844. package/dist/routing-Y3m0o-kB.js +26 -0
  845. package/dist/rpc-C6MN-nVc.js +67 -0
  846. package/dist/run-command-DRKv5Lj6.js +32 -0
  847. package/dist/run-main-YZSMdx0B.js +424 -0
  848. package/dist/run-with-concurrency-BrSjWzpg.js +41 -0
  849. package/dist/runtime-B66W9flm.js +43 -0
  850. package/dist/runtime-C9VaVKYZ.js +2338 -0
  851. package/dist/runtime-CT2LIJZu.js +91 -0
  852. package/dist/runtime-CqDQ81eY.js +143 -0
  853. package/dist/runtime-CuvWMN7E.js +89 -0
  854. package/dist/runtime-D4_OpzA1.js +5 -0
  855. package/dist/runtime-DP-4DZja.js +5 -0
  856. package/dist/runtime-Dl17x_cV.js +1 -0
  857. package/dist/runtime-Z35JoYPC.js +30 -0
  858. package/dist/runtime-api-D79M0lQN.js +1 -0
  859. package/dist/runtime-api-y3zfnQGK.js +39 -0
  860. package/dist/runtime-discord-ops.runtime-Bg5h5v9-.js +234 -0
  861. package/dist/runtime-env-a_iwdJIv.js +1 -0
  862. package/dist/runtime-forwarders-DtMc8rBP.js +44 -0
  863. package/dist/runtime-group-policy-B7irU4eu.js +59 -0
  864. package/dist/runtime-guard-y62lPDGY.js +58 -0
  865. package/dist/runtime-parse-CeqXmZHJ.js +84 -0
  866. package/dist/runtime-paths-CstaCCMi.js +334 -0
  867. package/dist/runtime-slack-ops.runtime-BumgKDhS.js +226 -0
  868. package/dist/runtime-status-CgL02wYX.js +15 -0
  869. package/dist/runtime-store-Bt3Sdbrn.js +22 -0
  870. package/dist/runtime-telegram-ops.runtime-rSLQ3KrE.js +233 -0
  871. package/dist/runtime-whatsapp-boundary-xZem0NyQ.js +364 -0
  872. package/dist/safe-open-sync-Bt9R1Mnf.js +83 -0
  873. package/dist/safe-regex-tLlDZYfM.js +244 -0
  874. package/dist/safe-text-B_CQuica.js +16 -0
  875. package/dist/sandbox-CUUouiKs.js +2795 -0
  876. package/dist/sandbox-cli-BN8y0Get.js +499 -0
  877. package/dist/sandbox-paths-fqp_TZdO.js +144 -0
  878. package/dist/sandbox-qSs4h3sk.js +1 -0
  879. package/dist/sanitize-env-vars-vNSNqm0y.js +74 -0
  880. package/dist/scan-paths-BJmvUZ1E.js +28 -0
  881. package/dist/search-manager-DWhFgwyp.js +17 -0
  882. package/dist/search-manager-r8Cw4ZRv.js +392 -0
  883. package/dist/secret-equal-ObQfyZGa.js +9 -0
  884. package/dist/secret-file-Ch0yuOXR.js +11 -0
  885. package/dist/secret-file-DYJtH6kf.js +92 -0
  886. package/dist/secret-input-4REZ4sHo.js +35 -0
  887. package/dist/secrets-cli-D1df8b0o.js +2304 -0
  888. package/dist/secure-random-Cs8tw_HQ.js +10 -0
  889. package/dist/security-cli-V66ESmdT.js +676 -0
  890. package/dist/security-runtime-BuEhpJVE.js +23 -0
  891. package/dist/send-3tabvle6.js +100 -0
  892. package/dist/send-CC5J3tyW.js +1026 -0
  893. package/dist/send-deps-CrFMNvqO.js +19 -0
  894. package/dist/send-i2-mdtiE.js +250 -0
  895. package/dist/server-BTOjmlyi.js +116 -0
  896. package/dist/server-middleware-CCqKhKUb.js +106 -0
  897. package/dist/server-node-events-D6y22Tt8.js +611 -0
  898. package/dist/server-startup-matrix-migration-DHWSoS73.js +1595 -0
  899. package/dist/service-Bxc9uL2e.js +774 -0
  900. package/dist/service-CBLajPZL.js +21 -0
  901. package/dist/session-cost-usage-BmbaBvk4.js +212 -0
  902. package/dist/session-cost-usage-C30Jl2SI.js +615 -0
  903. package/dist/session-fork.runtime-BZfcC1Nc.js +51 -0
  904. package/dist/session-key-gFFk3uv9.js +216 -0
  905. package/dist/session-write-lock-DNKvpjKf.js +324 -0
  906. package/dist/sessions-BIH_j_XS.js +222 -0
  907. package/dist/sessions-D5dWcxC_.js +212 -0
  908. package/dist/sessions-DaSBVNwD.js +669 -0
  909. package/dist/setup-C2XF1YH3.js +397 -0
  910. package/dist/setup-CN-teRpz.js +8 -0
  911. package/dist/setup-adapter-runtime-Bjv2adwG.js +1 -0
  912. package/dist/setup-binary-BOJA7zdN.js +30 -0
  913. package/dist/setup-browser-BhNPCUtK.js +71 -0
  914. package/dist/setup-core-BsG09DZH.js +149 -0
  915. package/dist/setup-core-D-O1GQax.js +162 -0
  916. package/dist/setup-core-Dtm54Rcq.js +510 -0
  917. package/dist/setup-entry-B1mTa7bU.js +10 -0
  918. package/dist/setup-entry-CTMgw-K5.js +13 -0
  919. package/dist/setup-entry-Cmd_cufO.js +13 -0
  920. package/dist/setup-entry-CybgA3zP.js +12 -0
  921. package/dist/setup-entry-DED_hL6i.js +12 -0
  922. package/dist/setup-entry-WCq9VMWx.js +14 -0
  923. package/dist/setup-group-access-BtPApRvE.js +70 -0
  924. package/dist/setup-helpers-B62Ecg9r.js +362 -0
  925. package/dist/setup-surface-B7A7qowY.js +452 -0
  926. package/dist/setup-surface-BBYJVRXc.js +380 -0
  927. package/dist/setup-surface-CFUz_BJi.js +298 -0
  928. package/dist/setup-tools-BPiMjAN7.js +1 -0
  929. package/dist/setup-wizard-helpers-COZ1UAdX.js +770 -0
  930. package/dist/setup-wizard-proxy-Slwi-1gX.js +116 -0
  931. package/dist/setup.finalize-B8O01nge.js +633 -0
  932. package/dist/setup.gateway-config-BPDIFk__.js +288 -0
  933. package/dist/setup.secret-input-BL-bqJpt.js +25 -0
  934. package/dist/shared-AygSbeCK.js +50 -0
  935. package/dist/shared-BHqDLkMG.js +127 -0
  936. package/dist/shared-BPtG8PgB.js +70 -0
  937. package/dist/shared-BU0QgVMZ.js +36 -0
  938. package/dist/shared-Bzr2UyEm.js +351 -0
  939. package/dist/shared-C_XXbGIF.js +87 -0
  940. package/dist/shared-Diw3KzwZ.js +82 -0
  941. package/dist/shared-DngjQumT.js +196 -0
  942. package/dist/shared-DzH3zmAy.js +64 -0
  943. package/dist/shared-LeP8iUTz.js +54 -0
  944. package/dist/shell-argv-DWV43Vya.js +72 -0
  945. package/dist/shell-env-cD92jEyV.js +181 -0
  946. package/dist/signal-BQd9f9dF.js +315 -0
  947. package/dist/signal-Ca7y47bM.js +46 -0
  948. package/dist/signal-Did9U_fa.js +214 -0
  949. package/dist/signal-cli-install-DxoL8CgF.js +188 -0
  950. package/dist/skill-commands-CiSwTFBQ.js +652 -0
  951. package/dist/skill-commands.runtime-CEwlWT4j.js +34 -0
  952. package/dist/skill-scanner-DG7MT7pu.js +354 -0
  953. package/dist/skills-BC8GJ9Rp.js +22 -0
  954. package/dist/skills-CCgKs_NJ.js +863 -0
  955. package/dist/skills-cli-dhYXJCuL.js +339 -0
  956. package/dist/skills-install-DiriUXJd.js +763 -0
  957. package/dist/skills-status-BmQTn4jL.js +23 -0
  958. package/dist/skills-status-a9b899Y3.js +169 -0
  959. package/dist/slack-CXgv7nu7.js +730 -0
  960. package/dist/slack-CcSByPzI.js +217 -0
  961. package/dist/slack-CtcCh0Lj.js +24537 -0
  962. package/dist/slack-core-DcsbATUs.js +1 -0
  963. package/dist/slash-commands.runtime-kO8EUKYW.js +228 -0
  964. package/dist/slash-dispatch.runtime-Bu2yMeFy.js +238 -0
  965. package/dist/slash-skill-commands.runtime-wwX3tF84.js +216 -0
  966. package/dist/speech-bSreRuDH.js +1 -0
  967. package/dist/speech-runtime-y1FcnGVA.js +1 -0
  968. package/dist/src-CmXHIz5f.js +846 -0
  969. package/dist/ssh-config-ChqR6ijV.js +77 -0
  970. package/dist/ssh-tunnel-Cz51VBAt.js +159 -0
  971. package/dist/ssh-tunnel-DWze2IQS.js +16 -0
  972. package/dist/ssrf-Dk9XaoKN.js +220 -0
  973. package/dist/ssrf-policy-Dk6oMa20.js +69 -0
  974. package/dist/ssrf-runtime-C-mAQLVA.js +1 -0
  975. package/dist/stagger-DU7FjHYo.js +54 -0
  976. package/dist/state-paths-DJIGEFq_.js +1 -0
  977. package/dist/status-69r8-Zey.js +75 -0
  978. package/dist/status-BdLTvZOL.js +44 -0
  979. package/dist/status-Bt7DQmRI.js +1665 -0
  980. package/dist/status-CoUFSBgt.js +202 -0
  981. package/dist/status-DbI3Kbh5.js +235 -0
  982. package/dist/status-DeKlzu_o.js +212 -0
  983. package/dist/status-Haie42Fc.js +606 -0
  984. package/dist/status-helpers-Cda-rGLX.js +101 -0
  985. package/dist/status-json-DS1M_MWJ.js +322 -0
  986. package/dist/status.link-channel-Cb8bZ_Od.js +40 -0
  987. package/dist/status.scan.deps.runtime-7_6VUs50.js +77 -0
  988. package/dist/status.scan.runtime-DtR8BIE9.js +14 -0
  989. package/dist/status.summary-l_Bi1buR.js +600 -0
  990. package/dist/status.summary.runtime-Cng6MzRU.js +151 -0
  991. package/dist/status.update-DtbnnPKx.js +79 -0
  992. package/dist/store-CvL8MPei.js +1446 -0
  993. package/dist/store.runtime-hgnvmZgO.js +43 -0
  994. package/dist/string-normalization-CvzuCAZv.js +19 -0
  995. package/dist/string-sample-BOLqzr4Y.js +11 -0
  996. package/dist/subagent-orphan-recovery-si1z2iBu.js +407 -0
  997. package/dist/subagent-registry-runtime-CXUDI8gL.js +211 -0
  998. package/dist/subcli-descriptors-CY_nHzpZ.js +151 -0
  999. package/dist/subsystem-CUp-6QQf.js +421 -0
  1000. package/dist/synology-chat-CdejNfs0.js +12 -0
  1001. package/dist/system-cli-DkOaXHkQ.js +99 -0
  1002. package/dist/system-events-mAu6Ap6K.js +75 -0
  1003. package/dist/system-message-DA9eUYzB.js +16 -0
  1004. package/dist/system-run-command-Cxq2F1MB.js +258 -0
  1005. package/dist/systemd-CrxZBFae.js +557 -0
  1006. package/dist/systemd-hints-y-zJ9aTm.js +315 -0
  1007. package/dist/systemd-linger-BdklDcLg.js +16 -0
  1008. package/dist/systemd-linger-DLrbG9_d.js +68 -0
  1009. package/dist/table-DFMOhmNZ.js +305 -0
  1010. package/dist/tailnet-ofqBrXzu.js +38 -0
  1011. package/dist/tailscale-Cbsx-2HB.js +254 -0
  1012. package/dist/target-errors-ksphhzJg.js +26 -0
  1013. package/dist/target-registry-krAVlXi_.js +1321 -0
  1014. package/dist/telegram/audit.js +2 -0
  1015. package/dist/telegram/token.js +211 -0
  1016. package/dist/telegram-BjDUP22F.js +10910 -0
  1017. package/dist/telegram-DMiNSGAJ.js +575 -0
  1018. package/dist/telegram-Dt11B3JL.js +218 -0
  1019. package/dist/telegram-core-B4Jo-uko.js +1 -0
  1020. package/dist/template-messages-kh7VfgOb.js +214 -0
  1021. package/dist/text-chunking-CUf5WgqG.js +19 -0
  1022. package/dist/text-format-sFXlJfHH.js +8 -0
  1023. package/dist/text-runtime-C_Roi_Je.js +1418 -0
  1024. package/dist/theme-B5HDbQfl.js +2 -0
  1025. package/dist/theme-CdOoMzRk.js +34 -0
  1026. package/dist/thinking-BBD_0HSp.js +68 -0
  1027. package/dist/thinking.shared-CncvRHts.js +246 -0
  1028. package/dist/thread-bindings-messages-Cdo8jSa9.js +229 -0
  1029. package/dist/thread-bindings-policy-DMjOaNyR.js +119 -0
  1030. package/dist/thread-bindings-runtime-Ckwk3Uuz.js +1 -0
  1031. package/dist/threading-helpers-Cq55SUtb.js +14 -0
  1032. package/dist/timeouts-BwR1sGom.js +72 -0
  1033. package/dist/tmp-openclaw-dir-idKIOMmb.js +102 -0
  1034. package/dist/token-Bgv8XEsC.js +50 -0
  1035. package/dist/tool-catalog-BV6FcEWS.js +337 -0
  1036. package/dist/tool-policy-match-CHqTCSdK.js +46 -0
  1037. package/dist/tool-send-9LXKcrda.js +16 -0
  1038. package/dist/topology-cli-BhUXVViF.js +43 -0
  1039. package/dist/transcript-events-B1V6z5ct.js +29 -0
  1040. package/dist/tui-DDJMGCFK.js +3838 -0
  1041. package/dist/tui-cli-ByN-ZH6y.js +237 -0
  1042. package/dist/typebox-D0SHDJST.js +175 -0
  1043. package/dist/types-BCKGVVld.js +83 -0
  1044. package/dist/types-CtpUGsDP.js +30 -0
  1045. package/dist/types.secrets-BWSeXrF4.js +80 -0
  1046. package/dist/types.tools-BBO8HCi6.js +22 -0
  1047. package/dist/typing-DG_YqWJ7.js +224 -0
  1048. package/dist/unhandled-rejections-CDJ8dOVP.js +170 -0
  1049. package/dist/unhandled-rejections-O6cVOz2D.js +4 -0
  1050. package/dist/update-Br8U-txJ.js +1039 -0
  1051. package/dist/update-check-C3TeQaWg.js +464 -0
  1052. package/dist/update-cli-XHfIntD0.js +1625 -0
  1053. package/dist/update-offset-store-36vzzZXw.js +211 -0
  1054. package/dist/upsert-with-lock-Bb96JHpb.js +34 -0
  1055. package/dist/url-userinfo-Db63ng4y.js +14 -0
  1056. package/dist/utils-Bxk6BLTg.js +236 -0
  1057. package/dist/utils-vDeUf98G.js +7 -0
  1058. package/dist/version-DCY9_obP.js +64 -0
  1059. package/dist/version-DRF-wKTV.js +2 -0
  1060. package/dist/voice-call-D4fgwZNO.js +1 -0
  1061. package/dist/warning-filter-CgvLQB4Y.js +56 -0
  1062. package/dist/web-media-BfBb8i48.js +1 -0
  1063. package/dist/web-media-CtU6jM5V.js +498 -0
  1064. package/dist/webhook-ingress-CupqYpKM.js +338 -0
  1065. package/dist/webhook-memory-guards-BHrFZ4yq.js +129 -0
  1066. package/dist/webhook-path-BGFZ55ML.js +22 -0
  1067. package/dist/webhook-shared-Cvk3b0ac.js +349 -0
  1068. package/dist/webhooks-cli-vOAoBF9b.js +357 -0
  1069. package/dist/whatsapp-D5nD0rGG.js +58 -0
  1070. package/dist/whatsapp-DXbWlm3A.js +82 -0
  1071. package/dist/whatsapp-core-C2WGMsaY.js +89451 -0
  1072. package/dist/whatsapp-heartbeat-CSWnPQ7q.js +84 -0
  1073. package/dist/whatsapp-shared-BmHKqTtR.js +95 -0
  1074. package/dist/widearea-dns-CXimgJzu.js +125 -0
  1075. package/dist/windows-argv-IXrdWrJj.js +145 -0
  1076. package/dist/windows-spawn-vMJGZo89.js +154 -0
  1077. package/dist/with-timeout-2AKTISee.js +58 -0
  1078. package/dist/workspace-BH7CXmrr.js +479 -0
  1079. package/dist/workspace-dirs-_O4V3xCR.js +13 -0
  1080. package/dist/workspace-v5XppK5M.js +302 -0
  1081. package/dist/ws-By-QcLjg.js +11 -0
  1082. package/dist/wsl-BV3Cb66X.js +57 -0
  1083. package/dist/zalo-CHQzsLhE.js +301 -0
  1084. package/dist/zalo-CcJ3J9f2.js +13 -0
  1085. package/dist/zod-schema.agent-runtime-T_EC_6fg.js +600 -0
  1086. package/dist/zod-schema.core-BdgRr-F1.js +545 -0
  1087. package/dist/zod-schema.providers-core-Dgq7MTqU.js +1613 -0
  1088. package/docs/.i18n/README.md +31 -0
  1089. package/docs/.i18n/glossary.ja-JP.json +14 -0
  1090. package/docs/.i18n/glossary.zh-CN.json +242 -0
  1091. package/docs/.i18n/ja-JP.tm.jsonl +0 -0
  1092. package/docs/assets/install-script.svg +1 -0
  1093. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  1094. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  1095. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  1096. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  1097. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  1098. package/docs/assets/openclaw-logo-text-dark.png +0 -0
  1099. package/docs/assets/openclaw-logo-text-dark.svg +418 -0
  1100. package/docs/assets/openclaw-logo-text.png +0 -0
  1101. package/docs/assets/openclaw-logo-text.svg +418 -0
  1102. package/docs/assets/pixel-lobster.svg +60 -0
  1103. package/docs/assets/showcase/agents-ui.jpg +0 -0
  1104. package/docs/assets/showcase/bambu-cli.png +0 -0
  1105. package/docs/assets/showcase/codexmonitor.png +0 -0
  1106. package/docs/assets/showcase/gohome-grafana.png +0 -0
  1107. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  1108. package/docs/assets/showcase/oura-health.png +0 -0
  1109. package/docs/assets/showcase/padel-cli.svg +11 -0
  1110. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  1111. package/docs/assets/showcase/papla-tts.jpg +0 -0
  1112. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  1113. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  1114. package/docs/assets/showcase/roborock-status.svg +13 -0
  1115. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  1116. package/docs/assets/showcase/snag.png +0 -0
  1117. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  1118. package/docs/assets/showcase/wienerlinien.png +0 -0
  1119. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  1120. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  1121. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  1122. package/docs/assets/sponsors/blacksmith.svg +14 -0
  1123. package/docs/assets/sponsors/convex.svg +16 -0
  1124. package/docs/assets/sponsors/openai.svg +3 -0
  1125. package/docs/assets/sponsors/vercel.svg +5 -0
  1126. package/docs/auth-credential-semantics.md +53 -0
  1127. package/docs/automation/auth-monitoring.md +44 -0
  1128. package/docs/automation/cron-jobs.md +727 -0
  1129. package/docs/automation/cron-vs-heartbeat.md +286 -0
  1130. package/docs/automation/gmail-pubsub.md +256 -0
  1131. package/docs/automation/hooks.md +1049 -0
  1132. package/docs/automation/poll.md +86 -0
  1133. package/docs/automation/standing-orders.md +251 -0
  1134. package/docs/automation/troubleshooting.md +122 -0
  1135. package/docs/automation/webhook.md +217 -0
  1136. package/docs/brave-search.md +93 -0
  1137. package/docs/channels/bluebubbles.md +347 -0
  1138. package/docs/channels/broadcast-groups.md +442 -0
  1139. package/docs/channels/channel-routing.md +139 -0
  1140. package/docs/channels/discord.md +1229 -0
  1141. package/docs/channels/feishu.md +747 -0
  1142. package/docs/channels/googlechat.md +261 -0
  1143. package/docs/channels/group-messages.md +84 -0
  1144. package/docs/channels/groups.md +379 -0
  1145. package/docs/channels/imessage.md +367 -0
  1146. package/docs/channels/index.md +47 -0
  1147. package/docs/channels/irc.md +242 -0
  1148. package/docs/channels/line.md +194 -0
  1149. package/docs/channels/location.md +56 -0
  1150. package/docs/channels/matrix.md +677 -0
  1151. package/docs/channels/mattermost.md +427 -0
  1152. package/docs/channels/msteams.md +780 -0
  1153. package/docs/channels/nextcloud-talk.md +138 -0
  1154. package/docs/channels/nostr.md +242 -0
  1155. package/docs/channels/pairing.md +114 -0
  1156. package/docs/channels/signal.md +329 -0
  1157. package/docs/channels/slack.md +603 -0
  1158. package/docs/channels/synology-chat.md +132 -0
  1159. package/docs/channels/telegram.md +987 -0
  1160. package/docs/channels/tlon.md +276 -0
  1161. package/docs/channels/troubleshooting.md +118 -0
  1162. package/docs/channels/twitch.md +379 -0
  1163. package/docs/channels/whatsapp.md +460 -0
  1164. package/docs/channels/zalo.md +243 -0
  1165. package/docs/channels/zalouser.md +181 -0
  1166. package/docs/ci.md +55 -0
  1167. package/docs/cli/acp.md +288 -0
  1168. package/docs/cli/agent.md +29 -0
  1169. package/docs/cli/agents.md +123 -0
  1170. package/docs/cli/approvals.md +50 -0
  1171. package/docs/cli/backup.md +76 -0
  1172. package/docs/cli/browser.md +106 -0
  1173. package/docs/cli/channels.md +102 -0
  1174. package/docs/cli/clawbot.md +21 -0
  1175. package/docs/cli/completion.md +35 -0
  1176. package/docs/cli/config.md +295 -0
  1177. package/docs/cli/configure.md +36 -0
  1178. package/docs/cli/cron.md +77 -0
  1179. package/docs/cli/daemon.md +53 -0
  1180. package/docs/cli/dashboard.md +22 -0
  1181. package/docs/cli/devices.md +139 -0
  1182. package/docs/cli/directory.md +63 -0
  1183. package/docs/cli/dns.md +23 -0
  1184. package/docs/cli/docs.md +15 -0
  1185. package/docs/cli/doctor.md +48 -0
  1186. package/docs/cli/gateway.md +235 -0
  1187. package/docs/cli/health.md +21 -0
  1188. package/docs/cli/hooks.md +318 -0
  1189. package/docs/cli/index.md +1147 -0
  1190. package/docs/cli/logs.md +28 -0
  1191. package/docs/cli/memory.md +66 -0
  1192. package/docs/cli/message.md +278 -0
  1193. package/docs/cli/models.md +81 -0
  1194. package/docs/cli/node.md +127 -0
  1195. package/docs/cli/nodes.md +75 -0
  1196. package/docs/cli/onboard.md +157 -0
  1197. package/docs/cli/pairing.md +32 -0
  1198. package/docs/cli/plugins.md +186 -0
  1199. package/docs/cli/qr.md +46 -0
  1200. package/docs/cli/reset.md +20 -0
  1201. package/docs/cli/sandbox.md +197 -0
  1202. package/docs/cli/secrets.md +188 -0
  1203. package/docs/cli/security.md +79 -0
  1204. package/docs/cli/sessions.md +110 -0
  1205. package/docs/cli/setup.md +29 -0
  1206. package/docs/cli/skills.md +26 -0
  1207. package/docs/cli/status.md +30 -0
  1208. package/docs/cli/system.md +60 -0
  1209. package/docs/cli/tui.md +30 -0
  1210. package/docs/cli/uninstall.md +20 -0
  1211. package/docs/cli/update.md +103 -0
  1212. package/docs/cli/voicecall.md +34 -0
  1213. package/docs/cli/webhooks.md +25 -0
  1214. package/docs/concepts/agent-loop.md +148 -0
  1215. package/docs/concepts/agent-workspace.md +236 -0
  1216. package/docs/concepts/agent.md +122 -0
  1217. package/docs/concepts/architecture.md +137 -0
  1218. package/docs/concepts/compaction.md +123 -0
  1219. package/docs/concepts/context-engine.md +268 -0
  1220. package/docs/concepts/context.md +172 -0
  1221. package/docs/concepts/delegate-architecture.md +296 -0
  1222. package/docs/concepts/features.md +73 -0
  1223. package/docs/concepts/markdown-formatting.md +130 -0
  1224. package/docs/concepts/memory.md +108 -0
  1225. package/docs/concepts/messages.md +154 -0
  1226. package/docs/concepts/model-failover.md +152 -0
  1227. package/docs/concepts/model-providers.md +607 -0
  1228. package/docs/concepts/models.md +225 -0
  1229. package/docs/concepts/multi-agent.md +552 -0
  1230. package/docs/concepts/oauth.md +158 -0
  1231. package/docs/concepts/presence.md +102 -0
  1232. package/docs/concepts/queue.md +89 -0
  1233. package/docs/concepts/retry.md +69 -0
  1234. package/docs/concepts/session-pruning.md +121 -0
  1235. package/docs/concepts/session-tool.md +242 -0
  1236. package/docs/concepts/session.md +310 -0
  1237. package/docs/concepts/streaming.md +155 -0
  1238. package/docs/concepts/system-prompt.md +132 -0
  1239. package/docs/concepts/timezone.md +91 -0
  1240. package/docs/concepts/typebox.md +291 -0
  1241. package/docs/concepts/typing-indicators.md +68 -0
  1242. package/docs/concepts/usage-tracking.md +35 -0
  1243. package/docs/date-time.md +128 -0
  1244. package/docs/debug/node-issue.md +85 -0
  1245. package/docs/diagnostics/flags.md +91 -0
  1246. package/docs/docs.json +2061 -0
  1247. package/docs/gateway/authentication.md +179 -0
  1248. package/docs/gateway/background-process.md +97 -0
  1249. package/docs/gateway/bonjour.md +177 -0
  1250. package/docs/gateway/bridge-protocol.md +91 -0
  1251. package/docs/gateway/cli-backends.md +225 -0
  1252. package/docs/gateway/configuration-examples.md +651 -0
  1253. package/docs/gateway/configuration-reference.md +3123 -0
  1254. package/docs/gateway/configuration.md +633 -0
  1255. package/docs/gateway/discovery.md +123 -0
  1256. package/docs/gateway/doctor.md +362 -0
  1257. package/docs/gateway/gateway-lock.md +34 -0
  1258. package/docs/gateway/health.md +44 -0
  1259. package/docs/gateway/heartbeat.md +393 -0
  1260. package/docs/gateway/index.md +261 -0
  1261. package/docs/gateway/local-models.md +152 -0
  1262. package/docs/gateway/logging.md +113 -0
  1263. package/docs/gateway/multiple-gateways.md +112 -0
  1264. package/docs/gateway/network-model.md +22 -0
  1265. package/docs/gateway/openai-http-api.md +132 -0
  1266. package/docs/gateway/openresponses-http-api.md +295 -0
  1267. package/docs/gateway/openshell.md +307 -0
  1268. package/docs/gateway/pairing.md +99 -0
  1269. package/docs/gateway/protocol.md +267 -0
  1270. package/docs/gateway/remote-gateway-readme.md +158 -0
  1271. package/docs/gateway/remote.md +153 -0
  1272. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +134 -0
  1273. package/docs/gateway/sandboxing.md +469 -0
  1274. package/docs/gateway/secrets-plan-contract.md +116 -0
  1275. package/docs/gateway/secrets.md +503 -0
  1276. package/docs/gateway/security/index.md +1213 -0
  1277. package/docs/gateway/tailscale.md +132 -0
  1278. package/docs/gateway/tools-invoke-http-api.md +110 -0
  1279. package/docs/gateway/troubleshooting.md +378 -0
  1280. package/docs/gateway/trusted-proxy-auth.md +330 -0
  1281. package/docs/help/debugging.md +168 -0
  1282. package/docs/help/environment.md +163 -0
  1283. package/docs/help/faq.md +2999 -0
  1284. package/docs/help/index.md +28 -0
  1285. package/docs/help/scripts.md +28 -0
  1286. package/docs/help/testing.md +524 -0
  1287. package/docs/help/troubleshooting.md +297 -0
  1288. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  1289. package/docs/images/feishu-step2-create-app.png +0 -0
  1290. package/docs/images/feishu-step3-credentials.png +0 -0
  1291. package/docs/images/feishu-step4-permissions.png +0 -0
  1292. package/docs/images/feishu-step5-bot-capability.png +0 -0
  1293. package/docs/images/feishu-step6-event-subscription.png +0 -0
  1294. package/docs/images/feishu-verification-token.png +0 -0
  1295. package/docs/images/groups-flow.svg +52 -0
  1296. package/docs/images/mobile-ui-screenshot.png +0 -0
  1297. package/docs/index.md +196 -0
  1298. package/docs/install/ansible.md +230 -0
  1299. package/docs/install/azure.md +311 -0
  1300. package/docs/install/bun.md +55 -0
  1301. package/docs/install/development-channels.md +120 -0
  1302. package/docs/install/digitalocean.md +129 -0
  1303. package/docs/install/docker-vm-runtime.md +142 -0
  1304. package/docs/install/docker.md +375 -0
  1305. package/docs/install/exe-dev.md +126 -0
  1306. package/docs/install/fly.md +501 -0
  1307. package/docs/install/gcp.md +402 -0
  1308. package/docs/install/hetzner.md +251 -0
  1309. package/docs/install/index.md +183 -0
  1310. package/docs/install/installer.md +415 -0
  1311. package/docs/install/kubernetes.md +191 -0
  1312. package/docs/install/macos-vm.md +281 -0
  1313. package/docs/install/migrating-matrix.md +346 -0
  1314. package/docs/install/migrating.md +110 -0
  1315. package/docs/install/nix.md +89 -0
  1316. package/docs/install/node.md +138 -0
  1317. package/docs/install/northflank.mdx +54 -0
  1318. package/docs/install/oracle.md +156 -0
  1319. package/docs/install/podman.md +133 -0
  1320. package/docs/install/railway.mdx +100 -0
  1321. package/docs/install/raspberry-pi.md +159 -0
  1322. package/docs/install/render.mdx +169 -0
  1323. package/docs/install/uninstall.md +128 -0
  1324. package/docs/install/updating.md +128 -0
  1325. package/docs/ja-JP/index.md +186 -0
  1326. package/docs/ja-JP/start/getting-started.md +125 -0
  1327. package/docs/ja-JP/start/wizard.md +77 -0
  1328. package/docs/logging.md +352 -0
  1329. package/docs/nav-tabs-underline.js +100 -0
  1330. package/docs/network.md +54 -0
  1331. package/docs/nodes/audio.md +187 -0
  1332. package/docs/nodes/camera.md +162 -0
  1333. package/docs/nodes/images.md +72 -0
  1334. package/docs/nodes/index.md +393 -0
  1335. package/docs/nodes/location-command.md +98 -0
  1336. package/docs/nodes/media-understanding.md +394 -0
  1337. package/docs/nodes/talk.md +92 -0
  1338. package/docs/nodes/troubleshooting.md +114 -0
  1339. package/docs/nodes/voicewake.md +66 -0
  1340. package/docs/perplexity.md +174 -0
  1341. package/docs/pi-dev.md +80 -0
  1342. package/docs/pi.md +567 -0
  1343. package/docs/platforms/android.md +168 -0
  1344. package/docs/platforms/digitalocean.md +266 -0
  1345. package/docs/platforms/index.md +54 -0
  1346. package/docs/platforms/ios.md +220 -0
  1347. package/docs/platforms/linux.md +94 -0
  1348. package/docs/platforms/mac/bundled-gateway.md +73 -0
  1349. package/docs/platforms/mac/canvas.md +125 -0
  1350. package/docs/platforms/mac/child-process.md +69 -0
  1351. package/docs/platforms/mac/dev-setup.md +104 -0
  1352. package/docs/platforms/mac/health.md +34 -0
  1353. package/docs/platforms/mac/icon.md +31 -0
  1354. package/docs/platforms/mac/logging.md +57 -0
  1355. package/docs/platforms/mac/menu-bar.md +81 -0
  1356. package/docs/platforms/mac/peekaboo.md +65 -0
  1357. package/docs/platforms/mac/permissions.md +50 -0
  1358. package/docs/platforms/mac/remote.md +84 -0
  1359. package/docs/platforms/mac/signing.md +47 -0
  1360. package/docs/platforms/mac/skills.md +33 -0
  1361. package/docs/platforms/mac/voice-overlay.md +60 -0
  1362. package/docs/platforms/mac/voicewake.md +67 -0
  1363. package/docs/platforms/mac/webchat.md +43 -0
  1364. package/docs/platforms/mac/xpc.md +61 -0
  1365. package/docs/platforms/macos.md +226 -0
  1366. package/docs/platforms/oracle.md +303 -0
  1367. package/docs/platforms/raspberry-pi.md +412 -0
  1368. package/docs/platforms/windows.md +241 -0
  1369. package/docs/plugins/agent-tools.md +10 -0
  1370. package/docs/plugins/architecture.md +1363 -0
  1371. package/docs/plugins/building-extensions.md +10 -0
  1372. package/docs/plugins/building-plugins.md +376 -0
  1373. package/docs/plugins/bundles.md +181 -0
  1374. package/docs/plugins/community.md +141 -0
  1375. package/docs/plugins/manifest.md +145 -0
  1376. package/docs/plugins/sdk-migration.md +169 -0
  1377. package/docs/plugins/voice-call.md +380 -0
  1378. package/docs/plugins/zalouser.md +77 -0
  1379. package/docs/prose.md +134 -0
  1380. package/docs/providers/anthropic.md +259 -0
  1381. package/docs/providers/bedrock.md +176 -0
  1382. package/docs/providers/claude-max-api-proxy.md +154 -0
  1383. package/docs/providers/cloudflare-ai-gateway.md +71 -0
  1384. package/docs/providers/deepgram.md +93 -0
  1385. package/docs/providers/github-copilot.md +72 -0
  1386. package/docs/providers/glm.md +43 -0
  1387. package/docs/providers/google.md +78 -0
  1388. package/docs/providers/groq.md +96 -0
  1389. package/docs/providers/huggingface.md +209 -0
  1390. package/docs/providers/index.md +69 -0
  1391. package/docs/providers/kilocode.md +74 -0
  1392. package/docs/providers/litellm.md +154 -0
  1393. package/docs/providers/minimax.md +224 -0
  1394. package/docs/providers/mistral.md +54 -0
  1395. package/docs/providers/models.md +45 -0
  1396. package/docs/providers/modelstudio.md +66 -0
  1397. package/docs/providers/moonshot.md +175 -0
  1398. package/docs/providers/nvidia.md +55 -0
  1399. package/docs/providers/ollama.md +352 -0
  1400. package/docs/providers/openai.md +303 -0
  1401. package/docs/providers/opencode-go.md +45 -0
  1402. package/docs/providers/opencode.md +64 -0
  1403. package/docs/providers/openrouter.md +37 -0
  1404. package/docs/providers/perplexity-provider.md +62 -0
  1405. package/docs/providers/qianfan.md +38 -0
  1406. package/docs/providers/qwen.md +53 -0
  1407. package/docs/providers/sglang.md +104 -0
  1408. package/docs/providers/synthetic.md +99 -0
  1409. package/docs/providers/together.md +66 -0
  1410. package/docs/providers/venice.md +282 -0
  1411. package/docs/providers/vercel-ai-gateway.md +60 -0
  1412. package/docs/providers/vllm.md +92 -0
  1413. package/docs/providers/volcengine.md +74 -0
  1414. package/docs/providers/xai.md +60 -0
  1415. package/docs/providers/xiaomi.md +86 -0
  1416. package/docs/providers/zai.md +46 -0
  1417. package/docs/reference/AGENTS.default.md +126 -0
  1418. package/docs/reference/RELEASING.md +42 -0
  1419. package/docs/reference/api-usage-costs.md +144 -0
  1420. package/docs/reference/credits.md +30 -0
  1421. package/docs/reference/device-models.md +47 -0
  1422. package/docs/reference/memory-config.md +711 -0
  1423. package/docs/reference/prompt-caching.md +185 -0
  1424. package/docs/reference/rpc.md +43 -0
  1425. package/docs/reference/secretref-credential-surface.md +140 -0
  1426. package/docs/reference/secretref-user-supplied-credentials-matrix.json +563 -0
  1427. package/docs/reference/session-management-compaction.md +324 -0
  1428. package/docs/reference/templates/AGENTS.dev.md +83 -0
  1429. package/docs/reference/templates/AGENTS.md +219 -0
  1430. package/docs/reference/templates/BOOT.md +11 -0
  1431. package/docs/reference/templates/BOOTSTRAP.md +62 -0
  1432. package/docs/reference/templates/HEARTBEAT.md +14 -0
  1433. package/docs/reference/templates/IDENTITY.dev.md +47 -0
  1434. package/docs/reference/templates/IDENTITY.md +29 -0
  1435. package/docs/reference/templates/SOUL.dev.md +76 -0
  1436. package/docs/reference/templates/SOUL.md +43 -0
  1437. package/docs/reference/templates/TOOLS.dev.md +24 -0
  1438. package/docs/reference/templates/TOOLS.md +47 -0
  1439. package/docs/reference/templates/USER.dev.md +18 -0
  1440. package/docs/reference/templates/USER.md +23 -0
  1441. package/docs/reference/test.md +90 -0
  1442. package/docs/reference/token-use.md +175 -0
  1443. package/docs/reference/transcript-hygiene.md +151 -0
  1444. package/docs/reference/wizard.md +235 -0
  1445. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
  1446. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  1447. package/docs/security/formal-verification.md +167 -0
  1448. package/docs/start/bootstrapping.md +41 -0
  1449. package/docs/start/docs-directory.md +66 -0
  1450. package/docs/start/getting-started.md +116 -0
  1451. package/docs/start/hubs.md +198 -0
  1452. package/docs/start/lore.md +219 -0
  1453. package/docs/start/onboarding-overview.md +67 -0
  1454. package/docs/start/onboarding.md +91 -0
  1455. package/docs/start/openclaw.md +216 -0
  1456. package/docs/start/quickstart.md +22 -0
  1457. package/docs/start/setup.md +164 -0
  1458. package/docs/start/showcase.md +418 -0
  1459. package/docs/start/wizard-cli-automation.md +215 -0
  1460. package/docs/start/wizard-cli-reference.md +299 -0
  1461. package/docs/start/wizard.md +125 -0
  1462. package/docs/style.css +37 -0
  1463. package/docs/tools/acp-agents.md +623 -0
  1464. package/docs/tools/agent-send.md +100 -0
  1465. package/docs/tools/apply-patch.md +51 -0
  1466. package/docs/tools/brave-search.md +93 -0
  1467. package/docs/tools/browser-linux-troubleshooting.md +138 -0
  1468. package/docs/tools/browser-login.md +73 -0
  1469. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +211 -0
  1470. package/docs/tools/browser.md +731 -0
  1471. package/docs/tools/btw.md +142 -0
  1472. package/docs/tools/capability-cookbook.md +119 -0
  1473. package/docs/tools/clawhub.md +257 -0
  1474. package/docs/tools/creating-skills.md +117 -0
  1475. package/docs/tools/diffs.md +386 -0
  1476. package/docs/tools/elevated.md +114 -0
  1477. package/docs/tools/exec-approvals.md +400 -0
  1478. package/docs/tools/exec.md +204 -0
  1479. package/docs/tools/firecrawl.md +140 -0
  1480. package/docs/tools/index.md +137 -0
  1481. package/docs/tools/llm-task.md +119 -0
  1482. package/docs/tools/lobster.md +340 -0
  1483. package/docs/tools/loop-detection.md +100 -0
  1484. package/docs/tools/multi-agent-sandbox-tools.md +364 -0
  1485. package/docs/tools/pdf.md +156 -0
  1486. package/docs/tools/perplexity-search.md +174 -0
  1487. package/docs/tools/plugin.md +251 -0
  1488. package/docs/tools/reactions.md +64 -0
  1489. package/docs/tools/skills-config.md +86 -0
  1490. package/docs/tools/skills.md +306 -0
  1491. package/docs/tools/slash-commands.md +294 -0
  1492. package/docs/tools/subagents.md +295 -0
  1493. package/docs/tools/tavily.md +125 -0
  1494. package/docs/tools/thinking.md +96 -0
  1495. package/docs/tools/tts.md +406 -0
  1496. package/docs/tools/web.md +516 -0
  1497. package/docs/tts.md +406 -0
  1498. package/docs/vps.md +112 -0
  1499. package/docs/web/control-ui.md +275 -0
  1500. package/docs/web/dashboard.md +54 -0
  1501. package/docs/web/index.md +120 -0
  1502. package/docs/web/tui.md +170 -0
  1503. package/docs/web/webchat.md +61 -0
  1504. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  1505. package/docs/whatsapp-openclaw.jpg +0 -0
  1506. package/docs/zh-CN/AGENTS.md +61 -0
  1507. package/docs/zh-CN/automation/auth-monitoring.md +47 -0
  1508. package/docs/zh-CN/automation/cron-jobs.md +435 -0
  1509. package/docs/zh-CN/automation/cron-vs-heartbeat.md +286 -0
  1510. package/docs/zh-CN/automation/gmail-pubsub.md +249 -0
  1511. package/docs/zh-CN/automation/hooks.md +1051 -0
  1512. package/docs/zh-CN/automation/poll.md +76 -0
  1513. package/docs/zh-CN/automation/troubleshooting.md +8 -0
  1514. package/docs/zh-CN/automation/webhook.md +163 -0
  1515. package/docs/zh-CN/brave-search.md +60 -0
  1516. package/docs/zh-CN/channels/bluebubbles.md +354 -0
  1517. package/docs/zh-CN/channels/broadcast-groups.md +449 -0
  1518. package/docs/zh-CN/channels/channel-routing.md +117 -0
  1519. package/docs/zh-CN/channels/discord.md +468 -0
  1520. package/docs/zh-CN/channels/feishu.md +728 -0
  1521. package/docs/zh-CN/channels/googlechat.md +257 -0
  1522. package/docs/zh-CN/channels/grammy.md +38 -0
  1523. package/docs/zh-CN/channels/group-messages.md +91 -0
  1524. package/docs/zh-CN/channels/groups.md +379 -0
  1525. package/docs/zh-CN/channels/imessage.md +302 -0
  1526. package/docs/zh-CN/channels/index.md +53 -0
  1527. package/docs/zh-CN/channels/line.md +180 -0
  1528. package/docs/zh-CN/channels/location.md +63 -0
  1529. package/docs/zh-CN/channels/matrix.md +221 -0
  1530. package/docs/zh-CN/channels/mattermost.md +144 -0
  1531. package/docs/zh-CN/channels/msteams.md +775 -0
  1532. package/docs/zh-CN/channels/nextcloud-talk.md +142 -0
  1533. package/docs/zh-CN/channels/nostr.md +249 -0
  1534. package/docs/zh-CN/channels/pairing.md +89 -0
  1535. package/docs/zh-CN/channels/signal.md +209 -0
  1536. package/docs/zh-CN/channels/slack.md +531 -0
  1537. package/docs/zh-CN/channels/synology-chat.md +138 -0
  1538. package/docs/zh-CN/channels/telegram.md +751 -0
  1539. package/docs/zh-CN/channels/tlon.md +136 -0
  1540. package/docs/zh-CN/channels/troubleshooting.md +36 -0
  1541. package/docs/zh-CN/channels/twitch.md +385 -0
  1542. package/docs/zh-CN/channels/whatsapp.md +411 -0
  1543. package/docs/zh-CN/channels/zalo.md +196 -0
  1544. package/docs/zh-CN/channels/zalouser.md +147 -0
  1545. package/docs/zh-CN/cli/acp.md +173 -0
  1546. package/docs/zh-CN/cli/agent.md +30 -0
  1547. package/docs/zh-CN/cli/agents.md +82 -0
  1548. package/docs/zh-CN/cli/approvals.md +57 -0
  1549. package/docs/zh-CN/cli/browser.md +114 -0
  1550. package/docs/zh-CN/cli/channels.md +86 -0
  1551. package/docs/zh-CN/cli/config.md +57 -0
  1552. package/docs/zh-CN/cli/configure.md +38 -0
  1553. package/docs/zh-CN/cli/cron.md +43 -0
  1554. package/docs/zh-CN/cli/dashboard.md +23 -0
  1555. package/docs/zh-CN/cli/devices.md +74 -0
  1556. package/docs/zh-CN/cli/directory.md +70 -0
  1557. package/docs/zh-CN/cli/dns.md +30 -0
  1558. package/docs/zh-CN/cli/docs.md +22 -0
  1559. package/docs/zh-CN/cli/doctor.md +48 -0
  1560. package/docs/zh-CN/cli/gateway.md +206 -0
  1561. package/docs/zh-CN/cli/health.md +28 -0
  1562. package/docs/zh-CN/cli/hooks.md +298 -0
  1563. package/docs/zh-CN/cli/index.md +1143 -0
  1564. package/docs/zh-CN/cli/logs.md +31 -0
  1565. package/docs/zh-CN/cli/memory.md +52 -0
  1566. package/docs/zh-CN/cli/message.md +246 -0
  1567. package/docs/zh-CN/cli/models.md +85 -0
  1568. package/docs/zh-CN/cli/node.md +115 -0
  1569. package/docs/zh-CN/cli/nodes.md +80 -0
  1570. package/docs/zh-CN/cli/onboard.md +164 -0
  1571. package/docs/zh-CN/cli/pairing.md +28 -0
  1572. package/docs/zh-CN/cli/plugins.md +66 -0
  1573. package/docs/zh-CN/cli/reset.md +24 -0
  1574. package/docs/zh-CN/cli/sandbox.md +158 -0
  1575. package/docs/zh-CN/cli/security.md +33 -0
  1576. package/docs/zh-CN/cli/sessions.md +23 -0
  1577. package/docs/zh-CN/cli/setup.md +36 -0
  1578. package/docs/zh-CN/cli/skills.md +33 -0
  1579. package/docs/zh-CN/cli/status.md +33 -0
  1580. package/docs/zh-CN/cli/system.md +63 -0
  1581. package/docs/zh-CN/cli/tui.md +30 -0
  1582. package/docs/zh-CN/cli/uninstall.md +24 -0
  1583. package/docs/zh-CN/cli/update.md +101 -0
  1584. package/docs/zh-CN/cli/voicecall.md +41 -0
  1585. package/docs/zh-CN/cli/webhooks.md +32 -0
  1586. package/docs/zh-CN/concepts/agent-loop.md +146 -0
  1587. package/docs/zh-CN/concepts/agent-workspace.md +219 -0
  1588. package/docs/zh-CN/concepts/agent.md +115 -0
  1589. package/docs/zh-CN/concepts/architecture.md +123 -0
  1590. package/docs/zh-CN/concepts/compaction.md +67 -0
  1591. package/docs/zh-CN/concepts/context.md +168 -0
  1592. package/docs/zh-CN/concepts/features.md +59 -0
  1593. package/docs/zh-CN/concepts/markdown-formatting.md +117 -0
  1594. package/docs/zh-CN/concepts/memory.md +412 -0
  1595. package/docs/zh-CN/concepts/messages.md +141 -0
  1596. package/docs/zh-CN/concepts/model-failover.md +145 -0
  1597. package/docs/zh-CN/concepts/model-providers.md +606 -0
  1598. package/docs/zh-CN/concepts/models.md +225 -0
  1599. package/docs/zh-CN/concepts/multi-agent.md +372 -0
  1600. package/docs/zh-CN/concepts/oauth.md +164 -0
  1601. package/docs/zh-CN/concepts/presence.md +99 -0
  1602. package/docs/zh-CN/concepts/queue.md +94 -0
  1603. package/docs/zh-CN/concepts/retry.md +76 -0
  1604. package/docs/zh-CN/concepts/session-pruning.md +129 -0
  1605. package/docs/zh-CN/concepts/session-tool.md +200 -0
  1606. package/docs/zh-CN/concepts/session.md +166 -0
  1607. package/docs/zh-CN/concepts/streaming.md +133 -0
  1608. package/docs/zh-CN/concepts/system-prompt.md +101 -0
  1609. package/docs/zh-CN/concepts/timezone.md +96 -0
  1610. package/docs/zh-CN/concepts/typebox.md +284 -0
  1611. package/docs/zh-CN/concepts/typing-indicators.md +74 -0
  1612. package/docs/zh-CN/concepts/usage-tracking.md +42 -0
  1613. package/docs/zh-CN/date-time.md +129 -0
  1614. package/docs/zh-CN/debug/node-issue.md +90 -0
  1615. package/docs/zh-CN/diagnostics/flags.md +98 -0
  1616. package/docs/zh-CN/gateway/authentication.md +184 -0
  1617. package/docs/zh-CN/gateway/background-process.md +100 -0
  1618. package/docs/zh-CN/gateway/bonjour.md +174 -0
  1619. package/docs/zh-CN/gateway/bridge-protocol.md +86 -0
  1620. package/docs/zh-CN/gateway/cli-backends.md +213 -0
  1621. package/docs/zh-CN/gateway/configuration-examples.md +587 -0
  1622. package/docs/zh-CN/gateway/configuration-reference.md +3103 -0
  1623. package/docs/zh-CN/gateway/configuration.md +640 -0
  1624. package/docs/zh-CN/gateway/discovery.md +123 -0
  1625. package/docs/zh-CN/gateway/doctor.md +238 -0
  1626. package/docs/zh-CN/gateway/gateway-lock.md +41 -0
  1627. package/docs/zh-CN/gateway/health.md +42 -0
  1628. package/docs/zh-CN/gateway/heartbeat.md +274 -0
  1629. package/docs/zh-CN/gateway/index.md +335 -0
  1630. package/docs/zh-CN/gateway/local-models.md +159 -0
  1631. package/docs/zh-CN/gateway/logging.md +114 -0
  1632. package/docs/zh-CN/gateway/multiple-gateways.md +119 -0
  1633. package/docs/zh-CN/gateway/network-model.md +23 -0
  1634. package/docs/zh-CN/gateway/openai-http-api.md +125 -0
  1635. package/docs/zh-CN/gateway/openresponses-http-api.md +317 -0
  1636. package/docs/zh-CN/gateway/pairing.md +99 -0
  1637. package/docs/zh-CN/gateway/protocol.md +220 -0
  1638. package/docs/zh-CN/gateway/remote-gateway-readme.md +164 -0
  1639. package/docs/zh-CN/gateway/remote.md +133 -0
  1640. package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +135 -0
  1641. package/docs/zh-CN/gateway/sandboxing.md +188 -0
  1642. package/docs/zh-CN/gateway/security/index.md +777 -0
  1643. package/docs/zh-CN/gateway/tailscale.md +124 -0
  1644. package/docs/zh-CN/gateway/tools-invoke-http-api.md +92 -0
  1645. package/docs/zh-CN/gateway/troubleshooting.md +771 -0
  1646. package/docs/zh-CN/help/debugging.md +160 -0
  1647. package/docs/zh-CN/help/environment.md +88 -0
  1648. package/docs/zh-CN/help/faq.md +2640 -0
  1649. package/docs/zh-CN/help/index.md +28 -0
  1650. package/docs/zh-CN/help/scripts.md +35 -0
  1651. package/docs/zh-CN/help/testing.md +375 -0
  1652. package/docs/zh-CN/help/troubleshooting.md +104 -0
  1653. package/docs/zh-CN/index.md +186 -0
  1654. package/docs/zh-CN/install/ansible.md +215 -0
  1655. package/docs/zh-CN/install/bun.md +65 -0
  1656. package/docs/zh-CN/install/development-channels.md +81 -0
  1657. package/docs/zh-CN/install/docker.md +532 -0
  1658. package/docs/zh-CN/install/exe-dev.md +133 -0
  1659. package/docs/zh-CN/install/fly.md +490 -0
  1660. package/docs/zh-CN/install/gcp.md +510 -0
  1661. package/docs/zh-CN/install/hetzner.md +337 -0
  1662. package/docs/zh-CN/install/index.md +235 -0
  1663. package/docs/zh-CN/install/installer.md +422 -0
  1664. package/docs/zh-CN/install/macos-vm.md +288 -0
  1665. package/docs/zh-CN/install/migrating.md +199 -0
  1666. package/docs/zh-CN/install/nix.md +99 -0
  1667. package/docs/zh-CN/install/node.md +8 -0
  1668. package/docs/zh-CN/install/northflank.mdx +60 -0
  1669. package/docs/zh-CN/install/railway.mdx +106 -0
  1670. package/docs/zh-CN/install/render.mdx +169 -0
  1671. package/docs/zh-CN/install/uninstall.md +135 -0
  1672. package/docs/zh-CN/install/updating.md +233 -0
  1673. package/docs/zh-CN/logging.md +329 -0
  1674. package/docs/zh-CN/network.md +59 -0
  1675. package/docs/zh-CN/nodes/audio.md +120 -0
  1676. package/docs/zh-CN/nodes/camera.md +162 -0
  1677. package/docs/zh-CN/nodes/images.md +79 -0
  1678. package/docs/zh-CN/nodes/index.md +348 -0
  1679. package/docs/zh-CN/nodes/location-command.md +120 -0
  1680. package/docs/zh-CN/nodes/media-understanding.md +380 -0
  1681. package/docs/zh-CN/nodes/talk.md +97 -0
  1682. package/docs/zh-CN/nodes/troubleshooting.md +8 -0
  1683. package/docs/zh-CN/nodes/voicewake.md +72 -0
  1684. package/docs/zh-CN/perplexity.md +102 -0
  1685. package/docs/zh-CN/pi-dev.md +77 -0
  1686. package/docs/zh-CN/pi.md +619 -0
  1687. package/docs/zh-CN/platforms/android.md +155 -0
  1688. package/docs/zh-CN/platforms/digitalocean.md +273 -0
  1689. package/docs/zh-CN/platforms/index.md +60 -0
  1690. package/docs/zh-CN/platforms/ios.md +114 -0
  1691. package/docs/zh-CN/platforms/linux.md +100 -0
  1692. package/docs/zh-CN/platforms/mac/bundled-gateway.md +75 -0
  1693. package/docs/zh-CN/platforms/mac/canvas.md +128 -0
  1694. package/docs/zh-CN/platforms/mac/child-process.md +73 -0
  1695. package/docs/zh-CN/platforms/mac/dev-setup.md +109 -0
  1696. package/docs/zh-CN/platforms/mac/health.md +41 -0
  1697. package/docs/zh-CN/platforms/mac/icon.md +38 -0
  1698. package/docs/zh-CN/platforms/mac/logging.md +64 -0
  1699. package/docs/zh-CN/platforms/mac/menu-bar.md +88 -0
  1700. package/docs/zh-CN/platforms/mac/peekaboo.md +62 -0
  1701. package/docs/zh-CN/platforms/mac/permissions.md +46 -0
  1702. package/docs/zh-CN/platforms/mac/remote.md +90 -0
  1703. package/docs/zh-CN/platforms/mac/signing.md +54 -0
  1704. package/docs/zh-CN/platforms/mac/skills.md +40 -0
  1705. package/docs/zh-CN/platforms/mac/voice-overlay.md +67 -0
  1706. package/docs/zh-CN/platforms/mac/voicewake.md +74 -0
  1707. package/docs/zh-CN/platforms/mac/webchat.md +43 -0
  1708. package/docs/zh-CN/platforms/mac/xpc.md +68 -0
  1709. package/docs/zh-CN/platforms/macos.md +193 -0
  1710. package/docs/zh-CN/platforms/oracle.md +310 -0
  1711. package/docs/zh-CN/platforms/raspberry-pi.md +416 -0
  1712. package/docs/zh-CN/platforms/windows.md +247 -0
  1713. package/docs/zh-CN/plugins/agent-tools.md +99 -0
  1714. package/docs/zh-CN/plugins/manifest.md +68 -0
  1715. package/docs/zh-CN/plugins/voice-call.md +250 -0
  1716. package/docs/zh-CN/plugins/zalouser.md +88 -0
  1717. package/docs/zh-CN/prose.md +141 -0
  1718. package/docs/zh-CN/providers/anthropic.md +265 -0
  1719. package/docs/zh-CN/providers/bedrock.md +170 -0
  1720. package/docs/zh-CN/providers/claude-max-api-proxy.md +155 -0
  1721. package/docs/zh-CN/providers/cloudflare-ai-gateway.md +78 -0
  1722. package/docs/zh-CN/providers/deepgram.md +97 -0
  1723. package/docs/zh-CN/providers/github-copilot.md +67 -0
  1724. package/docs/zh-CN/providers/glm.md +50 -0
  1725. package/docs/zh-CN/providers/huggingface.md +216 -0
  1726. package/docs/zh-CN/providers/index.md +69 -0
  1727. package/docs/zh-CN/providers/kilocode.md +80 -0
  1728. package/docs/zh-CN/providers/litellm.md +160 -0
  1729. package/docs/zh-CN/providers/minimax.md +222 -0
  1730. package/docs/zh-CN/providers/mistral.md +61 -0
  1731. package/docs/zh-CN/providers/models.md +51 -0
  1732. package/docs/zh-CN/providers/moonshot.md +182 -0
  1733. package/docs/zh-CN/providers/nvidia.md +62 -0
  1734. package/docs/zh-CN/providers/ollama.md +359 -0
  1735. package/docs/zh-CN/providers/openai.md +308 -0
  1736. package/docs/zh-CN/providers/opencode-go.md +52 -0
  1737. package/docs/zh-CN/providers/opencode.md +71 -0
  1738. package/docs/zh-CN/providers/openrouter.md +44 -0
  1739. package/docs/zh-CN/providers/qianfan.md +45 -0
  1740. package/docs/zh-CN/providers/qwen.md +55 -0
  1741. package/docs/zh-CN/providers/sglang.md +111 -0
  1742. package/docs/zh-CN/providers/synthetic.md +106 -0
  1743. package/docs/zh-CN/providers/together.md +72 -0
  1744. package/docs/zh-CN/providers/venice.md +289 -0
  1745. package/docs/zh-CN/providers/vercel-ai-gateway.md +66 -0
  1746. package/docs/zh-CN/providers/xiaomi.md +93 -0
  1747. package/docs/zh-CN/providers/zai.md +53 -0
  1748. package/docs/zh-CN/reference/AGENTS.default.md +131 -0
  1749. package/docs/zh-CN/reference/RELEASING.md +48 -0
  1750. package/docs/zh-CN/reference/api-usage-costs.md +141 -0
  1751. package/docs/zh-CN/reference/credits.md +34 -0
  1752. package/docs/zh-CN/reference/device-models.md +54 -0
  1753. package/docs/zh-CN/reference/rpc.md +48 -0
  1754. package/docs/zh-CN/reference/session-management-compaction.md +287 -0
  1755. package/docs/zh-CN/reference/templates/AGENTS.dev.md +89 -0
  1756. package/docs/zh-CN/reference/templates/AGENTS.md +225 -0
  1757. package/docs/zh-CN/reference/templates/BOOT.md +17 -0
  1758. package/docs/zh-CN/reference/templates/BOOTSTRAP.md +68 -0
  1759. package/docs/zh-CN/reference/templates/HEARTBEAT.md +18 -0
  1760. package/docs/zh-CN/reference/templates/IDENTITY.dev.md +54 -0
  1761. package/docs/zh-CN/reference/templates/IDENTITY.md +36 -0
  1762. package/docs/zh-CN/reference/templates/SOUL.dev.md +83 -0
  1763. package/docs/zh-CN/reference/templates/SOUL.md +49 -0
  1764. package/docs/zh-CN/reference/templates/TOOLS.dev.md +31 -0
  1765. package/docs/zh-CN/reference/templates/TOOLS.md +53 -0
  1766. package/docs/zh-CN/reference/templates/USER.dev.md +25 -0
  1767. package/docs/zh-CN/reference/templates/USER.md +30 -0
  1768. package/docs/zh-CN/reference/test.md +57 -0
  1769. package/docs/zh-CN/reference/token-use.md +119 -0
  1770. package/docs/zh-CN/reference/transcript-hygiene.md +109 -0
  1771. package/docs/zh-CN/reference/wizard.md +242 -0
  1772. package/docs/zh-CN/security/formal-verification.md +171 -0
  1773. package/docs/zh-CN/start/bootstrapping.md +9 -0
  1774. package/docs/zh-CN/start/docs-directory.md +70 -0
  1775. package/docs/zh-CN/start/getting-started.md +143 -0
  1776. package/docs/zh-CN/start/hubs.md +194 -0
  1777. package/docs/zh-CN/start/lore.md +226 -0
  1778. package/docs/zh-CN/start/onboarding-overview.md +58 -0
  1779. package/docs/zh-CN/start/onboarding.md +105 -0
  1780. package/docs/zh-CN/start/openclaw.md +248 -0
  1781. package/docs/zh-CN/start/quickstart.md +88 -0
  1782. package/docs/zh-CN/start/setup.md +153 -0
  1783. package/docs/zh-CN/start/showcase.md +423 -0
  1784. package/docs/zh-CN/start/wizard-cli-automation.md +222 -0
  1785. package/docs/zh-CN/start/wizard-cli-reference.md +306 -0
  1786. package/docs/zh-CN/start/wizard.md +132 -0
  1787. package/docs/zh-CN/tools/agent-send.md +59 -0
  1788. package/docs/zh-CN/tools/apply-patch.md +57 -0
  1789. package/docs/zh-CN/tools/browser-linux-troubleshooting.md +144 -0
  1790. package/docs/zh-CN/tools/browser-login.md +75 -0
  1791. package/docs/zh-CN/tools/browser.md +553 -0
  1792. package/docs/zh-CN/tools/chrome-extension.md +183 -0
  1793. package/docs/zh-CN/tools/clawhub.md +209 -0
  1794. package/docs/zh-CN/tools/creating-skills.md +61 -0
  1795. package/docs/zh-CN/tools/elevated.md +64 -0
  1796. package/docs/zh-CN/tools/exec-approvals.md +234 -0
  1797. package/docs/zh-CN/tools/exec.md +169 -0
  1798. package/docs/zh-CN/tools/firecrawl.md +68 -0
  1799. package/docs/zh-CN/tools/index.md +515 -0
  1800. package/docs/zh-CN/tools/llm-task.md +117 -0
  1801. package/docs/zh-CN/tools/lobster.md +349 -0
  1802. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +401 -0
  1803. package/docs/zh-CN/tools/plugin.md +1612 -0
  1804. package/docs/zh-CN/tools/reactions.md +29 -0
  1805. package/docs/zh-CN/tools/skills-config.md +78 -0
  1806. package/docs/zh-CN/tools/skills.md +279 -0
  1807. package/docs/zh-CN/tools/slash-commands.md +205 -0
  1808. package/docs/zh-CN/tools/subagents.md +167 -0
  1809. package/docs/zh-CN/tools/thinking.md +80 -0
  1810. package/docs/zh-CN/tools/web.md +289 -0
  1811. package/docs/zh-CN/tts.md +375 -0
  1812. package/docs/zh-CN/vps.md +47 -0
  1813. package/docs/zh-CN/web/control-ui.md +191 -0
  1814. package/docs/zh-CN/web/dashboard.md +53 -0
  1815. package/docs/zh-CN/web/index.md +118 -0
  1816. package/docs/zh-CN/web/tui.md +166 -0
  1817. package/docs/zh-CN/web/webchat.md +56 -0
  1818. package/openclaw.mjs +135 -0
  1819. package/package.json +835 -0
  1820. package/skills/1password/SKILL.md +70 -0
  1821. package/skills/1password/references/cli-examples.md +29 -0
  1822. package/skills/1password/references/get-started.md +17 -0
  1823. package/skills/apple-notes/SKILL.md +77 -0
  1824. package/skills/apple-reminders/SKILL.md +118 -0
  1825. package/skills/bear-notes/SKILL.md +107 -0
  1826. package/skills/blogwatcher/SKILL.md +69 -0
  1827. package/skills/blucli/SKILL.md +47 -0
  1828. package/skills/bluebubbles/SKILL.md +131 -0
  1829. package/skills/camsnap/SKILL.md +45 -0
  1830. package/skills/canvas/SKILL.md +198 -0
  1831. package/skills/clawhub/SKILL.md +77 -0
  1832. package/skills/coding-agent/SKILL.md +295 -0
  1833. package/skills/discord/SKILL.md +197 -0
  1834. package/skills/doubao-code/SKILL.md +43 -0
  1835. package/skills/eightctl/SKILL.md +50 -0
  1836. package/skills/gemini/SKILL.md +43 -0
  1837. package/skills/gh-issues/SKILL.md +865 -0
  1838. package/skills/gifgrep/SKILL.md +79 -0
  1839. package/skills/github/SKILL.md +163 -0
  1840. package/skills/gog/SKILL.md +116 -0
  1841. package/skills/goplaces/SKILL.md +52 -0
  1842. package/skills/healthcheck/SKILL.md +245 -0
  1843. package/skills/himalaya/SKILL.md +257 -0
  1844. package/skills/himalaya/references/configuration.md +184 -0
  1845. package/skills/himalaya/references/message-composition.md +199 -0
  1846. package/skills/imsg/SKILL.md +122 -0
  1847. package/skills/kimi-code/SKILL.md +42 -0
  1848. package/skills/mcporter/SKILL.md +61 -0
  1849. package/skills/model-usage/SKILL.md +69 -0
  1850. package/skills/model-usage/references/codexbar-cli.md +33 -0
  1851. package/skills/model-usage/scripts/model_usage.py +320 -0
  1852. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  1853. package/skills/nano-pdf/SKILL.md +38 -0
  1854. package/skills/node-connect/SKILL.md +142 -0
  1855. package/skills/notion/SKILL.md +174 -0
  1856. package/skills/obsidian/SKILL.md +81 -0
  1857. package/skills/openai-image-gen/SKILL.md +92 -0
  1858. package/skills/openai-image-gen/scripts/gen.py +328 -0
  1859. package/skills/openai-image-gen/scripts/test_gen.py +140 -0
  1860. package/skills/openai-whisper/SKILL.md +38 -0
  1861. package/skills/openai-whisper-api/SKILL.md +52 -0
  1862. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  1863. package/skills/openhue/SKILL.md +112 -0
  1864. package/skills/oracle/SKILL.md +125 -0
  1865. package/skills/ordercli/SKILL.md +78 -0
  1866. package/skills/peekaboo/SKILL.md +190 -0
  1867. package/skills/sag/SKILL.md +87 -0
  1868. package/skills/session-logs/SKILL.md +115 -0
  1869. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  1870. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  1871. package/skills/skill-creator/SKILL.md +372 -0
  1872. package/skills/skill-creator/license.txt +202 -0
  1873. package/skills/skill-creator/scripts/init_skill.py +378 -0
  1874. package/skills/skill-creator/scripts/package_skill.py +139 -0
  1875. package/skills/skill-creator/scripts/quick_validate.py +159 -0
  1876. package/skills/skill-creator/scripts/test_package_skill.py +160 -0
  1877. package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
  1878. package/skills/slack/SKILL.md +144 -0
  1879. package/skills/songsee/SKILL.md +49 -0
  1880. package/skills/sonoscli/SKILL.md +65 -0
  1881. package/skills/spotify-player/SKILL.md +64 -0
  1882. package/skills/summarize/SKILL.md +87 -0
  1883. package/skills/things-mac/SKILL.md +86 -0
  1884. package/skills/tmux/SKILL.md +153 -0
  1885. package/skills/tmux/scripts/find-sessions.sh +112 -0
  1886. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  1887. package/skills/trello/SKILL.md +95 -0
  1888. package/skills/video-frames/SKILL.md +46 -0
  1889. package/skills/video-frames/scripts/frame.sh +81 -0
  1890. package/skills/voice-call/SKILL.md +45 -0
  1891. package/skills/wacli/SKILL.md +72 -0
  1892. package/skills/weather/SKILL.md +112 -0
  1893. package/skills/xurl/SKILL.md +461 -0
@@ -0,0 +1,1363 @@
1
+ ---
2
+ summary: "Plugin internals: capability model, ownership, contracts, load pipeline, and runtime helpers"
3
+ read_when:
4
+ - Building or debugging native OpenClaw plugins
5
+ - Understanding the plugin capability model or ownership boundaries
6
+ - Working on the plugin load pipeline or registry
7
+ - Implementing provider runtime hooks or channel plugins
8
+ title: "Plugin Internals"
9
+ sidebarTitle: "Internals"
10
+ ---
11
+
12
+ # Plugin Internals
13
+
14
+ <Info>
15
+ This page is for **plugin developers and contributors**. If you just want to
16
+ install and use plugins, see [Plugins](/tools/plugin). If you want to build
17
+ a plugin, see [Building Plugins](/plugins/building-plugins).
18
+ </Info>
19
+
20
+ This page covers the internal architecture of the OpenClaw plugin system.
21
+
22
+ ## Public capability model
23
+
24
+ Capabilities are the public **native plugin** model inside OpenClaw. Every
25
+ native OpenClaw plugin registers against one or more capability types:
26
+
27
+ | Capability | Registration method | Example plugins |
28
+ | ------------------- | --------------------------------------------- | ------------------------- |
29
+ | Text inference | `api.registerProvider(...)` | `openai`, `anthropic` |
30
+ | Speech | `api.registerSpeechProvider(...)` | `elevenlabs`, `microsoft` |
31
+ | Media understanding | `api.registerMediaUnderstandingProvider(...)` | `openai`, `google` |
32
+ | Image generation | `api.registerImageGenerationProvider(...)` | `openai`, `google` |
33
+ | Web search | `api.registerWebSearchProvider(...)` | `google` |
34
+ | Channel / messaging | `api.registerChannel(...)` | `msteams`, `matrix` |
35
+
36
+ A plugin that registers zero capabilities but provides hooks, tools, or
37
+ services is a **legacy hook-only** plugin. That pattern is still fully supported.
38
+
39
+ ### External compatibility stance
40
+
41
+ The capability model is landed in core and used by bundled/native plugins
42
+ today, but external plugin compatibility still needs a tighter bar than "it is
43
+ exported, therefore it is frozen."
44
+
45
+ Current guidance:
46
+
47
+ - **existing external plugins:** keep hook-based integrations working; treat
48
+ this as the compatibility baseline
49
+ - **new bundled/native plugins:** prefer explicit capability registration over
50
+ vendor-specific reach-ins or new hook-only designs
51
+ - **external plugins adopting capability registration:** allowed, but treat the
52
+ capability-specific helper surfaces as evolving unless docs explicitly mark a
53
+ contract as stable
54
+
55
+ Practical rule:
56
+
57
+ - capability registration APIs are the intended direction
58
+ - legacy hooks remain the safest no-breakage path for external plugins during
59
+ the transition
60
+ - exported helper subpaths are not all equal; prefer the narrow documented
61
+ contract, not incidental helper exports
62
+
63
+ ### Plugin shapes
64
+
65
+ OpenClaw classifies every loaded plugin into a shape based on its actual
66
+ registration behavior (not just static metadata):
67
+
68
+ - **plain-capability** -- registers exactly one capability type (for example a
69
+ provider-only plugin like `mistral`)
70
+ - **hybrid-capability** -- registers multiple capability types (for example
71
+ `openai` owns text inference, speech, media understanding, and image
72
+ generation)
73
+ - **hook-only** -- registers only hooks (typed or custom), no capabilities,
74
+ tools, commands, or services
75
+ - **non-capability** -- registers tools, commands, services, or routes but no
76
+ capabilities
77
+
78
+ Use `openclaw plugins inspect <id>` to see a plugin's shape and capability
79
+ breakdown. See [CLI reference](/cli/plugins#inspect) for details.
80
+
81
+ ### Legacy hooks
82
+
83
+ The `before_agent_start` hook remains supported as a compatibility path for
84
+ hook-only plugins. Legacy real-world plugins still depend on it.
85
+
86
+ Direction:
87
+
88
+ - keep it working
89
+ - document it as legacy
90
+ - prefer `before_model_resolve` for model/provider override work
91
+ - prefer `before_prompt_build` for prompt mutation work
92
+ - remove only after real usage drops and fixture coverage proves migration safety
93
+
94
+ ### Compatibility signals
95
+
96
+ When you run `openclaw doctor` or `openclaw plugins inspect <id>`, you may see
97
+ one of these labels:
98
+
99
+ | Signal | Meaning |
100
+ | -------------------------- | ------------------------------------------------------------ |
101
+ | **config valid** | Config parses fine and plugins resolve |
102
+ | **compatibility advisory** | Plugin uses a supported-but-older pattern (e.g. `hook-only`) |
103
+ | **legacy warning** | Plugin uses `before_agent_start`, which is deprecated |
104
+ | **hard error** | Config is invalid or plugin failed to load |
105
+
106
+ Neither `hook-only` nor `before_agent_start` will break your plugin today --
107
+ `hook-only` is advisory, and `before_agent_start` only triggers a warning. These
108
+ signals also appear in `openclaw status --all` and `openclaw plugins doctor`.
109
+
110
+ ## Architecture overview
111
+
112
+ OpenClaw's plugin system has four layers:
113
+
114
+ 1. **Manifest + discovery**
115
+ OpenClaw finds candidate plugins from configured paths, workspace roots,
116
+ global extension roots, and bundled extensions. Discovery reads native
117
+ `openclaw.plugin.json` manifests plus supported bundle manifests first.
118
+ 2. **Enablement + validation**
119
+ Core decides whether a discovered plugin is enabled, disabled, blocked, or
120
+ selected for an exclusive slot such as memory.
121
+ 3. **Runtime loading**
122
+ Native OpenClaw plugins are loaded in-process via jiti and register
123
+ capabilities into a central registry. Compatible bundles are normalized into
124
+ registry records without importing runtime code.
125
+ 4. **Surface consumption**
126
+ The rest of OpenClaw reads the registry to expose tools, channels, provider
127
+ setup, hooks, HTTP routes, CLI commands, and services.
128
+
129
+ The important design boundary:
130
+
131
+ - discovery + config validation should work from **manifest/schema metadata**
132
+ without executing plugin code
133
+ - native runtime behavior comes from the plugin module's `register(api)` path
134
+
135
+ That split lets OpenClaw validate config, explain missing/disabled plugins, and
136
+ build UI/schema hints before the full runtime is active.
137
+
138
+ ### Channel plugins and the shared message tool
139
+
140
+ Channel plugins do not need to register a separate send/edit/react tool for
141
+ normal chat actions. OpenClaw keeps one shared `message` tool in core, and
142
+ channel plugins own the channel-specific discovery and execution behind it.
143
+
144
+ The current boundary is:
145
+
146
+ - core owns the shared `message` tool host, prompt wiring, session/thread
147
+ bookkeeping, and execution dispatch
148
+ - channel plugins own scoped action discovery, capability discovery, and any
149
+ channel-specific schema fragments
150
+ - channel plugins execute the final action through their action adapter
151
+
152
+ For channel plugins, the SDK surface is
153
+ `ChannelMessageActionAdapter.describeMessageTool(...)`. That unified discovery
154
+ call lets a plugin return its visible actions, capabilities, and schema
155
+ contributions together so those pieces do not drift apart.
156
+
157
+ Core passes runtime scope into that discovery step. Important fields include:
158
+
159
+ - `accountId`
160
+ - `currentChannelId`
161
+ - `currentThreadTs`
162
+ - `currentMessageId`
163
+ - `sessionKey`
164
+ - `sessionId`
165
+ - `agentId`
166
+ - trusted inbound `requesterSenderId`
167
+
168
+ That matters for context-sensitive plugins. A channel can hide or expose
169
+ message actions based on the active account, current room/thread/message, or
170
+ trusted requester identity without hardcoding channel-specific branches in the
171
+ core `message` tool.
172
+
173
+ This is why embedded-runner routing changes are still plugin work: the runner is
174
+ responsible for forwarding the current chat/session identity into the plugin
175
+ discovery boundary so the shared `message` tool exposes the right channel-owned
176
+ surface for the current turn.
177
+
178
+ For channel-owned execution helpers, bundled plugins should keep the execution
179
+ runtime inside their own extension modules. Core no longer owns the Discord,
180
+ Slack, Telegram, or WhatsApp message-action runtimes under `src/agents/tools`.
181
+ We do not publish separate `plugin-sdk/*-action-runtime` subpaths, and bundled
182
+ plugins should import their own local runtime code directly from their
183
+ extension-owned modules.
184
+
185
+ For polls specifically, there are two execution paths:
186
+
187
+ - `outbound.sendPoll` is the shared baseline for channels that fit the common
188
+ poll model
189
+ - `actions.handleAction("poll")` is the preferred path for channel-specific
190
+ poll semantics or extra poll parameters
191
+
192
+ Core now defers shared poll parsing until after plugin poll dispatch declines
193
+ the action, so plugin-owned poll handlers can accept channel-specific poll
194
+ fields without being blocked by the generic poll parser first.
195
+
196
+ See [Load pipeline](#load-pipeline) for the full startup sequence.
197
+
198
+ ## Capability ownership model
199
+
200
+ OpenClaw treats a native plugin as the ownership boundary for a **company** or a
201
+ **feature**, not as a grab bag of unrelated integrations.
202
+
203
+ That means:
204
+
205
+ - a company plugin should usually own all of that company's OpenClaw-facing
206
+ surfaces
207
+ - a feature plugin should usually own the full feature surface it introduces
208
+ - channels should consume shared core capabilities instead of re-implementing
209
+ provider behavior ad hoc
210
+
211
+ Examples:
212
+
213
+ - the bundled `openai` plugin owns OpenAI model-provider behavior and OpenAI
214
+ speech + media-understanding + image-generation behavior
215
+ - the bundled `elevenlabs` plugin owns ElevenLabs speech behavior
216
+ - the bundled `microsoft` plugin owns Microsoft speech behavior
217
+ - the bundled `google` plugin owns Google model-provider behavior plus Google
218
+ media-understanding + image-generation + web-search behavior
219
+ - the bundled `minimax`, `mistral`, `moonshot`, and `zai` plugins own their
220
+ media-understanding backends
221
+ - the `voice-call` plugin is a feature plugin: it owns call transport, tools,
222
+ CLI, routes, and runtime, but it consumes core TTS/STT capability instead of
223
+ inventing a second speech stack
224
+
225
+ The intended end state is:
226
+
227
+ - OpenAI lives in one plugin even if it spans text models, speech, images, and
228
+ future video
229
+ - another vendor can do the same for its own surface area
230
+ - channels do not care which vendor plugin owns the provider; they consume the
231
+ shared capability contract exposed by core
232
+
233
+ This is the key distinction:
234
+
235
+ - **plugin** = ownership boundary
236
+ - **capability** = core contract that multiple plugins can implement or consume
237
+
238
+ So if OpenClaw adds a new domain such as video, the first question is not
239
+ "which provider should hardcode video handling?" The first question is "what is
240
+ the core video capability contract?" Once that contract exists, vendor plugins
241
+ can register against it and channel/feature plugins can consume it.
242
+
243
+ If the capability does not exist yet, the right move is usually:
244
+
245
+ 1. define the missing capability in core
246
+ 2. expose it through the plugin API/runtime in a typed way
247
+ 3. wire channels/features against that capability
248
+ 4. let vendor plugins register implementations
249
+
250
+ This keeps ownership explicit while avoiding core behavior that depends on a
251
+ single vendor or a one-off plugin-specific code path.
252
+
253
+ ### Capability layering
254
+
255
+ Use this mental model when deciding where code belongs:
256
+
257
+ - **core capability layer**: shared orchestration, policy, fallback, config
258
+ merge rules, delivery semantics, and typed contracts
259
+ - **vendor plugin layer**: vendor-specific APIs, auth, model catalogs, speech
260
+ synthesis, image generation, future video backends, usage endpoints
261
+ - **channel/feature plugin layer**: Slack/Discord/voice-call/etc. integration
262
+ that consumes core capabilities and presents them on a surface
263
+
264
+ For example, TTS follows this shape:
265
+
266
+ - core owns reply-time TTS policy, fallback order, prefs, and channel delivery
267
+ - `openai`, `elevenlabs`, and `microsoft` own synthesis implementations
268
+ - `voice-call` consumes the telephony TTS runtime helper
269
+
270
+ That same pattern should be preferred for future capabilities.
271
+
272
+ ### Multi-capability company plugin example
273
+
274
+ A company plugin should feel cohesive from the outside. If OpenClaw has shared
275
+ contracts for models, speech, media understanding, and web search, a vendor can
276
+ own all of its surfaces in one place:
277
+
278
+ ```ts
279
+ import type { OpenClawPluginDefinition } from "openclaw/plugin-sdk";
280
+ import {
281
+ buildOpenAISpeechProvider,
282
+ createPluginBackedWebSearchProvider,
283
+ describeImageWithModel,
284
+ transcribeOpenAiCompatibleAudio,
285
+ } from "openclaw/plugin-sdk";
286
+
287
+ const plugin: OpenClawPluginDefinition = {
288
+ id: "exampleai",
289
+ name: "ExampleAI",
290
+ register(api) {
291
+ api.registerProvider({
292
+ id: "exampleai",
293
+ // auth/model catalog/runtime hooks
294
+ });
295
+
296
+ api.registerSpeechProvider(
297
+ buildOpenAISpeechProvider({
298
+ id: "exampleai",
299
+ // vendor speech config
300
+ }),
301
+ );
302
+
303
+ api.registerMediaUnderstandingProvider({
304
+ id: "exampleai",
305
+ capabilities: ["image", "audio", "video"],
306
+ async describeImage(req) {
307
+ return describeImageWithModel({
308
+ provider: "exampleai",
309
+ model: req.model,
310
+ input: req.input,
311
+ });
312
+ },
313
+ async transcribeAudio(req) {
314
+ return transcribeOpenAiCompatibleAudio({
315
+ provider: "exampleai",
316
+ model: req.model,
317
+ input: req.input,
318
+ });
319
+ },
320
+ });
321
+
322
+ api.registerWebSearchProvider(
323
+ createPluginBackedWebSearchProvider({
324
+ id: "exampleai-search",
325
+ // credential + fetch logic
326
+ }),
327
+ );
328
+ },
329
+ };
330
+
331
+ export default plugin;
332
+ ```
333
+
334
+ What matters is not the exact helper names. The shape matters:
335
+
336
+ - one plugin owns the vendor surface
337
+ - core still owns the capability contracts
338
+ - channels and feature plugins consume `api.runtime.*` helpers, not vendor code
339
+ - contract tests can assert that the plugin registered the capabilities it
340
+ claims to own
341
+
342
+ ### Capability example: video understanding
343
+
344
+ OpenClaw already treats image/audio/video understanding as one shared
345
+ capability. The same ownership model applies there:
346
+
347
+ 1. core defines the media-understanding contract
348
+ 2. vendor plugins register `describeImage`, `transcribeAudio`, and
349
+ `describeVideo` as applicable
350
+ 3. channels and feature plugins consume the shared core behavior instead of
351
+ wiring directly to vendor code
352
+
353
+ That avoids baking one provider's video assumptions into core. The plugin owns
354
+ the vendor surface; core owns the capability contract and fallback behavior.
355
+
356
+ If OpenClaw adds a new domain later, such as video generation, use the same
357
+ sequence again: define the core capability first, then let vendor plugins
358
+ register implementations against it.
359
+
360
+ Need a concrete rollout checklist? See
361
+ [Capability Cookbook](/tools/capability-cookbook).
362
+
363
+ ## Contracts and enforcement
364
+
365
+ The plugin API surface is intentionally typed and centralized in
366
+ `OpenClawPluginApi`. That contract defines the supported registration points and
367
+ the runtime helpers a plugin may rely on.
368
+
369
+ Why this matters:
370
+
371
+ - plugin authors get one stable internal standard
372
+ - core can reject duplicate ownership such as two plugins registering the same
373
+ provider id
374
+ - startup can surface actionable diagnostics for malformed registration
375
+ - contract tests can enforce bundled-plugin ownership and prevent silent drift
376
+
377
+ There are two layers of enforcement:
378
+
379
+ 1. **runtime registration enforcement**
380
+ The plugin registry validates registrations as plugins load. Examples:
381
+ duplicate provider ids, duplicate speech provider ids, and malformed
382
+ registrations produce plugin diagnostics instead of undefined behavior.
383
+ 2. **contract tests**
384
+ Bundled plugins are captured in contract registries during test runs so
385
+ OpenClaw can assert ownership explicitly. Today this is used for model
386
+ providers, speech providers, web search providers, and bundled registration
387
+ ownership.
388
+
389
+ The practical effect is that OpenClaw knows, up front, which plugin owns which
390
+ surface. That lets core and channels compose seamlessly because ownership is
391
+ declared, typed, and testable rather than implicit.
392
+
393
+ ### What belongs in a contract
394
+
395
+ Good plugin contracts are:
396
+
397
+ - typed
398
+ - small
399
+ - capability-specific
400
+ - owned by core
401
+ - reusable by multiple plugins
402
+ - consumable by channels/features without vendor knowledge
403
+
404
+ Bad plugin contracts are:
405
+
406
+ - vendor-specific policy hidden in core
407
+ - one-off plugin escape hatches that bypass the registry
408
+ - channel code reaching straight into a vendor implementation
409
+ - ad hoc runtime objects that are not part of `OpenClawPluginApi` or
410
+ `api.runtime`
411
+
412
+ When in doubt, raise the abstraction level: define the capability first, then
413
+ let plugins plug into it.
414
+
415
+ ## Execution model
416
+
417
+ Native OpenClaw plugins run **in-process** with the Gateway. They are not
418
+ sandboxed. A loaded native plugin has the same process-level trust boundary as
419
+ core code.
420
+
421
+ Implications:
422
+
423
+ - a native plugin can register tools, network handlers, hooks, and services
424
+ - a native plugin bug can crash or destabilize the gateway
425
+ - a malicious native plugin is equivalent to arbitrary code execution inside
426
+ the OpenClaw process
427
+
428
+ Compatible bundles are safer by default because OpenClaw currently treats them
429
+ as metadata/content packs. In current releases, that mostly means bundled
430
+ skills.
431
+
432
+ Use allowlists and explicit install/load paths for non-bundled plugins. Treat
433
+ workspace plugins as development-time code, not production defaults.
434
+
435
+ Important trust note:
436
+
437
+ - `plugins.allow` trusts **plugin ids**, not source provenance.
438
+ - A workspace plugin with the same id as a bundled plugin intentionally shadows
439
+ the bundled copy when that workspace plugin is enabled/allowlisted.
440
+ - This is normal and useful for local development, patch testing, and hotfixes.
441
+
442
+ ## Export boundary
443
+
444
+ OpenClaw exports capabilities, not implementation convenience.
445
+
446
+ Keep capability registration public. Trim non-contract helper exports:
447
+
448
+ - bundled-plugin-specific helper subpaths
449
+ - runtime plumbing subpaths not intended as public API
450
+ - vendor-specific convenience helpers
451
+ - setup/onboarding helpers that are implementation details
452
+
453
+ ## Load pipeline
454
+
455
+ At startup, OpenClaw does roughly this:
456
+
457
+ 1. discover candidate plugin roots
458
+ 2. read native or compatible bundle manifests and package metadata
459
+ 3. reject unsafe candidates
460
+ 4. normalize plugin config (`plugins.enabled`, `allow`, `deny`, `entries`,
461
+ `slots`, `load.paths`)
462
+ 5. decide enablement for each candidate
463
+ 6. load enabled native modules via jiti
464
+ 7. call native `register(api)` hooks and collect registrations into the plugin registry
465
+ 8. expose the registry to commands/runtime surfaces
466
+
467
+ The safety gates happen **before** runtime execution. Candidates are blocked
468
+ when the entry escapes the plugin root, the path is world-writable, or path
469
+ ownership looks suspicious for non-bundled plugins.
470
+
471
+ ### Manifest-first behavior
472
+
473
+ The manifest is the control-plane source of truth. OpenClaw uses it to:
474
+
475
+ - identify the plugin
476
+ - discover declared channels/skills/config schema or bundle capabilities
477
+ - validate `plugins.entries.<id>.config`
478
+ - augment Control UI labels/placeholders
479
+ - show install/catalog metadata
480
+
481
+ For native plugins, the runtime module is the data-plane part. It registers
482
+ actual behavior such as hooks, tools, commands, or provider flows.
483
+
484
+ ### What the loader caches
485
+
486
+ OpenClaw keeps short in-process caches for:
487
+
488
+ - discovery results
489
+ - manifest registry data
490
+ - loaded plugin registries
491
+
492
+ These caches reduce bursty startup and repeated command overhead. They are safe
493
+ to think of as short-lived performance caches, not persistence.
494
+
495
+ Performance note:
496
+
497
+ - Set `OPENCLAW_DISABLE_PLUGIN_DISCOVERY_CACHE=1` or
498
+ `OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE=1` to disable these caches.
499
+ - Tune cache windows with `OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS` and
500
+ `OPENCLAW_PLUGIN_MANIFEST_CACHE_MS`.
501
+
502
+ ## Registry model
503
+
504
+ Loaded plugins do not directly mutate random core globals. They register into a
505
+ central plugin registry.
506
+
507
+ The registry tracks:
508
+
509
+ - plugin records (identity, source, origin, status, diagnostics)
510
+ - tools
511
+ - legacy hooks and typed hooks
512
+ - channels
513
+ - providers
514
+ - gateway RPC handlers
515
+ - HTTP routes
516
+ - CLI registrars
517
+ - background services
518
+ - plugin-owned commands
519
+
520
+ Core features then read from that registry instead of talking to plugin modules
521
+ directly. This keeps loading one-way:
522
+
523
+ - plugin module -> registry registration
524
+ - core runtime -> registry consumption
525
+
526
+ That separation matters for maintainability. It means most core surfaces only
527
+ need one integration point: "read the registry", not "special-case every plugin
528
+ module".
529
+
530
+ ## Conversation binding callbacks
531
+
532
+ Plugins that bind a conversation can react when an approval is resolved.
533
+
534
+ Use `api.onConversationBindingResolved(...)` to receive a callback after a bind
535
+ request is approved or denied:
536
+
537
+ ```ts
538
+ export default {
539
+ id: "my-plugin",
540
+ register(api) {
541
+ api.onConversationBindingResolved(async (event) => {
542
+ if (event.status === "approved") {
543
+ // A binding now exists for this plugin + conversation.
544
+ console.log(event.binding?.conversationId);
545
+ return;
546
+ }
547
+
548
+ // The request was denied; clear any local pending state.
549
+ console.log(event.request.conversation.conversationId);
550
+ });
551
+ },
552
+ };
553
+ ```
554
+
555
+ Callback payload fields:
556
+
557
+ - `status`: `"approved"` or `"denied"`
558
+ - `decision`: `"allow-once"`, `"allow-always"`, or `"deny"`
559
+ - `binding`: the resolved binding for approved requests
560
+ - `request`: the original request summary, detach hint, sender id, and
561
+ conversation metadata
562
+
563
+ This callback is notification-only. It does not change who is allowed to bind a
564
+ conversation, and it runs after core approval handling finishes.
565
+
566
+ ## Provider runtime hooks
567
+
568
+ Provider plugins now have two layers:
569
+
570
+ - manifest metadata: `providerAuthEnvVars` for cheap env-auth lookup before
571
+ runtime load, plus `providerAuthChoices` for cheap onboarding/auth-choice
572
+ labels and CLI flag metadata before runtime load
573
+ - config-time hooks: `catalog` / legacy `discovery`
574
+ - runtime hooks: `resolveDynamicModel`, `prepareDynamicModel`, `normalizeResolvedModel`, `capabilities`, `prepareExtraParams`, `wrapStreamFn`, `formatApiKey`, `refreshOAuth`, `buildAuthDoctorHint`, `isCacheTtlEligible`, `buildMissingAuthMessage`, `suppressBuiltInModel`, `augmentModelCatalog`, `isBinaryThinking`, `supportsXHighThinking`, `resolveDefaultThinkingLevel`, `isModernModelRef`, `prepareRuntimeAuth`, `resolveUsageAuth`, `fetchUsageSnapshot`
575
+
576
+ OpenClaw still owns the generic agent loop, failover, transcript handling, and
577
+ tool policy. These hooks are the extension surface for provider-specific behavior without
578
+ needing a whole custom inference transport.
579
+
580
+ Use manifest `providerAuthEnvVars` when the provider has env-based credentials
581
+ that generic auth/status/model-picker paths should see without loading plugin
582
+ runtime. Use manifest `providerAuthChoices` when onboarding/auth-choice CLI
583
+ surfaces should know the provider's choice id, group labels, and simple
584
+ one-flag auth wiring without loading provider runtime. Keep provider runtime
585
+ `envVars` for operator-facing hints such as onboarding labels or OAuth
586
+ client-id/client-secret setup vars.
587
+
588
+ ### Hook order and usage
589
+
590
+ For model/provider plugins, OpenClaw calls hooks in this rough order.
591
+ The "When to use" column is the quick decision guide.
592
+
593
+ | # | Hook | What it does | When to use |
594
+ | --- | ----------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
595
+ | 1 | `catalog` | Publish provider config into `models.providers` during `models.json` generation | Provider owns a catalog or base URL defaults |
596
+ | -- | _(built-in model lookup)_ | OpenClaw tries the normal registry/catalog path first | _(not a plugin hook)_ |
597
+ | 2 | `resolveDynamicModel` | Sync fallback for provider-owned model ids not in the local registry yet | Provider accepts arbitrary upstream model ids |
598
+ | 3 | `prepareDynamicModel` | Async warm-up, then `resolveDynamicModel` runs again | Provider needs network metadata before resolving unknown ids |
599
+ | 4 | `normalizeResolvedModel` | Final rewrite before the embedded runner uses the resolved model | Provider needs transport rewrites but still uses a core transport |
600
+ | 5 | `capabilities` | Provider-owned transcript/tooling metadata used by shared core logic | Provider needs transcript/provider-family quirks |
601
+ | 6 | `prepareExtraParams` | Request-param normalization before generic stream option wrappers | Provider needs default request params or per-provider param cleanup |
602
+ | 7 | `wrapStreamFn` | Stream wrapper after generic wrappers are applied | Provider needs request headers/body/model compat wrappers without a custom transport |
603
+ | 8 | `formatApiKey` | Auth-profile formatter: stored profile becomes the runtime `apiKey` string | Provider stores extra auth metadata and needs a custom runtime token shape |
604
+ | 9 | `refreshOAuth` | OAuth refresh override for custom refresh endpoints or refresh-failure policy | Provider does not fit the shared `pi-ai` refreshers |
605
+ | 10 | `buildAuthDoctorHint` | Repair hint appended when OAuth refresh fails | Provider needs provider-owned auth repair guidance after refresh failure |
606
+ | 11 | `isCacheTtlEligible` | Prompt-cache policy for proxy/backhaul providers | Provider needs proxy-specific cache TTL gating |
607
+ | 12 | `buildMissingAuthMessage` | Replacement for the generic missing-auth recovery message | Provider needs a provider-specific missing-auth recovery hint |
608
+ | 13 | `suppressBuiltInModel` | Stale upstream model suppression plus optional user-facing error hint | Provider needs to hide stale upstream rows or replace them with a vendor hint |
609
+ | 14 | `augmentModelCatalog` | Synthetic/final catalog rows appended after discovery | Provider needs synthetic forward-compat rows in `models list` and pickers |
610
+ | 15 | `isBinaryThinking` | On/off reasoning toggle for binary-thinking providers | Provider exposes only binary thinking on/off |
611
+ | 16 | `supportsXHighThinking` | `xhigh` reasoning support for selected models | Provider wants `xhigh` on only a subset of models |
612
+ | 17 | `resolveDefaultThinkingLevel` | Default `/think` level for a specific model family | Provider owns default `/think` policy for a model family |
613
+ | 18 | `isModernModelRef` | Modern-model matcher for live profile filters and smoke selection | Provider owns live/smoke preferred-model matching |
614
+ | 19 | `prepareRuntimeAuth` | Exchange a configured credential into the actual runtime token/key just before inference | Provider needs a token exchange or short-lived request credential |
615
+ | 20 | `resolveUsageAuth` | Resolve usage/billing credentials for `/usage` and related status surfaces | Provider needs custom usage/quota token parsing or a different usage credential |
616
+ | 21 | `fetchUsageSnapshot` | Fetch and normalize provider-specific usage/quota snapshots after auth is resolved | Provider needs a provider-specific usage endpoint or payload parser |
617
+
618
+ If the provider needs a fully custom wire protocol or custom request executor,
619
+ that is a different class of extension. These hooks are for provider behavior
620
+ that still runs on OpenClaw's normal inference loop.
621
+
622
+ ### Provider example
623
+
624
+ ```ts
625
+ api.registerProvider({
626
+ id: "example-proxy",
627
+ label: "Example Proxy",
628
+ auth: [],
629
+ catalog: {
630
+ order: "simple",
631
+ run: async (ctx) => {
632
+ const apiKey = ctx.resolveProviderApiKey("example-proxy").apiKey;
633
+ if (!apiKey) {
634
+ return null;
635
+ }
636
+ return {
637
+ provider: {
638
+ baseUrl: "https://proxy.example.com/v1",
639
+ apiKey,
640
+ api: "openai-completions",
641
+ models: [{ id: "auto", name: "Auto" }],
642
+ },
643
+ };
644
+ },
645
+ },
646
+ resolveDynamicModel: (ctx) => ({
647
+ id: ctx.modelId,
648
+ name: ctx.modelId,
649
+ provider: "example-proxy",
650
+ api: "openai-completions",
651
+ baseUrl: "https://proxy.example.com/v1",
652
+ reasoning: false,
653
+ input: ["text"],
654
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
655
+ contextWindow: 128000,
656
+ maxTokens: 8192,
657
+ }),
658
+ prepareRuntimeAuth: async (ctx) => {
659
+ const exchanged = await exchangeToken(ctx.apiKey);
660
+ return {
661
+ apiKey: exchanged.token,
662
+ baseUrl: exchanged.baseUrl,
663
+ expiresAt: exchanged.expiresAt,
664
+ };
665
+ },
666
+ resolveUsageAuth: async (ctx) => {
667
+ const auth = await ctx.resolveOAuthToken();
668
+ return auth ? { token: auth.token } : null;
669
+ },
670
+ fetchUsageSnapshot: async (ctx) => {
671
+ return await fetchExampleProxyUsage(ctx.token, ctx.timeoutMs, ctx.fetchFn);
672
+ },
673
+ });
674
+ ```
675
+
676
+ ### Built-in examples
677
+
678
+ - Anthropic uses `resolveDynamicModel`, `capabilities`, `buildAuthDoctorHint`,
679
+ `resolveUsageAuth`, `fetchUsageSnapshot`, `isCacheTtlEligible`,
680
+ `resolveDefaultThinkingLevel`, and `isModernModelRef` because it owns Claude
681
+ 4.6 forward-compat, provider-family hints, auth repair guidance, usage
682
+ endpoint integration, prompt-cache eligibility, and Claude default/adaptive
683
+ thinking policy.
684
+ - OpenAI uses `resolveDynamicModel`, `normalizeResolvedModel`, and
685
+ `capabilities` plus `buildMissingAuthMessage`, `suppressBuiltInModel`,
686
+ `augmentModelCatalog`, `supportsXHighThinking`, and `isModernModelRef`
687
+ because it owns GPT-5.4 forward-compat, the direct OpenAI
688
+ `openai-completions` -> `openai-responses` normalization, Codex-aware auth
689
+ hints, Spark suppression, synthetic OpenAI list rows, and GPT-5 thinking /
690
+ live-model policy.
691
+ - OpenRouter uses `catalog` plus `resolveDynamicModel` and
692
+ `prepareDynamicModel` because the provider is pass-through and may expose new
693
+ model ids before OpenClaw's static catalog updates; it also uses
694
+ `capabilities`, `wrapStreamFn`, and `isCacheTtlEligible` to keep
695
+ provider-specific request headers, routing metadata, reasoning patches, and
696
+ prompt-cache policy out of core.
697
+ - GitHub Copilot uses `catalog`, `auth`, `resolveDynamicModel`, and
698
+ `capabilities` plus `prepareRuntimeAuth` and `fetchUsageSnapshot` because it
699
+ needs provider-owned device login, model fallback behavior, Claude transcript
700
+ quirks, a GitHub token -> Copilot token exchange, and a provider-owned usage
701
+ endpoint.
702
+ - OpenAI Codex uses `catalog`, `resolveDynamicModel`,
703
+ `normalizeResolvedModel`, `refreshOAuth`, and `augmentModelCatalog` plus
704
+ `prepareExtraParams`, `resolveUsageAuth`, and `fetchUsageSnapshot` because it
705
+ still runs on core OpenAI transports but owns its transport/base URL
706
+ normalization, OAuth refresh fallback policy, default transport choice,
707
+ synthetic Codex catalog rows, and ChatGPT usage endpoint integration.
708
+ - Google AI Studio and Gemini CLI OAuth use `resolveDynamicModel` and
709
+ `isModernModelRef` because they own Gemini 3.1 forward-compat fallback and
710
+ modern-model matching; Gemini CLI OAuth also uses `formatApiKey`,
711
+ `resolveUsageAuth`, and `fetchUsageSnapshot` for token formatting, token
712
+ parsing, and quota endpoint wiring.
713
+ - Moonshot uses `catalog` plus `wrapStreamFn` because it still uses the shared
714
+ OpenAI transport but needs provider-owned thinking payload normalization.
715
+ - Kilocode uses `catalog`, `capabilities`, `wrapStreamFn`, and
716
+ `isCacheTtlEligible` because it needs provider-owned request headers,
717
+ reasoning payload normalization, Gemini transcript hints, and Anthropic
718
+ cache-TTL gating.
719
+ - Z.AI uses `resolveDynamicModel`, `prepareExtraParams`, `wrapStreamFn`,
720
+ `isCacheTtlEligible`, `isBinaryThinking`, `isModernModelRef`,
721
+ `resolveUsageAuth`, and `fetchUsageSnapshot` because it owns GLM-5 fallback,
722
+ `tool_stream` defaults, binary thinking UX, modern-model matching, and both
723
+ usage auth + quota fetching.
724
+ - Mistral, OpenCode Zen, and OpenCode Go use `capabilities` only to keep
725
+ transcript/tooling quirks out of core.
726
+ - Catalog-only bundled providers such as `byteplus`, `cloudflare-ai-gateway`,
727
+ `huggingface`, `kimi-coding`, `modelstudio`, `nvidia`, `qianfan`,
728
+ `synthetic`, `together`, `venice`, `vercel-ai-gateway`, and `volcengine` use
729
+ `catalog` only.
730
+ - Qwen portal uses `catalog`, `auth`, and `refreshOAuth`.
731
+ - MiniMax and Xiaomi use `catalog` plus usage hooks because their `/usage`
732
+ behavior is plugin-owned even though inference still runs through the shared
733
+ transports.
734
+
735
+ ## Runtime helpers
736
+
737
+ Plugins can access selected core helpers via `api.runtime`. For TTS:
738
+
739
+ ```ts
740
+ const clip = await api.runtime.tts.textToSpeech({
741
+ text: "Hello from OpenClaw",
742
+ cfg: api.config,
743
+ });
744
+
745
+ const result = await api.runtime.tts.textToSpeechTelephony({
746
+ text: "Hello from OpenClaw",
747
+ cfg: api.config,
748
+ });
749
+
750
+ const voices = await api.runtime.tts.listVoices({
751
+ provider: "elevenlabs",
752
+ cfg: api.config,
753
+ });
754
+ ```
755
+
756
+ Notes:
757
+
758
+ - `textToSpeech` returns the normal core TTS output payload for file/voice-note surfaces.
759
+ - Uses core `messages.tts` configuration and provider selection.
760
+ - Returns PCM audio buffer + sample rate. Plugins must resample/encode for providers.
761
+ - `listVoices` is optional per provider. Use it for vendor-owned voice pickers or setup flows.
762
+ - Voice listings can include richer metadata such as locale, gender, and personality tags for provider-aware pickers.
763
+ - OpenAI and ElevenLabs support telephony today. Microsoft does not.
764
+
765
+ Plugins can also register speech providers via `api.registerSpeechProvider(...)`.
766
+
767
+ ```ts
768
+ api.registerSpeechProvider({
769
+ id: "acme-speech",
770
+ label: "Acme Speech",
771
+ isConfigured: ({ config }) => Boolean(config.messages?.tts),
772
+ synthesize: async (req) => {
773
+ return {
774
+ audioBuffer: Buffer.from([]),
775
+ outputFormat: "mp3",
776
+ fileExtension: ".mp3",
777
+ voiceCompatible: false,
778
+ };
779
+ },
780
+ });
781
+ ```
782
+
783
+ Notes:
784
+
785
+ - Keep TTS policy, fallback, and reply delivery in core.
786
+ - Use speech providers for vendor-owned synthesis behavior.
787
+ - Legacy Microsoft `edge` input is normalized to the `microsoft` provider id.
788
+ - The preferred ownership model is company-oriented: one vendor plugin can own
789
+ text, speech, image, and future media providers as OpenClaw adds those
790
+ capability contracts.
791
+
792
+ For image/audio/video understanding, plugins register one typed
793
+ media-understanding provider instead of a generic key/value bag:
794
+
795
+ ```ts
796
+ api.registerMediaUnderstandingProvider({
797
+ id: "google",
798
+ capabilities: ["image", "audio", "video"],
799
+ describeImage: async (req) => ({ text: "..." }),
800
+ transcribeAudio: async (req) => ({ text: "..." }),
801
+ describeVideo: async (req) => ({ text: "..." }),
802
+ });
803
+ ```
804
+
805
+ Notes:
806
+
807
+ - Keep orchestration, fallback, config, and channel wiring in core.
808
+ - Keep vendor behavior in the provider plugin.
809
+ - Additive expansion should stay typed: new optional methods, new optional
810
+ result fields, new optional capabilities.
811
+ - If OpenClaw adds a new capability such as video generation later, define the
812
+ core capability contract first, then let vendor plugins register against it.
813
+
814
+ For media-understanding runtime helpers, plugins can call:
815
+
816
+ ```ts
817
+ const image = await api.runtime.mediaUnderstanding.describeImageFile({
818
+ filePath: "/tmp/inbound-photo.jpg",
819
+ cfg: api.config,
820
+ agentDir: "/tmp/agent",
821
+ });
822
+
823
+ const video = await api.runtime.mediaUnderstanding.describeVideoFile({
824
+ filePath: "/tmp/inbound-video.mp4",
825
+ cfg: api.config,
826
+ });
827
+ ```
828
+
829
+ For audio transcription, plugins can use either the media-understanding runtime
830
+ or the older STT alias:
831
+
832
+ ```ts
833
+ const { text } = await api.runtime.mediaUnderstanding.transcribeAudioFile({
834
+ filePath: "/tmp/inbound-audio.ogg",
835
+ cfg: api.config,
836
+ // Optional when MIME cannot be inferred reliably:
837
+ mime: "audio/ogg",
838
+ });
839
+ ```
840
+
841
+ Notes:
842
+
843
+ - `api.runtime.mediaUnderstanding.*` is the preferred shared surface for
844
+ image/audio/video understanding.
845
+ - Uses core media-understanding audio configuration (`tools.media.audio`) and provider fallback order.
846
+ - Returns `{ text: undefined }` when no transcription output is produced (for example skipped/unsupported input).
847
+ - `api.runtime.stt.transcribeAudioFile(...)` remains as a compatibility alias.
848
+
849
+ Plugins can also launch background subagent runs through `api.runtime.subagent`:
850
+
851
+ ```ts
852
+ const result = await api.runtime.subagent.run({
853
+ sessionKey: "agent:main:subagent:search-helper",
854
+ message: "Expand this query into focused follow-up searches.",
855
+ provider: "openai",
856
+ model: "gpt-4.1-mini",
857
+ deliver: false,
858
+ });
859
+ ```
860
+
861
+ Notes:
862
+
863
+ - `provider` and `model` are optional per-run overrides, not persistent session changes.
864
+ - OpenClaw only honors those override fields for trusted callers.
865
+ - For plugin-owned fallback runs, operators must opt in with `plugins.entries.<id>.subagent.allowModelOverride: true`.
866
+ - Use `plugins.entries.<id>.subagent.allowedModels` to restrict trusted plugins to specific canonical `provider/model` targets, or `"*"` to allow any target explicitly.
867
+ - Untrusted plugin subagent runs still work, but override requests are rejected instead of silently falling back.
868
+
869
+ For web search, plugins can consume the shared runtime helper instead of
870
+ reaching into the agent tool wiring:
871
+
872
+ ```ts
873
+ const providers = api.runtime.webSearch.listProviders({
874
+ config: api.config,
875
+ });
876
+
877
+ const result = await api.runtime.webSearch.search({
878
+ config: api.config,
879
+ args: {
880
+ query: "OpenClaw plugin runtime helpers",
881
+ count: 5,
882
+ },
883
+ });
884
+ ```
885
+
886
+ Plugins can also register web-search providers via
887
+ `api.registerWebSearchProvider(...)`.
888
+
889
+ Notes:
890
+
891
+ - Keep provider selection, credential resolution, and shared request semantics in core.
892
+ - Use web-search providers for vendor-specific search transports.
893
+ - `api.runtime.webSearch.*` is the preferred shared surface for feature/channel plugins that need search behavior without depending on the agent tool wrapper.
894
+
895
+ ## Gateway HTTP routes
896
+
897
+ Plugins can expose HTTP endpoints with `api.registerHttpRoute(...)`.
898
+
899
+ ```ts
900
+ api.registerHttpRoute({
901
+ path: "/acme/webhook",
902
+ auth: "plugin",
903
+ match: "exact",
904
+ handler: async (_req, res) => {
905
+ res.statusCode = 200;
906
+ res.end("ok");
907
+ return true;
908
+ },
909
+ });
910
+ ```
911
+
912
+ Route fields:
913
+
914
+ - `path`: route path under the gateway HTTP server.
915
+ - `auth`: required. Use `"gateway"` to require normal gateway auth, or `"plugin"` for plugin-managed auth/webhook verification.
916
+ - `match`: optional. `"exact"` (default) or `"prefix"`.
917
+ - `replaceExisting`: optional. Allows the same plugin to replace its own existing route registration.
918
+ - `handler`: return `true` when the route handled the request.
919
+
920
+ Notes:
921
+
922
+ - `api.registerHttpHandler(...)` is obsolete. Use `api.registerHttpRoute(...)`.
923
+ - Plugin routes must declare `auth` explicitly.
924
+ - Exact `path + match` conflicts are rejected unless `replaceExisting: true`, and one plugin cannot replace another plugin's route.
925
+ - Overlapping routes with different `auth` levels are rejected. Keep `exact`/`prefix` fallthrough chains on the same auth level only.
926
+
927
+ ## Plugin SDK import paths
928
+
929
+ Use SDK subpaths instead of the monolithic `openclaw/plugin-sdk` import when
930
+ authoring plugins:
931
+
932
+ - `openclaw/plugin-sdk/plugin-entry` for plugin registration primitives.
933
+ - `openclaw/plugin-sdk/core` for the generic shared plugin-facing contract.
934
+ - Stable channel primitives such as `openclaw/plugin-sdk/channel-setup`,
935
+ `openclaw/plugin-sdk/channel-pairing`,
936
+ `openclaw/plugin-sdk/channel-contract`,
937
+ `openclaw/plugin-sdk/channel-feedback`,
938
+ `openclaw/plugin-sdk/channel-inbound`,
939
+ `openclaw/plugin-sdk/channel-lifecycle`,
940
+ `openclaw/plugin-sdk/channel-reply-pipeline`,
941
+ `openclaw/plugin-sdk/command-auth`,
942
+ `openclaw/plugin-sdk/secret-input`, and
943
+ `openclaw/plugin-sdk/webhook-ingress` for shared setup/auth/reply/webhook
944
+ wiring. `channel-inbound` is the shared home for debounce, mention matching,
945
+ envelope formatting, and inbound envelope context helpers.
946
+ - Domain subpaths such as `openclaw/plugin-sdk/channel-config-helpers`,
947
+ `openclaw/plugin-sdk/allow-from`,
948
+ `openclaw/plugin-sdk/channel-config-schema`,
949
+ `openclaw/plugin-sdk/channel-policy`,
950
+ `openclaw/plugin-sdk/config-runtime`,
951
+ `openclaw/plugin-sdk/infra-runtime`,
952
+ `openclaw/plugin-sdk/agent-runtime`,
953
+ `openclaw/plugin-sdk/lazy-runtime`,
954
+ `openclaw/plugin-sdk/reply-history`,
955
+ `openclaw/plugin-sdk/routing`,
956
+ `openclaw/plugin-sdk/status-helpers`,
957
+ `openclaw/plugin-sdk/runtime-store`, and
958
+ `openclaw/plugin-sdk/directory-runtime` for shared runtime/config helpers.
959
+ - `openclaw/plugin-sdk/channel-runtime` remains only as a compatibility shim.
960
+ New code should import the narrower primitives instead.
961
+ - Bundled extension internals remain private. External plugins should use only
962
+ `openclaw/plugin-sdk/*` subpaths. OpenClaw core/test code may use the repo
963
+ public entry points under `extensions/<id>/index.js`, `api.js`, `runtime-api.js`,
964
+ `setup-entry.js`, and narrowly scoped files such as `login-qr-api.js`. Never
965
+ import `extensions/<id>/src/*` from core or from another extension.
966
+ - Repo entry point split:
967
+ `extensions/<id>/api.js` is the helper/types barrel,
968
+ `extensions/<id>/runtime-api.js` is the runtime-only barrel,
969
+ `extensions/<id>/index.js` is the bundled plugin entry,
970
+ and `extensions/<id>/setup-entry.js` is the setup plugin entry.
971
+ - No bundled channel-branded public subpaths remain. Channel-specific helper and
972
+ runtime seams live under `extensions/<id>/api.js` and `extensions/<id>/runtime-api.js`;
973
+ the public SDK contract is the generic shared primitives instead.
974
+
975
+ Compatibility note:
976
+
977
+ - Avoid the root `openclaw/plugin-sdk` barrel for new code.
978
+ - Prefer the narrow stable primitives first. The newer setup/pairing/reply/
979
+ feedback/contract/inbound/threading/command/secret-input/webhook/infra/
980
+ allowlist/status/message-tool subpaths are the intended contract for new
981
+ bundled and external plugin work.
982
+ Target parsing/matching belongs on `openclaw/plugin-sdk/channel-targets`.
983
+ Message action gates and reaction message-id helpers belong on
984
+ `openclaw/plugin-sdk/channel-actions`.
985
+ - Bundled extension-specific helper barrels are not stable by default. If a
986
+ helper is only needed by a bundled extension, keep it behind the extension's
987
+ local `api.js` or `runtime-api.js` seam instead of promoting it into
988
+ `openclaw/plugin-sdk/<extension>`.
989
+ - Channel-branded bundled bars stay private unless they are explicitly added
990
+ back to the public contract.
991
+ - Capability-specific subpaths such as `image-generation`,
992
+ `media-understanding`, and `speech` exist because bundled/native plugins use
993
+ them today. Their presence does not by itself mean every exported helper is a
994
+ long-term frozen external contract.
995
+
996
+ ## Message tool schemas
997
+
998
+ Plugins should own channel-specific `describeMessageTool(...)` schema
999
+ contributions. Keep provider-specific fields in the plugin, not in shared core.
1000
+
1001
+ For shared portable schema fragments, reuse the generic helpers exported through
1002
+ `openclaw/plugin-sdk/channel-actions`:
1003
+
1004
+ - `createMessageToolButtonsSchema()` for button-grid style payloads
1005
+ - `createMessageToolCardSchema()` for structured card payloads
1006
+
1007
+ If a schema shape only makes sense for one provider, define it in that plugin's
1008
+ own source instead of promoting it into the shared SDK.
1009
+
1010
+ ## Channel target resolution
1011
+
1012
+ Channel plugins should own channel-specific target semantics. Keep the shared
1013
+ outbound host generic and use the messaging adapter surface for provider rules:
1014
+
1015
+ - `messaging.inferTargetChatType({ to })` decides whether a normalized target
1016
+ should be treated as `direct`, `group`, or `channel` before directory lookup.
1017
+ - `messaging.targetResolver.looksLikeId(raw, normalized)` tells core whether an
1018
+ input should skip straight to id-like resolution instead of directory search.
1019
+ - `messaging.targetResolver.resolveTarget(...)` is the plugin fallback when
1020
+ core needs a final provider-owned resolution after normalization or after a
1021
+ directory miss.
1022
+ - `messaging.resolveOutboundSessionRoute(...)` owns provider-specific session
1023
+ route construction once a target is resolved.
1024
+
1025
+ Recommended split:
1026
+
1027
+ - Use `inferTargetChatType` for category decisions that should happen before
1028
+ searching peers/groups.
1029
+ - Use `looksLikeId` for "treat this as an explicit/native target id" checks.
1030
+ - Use `resolveTarget` for provider-specific normalization fallback, not for
1031
+ broad directory search.
1032
+ - Keep provider-native ids like chat ids, thread ids, JIDs, handles, and room
1033
+ ids inside `target` values or provider-specific params, not in generic SDK
1034
+ fields.
1035
+
1036
+ ## Config-backed directories
1037
+
1038
+ Plugins that derive directory entries from config should keep that logic in the
1039
+ plugin and reuse the shared helpers from
1040
+ `openclaw/plugin-sdk/directory-runtime`.
1041
+
1042
+ Use this when a channel needs config-backed peers/groups such as:
1043
+
1044
+ - allowlist-driven DM peers
1045
+ - configured channel/group maps
1046
+ - account-scoped static directory fallbacks
1047
+
1048
+ The shared helpers in `directory-runtime` only handle generic operations:
1049
+
1050
+ - query filtering
1051
+ - limit application
1052
+ - deduping/normalization helpers
1053
+ - building `ChannelDirectoryEntry[]`
1054
+
1055
+ Channel-specific account inspection and id normalization should stay in the
1056
+ plugin implementation.
1057
+
1058
+ ## Provider catalogs
1059
+
1060
+ Provider plugins can define model catalogs for inference with
1061
+ `registerProvider({ catalog: { run(...) { ... } } })`.
1062
+
1063
+ `catalog.run(...)` returns the same shape OpenClaw writes into
1064
+ `models.providers`:
1065
+
1066
+ - `{ provider }` for one provider entry
1067
+ - `{ providers }` for multiple provider entries
1068
+
1069
+ Use `catalog` when the plugin owns provider-specific model ids, base URL
1070
+ defaults, or auth-gated model metadata.
1071
+
1072
+ `catalog.order` controls when a plugin's catalog merges relative to OpenClaw's
1073
+ built-in implicit providers:
1074
+
1075
+ - `simple`: plain API-key or env-driven providers
1076
+ - `profile`: providers that appear when auth profiles exist
1077
+ - `paired`: providers that synthesize multiple related provider entries
1078
+ - `late`: last pass, after other implicit providers
1079
+
1080
+ Later providers win on key collision, so plugins can intentionally override a
1081
+ built-in provider entry with the same provider id.
1082
+
1083
+ Compatibility:
1084
+
1085
+ - `discovery` still works as a legacy alias
1086
+ - if both `catalog` and `discovery` are registered, OpenClaw uses `catalog`
1087
+
1088
+ ## Read-only channel inspection
1089
+
1090
+ If your plugin registers a channel, prefer implementing
1091
+ `plugin.config.inspectAccount(cfg, accountId)` alongside `resolveAccount(...)`.
1092
+
1093
+ Why:
1094
+
1095
+ - `resolveAccount(...)` is the runtime path. It is allowed to assume credentials
1096
+ are fully materialized and can fail fast when required secrets are missing.
1097
+ - Read-only command paths such as `openclaw status`, `openclaw status --all`,
1098
+ `openclaw channels status`, `openclaw channels resolve`, and doctor/config
1099
+ repair flows should not need to materialize runtime credentials just to
1100
+ describe configuration.
1101
+
1102
+ Recommended `inspectAccount(...)` behavior:
1103
+
1104
+ - Return descriptive account state only.
1105
+ - Preserve `enabled` and `configured`.
1106
+ - Include credential source/status fields when relevant, such as:
1107
+ - `tokenSource`, `tokenStatus`
1108
+ - `botTokenSource`, `botTokenStatus`
1109
+ - `appTokenSource`, `appTokenStatus`
1110
+ - `signingSecretSource`, `signingSecretStatus`
1111
+ - You do not need to return raw token values just to report read-only
1112
+ availability. Returning `tokenStatus: "available"` (and the matching source
1113
+ field) is enough for status-style commands.
1114
+ - Use `configured_unavailable` when a credential is configured via SecretRef but
1115
+ unavailable in the current command path.
1116
+
1117
+ This lets read-only commands report "configured but unavailable in this command
1118
+ path" instead of crashing or misreporting the account as not configured.
1119
+
1120
+ ## Package packs
1121
+
1122
+ A plugin directory may include a `package.json` with `openclaw.extensions`:
1123
+
1124
+ ```json
1125
+ {
1126
+ "name": "my-pack",
1127
+ "openclaw": {
1128
+ "extensions": ["./src/safety.ts", "./src/tools.ts"],
1129
+ "setupEntry": "./src/setup-entry.ts"
1130
+ }
1131
+ }
1132
+ ```
1133
+
1134
+ Each entry becomes a plugin. If the pack lists multiple extensions, the plugin id
1135
+ becomes `name/<fileBase>`.
1136
+
1137
+ If your plugin imports npm deps, install them in that directory so
1138
+ `node_modules` is available (`npm install` / `pnpm install`).
1139
+
1140
+ Security guardrail: every `openclaw.extensions` entry must stay inside the plugin
1141
+ directory after symlink resolution. Entries that escape the package directory are
1142
+ rejected.
1143
+
1144
+ Security note: `openclaw plugins install` installs plugin dependencies with
1145
+ `npm install --ignore-scripts` (no lifecycle scripts). Keep plugin dependency
1146
+ trees "pure JS/TS" and avoid packages that require `postinstall` builds.
1147
+
1148
+ Optional: `openclaw.setupEntry` can point at a lightweight setup-only module.
1149
+ When OpenClaw needs setup surfaces for a disabled channel plugin, or
1150
+ when a channel plugin is enabled but still unconfigured, it loads `setupEntry`
1151
+ instead of the full plugin entry. This keeps startup and setup lighter
1152
+ when your main plugin entry also wires tools, hooks, or other runtime-only
1153
+ code.
1154
+
1155
+ Optional: `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen`
1156
+ can opt a channel plugin into the same `setupEntry` path during the gateway's
1157
+ pre-listen startup phase, even when the channel is already configured.
1158
+
1159
+ Use this only when `setupEntry` fully covers the startup surface that must exist
1160
+ before the gateway starts listening. In practice, that means the setup entry
1161
+ must register every channel-owned capability that startup depends on, such as:
1162
+
1163
+ - channel registration itself
1164
+ - any HTTP routes that must be available before the gateway starts listening
1165
+ - any gateway methods, tools, or services that must exist during that same window
1166
+
1167
+ If your full entry still owns any required startup capability, do not enable
1168
+ this flag. Keep the plugin on the default behavior and let OpenClaw load the
1169
+ full entry during startup.
1170
+
1171
+ Example:
1172
+
1173
+ ```json
1174
+ {
1175
+ "name": "@scope/my-channel",
1176
+ "openclaw": {
1177
+ "extensions": ["./index.ts"],
1178
+ "setupEntry": "./setup-entry.ts",
1179
+ "startup": {
1180
+ "deferConfiguredChannelFullLoadUntilAfterListen": true
1181
+ }
1182
+ }
1183
+ }
1184
+ ```
1185
+
1186
+ ### Channel catalog metadata
1187
+
1188
+ Channel plugins can advertise setup/discovery metadata via `openclaw.channel` and
1189
+ install hints via `openclaw.install`. This keeps the core catalog data-free.
1190
+
1191
+ Example:
1192
+
1193
+ ```json
1194
+ {
1195
+ "name": "@openclaw/nextcloud-talk",
1196
+ "openclaw": {
1197
+ "extensions": ["./index.ts"],
1198
+ "channel": {
1199
+ "id": "nextcloud-talk",
1200
+ "label": "Nextcloud Talk",
1201
+ "selectionLabel": "Nextcloud Talk (self-hosted)",
1202
+ "docsPath": "/channels/nextcloud-talk",
1203
+ "docsLabel": "nextcloud-talk",
1204
+ "blurb": "Self-hosted chat via Nextcloud Talk webhook bots.",
1205
+ "order": 65,
1206
+ "aliases": ["nc-talk", "nc"]
1207
+ },
1208
+ "install": {
1209
+ "npmSpec": "@openclaw/nextcloud-talk",
1210
+ "localPath": "extensions/nextcloud-talk",
1211
+ "defaultChoice": "npm"
1212
+ }
1213
+ }
1214
+ }
1215
+ ```
1216
+
1217
+ OpenClaw can also merge **external channel catalogs** (for example, an MPM
1218
+ registry export). Drop a JSON file at one of:
1219
+
1220
+ - `~/.openclaw/mpm/plugins.json`
1221
+ - `~/.openclaw/mpm/catalog.json`
1222
+ - `~/.openclaw/plugins/catalog.json`
1223
+
1224
+ Or point `OPENCLAW_PLUGIN_CATALOG_PATHS` (or `OPENCLAW_MPM_CATALOG_PATHS`) at
1225
+ one or more JSON files (comma/semicolon/`PATH`-delimited). Each file should
1226
+ contain `{ "entries": [ { "name": "@scope/pkg", "openclaw": { "channel": {...}, "install": {...} } } ] }`.
1227
+
1228
+ ## Context engine plugins
1229
+
1230
+ Context engine plugins own session context orchestration for ingest, assembly,
1231
+ and compaction. Register them from your plugin with
1232
+ `api.registerContextEngine(id, factory)`, then select the active engine with
1233
+ `plugins.slots.contextEngine`.
1234
+
1235
+ Use this when your plugin needs to replace or extend the default context
1236
+ pipeline rather than just add memory search or hooks.
1237
+
1238
+ ```ts
1239
+ export default function (api) {
1240
+ api.registerContextEngine("lossless-claw", () => ({
1241
+ info: { id: "lossless-claw", name: "Lossless Claw", ownsCompaction: true },
1242
+ async ingest() {
1243
+ return { ingested: true };
1244
+ },
1245
+ async assemble({ messages }) {
1246
+ return { messages, estimatedTokens: 0 };
1247
+ },
1248
+ async compact() {
1249
+ return { ok: true, compacted: false };
1250
+ },
1251
+ }));
1252
+ }
1253
+ ```
1254
+
1255
+ If your engine does **not** own the compaction algorithm, keep `compact()`
1256
+ implemented and delegate it explicitly:
1257
+
1258
+ ```ts
1259
+ import { delegateCompactionToRuntime } from "openclaw/plugin-sdk/core";
1260
+
1261
+ export default function (api) {
1262
+ api.registerContextEngine("my-memory-engine", () => ({
1263
+ info: {
1264
+ id: "my-memory-engine",
1265
+ name: "My Memory Engine",
1266
+ ownsCompaction: false,
1267
+ },
1268
+ async ingest() {
1269
+ return { ingested: true };
1270
+ },
1271
+ async assemble({ messages }) {
1272
+ return { messages, estimatedTokens: 0 };
1273
+ },
1274
+ async compact(params) {
1275
+ return await delegateCompactionToRuntime(params);
1276
+ },
1277
+ }));
1278
+ }
1279
+ ```
1280
+
1281
+ ## Adding a new capability
1282
+
1283
+ When a plugin needs behavior that does not fit the current API, do not bypass
1284
+ the plugin system with a private reach-in. Add the missing capability.
1285
+
1286
+ Recommended sequence:
1287
+
1288
+ 1. define the core contract
1289
+ Decide what shared behavior core should own: policy, fallback, config merge,
1290
+ lifecycle, channel-facing semantics, and runtime helper shape.
1291
+ 2. add typed plugin registration/runtime surfaces
1292
+ Extend `OpenClawPluginApi` and/or `api.runtime` with the smallest useful
1293
+ typed capability surface.
1294
+ 3. wire core + channel/feature consumers
1295
+ Channels and feature plugins should consume the new capability through core,
1296
+ not by importing a vendor implementation directly.
1297
+ 4. register vendor implementations
1298
+ Vendor plugins then register their backends against the capability.
1299
+ 5. add contract coverage
1300
+ Add tests so ownership and registration shape stay explicit over time.
1301
+
1302
+ This is how OpenClaw stays opinionated without becoming hardcoded to one
1303
+ provider's worldview. See the [Capability Cookbook](/tools/capability-cookbook)
1304
+ for a concrete file checklist and worked example.
1305
+
1306
+ ### Capability checklist
1307
+
1308
+ When you add a new capability, the implementation should usually touch these
1309
+ surfaces together:
1310
+
1311
+ - core contract types in `src/<capability>/types.ts`
1312
+ - core runner/runtime helper in `src/<capability>/runtime.ts`
1313
+ - plugin API registration surface in `src/plugins/types.ts`
1314
+ - plugin registry wiring in `src/plugins/registry.ts`
1315
+ - plugin runtime exposure in `src/plugins/runtime/*` when feature/channel
1316
+ plugins need to consume it
1317
+ - capture/test helpers in `src/test-utils/plugin-registration.ts`
1318
+ - ownership/contract assertions in `src/plugins/contracts/registry.ts`
1319
+ - operator/plugin docs in `docs/`
1320
+
1321
+ If one of those surfaces is missing, that is usually a sign the capability is
1322
+ not fully integrated yet.
1323
+
1324
+ ### Capability template
1325
+
1326
+ Minimal pattern:
1327
+
1328
+ ```ts
1329
+ // core contract
1330
+ export type VideoGenerationProviderPlugin = {
1331
+ id: string;
1332
+ label: string;
1333
+ generateVideo: (req: VideoGenerationRequest) => Promise<VideoGenerationResult>;
1334
+ };
1335
+
1336
+ // plugin API
1337
+ api.registerVideoGenerationProvider({
1338
+ id: "openai",
1339
+ label: "OpenAI",
1340
+ async generateVideo(req) {
1341
+ return await generateOpenAiVideo(req);
1342
+ },
1343
+ });
1344
+
1345
+ // shared runtime helper for feature/channel plugins
1346
+ const clip = await api.runtime.videoGeneration.generateFile({
1347
+ prompt: "Show the robot walking through the lab.",
1348
+ cfg,
1349
+ });
1350
+ ```
1351
+
1352
+ Contract test pattern:
1353
+
1354
+ ```ts
1355
+ expect(findVideoGenerationProviderIdsForPlugin("openai")).toEqual(["openai"]);
1356
+ ```
1357
+
1358
+ That keeps the rule simple:
1359
+
1360
+ - core owns the capability contract + orchestration
1361
+ - vendor plugins own vendor implementations
1362
+ - feature/channel plugins consume runtime helpers
1363
+ - contract tests keep ownership explicit