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,1458 @@
1
+ import { v as expandHomePrefix } from "./paths-GHJ97ebE.js";
2
+ import { a as logVerbose } from "./globals-41sdSaKv.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-CUp-6QQf.js";
4
+ import { f as sanitizeAgentId, u as resolveAgentIdFromSessionKey } from "./session-key-gFFk3uv9.js";
5
+ import { n as normalizeAccountId } from "./account-id-ZCrgXl7Z.js";
6
+ import { i as resolveAgentConfig, m as resolveDefaultAgentId, p as resolveAgentWorkspaceDir } from "./agent-scope-DPP4Z_UU.js";
7
+ import { a as recordSessionMetaFromInbound, c as updateLastRoute } from "./store-CvL8MPei.js";
8
+ import { r as getActivePluginRegistryVersion, t as getActivePluginRegistry } from "./runtime-CuvWMN7E.js";
9
+ import { t as getChannelPlugin } from "./registry-C3q59Qj0.js";
10
+ import { l as resolveStorePath } from "./paths-CTjJI9l0.js";
11
+ import { r as writeJsonAtomic } from "./json-files-WW-H_psG.js";
12
+ import { r as listConfiguredBindings } from "./bindings-BV4AtNSY.js";
13
+ import { n as deriveLastRoutePolicy, r as pickFirstExistingAgentId } from "./resolve-route-vEY3ONZ2.js";
14
+ import { n as resolveGlobalSingleton, t as resolveGlobalMap } from "./global-singleton-4KwY5RvX.js";
15
+ import { o as getSessionBindingService } from "./thread-bindings-messages-Cdo8jSa9.js";
16
+ import { m as resolveAcpAgentFromSessionKey, n as readAcpSessionEntry, t as getAcpSessionManager } from "./manager-ChTGDe87.js";
17
+ import fs from "node:fs";
18
+ import path from "node:path";
19
+ import crypto, { createHash } from "node:crypto";
20
+ //#region src/bindings/records.ts
21
+ async function createConversationBindingRecord(input) {
22
+ return await getSessionBindingService().bind(input);
23
+ }
24
+ function getConversationBindingCapabilities(params) {
25
+ return getSessionBindingService().getCapabilities(params);
26
+ }
27
+ function listSessionBindingRecords(targetSessionKey) {
28
+ return getSessionBindingService().listBySession(targetSessionKey);
29
+ }
30
+ function resolveConversationBindingRecord(conversation) {
31
+ return getSessionBindingService().resolveByConversation(conversation);
32
+ }
33
+ function touchConversationBindingRecord(bindingId, at) {
34
+ const service = getSessionBindingService();
35
+ if (typeof at === "number") {
36
+ service.touch(bindingId, at);
37
+ return;
38
+ }
39
+ service.touch(bindingId);
40
+ }
41
+ async function unbindConversationBindingRecord(input) {
42
+ return await getSessionBindingService().unbind(input);
43
+ }
44
+ //#endregion
45
+ //#region src/plugins/conversation-binding.ts
46
+ const log = createSubsystemLogger("plugins/binding");
47
+ const APPROVALS_PATH = "~/.openclaw/plugin-binding-approvals.json";
48
+ const PLUGIN_BINDING_CUSTOM_ID_PREFIX = "pluginbind";
49
+ const PLUGIN_BINDING_OWNER = "plugin";
50
+ const PLUGIN_BINDING_SESSION_PREFIX = "plugin-binding";
51
+ const LEGACY_CODEX_PLUGIN_SESSION_PREFIXES = ["openclaw-app-server:thread:", "openclaw-codex-app-server:thread:"];
52
+ const pendingRequests = resolveGlobalMap(Symbol.for("openclaw.pluginBindingPendingRequests"));
53
+ const pluginBindingGlobalStateKey = Symbol.for("openclaw.plugins.binding.global-state");
54
+ function getPluginBindingGlobalState() {
55
+ return resolveGlobalSingleton(pluginBindingGlobalStateKey, () => ({
56
+ fallbackNoticeBindingIds: /* @__PURE__ */ new Set(),
57
+ approvalsCache: null,
58
+ approvalsLoaded: false
59
+ }));
60
+ }
61
+ function resolveApprovalsPath() {
62
+ return expandHomePrefix(APPROVALS_PATH);
63
+ }
64
+ function normalizeChannel(value) {
65
+ return value.trim().toLowerCase();
66
+ }
67
+ function normalizeConversation(params) {
68
+ return {
69
+ channel: normalizeChannel(params.channel),
70
+ accountId: params.accountId.trim() || "default",
71
+ conversationId: params.conversationId.trim(),
72
+ parentConversationId: params.parentConversationId?.trim() || void 0,
73
+ threadId: typeof params.threadId === "number" ? Math.trunc(params.threadId) : params.threadId?.toString().trim() || void 0
74
+ };
75
+ }
76
+ function toConversationRef(params) {
77
+ const normalized = normalizeConversation(params);
78
+ if (normalized.channel === "telegram") {
79
+ const threadId = typeof normalized.threadId === "number" || typeof normalized.threadId === "string" ? String(normalized.threadId).trim() : "";
80
+ if (threadId) {
81
+ const parent = normalized.parentConversationId?.trim() || normalized.conversationId;
82
+ return {
83
+ channel: "telegram",
84
+ accountId: normalized.accountId,
85
+ conversationId: `${parent}:topic:${threadId}`
86
+ };
87
+ }
88
+ }
89
+ return {
90
+ channel: normalized.channel,
91
+ accountId: normalized.accountId,
92
+ conversationId: normalized.conversationId,
93
+ ...normalized.parentConversationId ? { parentConversationId: normalized.parentConversationId } : {}
94
+ };
95
+ }
96
+ function buildApprovalScopeKey(params) {
97
+ return [
98
+ params.pluginRoot,
99
+ normalizeChannel(params.channel),
100
+ params.accountId.trim() || "default"
101
+ ].join("::");
102
+ }
103
+ function buildPluginBindingSessionKey(params) {
104
+ const hash = crypto.createHash("sha256").update(JSON.stringify({
105
+ pluginId: params.pluginId,
106
+ channel: normalizeChannel(params.channel),
107
+ accountId: params.accountId,
108
+ conversationId: params.conversationId
109
+ })).digest("hex").slice(0, 24);
110
+ return `${PLUGIN_BINDING_SESSION_PREFIX}:${params.pluginId}:${hash}`;
111
+ }
112
+ function isLegacyPluginBindingRecord(params) {
113
+ if (!params.record || isPluginOwnedBindingMetadata(params.record.metadata)) return false;
114
+ const targetSessionKey = params.record.targetSessionKey.trim();
115
+ return targetSessionKey.startsWith(`${PLUGIN_BINDING_SESSION_PREFIX}:`) || LEGACY_CODEX_PLUGIN_SESSION_PREFIXES.some((prefix) => targetSessionKey.startsWith(prefix));
116
+ }
117
+ function buildApprovalInteractiveReply(approvalId) {
118
+ return { blocks: [{
119
+ type: "buttons",
120
+ buttons: [
121
+ {
122
+ label: "Allow once",
123
+ value: buildPluginBindingApprovalCustomId(approvalId, "allow-once"),
124
+ style: "success"
125
+ },
126
+ {
127
+ label: "Always allow",
128
+ value: buildPluginBindingApprovalCustomId(approvalId, "allow-always"),
129
+ style: "primary"
130
+ },
131
+ {
132
+ label: "Deny",
133
+ value: buildPluginBindingApprovalCustomId(approvalId, "deny"),
134
+ style: "danger"
135
+ }
136
+ ]
137
+ }] };
138
+ }
139
+ function createApprovalRequestId() {
140
+ return crypto.randomBytes(9).toString("base64url");
141
+ }
142
+ function loadApprovalsFromDisk() {
143
+ const filePath = resolveApprovalsPath();
144
+ try {
145
+ if (!fs.existsSync(filePath)) return {
146
+ version: 1,
147
+ approvals: []
148
+ };
149
+ const raw = fs.readFileSync(filePath, "utf8");
150
+ const parsed = JSON.parse(raw);
151
+ if (!Array.isArray(parsed.approvals)) return {
152
+ version: 1,
153
+ approvals: []
154
+ };
155
+ return {
156
+ version: 1,
157
+ approvals: parsed.approvals.filter((entry) => Boolean(entry && typeof entry === "object")).map((entry) => ({
158
+ pluginRoot: typeof entry.pluginRoot === "string" ? entry.pluginRoot : "",
159
+ pluginId: typeof entry.pluginId === "string" ? entry.pluginId : "",
160
+ pluginName: typeof entry.pluginName === "string" ? entry.pluginName : void 0,
161
+ channel: typeof entry.channel === "string" ? normalizeChannel(entry.channel) : "",
162
+ accountId: typeof entry.accountId === "string" ? entry.accountId.trim() || "default" : "default",
163
+ approvedAt: typeof entry.approvedAt === "number" && Number.isFinite(entry.approvedAt) ? Math.floor(entry.approvedAt) : Date.now()
164
+ })).filter((entry) => entry.pluginRoot && entry.pluginId && entry.channel)
165
+ };
166
+ } catch (error) {
167
+ log.warn(`plugin binding approvals load failed: ${String(error)}`);
168
+ return {
169
+ version: 1,
170
+ approvals: []
171
+ };
172
+ }
173
+ }
174
+ async function saveApprovals(file) {
175
+ const filePath = resolveApprovalsPath();
176
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
177
+ const state = getPluginBindingGlobalState();
178
+ state.approvalsCache = file;
179
+ state.approvalsLoaded = true;
180
+ await writeJsonAtomic(filePath, file, {
181
+ mode: 384,
182
+ trailingNewline: true
183
+ });
184
+ }
185
+ function getApprovals() {
186
+ const state = getPluginBindingGlobalState();
187
+ if (!state.approvalsLoaded || !state.approvalsCache) {
188
+ state.approvalsCache = loadApprovalsFromDisk();
189
+ state.approvalsLoaded = true;
190
+ }
191
+ return state.approvalsCache;
192
+ }
193
+ function hasPersistentApproval(params) {
194
+ const key = buildApprovalScopeKey(params);
195
+ return getApprovals().approvals.some((entry) => buildApprovalScopeKey({
196
+ pluginRoot: entry.pluginRoot,
197
+ channel: entry.channel,
198
+ accountId: entry.accountId
199
+ }) === key);
200
+ }
201
+ async function addPersistentApproval(entry) {
202
+ const file = getApprovals();
203
+ const key = buildApprovalScopeKey(entry);
204
+ const approvals = file.approvals.filter((existing) => buildApprovalScopeKey({
205
+ pluginRoot: existing.pluginRoot,
206
+ channel: existing.channel,
207
+ accountId: existing.accountId
208
+ }) !== key);
209
+ approvals.push(entry);
210
+ await saveApprovals({
211
+ version: 1,
212
+ approvals
213
+ });
214
+ }
215
+ function buildBindingMetadata(params) {
216
+ return {
217
+ pluginBindingOwner: PLUGIN_BINDING_OWNER,
218
+ pluginId: params.pluginId,
219
+ pluginName: params.pluginName,
220
+ pluginRoot: params.pluginRoot,
221
+ summary: params.summary?.trim() || void 0,
222
+ detachHint: params.detachHint?.trim() || void 0
223
+ };
224
+ }
225
+ function isPluginOwnedBindingMetadata(metadata) {
226
+ if (!metadata || typeof metadata !== "object") return false;
227
+ const record = metadata;
228
+ return record.pluginBindingOwner === PLUGIN_BINDING_OWNER && typeof record.pluginId === "string" && typeof record.pluginRoot === "string";
229
+ }
230
+ function isPluginOwnedSessionBindingRecord(record) {
231
+ return isPluginOwnedBindingMetadata(record?.metadata);
232
+ }
233
+ function toPluginConversationBinding(record) {
234
+ if (!record || !isPluginOwnedBindingMetadata(record.metadata)) return null;
235
+ const metadata = record.metadata;
236
+ return {
237
+ bindingId: record.bindingId,
238
+ pluginId: metadata.pluginId,
239
+ pluginName: metadata.pluginName,
240
+ pluginRoot: metadata.pluginRoot,
241
+ channel: record.conversation.channel,
242
+ accountId: record.conversation.accountId,
243
+ conversationId: record.conversation.conversationId,
244
+ parentConversationId: record.conversation.parentConversationId,
245
+ boundAt: record.boundAt,
246
+ summary: metadata.summary,
247
+ detachHint: metadata.detachHint
248
+ };
249
+ }
250
+ async function bindConversationNow(params) {
251
+ const ref = toConversationRef(params.conversation);
252
+ const binding = toPluginConversationBinding(await createConversationBindingRecord({
253
+ targetSessionKey: buildPluginBindingSessionKey({
254
+ pluginId: params.identity.pluginId,
255
+ channel: ref.channel,
256
+ accountId: ref.accountId,
257
+ conversationId: ref.conversationId
258
+ }),
259
+ targetKind: "session",
260
+ conversation: ref,
261
+ placement: "current",
262
+ metadata: buildBindingMetadata({
263
+ pluginId: params.identity.pluginId,
264
+ pluginName: params.identity.pluginName,
265
+ pluginRoot: params.identity.pluginRoot,
266
+ summary: params.summary,
267
+ detachHint: params.detachHint
268
+ })
269
+ }));
270
+ if (!binding) throw new Error("plugin binding was created without plugin metadata");
271
+ return {
272
+ ...binding,
273
+ parentConversationId: params.conversation.parentConversationId,
274
+ threadId: params.conversation.threadId
275
+ };
276
+ }
277
+ function buildApprovalMessage(request) {
278
+ const lines = [
279
+ `Plugin bind approval required`,
280
+ `Plugin: ${request.pluginName ?? request.pluginId}`,
281
+ `Channel: ${request.conversation.channel}`,
282
+ `Account: ${request.conversation.accountId}`
283
+ ];
284
+ if (request.summary?.trim()) lines.push(`Request: ${request.summary.trim()}`);
285
+ else lines.push("Request: Bind this conversation so future plain messages route to the plugin.");
286
+ lines.push("Choose whether to allow this plugin to bind the current conversation.");
287
+ return lines.join("\n");
288
+ }
289
+ function resolvePluginBindingDisplayName(binding) {
290
+ return binding.pluginName?.trim() || binding.pluginId;
291
+ }
292
+ function buildDetachHintSuffix(detachHint) {
293
+ const trimmed = detachHint?.trim();
294
+ return trimmed ? ` To detach this conversation, use ${trimmed}.` : "";
295
+ }
296
+ function buildPluginBindingUnavailableText(binding) {
297
+ return `The bound plugin ${resolvePluginBindingDisplayName(binding)} is not currently loaded. Routing this message to OpenClaw instead.${buildDetachHintSuffix(binding.detachHint)}`;
298
+ }
299
+ function buildPluginBindingDeclinedText(binding) {
300
+ return `The bound plugin ${resolvePluginBindingDisplayName(binding)} did not handle this message. This conversation is still bound to that plugin.${buildDetachHintSuffix(binding.detachHint)}`;
301
+ }
302
+ function buildPluginBindingErrorText(binding) {
303
+ return `The bound plugin ${resolvePluginBindingDisplayName(binding)} hit an error handling this message. This conversation is still bound to that plugin.${buildDetachHintSuffix(binding.detachHint)}`;
304
+ }
305
+ function hasShownPluginBindingFallbackNotice(bindingId) {
306
+ const normalized = bindingId.trim();
307
+ if (!normalized) return false;
308
+ return getPluginBindingGlobalState().fallbackNoticeBindingIds.has(normalized);
309
+ }
310
+ function markPluginBindingFallbackNoticeShown(bindingId) {
311
+ const normalized = bindingId.trim();
312
+ if (!normalized) return;
313
+ getPluginBindingGlobalState().fallbackNoticeBindingIds.add(normalized);
314
+ }
315
+ function buildPendingReply(request) {
316
+ return {
317
+ text: buildApprovalMessage(request),
318
+ interactive: buildApprovalInteractiveReply(request.id)
319
+ };
320
+ }
321
+ function encodeCustomIdValue(value) {
322
+ return encodeURIComponent(value);
323
+ }
324
+ function decodeCustomIdValue(value) {
325
+ try {
326
+ return decodeURIComponent(value);
327
+ } catch {
328
+ return value;
329
+ }
330
+ }
331
+ function buildPluginBindingApprovalCustomId(approvalId, decision) {
332
+ const decisionCode = decision === "allow-once" ? "o" : decision === "allow-always" ? "a" : "d";
333
+ return `${PLUGIN_BINDING_CUSTOM_ID_PREFIX}:${encodeCustomIdValue(approvalId)}:${decisionCode}`;
334
+ }
335
+ function parsePluginBindingApprovalCustomId(value) {
336
+ const trimmed = value.trim();
337
+ if (!trimmed.startsWith(`${PLUGIN_BINDING_CUSTOM_ID_PREFIX}:`)) return null;
338
+ const body = trimmed.slice(`${PLUGIN_BINDING_CUSTOM_ID_PREFIX}:`.length);
339
+ const separator = body.lastIndexOf(":");
340
+ if (separator <= 0 || separator === body.length - 1) return null;
341
+ const rawId = body.slice(0, separator).trim();
342
+ const rawDecisionCode = body.slice(separator + 1).trim();
343
+ if (!rawId) return null;
344
+ const rawDecision = rawDecisionCode === "o" ? "allow-once" : rawDecisionCode === "a" ? "allow-always" : rawDecisionCode === "d" ? "deny" : null;
345
+ if (!rawDecision) return null;
346
+ return {
347
+ approvalId: decodeCustomIdValue(rawId),
348
+ decision: rawDecision
349
+ };
350
+ }
351
+ async function requestPluginConversationBinding(params) {
352
+ const conversation = normalizeConversation(params.conversation);
353
+ const ref = toConversationRef(conversation);
354
+ const existing = resolveConversationBindingRecord(ref);
355
+ const existingPluginBinding = toPluginConversationBinding(existing);
356
+ const existingLegacyPluginBinding = isLegacyPluginBindingRecord({ record: existing });
357
+ if (existing && !existingPluginBinding) if (existingLegacyPluginBinding) log.info(`plugin binding migrating legacy record plugin=${params.pluginId} root=${params.pluginRoot} channel=${ref.channel} account=${ref.accountId} conversation=${ref.conversationId}`);
358
+ else return {
359
+ status: "error",
360
+ message: "This conversation is already bound by core routing and cannot be claimed by a plugin."
361
+ };
362
+ if (existingPluginBinding && existingPluginBinding.pluginRoot !== params.pluginRoot) return {
363
+ status: "error",
364
+ message: `This conversation is already bound by plugin "${existingPluginBinding.pluginName ?? existingPluginBinding.pluginId}".`
365
+ };
366
+ if (existingPluginBinding && existingPluginBinding.pluginRoot === params.pluginRoot) {
367
+ const rebound = await bindConversationNow({
368
+ identity: {
369
+ pluginId: params.pluginId,
370
+ pluginName: params.pluginName,
371
+ pluginRoot: params.pluginRoot
372
+ },
373
+ conversation,
374
+ summary: params.binding?.summary,
375
+ detachHint: params.binding?.detachHint
376
+ });
377
+ log.info(`plugin binding auto-refresh plugin=${params.pluginId} root=${params.pluginRoot} channel=${ref.channel} account=${ref.accountId} conversation=${ref.conversationId}`);
378
+ return {
379
+ status: "bound",
380
+ binding: rebound
381
+ };
382
+ }
383
+ if (hasPersistentApproval({
384
+ pluginRoot: params.pluginRoot,
385
+ channel: ref.channel,
386
+ accountId: ref.accountId
387
+ })) {
388
+ const bound = await bindConversationNow({
389
+ identity: {
390
+ pluginId: params.pluginId,
391
+ pluginName: params.pluginName,
392
+ pluginRoot: params.pluginRoot
393
+ },
394
+ conversation,
395
+ summary: params.binding?.summary,
396
+ detachHint: params.binding?.detachHint
397
+ });
398
+ log.info(`plugin binding auto-approved plugin=${params.pluginId} root=${params.pluginRoot} channel=${ref.channel} account=${ref.accountId} conversation=${ref.conversationId}`);
399
+ return {
400
+ status: "bound",
401
+ binding: bound
402
+ };
403
+ }
404
+ const request = {
405
+ id: createApprovalRequestId(),
406
+ pluginId: params.pluginId,
407
+ pluginName: params.pluginName,
408
+ pluginRoot: params.pluginRoot,
409
+ conversation,
410
+ requestedAt: Date.now(),
411
+ requestedBySenderId: params.requestedBySenderId?.trim() || void 0,
412
+ summary: params.binding?.summary?.trim() || void 0,
413
+ detachHint: params.binding?.detachHint?.trim() || void 0
414
+ };
415
+ pendingRequests.set(request.id, request);
416
+ log.info(`plugin binding requested plugin=${params.pluginId} root=${params.pluginRoot} channel=${ref.channel} account=${ref.accountId} conversation=${ref.conversationId}`);
417
+ return {
418
+ status: "pending",
419
+ approvalId: request.id,
420
+ reply: buildPendingReply(request)
421
+ };
422
+ }
423
+ async function getCurrentPluginConversationBinding(params) {
424
+ const binding = toPluginConversationBinding(resolveConversationBindingRecord(toConversationRef(params.conversation)));
425
+ if (!binding || binding.pluginRoot !== params.pluginRoot) return null;
426
+ return {
427
+ ...binding,
428
+ parentConversationId: params.conversation.parentConversationId,
429
+ threadId: params.conversation.threadId
430
+ };
431
+ }
432
+ async function detachPluginConversationBinding(params) {
433
+ const binding = toPluginConversationBinding(resolveConversationBindingRecord(toConversationRef(params.conversation)));
434
+ if (!binding || binding.pluginRoot !== params.pluginRoot) return { removed: false };
435
+ await unbindConversationBindingRecord({
436
+ bindingId: binding.bindingId,
437
+ reason: "plugin-detach"
438
+ });
439
+ log.info(`plugin binding detached plugin=${binding.pluginId} root=${binding.pluginRoot} channel=${binding.channel} account=${binding.accountId} conversation=${binding.conversationId}`);
440
+ return { removed: true };
441
+ }
442
+ async function resolvePluginConversationBindingApproval(params) {
443
+ const request = pendingRequests.get(params.approvalId);
444
+ if (!request) return { status: "expired" };
445
+ if (request.requestedBySenderId && params.senderId?.trim() && request.requestedBySenderId !== params.senderId.trim()) return { status: "expired" };
446
+ pendingRequests.delete(params.approvalId);
447
+ if (params.decision === "deny") {
448
+ dispatchPluginConversationBindingResolved({
449
+ status: "denied",
450
+ decision: "deny",
451
+ request
452
+ });
453
+ log.info(`plugin binding denied plugin=${request.pluginId} root=${request.pluginRoot} channel=${request.conversation.channel} account=${request.conversation.accountId} conversation=${request.conversation.conversationId}`);
454
+ return {
455
+ status: "denied",
456
+ request
457
+ };
458
+ }
459
+ if (params.decision === "allow-always") await addPersistentApproval({
460
+ pluginRoot: request.pluginRoot,
461
+ pluginId: request.pluginId,
462
+ pluginName: request.pluginName,
463
+ channel: request.conversation.channel,
464
+ accountId: request.conversation.accountId,
465
+ approvedAt: Date.now()
466
+ });
467
+ const binding = await bindConversationNow({
468
+ identity: {
469
+ pluginId: request.pluginId,
470
+ pluginName: request.pluginName,
471
+ pluginRoot: request.pluginRoot
472
+ },
473
+ conversation: request.conversation,
474
+ summary: request.summary,
475
+ detachHint: request.detachHint
476
+ });
477
+ log.info(`plugin binding approved plugin=${request.pluginId} root=${request.pluginRoot} decision=${params.decision} channel=${request.conversation.channel} account=${request.conversation.accountId} conversation=${request.conversation.conversationId}`);
478
+ dispatchPluginConversationBindingResolved({
479
+ status: "approved",
480
+ binding,
481
+ decision: params.decision,
482
+ request
483
+ });
484
+ return {
485
+ status: "approved",
486
+ binding,
487
+ request,
488
+ decision: params.decision
489
+ };
490
+ }
491
+ function dispatchPluginConversationBindingResolved(params) {
492
+ queueMicrotask(() => {
493
+ notifyPluginConversationBindingResolved(params).catch((error) => {
494
+ log.warn(`plugin binding resolved dispatch failed: ${String(error)}`);
495
+ });
496
+ });
497
+ }
498
+ async function notifyPluginConversationBindingResolved(params) {
499
+ const registrations = getActivePluginRegistry()?.conversationBindingResolvedHandlers ?? [];
500
+ for (const registration of registrations) {
501
+ if (registration.pluginId !== params.request.pluginId) continue;
502
+ const registeredRoot = registration.pluginRoot?.trim();
503
+ if (registeredRoot && registeredRoot !== params.request.pluginRoot) continue;
504
+ try {
505
+ const event = {
506
+ status: params.status,
507
+ binding: params.binding,
508
+ decision: params.decision,
509
+ request: {
510
+ summary: params.request.summary,
511
+ detachHint: params.request.detachHint,
512
+ requestedBySenderId: params.request.requestedBySenderId,
513
+ conversation: params.request.conversation
514
+ }
515
+ };
516
+ await registration.handler(event);
517
+ } catch (error) {
518
+ log.warn(`plugin binding resolved callback failed plugin=${registration.pluginId} root=${registration.pluginRoot ?? "<none>"}: ${error instanceof Error ? error.message : String(error)}`);
519
+ }
520
+ }
521
+ }
522
+ function buildPluginBindingResolvedText(params) {
523
+ if (params.status === "expired") return "That plugin bind approval expired. Retry the bind command.";
524
+ if (params.status === "denied") return `Denied plugin bind request for ${params.request.pluginName ?? params.request.pluginId}.`;
525
+ const summarySuffix = params.request.summary?.trim() ? ` ${params.request.summary.trim()}` : "";
526
+ if (params.decision === "allow-always") return `Allowed ${params.request.pluginName ?? params.request.pluginId} to bind this conversation.${summarySuffix}`;
527
+ return `Allowed ${params.request.pluginName ?? params.request.pluginId} to bind this conversation once.${summarySuffix}`;
528
+ }
529
+ //#endregion
530
+ //#region src/acp/persistent-bindings.types.ts
531
+ function normalizeText(value) {
532
+ if (typeof value !== "string") return;
533
+ return value.trim() || void 0;
534
+ }
535
+ function normalizeMode(value) {
536
+ return normalizeText(value)?.toLowerCase() === "oneshot" ? "oneshot" : "persistent";
537
+ }
538
+ function normalizeBindingConfig(raw) {
539
+ if (!raw || typeof raw !== "object") return {};
540
+ const shape = raw;
541
+ const mode = normalizeText(shape.mode);
542
+ return {
543
+ mode: mode ? normalizeMode(mode) : void 0,
544
+ cwd: normalizeText(shape.cwd),
545
+ backend: normalizeText(shape.backend),
546
+ label: normalizeText(shape.label)
547
+ };
548
+ }
549
+ function buildBindingHash(params) {
550
+ return createHash("sha256").update(`${params.channel}:${params.accountId}:${params.conversationId}`).digest("hex").slice(0, 16);
551
+ }
552
+ function buildConfiguredAcpSessionKey(spec) {
553
+ const hash = buildBindingHash({
554
+ channel: spec.channel,
555
+ accountId: spec.accountId,
556
+ conversationId: spec.conversationId
557
+ });
558
+ return `agent:${sanitizeAgentId(spec.agentId)}:acp:binding:${spec.channel}:${spec.accountId}:${hash}`;
559
+ }
560
+ function toConfiguredAcpBindingRecord(spec) {
561
+ return {
562
+ bindingId: `config:acp:${spec.channel}:${spec.accountId}:${spec.conversationId}`,
563
+ targetSessionKey: buildConfiguredAcpSessionKey(spec),
564
+ targetKind: "session",
565
+ conversation: {
566
+ channel: spec.channel,
567
+ accountId: spec.accountId,
568
+ conversationId: spec.conversationId,
569
+ parentConversationId: spec.parentConversationId
570
+ },
571
+ status: "active",
572
+ boundAt: 0,
573
+ metadata: {
574
+ source: "config",
575
+ mode: spec.mode,
576
+ agentId: spec.agentId,
577
+ ...spec.acpAgentId ? { acpAgentId: spec.acpAgentId } : {},
578
+ label: spec.label,
579
+ ...spec.backend ? { backend: spec.backend } : {},
580
+ ...spec.cwd ? { cwd: spec.cwd } : {}
581
+ }
582
+ };
583
+ }
584
+ function parseConfiguredAcpSessionKey(sessionKey) {
585
+ const trimmed = sessionKey.trim();
586
+ if (!trimmed.startsWith("agent:")) return null;
587
+ const rest = trimmed.slice(trimmed.indexOf(":") + 1);
588
+ const nextSeparator = rest.indexOf(":");
589
+ if (nextSeparator === -1) return null;
590
+ const tokens = rest.slice(nextSeparator + 1).split(":");
591
+ if (tokens.length !== 5 || tokens[0] !== "acp" || tokens[1] !== "binding") return null;
592
+ const channel = tokens[2]?.trim().toLowerCase();
593
+ if (!channel) return null;
594
+ return {
595
+ channel,
596
+ accountId: normalizeAccountId(tokens[3] ?? "default")
597
+ };
598
+ }
599
+ function resolveConfiguredAcpBindingSpecFromRecord(record) {
600
+ if (record.targetKind !== "session") return null;
601
+ const conversationId = record.conversation.conversationId.trim();
602
+ if (!conversationId) return null;
603
+ const agentId = normalizeText(record.metadata?.agentId) ?? resolveAgentIdFromSessionKey(record.targetSessionKey);
604
+ if (!agentId) return null;
605
+ return {
606
+ channel: record.conversation.channel,
607
+ accountId: normalizeAccountId(record.conversation.accountId),
608
+ conversationId,
609
+ parentConversationId: normalizeText(record.conversation.parentConversationId),
610
+ agentId,
611
+ acpAgentId: normalizeText(record.metadata?.acpAgentId),
612
+ mode: normalizeMode(record.metadata?.mode),
613
+ cwd: normalizeText(record.metadata?.cwd),
614
+ backend: normalizeText(record.metadata?.backend),
615
+ label: normalizeText(record.metadata?.label)
616
+ };
617
+ }
618
+ function toResolvedConfiguredAcpBinding(record) {
619
+ const spec = resolveConfiguredAcpBindingSpecFromRecord(record);
620
+ if (!spec) return null;
621
+ return {
622
+ spec,
623
+ record
624
+ };
625
+ }
626
+ //#endregion
627
+ //#region src/channels/plugins/acp-configured-binding-consumer.ts
628
+ function resolveAgentRuntimeAcpDefaults(params) {
629
+ const agent = params.cfg.agents?.list?.find((entry) => entry.id?.trim().toLowerCase() === params.ownerAgentId.toLowerCase());
630
+ if (!agent || agent.runtime?.type !== "acp") return {};
631
+ return {
632
+ acpAgentId: normalizeText(agent.runtime.acp?.agent),
633
+ mode: normalizeText(agent.runtime.acp?.mode),
634
+ cwd: normalizeText(agent.runtime.acp?.cwd),
635
+ backend: normalizeText(agent.runtime.acp?.backend)
636
+ };
637
+ }
638
+ function resolveConfiguredBindingWorkspaceCwd(params) {
639
+ if (normalizeText(resolveAgentConfig(params.cfg, params.agentId)?.workspace)) return resolveAgentWorkspaceDir(params.cfg, params.agentId);
640
+ if (params.agentId === resolveDefaultAgentId(params.cfg)) {
641
+ if (normalizeText(params.cfg.agents?.defaults?.workspace)) return resolveAgentWorkspaceDir(params.cfg, params.agentId);
642
+ }
643
+ }
644
+ function buildConfiguredAcpSpec(params) {
645
+ return {
646
+ channel: params.channel,
647
+ accountId: params.accountId,
648
+ conversationId: params.conversation.conversationId,
649
+ parentConversationId: params.conversation.parentConversationId,
650
+ agentId: params.agentId,
651
+ acpAgentId: params.acpAgentId,
652
+ mode: params.mode,
653
+ cwd: params.cwd,
654
+ backend: params.backend,
655
+ label: params.label
656
+ };
657
+ }
658
+ function buildAcpTargetFactory(params) {
659
+ if (params.binding.type !== "acp") return null;
660
+ const runtimeDefaults = resolveAgentRuntimeAcpDefaults({
661
+ cfg: params.cfg,
662
+ ownerAgentId: params.agentId
663
+ });
664
+ const bindingOverrides = normalizeBindingConfig(params.binding.acp);
665
+ const mode = normalizeMode(bindingOverrides.mode ?? runtimeDefaults.mode);
666
+ const cwd = bindingOverrides.cwd ?? runtimeDefaults.cwd ?? resolveConfiguredBindingWorkspaceCwd({
667
+ cfg: params.cfg,
668
+ agentId: params.agentId
669
+ });
670
+ const backend = bindingOverrides.backend ?? runtimeDefaults.backend;
671
+ const label = bindingOverrides.label;
672
+ const acpAgentId = normalizeText(runtimeDefaults.acpAgentId);
673
+ return {
674
+ driverId: "acp",
675
+ materialize: ({ accountId, conversation }) => {
676
+ const spec = buildConfiguredAcpSpec({
677
+ channel: params.channel,
678
+ accountId,
679
+ conversation,
680
+ agentId: params.agentId,
681
+ acpAgentId,
682
+ mode,
683
+ cwd,
684
+ backend,
685
+ label
686
+ });
687
+ return {
688
+ record: toConfiguredAcpBindingRecord(spec),
689
+ statefulTarget: {
690
+ kind: "stateful",
691
+ driverId: "acp",
692
+ sessionKey: buildConfiguredAcpSessionKey(spec),
693
+ agentId: params.agentId,
694
+ ...label ? { label } : {}
695
+ }
696
+ };
697
+ }
698
+ };
699
+ }
700
+ const acpConfiguredBindingConsumer = {
701
+ id: "acp",
702
+ supports: (binding) => binding.type === "acp",
703
+ buildTargetFactory: (params) => buildAcpTargetFactory({
704
+ cfg: params.cfg,
705
+ binding: params.binding,
706
+ channel: params.channel,
707
+ agentId: params.agentId
708
+ }),
709
+ parseSessionKey: ({ sessionKey }) => parseConfiguredAcpSessionKey(sessionKey),
710
+ matchesSessionKey: ({ sessionKey, materializedTarget }) => materializedTarget.record.targetSessionKey === sessionKey
711
+ };
712
+ //#endregion
713
+ //#region src/channels/plugins/configured-binding-consumers.ts
714
+ const registeredConfiguredBindingConsumers = /* @__PURE__ */ new Map();
715
+ function listConfiguredBindingConsumers() {
716
+ return [...registeredConfiguredBindingConsumers.values()];
717
+ }
718
+ function resolveConfiguredBindingConsumer(binding) {
719
+ for (const consumer of listConfiguredBindingConsumers()) if (consumer.supports(binding)) return consumer;
720
+ return null;
721
+ }
722
+ function registerConfiguredBindingConsumer(consumer) {
723
+ const id = consumer.id.trim();
724
+ if (!id) throw new Error("Configured binding consumer id is required");
725
+ if (registeredConfiguredBindingConsumers.get(id)) return;
726
+ registeredConfiguredBindingConsumers.set(id, {
727
+ ...consumer,
728
+ id
729
+ });
730
+ }
731
+ //#endregion
732
+ //#region src/channels/plugins/configured-binding-builtins.ts
733
+ function ensureConfiguredBindingBuiltinsRegistered() {
734
+ registerConfiguredBindingConsumer(acpConfiguredBindingConsumer);
735
+ }
736
+ //#endregion
737
+ //#region src/channels/plugins/binding-provider.ts
738
+ function resolveChannelConfiguredBindingProvider(plugin) {
739
+ return plugin?.bindings;
740
+ }
741
+ //#endregion
742
+ //#region src/channels/plugins/configured-binding-compiler.ts
743
+ const compiledRegistryCache = /* @__PURE__ */ new WeakMap();
744
+ function findChannelPlugin(params) {
745
+ return params.registry?.channels?.find((entry) => entry?.plugin?.id === params.channel)?.plugin ?? void 0;
746
+ }
747
+ function resolveLoadedChannelPlugin(channel) {
748
+ const normalized = channel.trim().toLowerCase();
749
+ if (!normalized) return;
750
+ const current = getChannelPlugin(normalized);
751
+ if (current) return current;
752
+ return findChannelPlugin({
753
+ registry: getActivePluginRegistry(),
754
+ channel: normalized
755
+ });
756
+ }
757
+ function resolveConfiguredBindingAdapter(channel) {
758
+ const normalized = channel.trim().toLowerCase();
759
+ if (!normalized) return null;
760
+ const plugin = resolveLoadedChannelPlugin(normalized);
761
+ const provider = resolveChannelConfiguredBindingProvider(plugin);
762
+ if (!plugin || !provider || !provider.compileConfiguredBinding || !provider.matchInboundConversation) return null;
763
+ return {
764
+ channel: plugin.id,
765
+ provider
766
+ };
767
+ }
768
+ function resolveBindingConversationId(binding) {
769
+ const id = binding.match?.peer?.id?.trim();
770
+ return id ? id : null;
771
+ }
772
+ function compileConfiguredBindingTarget(params) {
773
+ return params.provider.compileConfiguredBinding({
774
+ binding: params.binding,
775
+ conversationId: params.conversationId
776
+ });
777
+ }
778
+ function compileConfiguredBindingRule(params) {
779
+ const agentId = pickFirstExistingAgentId(params.cfg, params.binding.agentId ?? "main");
780
+ const consumer = resolveConfiguredBindingConsumer(params.binding);
781
+ if (!consumer) return null;
782
+ const targetFactory = consumer.buildTargetFactory({
783
+ cfg: params.cfg,
784
+ binding: params.binding,
785
+ channel: params.channel,
786
+ agentId,
787
+ target: params.target,
788
+ bindingConversationId: params.bindingConversationId
789
+ });
790
+ if (!targetFactory) return null;
791
+ return {
792
+ channel: params.channel,
793
+ accountPattern: params.binding.match.accountId?.trim() || void 0,
794
+ binding: params.binding,
795
+ bindingConversationId: params.bindingConversationId,
796
+ target: params.target,
797
+ agentId,
798
+ provider: params.provider,
799
+ targetFactory
800
+ };
801
+ }
802
+ function pushCompiledRule(target, rule) {
803
+ const existing = target.get(rule.channel);
804
+ if (existing) {
805
+ existing.push(rule);
806
+ return;
807
+ }
808
+ target.set(rule.channel, [rule]);
809
+ }
810
+ function compileConfiguredBindingRegistry(params) {
811
+ const rulesByChannel = /* @__PURE__ */ new Map();
812
+ for (const binding of listConfiguredBindings(params.cfg)) {
813
+ const bindingConversationId = resolveBindingConversationId(binding);
814
+ if (!bindingConversationId) continue;
815
+ const resolvedChannel = resolveConfiguredBindingAdapter(binding.match.channel);
816
+ if (!resolvedChannel) continue;
817
+ const target = compileConfiguredBindingTarget({
818
+ provider: resolvedChannel.provider,
819
+ binding,
820
+ conversationId: bindingConversationId
821
+ });
822
+ if (!target) continue;
823
+ const rule = compileConfiguredBindingRule({
824
+ cfg: params.cfg,
825
+ channel: resolvedChannel.channel,
826
+ binding,
827
+ target,
828
+ bindingConversationId,
829
+ provider: resolvedChannel.provider
830
+ });
831
+ if (!rule) continue;
832
+ pushCompiledRule(rulesByChannel, rule);
833
+ }
834
+ return { rulesByChannel };
835
+ }
836
+ function resolveCompiledBindingRegistry(cfg) {
837
+ const registryVersion = getActivePluginRegistryVersion();
838
+ const cached = compiledRegistryCache.get(cfg);
839
+ if (cached?.registryVersion === registryVersion) return cached.registry;
840
+ const registry = compileConfiguredBindingRegistry({ cfg });
841
+ compiledRegistryCache.set(cfg, {
842
+ registryVersion,
843
+ registry
844
+ });
845
+ return registry;
846
+ }
847
+ function primeCompiledBindingRegistry(cfg) {
848
+ const registry = compileConfiguredBindingRegistry({ cfg });
849
+ compiledRegistryCache.set(cfg, {
850
+ registryVersion: getActivePluginRegistryVersion(),
851
+ registry
852
+ });
853
+ return registry;
854
+ }
855
+ function countCompiledBindingRegistry(registry) {
856
+ return {
857
+ bindingCount: [...registry.rulesByChannel.values()].reduce((sum, rules) => sum + rules.length, 0),
858
+ channelCount: registry.rulesByChannel.size
859
+ };
860
+ }
861
+ //#endregion
862
+ //#region src/channels/plugins/configured-binding-match.ts
863
+ function resolveAccountMatchPriority(match, actual) {
864
+ const trimmed = (match ?? "").trim();
865
+ if (!trimmed) return actual === "default" ? 2 : 0;
866
+ if (trimmed === "*") return 1;
867
+ return normalizeAccountId(trimmed) === actual ? 2 : 0;
868
+ }
869
+ function matchCompiledBindingConversation(params) {
870
+ return params.rule.provider.matchInboundConversation({
871
+ binding: params.rule.binding,
872
+ compiledBinding: params.rule.target,
873
+ conversationId: params.conversationId,
874
+ parentConversationId: params.parentConversationId
875
+ });
876
+ }
877
+ function resolveCompiledBindingChannel(raw) {
878
+ const normalized = raw.trim().toLowerCase();
879
+ return normalized ? normalized : null;
880
+ }
881
+ function toConfiguredBindingConversationRef(conversation) {
882
+ const channel = resolveCompiledBindingChannel(conversation.channel);
883
+ const conversationId = conversation.conversationId.trim();
884
+ if (!channel || !conversationId) return null;
885
+ return {
886
+ channel,
887
+ accountId: normalizeAccountId(conversation.accountId),
888
+ conversationId,
889
+ parentConversationId: conversation.parentConversationId?.trim() || void 0
890
+ };
891
+ }
892
+ function materializeConfiguredBindingRecord(params) {
893
+ return params.rule.targetFactory.materialize({
894
+ accountId: normalizeAccountId(params.accountId),
895
+ conversation: params.conversation
896
+ });
897
+ }
898
+ function resolveMatchingConfiguredBinding(params) {
899
+ if (!params.conversation) return null;
900
+ let wildcardMatch = null;
901
+ let exactMatch = null;
902
+ for (const rule of params.rules) {
903
+ const accountMatchPriority = resolveAccountMatchPriority(rule.accountPattern, params.conversation.accountId);
904
+ if (accountMatchPriority === 0) continue;
905
+ const match = matchCompiledBindingConversation({
906
+ rule,
907
+ conversationId: params.conversation.conversationId,
908
+ parentConversationId: params.conversation.parentConversationId
909
+ });
910
+ if (!match) continue;
911
+ const matchPriority = match.matchPriority ?? 0;
912
+ if (accountMatchPriority === 2) {
913
+ if (!exactMatch || matchPriority > (exactMatch.match.matchPriority ?? 0)) exactMatch = {
914
+ rule,
915
+ match
916
+ };
917
+ continue;
918
+ }
919
+ if (!wildcardMatch || matchPriority > (wildcardMatch.match.matchPriority ?? 0)) wildcardMatch = {
920
+ rule,
921
+ match
922
+ };
923
+ }
924
+ return exactMatch ?? wildcardMatch;
925
+ }
926
+ //#endregion
927
+ //#region src/channels/plugins/configured-binding-session-lookup.ts
928
+ function resolveConfiguredBindingRecordBySessionKeyFromRegistry(params) {
929
+ const sessionKey = params.sessionKey.trim();
930
+ if (!sessionKey) return null;
931
+ for (const consumer of listConfiguredBindingConsumers()) {
932
+ const parsed = consumer.parseSessionKey?.({ sessionKey });
933
+ if (!parsed) continue;
934
+ const channel = resolveCompiledBindingChannel(parsed.channel);
935
+ if (!channel) continue;
936
+ const rules = params.registry.rulesByChannel.get(channel);
937
+ if (!rules || rules.length === 0) continue;
938
+ let wildcardMatch = null;
939
+ let exactMatch = null;
940
+ for (const rule of rules) {
941
+ if (rule.targetFactory.driverId !== consumer.id) continue;
942
+ const accountMatchPriority = resolveAccountMatchPriority(rule.accountPattern, parsed.accountId);
943
+ if (accountMatchPriority === 0) continue;
944
+ const materializedTarget = materializeConfiguredBindingRecord({
945
+ rule,
946
+ accountId: parsed.accountId,
947
+ conversation: rule.target
948
+ });
949
+ if (consumer.matchesSessionKey?.({
950
+ sessionKey,
951
+ compiledBinding: rule,
952
+ accountId: parsed.accountId,
953
+ materializedTarget
954
+ }) ?? materializedTarget.record.targetSessionKey === sessionKey) {
955
+ if (accountMatchPriority === 2) {
956
+ exactMatch = materializedTarget;
957
+ break;
958
+ }
959
+ wildcardMatch = materializedTarget;
960
+ }
961
+ }
962
+ if (exactMatch) return exactMatch;
963
+ if (wildcardMatch) return wildcardMatch;
964
+ }
965
+ return null;
966
+ }
967
+ //#endregion
968
+ //#region src/channels/plugins/configured-binding-registry.ts
969
+ function primeConfiguredBindingRegistry$1(params) {
970
+ return countCompiledBindingRegistry(primeCompiledBindingRegistry(params.cfg));
971
+ }
972
+ function resolveConfiguredBindingRecord$1(params) {
973
+ const conversation = toConfiguredBindingConversationRef({
974
+ channel: params.channel,
975
+ accountId: params.accountId,
976
+ conversationId: params.conversationId,
977
+ parentConversationId: params.parentConversationId
978
+ });
979
+ if (!conversation) return null;
980
+ return resolveConfiguredBindingRecordForConversation$1({
981
+ cfg: params.cfg,
982
+ conversation
983
+ });
984
+ }
985
+ function resolveConfiguredBindingRecordForConversation$1(params) {
986
+ const conversation = toConfiguredBindingConversationRef(params.conversation);
987
+ if (!conversation) return null;
988
+ const rules = resolveCompiledBindingRegistry(params.cfg).rulesByChannel.get(conversation.channel);
989
+ if (!rules || rules.length === 0) return null;
990
+ const resolved = resolveMatchingConfiguredBinding({
991
+ rules,
992
+ conversation
993
+ });
994
+ if (!resolved) return null;
995
+ return materializeConfiguredBindingRecord({
996
+ rule: resolved.rule,
997
+ accountId: conversation.accountId,
998
+ conversation: resolved.match
999
+ });
1000
+ }
1001
+ function resolveConfiguredBinding$1(params) {
1002
+ const conversation = toConfiguredBindingConversationRef(params.conversation);
1003
+ if (!conversation) return null;
1004
+ const rules = resolveCompiledBindingRegistry(params.cfg).rulesByChannel.get(conversation.channel);
1005
+ if (!rules || rules.length === 0) return null;
1006
+ const resolved = resolveMatchingConfiguredBinding({
1007
+ rules,
1008
+ conversation
1009
+ });
1010
+ if (!resolved) return null;
1011
+ const materializedTarget = materializeConfiguredBindingRecord({
1012
+ rule: resolved.rule,
1013
+ accountId: conversation.accountId,
1014
+ conversation: resolved.match
1015
+ });
1016
+ return {
1017
+ conversation,
1018
+ compiledBinding: resolved.rule,
1019
+ match: resolved.match,
1020
+ ...materializedTarget
1021
+ };
1022
+ }
1023
+ function resolveConfiguredBindingRecordBySessionKey$1(params) {
1024
+ return resolveConfiguredBindingRecordBySessionKeyFromRegistry({
1025
+ registry: resolveCompiledBindingRegistry(params.cfg),
1026
+ sessionKey: params.sessionKey
1027
+ });
1028
+ }
1029
+ //#endregion
1030
+ //#region src/channels/plugins/binding-registry.ts
1031
+ function primeConfiguredBindingRegistry(...args) {
1032
+ ensureConfiguredBindingBuiltinsRegistered();
1033
+ return primeConfiguredBindingRegistry$1(...args);
1034
+ }
1035
+ function resolveConfiguredBindingRecord(...args) {
1036
+ ensureConfiguredBindingBuiltinsRegistered();
1037
+ return resolveConfiguredBindingRecord$1(...args);
1038
+ }
1039
+ function resolveConfiguredBindingRecordForConversation(...args) {
1040
+ ensureConfiguredBindingBuiltinsRegistered();
1041
+ return resolveConfiguredBindingRecordForConversation$1(...args);
1042
+ }
1043
+ function resolveConfiguredBinding(...args) {
1044
+ ensureConfiguredBindingBuiltinsRegistered();
1045
+ return resolveConfiguredBinding$1(...args);
1046
+ }
1047
+ function resolveConfiguredBindingRecordBySessionKey(...args) {
1048
+ ensureConfiguredBindingBuiltinsRegistered();
1049
+ return resolveConfiguredBindingRecordBySessionKey$1(...args);
1050
+ }
1051
+ //#endregion
1052
+ //#region src/acp/persistent-bindings.resolve.ts
1053
+ function resolveConfiguredAcpBindingRecord(params) {
1054
+ const resolved = resolveConfiguredBindingRecord(params);
1055
+ return resolved ? toResolvedConfiguredAcpBinding(resolved.record) : null;
1056
+ }
1057
+ function resolveConfiguredAcpBindingSpecBySessionKey(params) {
1058
+ const resolved = resolveConfiguredBindingRecordBySessionKey(params);
1059
+ return resolved ? resolveConfiguredAcpBindingSpecFromRecord(resolved.record) : null;
1060
+ }
1061
+ //#endregion
1062
+ //#region src/acp/persistent-bindings.lifecycle.ts
1063
+ function sessionMatchesConfiguredBinding(params) {
1064
+ const desiredAgent = (params.spec.acpAgentId ?? params.spec.agentId).trim().toLowerCase();
1065
+ const currentAgent = (params.meta.agent ?? "").trim().toLowerCase();
1066
+ if (!currentAgent || currentAgent !== desiredAgent) return false;
1067
+ if (params.meta.mode !== params.spec.mode) return false;
1068
+ const desiredBackend = params.spec.backend?.trim() || params.cfg.acp?.backend?.trim() || "";
1069
+ if (desiredBackend) {
1070
+ const currentBackend = (params.meta.backend ?? "").trim();
1071
+ if (!currentBackend || currentBackend !== desiredBackend) return false;
1072
+ }
1073
+ const desiredCwd = params.spec.cwd?.trim();
1074
+ if (desiredCwd !== void 0) {
1075
+ if (desiredCwd !== (params.meta.runtimeOptions?.cwd ?? params.meta.cwd ?? "").trim()) return false;
1076
+ }
1077
+ return true;
1078
+ }
1079
+ async function ensureConfiguredAcpBindingSession(params) {
1080
+ const sessionKey = buildConfiguredAcpSessionKey(params.spec);
1081
+ const acpManager = getAcpSessionManager();
1082
+ try {
1083
+ const resolution = acpManager.resolveSession({
1084
+ cfg: params.cfg,
1085
+ sessionKey
1086
+ });
1087
+ if (resolution.kind === "ready" && sessionMatchesConfiguredBinding({
1088
+ cfg: params.cfg,
1089
+ spec: params.spec,
1090
+ meta: resolution.meta
1091
+ })) return {
1092
+ ok: true,
1093
+ sessionKey
1094
+ };
1095
+ if (resolution.kind !== "none") await acpManager.closeSession({
1096
+ cfg: params.cfg,
1097
+ sessionKey,
1098
+ reason: "config-binding-reconfigure",
1099
+ clearMeta: false,
1100
+ allowBackendUnavailable: true,
1101
+ requireAcpSession: false
1102
+ });
1103
+ await acpManager.initializeSession({
1104
+ cfg: params.cfg,
1105
+ sessionKey,
1106
+ agent: params.spec.acpAgentId ?? params.spec.agentId,
1107
+ mode: params.spec.mode,
1108
+ cwd: params.spec.cwd,
1109
+ backendId: params.spec.backend
1110
+ });
1111
+ return {
1112
+ ok: true,
1113
+ sessionKey
1114
+ };
1115
+ } catch (error) {
1116
+ const message = error instanceof Error ? error.message : String(error);
1117
+ logVerbose(`acp-configured-binding: failed ensuring ${params.spec.channel}:${params.spec.accountId}:${params.spec.conversationId} -> ${sessionKey}: ${message}`);
1118
+ return {
1119
+ ok: false,
1120
+ sessionKey,
1121
+ error: message
1122
+ };
1123
+ }
1124
+ }
1125
+ async function ensureConfiguredAcpBindingReady(params) {
1126
+ if (!params.configuredBinding) return { ok: true };
1127
+ const ensured = await ensureConfiguredAcpBindingSession({
1128
+ cfg: params.cfg,
1129
+ spec: params.configuredBinding.spec
1130
+ });
1131
+ if (ensured.ok) return { ok: true };
1132
+ return {
1133
+ ok: false,
1134
+ error: ensured.error ?? "unknown error"
1135
+ };
1136
+ }
1137
+ async function resetAcpSessionInPlace(params) {
1138
+ const sessionKey = params.sessionKey.trim();
1139
+ if (!sessionKey) return {
1140
+ ok: false,
1141
+ skipped: true
1142
+ };
1143
+ const meta = readAcpSessionEntry({
1144
+ cfg: params.cfg,
1145
+ sessionKey
1146
+ })?.acp;
1147
+ const configuredBinding = !meta || !normalizeText(meta.agent) ? resolveConfiguredAcpBindingSpecBySessionKey({
1148
+ cfg: params.cfg,
1149
+ sessionKey
1150
+ }) : null;
1151
+ if (!meta) {
1152
+ if (configuredBinding) {
1153
+ const ensured = await ensureConfiguredAcpBindingSession({
1154
+ cfg: params.cfg,
1155
+ spec: configuredBinding
1156
+ });
1157
+ if (ensured.ok) return { ok: true };
1158
+ return {
1159
+ ok: false,
1160
+ error: ensured.error
1161
+ };
1162
+ }
1163
+ return {
1164
+ ok: false,
1165
+ skipped: true
1166
+ };
1167
+ }
1168
+ const acpManager = getAcpSessionManager();
1169
+ const agent = normalizeText(meta.agent) ?? configuredBinding?.acpAgentId ?? configuredBinding?.agentId ?? resolveAcpAgentFromSessionKey(sessionKey, "main");
1170
+ const mode = meta.mode === "oneshot" ? "oneshot" : "persistent";
1171
+ const runtimeOptions = { ...meta.runtimeOptions };
1172
+ const cwd = normalizeText(runtimeOptions.cwd ?? meta.cwd);
1173
+ try {
1174
+ await acpManager.closeSession({
1175
+ cfg: params.cfg,
1176
+ sessionKey,
1177
+ reason: `${params.reason}-in-place-reset`,
1178
+ clearMeta: false,
1179
+ allowBackendUnavailable: true,
1180
+ requireAcpSession: false
1181
+ });
1182
+ await acpManager.initializeSession({
1183
+ cfg: params.cfg,
1184
+ sessionKey,
1185
+ agent,
1186
+ mode,
1187
+ cwd,
1188
+ backendId: normalizeText(meta.backend) ?? normalizeText(params.cfg.acp?.backend)
1189
+ });
1190
+ const runtimeOptionsPatch = Object.fromEntries(Object.entries(runtimeOptions).filter(([, value]) => value !== void 0));
1191
+ if (runtimeOptionsPatch && Object.keys(runtimeOptionsPatch).length > 0) await acpManager.updateSessionRuntimeOptions({
1192
+ cfg: params.cfg,
1193
+ sessionKey,
1194
+ patch: runtimeOptionsPatch
1195
+ });
1196
+ return { ok: true };
1197
+ } catch (error) {
1198
+ const message = error instanceof Error ? error.message : String(error);
1199
+ logVerbose(`acp-configured-binding: failed reset for ${sessionKey}: ${message}`);
1200
+ return {
1201
+ ok: false,
1202
+ error: message
1203
+ };
1204
+ }
1205
+ }
1206
+ //#endregion
1207
+ //#region src/channels/plugins/acp-stateful-target-driver.ts
1208
+ function toAcpStatefulBindingTargetDescriptor(params) {
1209
+ const metaAgentId = (readAcpSessionEntry(params)?.acp)?.agent?.trim();
1210
+ if (metaAgentId) return {
1211
+ kind: "stateful",
1212
+ driverId: "acp",
1213
+ sessionKey: params.sessionKey,
1214
+ agentId: metaAgentId
1215
+ };
1216
+ const spec = resolveConfiguredAcpBindingSpecBySessionKey(params);
1217
+ if (!spec) return null;
1218
+ return {
1219
+ kind: "stateful",
1220
+ driverId: "acp",
1221
+ sessionKey: params.sessionKey,
1222
+ agentId: spec.agentId,
1223
+ ...spec.label ? { label: spec.label } : {}
1224
+ };
1225
+ }
1226
+ async function ensureAcpTargetReady(params) {
1227
+ const configuredBinding = resolveConfiguredAcpBindingSpecFromRecord(params.bindingResolution.record);
1228
+ if (!configuredBinding) return {
1229
+ ok: false,
1230
+ error: "Configured ACP binding unavailable"
1231
+ };
1232
+ return await ensureConfiguredAcpBindingReady({
1233
+ cfg: params.cfg,
1234
+ configuredBinding: {
1235
+ spec: configuredBinding,
1236
+ record: params.bindingResolution.record
1237
+ }
1238
+ });
1239
+ }
1240
+ async function ensureAcpTargetSession(params) {
1241
+ const spec = resolveConfiguredAcpBindingSpecFromRecord(params.bindingResolution.record);
1242
+ if (!spec) return {
1243
+ ok: false,
1244
+ sessionKey: params.bindingResolution.statefulTarget.sessionKey,
1245
+ error: "Configured ACP binding unavailable"
1246
+ };
1247
+ return await ensureConfiguredAcpBindingSession({
1248
+ cfg: params.cfg,
1249
+ spec
1250
+ });
1251
+ }
1252
+ async function resetAcpTargetInPlace(params) {
1253
+ return await resetAcpSessionInPlace(params);
1254
+ }
1255
+ const acpStatefulBindingTargetDriver = {
1256
+ id: "acp",
1257
+ ensureReady: ensureAcpTargetReady,
1258
+ ensureSession: ensureAcpTargetSession,
1259
+ resolveTargetBySessionKey: toAcpStatefulBindingTargetDescriptor,
1260
+ resetInPlace: resetAcpTargetInPlace
1261
+ };
1262
+ //#endregion
1263
+ //#region src/channels/plugins/stateful-target-drivers.ts
1264
+ const registeredStatefulBindingTargetDrivers = /* @__PURE__ */ new Map();
1265
+ function listStatefulBindingTargetDrivers() {
1266
+ return [...registeredStatefulBindingTargetDrivers.values()];
1267
+ }
1268
+ function registerStatefulBindingTargetDriver(driver) {
1269
+ const id = driver.id.trim();
1270
+ if (!id) throw new Error("Stateful binding target driver id is required");
1271
+ const normalized = {
1272
+ ...driver,
1273
+ id
1274
+ };
1275
+ if (registeredStatefulBindingTargetDrivers.get(id)) return;
1276
+ registeredStatefulBindingTargetDrivers.set(id, normalized);
1277
+ }
1278
+ function getStatefulBindingTargetDriver(id) {
1279
+ const normalizedId = id.trim();
1280
+ if (!normalizedId) return null;
1281
+ return registeredStatefulBindingTargetDrivers.get(normalizedId) ?? null;
1282
+ }
1283
+ function resolveStatefulBindingTargetBySessionKey(params) {
1284
+ const sessionKey = params.sessionKey.trim();
1285
+ if (!sessionKey) return null;
1286
+ for (const driver of listStatefulBindingTargetDrivers()) {
1287
+ const bindingTarget = driver.resolveTargetBySessionKey?.({
1288
+ cfg: params.cfg,
1289
+ sessionKey
1290
+ });
1291
+ if (bindingTarget) return {
1292
+ driver,
1293
+ bindingTarget
1294
+ };
1295
+ }
1296
+ return null;
1297
+ }
1298
+ //#endregion
1299
+ //#region src/channels/plugins/stateful-target-builtins.ts
1300
+ function ensureStatefulTargetBuiltinsRegistered() {
1301
+ registerStatefulBindingTargetDriver(acpStatefulBindingTargetDriver);
1302
+ }
1303
+ //#endregion
1304
+ //#region src/channels/plugins/binding-targets.ts
1305
+ async function ensureConfiguredBindingTargetReady(params) {
1306
+ ensureStatefulTargetBuiltinsRegistered();
1307
+ if (!params.bindingResolution) return { ok: true };
1308
+ const driver = getStatefulBindingTargetDriver(params.bindingResolution.statefulTarget.driverId);
1309
+ if (!driver) return {
1310
+ ok: false,
1311
+ error: `Configured binding target driver unavailable: ${params.bindingResolution.statefulTarget.driverId}`
1312
+ };
1313
+ return await driver.ensureReady({
1314
+ cfg: params.cfg,
1315
+ bindingResolution: params.bindingResolution
1316
+ });
1317
+ }
1318
+ async function resetConfiguredBindingTargetInPlace(params) {
1319
+ ensureStatefulTargetBuiltinsRegistered();
1320
+ const resolved = resolveStatefulBindingTargetBySessionKey({
1321
+ cfg: params.cfg,
1322
+ sessionKey: params.sessionKey
1323
+ });
1324
+ if (!resolved?.driver.resetInPlace) return {
1325
+ ok: false,
1326
+ skipped: true
1327
+ };
1328
+ return await resolved.driver.resetInPlace({
1329
+ ...params,
1330
+ bindingTarget: resolved.bindingTarget
1331
+ });
1332
+ }
1333
+ async function ensureConfiguredBindingTargetSession(params) {
1334
+ ensureStatefulTargetBuiltinsRegistered();
1335
+ const driver = getStatefulBindingTargetDriver(params.bindingResolution.statefulTarget.driverId);
1336
+ if (!driver) return {
1337
+ ok: false,
1338
+ sessionKey: params.bindingResolution.statefulTarget.sessionKey,
1339
+ error: `Configured binding target driver unavailable: ${params.bindingResolution.statefulTarget.driverId}`
1340
+ };
1341
+ return await driver.ensureSession({
1342
+ cfg: params.cfg,
1343
+ bindingResolution: params.bindingResolution
1344
+ });
1345
+ }
1346
+ //#endregion
1347
+ //#region src/channels/plugins/binding-routing.ts
1348
+ function resolveConfiguredBindingConversationRef(params) {
1349
+ if ("conversation" in params) return params.conversation;
1350
+ return {
1351
+ channel: params.channel,
1352
+ accountId: params.accountId,
1353
+ conversationId: params.conversationId,
1354
+ parentConversationId: params.parentConversationId
1355
+ };
1356
+ }
1357
+ function resolveConfiguredBindingRoute(params) {
1358
+ const bindingResolution = resolveConfiguredBinding({
1359
+ cfg: params.cfg,
1360
+ conversation: resolveConfiguredBindingConversationRef(params)
1361
+ }) ?? null;
1362
+ if (!bindingResolution) return {
1363
+ bindingResolution: null,
1364
+ route: params.route
1365
+ };
1366
+ const boundSessionKey = bindingResolution.statefulTarget.sessionKey.trim();
1367
+ if (!boundSessionKey) return {
1368
+ bindingResolution,
1369
+ route: params.route
1370
+ };
1371
+ const boundAgentId = resolveAgentIdFromSessionKey(boundSessionKey) || bindingResolution.statefulTarget.agentId;
1372
+ return {
1373
+ bindingResolution,
1374
+ boundSessionKey,
1375
+ boundAgentId,
1376
+ route: {
1377
+ ...params.route,
1378
+ sessionKey: boundSessionKey,
1379
+ agentId: boundAgentId,
1380
+ lastRoutePolicy: deriveLastRoutePolicy({
1381
+ sessionKey: boundSessionKey,
1382
+ mainSessionKey: params.route.mainSessionKey
1383
+ }),
1384
+ matchedBy: "binding.channel"
1385
+ }
1386
+ };
1387
+ }
1388
+ async function ensureConfiguredBindingRouteReady(params) {
1389
+ return await ensureConfiguredBindingTargetReady(params);
1390
+ }
1391
+ //#endregion
1392
+ //#region src/channels/session.ts
1393
+ function normalizeSessionStoreKey(sessionKey) {
1394
+ return sessionKey.trim().toLowerCase();
1395
+ }
1396
+ function shouldSkipPinnedMainDmRouteUpdate(pin) {
1397
+ if (!pin) return false;
1398
+ const owner = pin.ownerRecipient.trim().toLowerCase();
1399
+ const sender = pin.senderRecipient.trim().toLowerCase();
1400
+ if (!owner || !sender || owner === sender) return false;
1401
+ pin.onSkip?.({
1402
+ ownerRecipient: pin.ownerRecipient,
1403
+ senderRecipient: pin.senderRecipient
1404
+ });
1405
+ return true;
1406
+ }
1407
+ async function recordInboundSession(params) {
1408
+ const { storePath, sessionKey, ctx, groupResolution, createIfMissing } = params;
1409
+ const canonicalSessionKey = normalizeSessionStoreKey(sessionKey);
1410
+ recordSessionMetaFromInbound({
1411
+ storePath,
1412
+ sessionKey: canonicalSessionKey,
1413
+ ctx,
1414
+ groupResolution,
1415
+ createIfMissing
1416
+ }).catch(params.onRecordError);
1417
+ const update = params.updateLastRoute;
1418
+ if (!update) return;
1419
+ if (shouldSkipPinnedMainDmRouteUpdate(update.mainDmOwnerPin)) return;
1420
+ const targetSessionKey = normalizeSessionStoreKey(update.sessionKey);
1421
+ await updateLastRoute({
1422
+ storePath,
1423
+ sessionKey: targetSessionKey,
1424
+ deliveryContext: {
1425
+ channel: update.channel,
1426
+ to: update.to,
1427
+ accountId: update.accountId,
1428
+ threadId: update.threadId
1429
+ },
1430
+ ctx: targetSessionKey === canonicalSessionKey ? ctx : void 0,
1431
+ groupResolution
1432
+ });
1433
+ }
1434
+ //#endregion
1435
+ //#region src/channels/session-meta.ts
1436
+ async function recordInboundSessionMetaSafe(params) {
1437
+ const storePath = resolveStorePath(params.cfg.session?.store, { agentId: params.agentId });
1438
+ try {
1439
+ await recordSessionMetaFromInbound({
1440
+ storePath,
1441
+ sessionKey: params.sessionKey,
1442
+ ctx: params.ctx
1443
+ });
1444
+ } catch (err) {
1445
+ params.onError?.(err);
1446
+ }
1447
+ }
1448
+ //#endregion
1449
+ //#region src/channels/thread-binding-id.ts
1450
+ function resolveThreadBindingConversationIdFromBindingId(params) {
1451
+ const bindingId = params.bindingId?.trim();
1452
+ if (!bindingId) return;
1453
+ const prefix = `${params.accountId}:`;
1454
+ if (!bindingId.startsWith(prefix)) return;
1455
+ return bindingId.slice(prefix.length).trim() || void 0;
1456
+ }
1457
+ //#endregion
1458
+ export { requestPluginConversationBinding as A, detachPluginConversationBinding as C, isPluginOwnedSessionBindingRecord as D, isPluginOwnedBindingMetadata as E, listSessionBindingRecords as F, resolveConversationBindingRecord as I, touchConversationBindingRecord as L, toPluginConversationBinding as M, createConversationBindingRecord as N, markPluginBindingFallbackNoticeShown as O, getConversationBindingCapabilities as P, unbindConversationBindingRecord as R, buildPluginBindingUnavailableText as S, hasShownPluginBindingFallbackNotice as T, normalizeBindingConfig as _, resolveConfiguredBindingRoute as a, buildPluginBindingErrorText as b, resetConfiguredBindingTargetInPlace as c, primeConfiguredBindingRegistry as d, resolveConfiguredBinding as f, buildConfiguredAcpSessionKey as g, resolveConfiguredBindingRecordForConversation as h, ensureConfiguredBindingRouteReady as i, resolvePluginConversationBindingApproval as j, parsePluginBindingApprovalCustomId as k, ensureConfiguredAcpBindingReady as l, resolveConfiguredBindingRecordBySessionKey as m, recordInboundSessionMetaSafe as n, ensureConfiguredBindingTargetReady as o, resolveConfiguredBindingRecord as p, recordInboundSession as r, ensureConfiguredBindingTargetSession as s, resolveThreadBindingConversationIdFromBindingId as t, resolveConfiguredAcpBindingRecord as u, buildPluginBindingApprovalCustomId as v, getCurrentPluginConversationBinding as w, buildPluginBindingResolvedText as x, buildPluginBindingDeclinedText as y };