openclaw-multi-auto 1.3.6 → 1.3.8

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 (328) hide show
  1. package/dist/{audio-preflight-5FEeDooz.js → audio-preflight-DDBLZBdb.js} +4 -4
  2. package/dist/{audio-transcription-runner-B-UvoDjZ.js → audio-transcription-runner-DZbSWT9E.js} +1 -1
  3. package/dist/build-info.json +3 -3
  4. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  5. package/dist/{chrome-D45SyhQL.js → chrome-CMU2WVFh.js} +8 -8
  6. package/dist/{deliver-B9cys0EZ.js → deliver-BXVcFIHL.js} +1 -1
  7. package/dist/{deliver-runtime-DhaQJ0pI.js → deliver-runtime-DTaIS-1i.js} +3 -3
  8. package/dist/{deps-send-whatsapp.runtime-DvTL2tzN.js → deps-send-whatsapp.runtime-CIZqFAqb.js} +7 -7
  9. package/dist/extensionAPI.js +6 -6
  10. package/dist/{image-DAOPwVXi.js → image-BCVLo0qw.js} +1 -1
  11. package/dist/{image-runtime-wlCLVvVv.js → image-runtime-DtCKpMPZ.js} +3 -3
  12. package/dist/{pi-embedded-DYU79yGe.js → pi-embedded-CgQ_W6Xs.js} +24 -24
  13. package/dist/{pi-embedded-helpers-uTRAmQ4n.js → pi-embedded-helpers-CwuBTKza.js} +3 -3
  14. package/dist/plugin-sdk/{accounts-DyFCXtHv.js → accounts-BslAlVYS.js} +2 -2
  15. package/dist/plugin-sdk/{accounts-BJAXxY46.js → accounts-C3m65--E.js} +2 -2
  16. package/dist/plugin-sdk/{accounts-C1j7HSL0.js → accounts-CNCCkdEF.js} +3 -3
  17. package/dist/plugin-sdk/{active-listener-CftX5jLD.js → active-listener-CkPnMUkB.js} +2 -2
  18. package/dist/plugin-sdk/{api-key-rotation-8nyyt1kx.js → api-key-rotation-BXnNsojA.js} +2 -2
  19. package/dist/plugin-sdk/{audio-preflight-C_aSAPR1.js → audio-preflight-CtO4fFvp.js} +26 -26
  20. package/dist/plugin-sdk/{audio-transcription-runner-CB53F7_7.js → audio-transcription-runner-DnxvOS1-.js} +11 -11
  21. package/dist/plugin-sdk/{audit-membership-runtime-BXndI4LG.js → audit-membership-runtime-BpfoSk8M.js} +2 -2
  22. package/dist/plugin-sdk/{channel-activity-C5y8AgAV.js → channel-activity-WJYxcJ3S.js} +3 -3
  23. package/dist/plugin-sdk/{channel-web-DBTRO03V.js → channel-web-dO5k3ubM.js} +18 -18
  24. package/dist/plugin-sdk/{chrome-f00sZkDX.js → chrome-CjNTuJML.js} +6 -6
  25. package/dist/plugin-sdk/{commands-registry-BJ_NxG2F.js → commands-registry-CdYjoI0i.js} +4 -4
  26. package/dist/plugin-sdk/{common-Cf27Jwxu.js → common-oYc5vPFl.js} +2 -2
  27. package/dist/plugin-sdk/{config-CHQrpx-Q.js → config-B1z-UxQ3.js} +7 -7
  28. package/dist/plugin-sdk/{deliver-DNEuetST.js → deliver-D5_6T567.js} +10 -10
  29. package/dist/plugin-sdk/deliver-runtime-C5dgvvga.js +32 -0
  30. package/dist/plugin-sdk/deps-send-discord.runtime-Dg4N7PHJ.js +23 -0
  31. package/dist/plugin-sdk/deps-send-imessage.runtime-0OEwzMQm.js +22 -0
  32. package/dist/plugin-sdk/deps-send-signal.runtime-BM1jRt3G.js +21 -0
  33. package/dist/plugin-sdk/deps-send-slack.runtime-1E3BYRdF.js +19 -0
  34. package/dist/plugin-sdk/deps-send-telegram.runtime-DNCxIflA.js +24 -0
  35. package/dist/plugin-sdk/deps-send-whatsapp.runtime-OLwr-9c8.js +57 -0
  36. package/dist/plugin-sdk/{diagnostic-LYUUmjJ5.js → diagnostic-Bxxu0ig-.js} +2 -2
  37. package/dist/plugin-sdk/{errors-CtMWwS2Z.js → errors-B3cHyZZA.js} +1 -1
  38. package/dist/plugin-sdk/{fetch-guard-CxYB5Kg6.js → fetch-guard-Dcgod0tg.js} +2 -2
  39. package/dist/plugin-sdk/{fs-safe-DtfhxbrI.js → fs-safe-BaKqI3G4.js} +3 -3
  40. package/dist/plugin-sdk/{image-BwjYjRHx.js → image-B2mQW9Rb.js} +6 -6
  41. package/dist/plugin-sdk/{image-ops-BnZKcbd6.js → image-ops-Cbzr4U9l.js} +2 -2
  42. package/dist/plugin-sdk/image-runtime-BFm45j49.js +25 -0
  43. package/dist/plugin-sdk/{ir-Z4hX67TJ.js → ir-ZEmrTr4J.js} +7 -7
  44. package/dist/plugin-sdk/{local-roots-KhjQw04O.js → local-roots-CIPRxA-4.js} +4 -4
  45. package/dist/plugin-sdk/{logger-DHIIvMxj.js → logger-CvPFVOgT.js} +2 -2
  46. package/dist/plugin-sdk/{login-C31642Ld.js → login-CCTew9bt.js} +4 -4
  47. package/dist/plugin-sdk/{login-qr--y2SG_Ue.js → login-qr-BI3Vi_wJ.js} +5 -5
  48. package/dist/plugin-sdk/{manager-2UZBMCc7.js → manager-BEoYPn7R.js} +8 -8
  49. package/dist/plugin-sdk/manager-runtime-DxclHQ4U.js +15 -0
  50. package/dist/plugin-sdk/{outbound-Ba0QUI5h.js → outbound-ByOw1K6W.js} +5 -5
  51. package/dist/plugin-sdk/{outbound-attachment-B1Laso-8.js → outbound-attachment-BzVhxRRw.js} +2 -2
  52. package/dist/plugin-sdk/{path-alias-guards-C7Vm5DZ1.js → path-alias-guards-sWayacde.js} +1 -1
  53. package/dist/plugin-sdk/{paths-DopV9PQG.js → paths-Dpg3qxcl.js} +1 -1
  54. package/dist/plugin-sdk/{pi-embedded-helpers-DnA_OCzP.js → pi-embedded-helpers-DIxXkGJf.js} +16 -16
  55. package/dist/plugin-sdk/{pi-model-discovery-DdPqXk8f.js → pi-model-discovery-DM_2uFtj.js} +1 -1
  56. package/dist/plugin-sdk/pi-model-discovery-runtime-BuzvkvNR.js +8 -0
  57. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-DxFHiLUE.js → pi-tools.before-tool-call.runtime-w1dqL_ty.js} +4 -4
  58. package/dist/plugin-sdk/{plugins-CbCt4osF.js → plugins-C4USiH29.js} +4 -4
  59. package/dist/plugin-sdk/{proxy-env-C63mMdas.js → proxy-env-ET-rp8eg.js} +1 -1
  60. package/dist/plugin-sdk/{proxy-fetch-Ch95c_Y2.js → proxy-fetch-uDXGKG3Z.js} +1 -1
  61. package/dist/plugin-sdk/{pw-ai-DpJk62D4.js → pw-ai-CyOt3RDA.js} +9 -9
  62. package/dist/plugin-sdk/{qmd-manager-Ca-iSfEE.js → qmd-manager-BySdoVR7.js} +7 -7
  63. package/dist/plugin-sdk/{query-expansion-B_Xe41Ab.js → query-expansion-C6uS-7lj.js} +4 -4
  64. package/dist/plugin-sdk/{redact-hp9TOulW.js → redact-Bvxt1T_Q.js} +1 -1
  65. package/dist/plugin-sdk/{reply-CovBlFea.js → reply-CTCSeQqW.js} +73 -73
  66. package/dist/plugin-sdk/{resolve-outbound-target-BbrHgyUk.js → resolve-outbound-target-Bw8YNANu.js} +2 -2
  67. package/dist/plugin-sdk/{run-with-concurrency-BR1DXa8T.js → run-with-concurrency-C_KCHwvf.js} +1 -1
  68. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-BxgRDkhc.js +10 -0
  69. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-elOqrkfg.js +19 -0
  70. package/dist/plugin-sdk/{send-BvAtLLPl.js → send-BZ6nYFZr.js} +5 -5
  71. package/dist/plugin-sdk/{send-BTztm3D2.js → send-C0w6xP2x.js} +6 -6
  72. package/dist/plugin-sdk/{send-CWJUuG0i.js → send-CFf-1V89.js} +8 -8
  73. package/dist/plugin-sdk/{send-EcglC4cG.js → send-CY-Qfwia.js} +7 -7
  74. package/dist/plugin-sdk/{send-BXpXBwM_.js → send-qPyNGSe4.js} +13 -13
  75. package/dist/plugin-sdk/{session-k256LJZT.js → session-COrvpvUQ.js} +3 -3
  76. package/dist/plugin-sdk/signal.js +2 -2
  77. package/dist/plugin-sdk/{skill-commands-DoRqLzxm.js → skill-commands-DZqhtmiv.js} +4 -4
  78. package/dist/plugin-sdk/{skills-QudILG6e.js → skills-Cw_vXEJb.js} +6 -6
  79. package/dist/plugin-sdk/slash-commands.runtime-D67JLweo.js +13 -0
  80. package/dist/plugin-sdk/slash-dispatch.runtime-DvcpvCJ0.js +52 -0
  81. package/dist/plugin-sdk/slash-skill-commands.runtime-BM1x3azR.js +16 -0
  82. package/dist/plugin-sdk/{store-BbDQw3g6.js → store-CMHj6IIw.js} +2 -2
  83. package/dist/plugin-sdk/subagent-registry-runtime-1lbDyRzz.js +52 -0
  84. package/dist/plugin-sdk/{tables-BhvloMKN.js → tables-CSqrHsKL.js} +1 -1
  85. package/dist/plugin-sdk/{thinking-URzkT-3p.js → thinking-DOnsR_A8.js} +7 -7
  86. package/dist/plugin-sdk/{tokens-B1PW5Ayy.js → tokens-BDr0Z9o3.js} +1 -1
  87. package/dist/plugin-sdk/{tool-images-xpqbP6RR.js → tool-images-eEfOVkzf.js} +2 -2
  88. package/dist/plugin-sdk/web-BLyT64pW.js +56 -0
  89. package/dist/plugin-sdk/{whatsapp-actions-RcZ6vp61.js → whatsapp-actions-xcleMoMv.js} +17 -17
  90. package/dist/plugin-sdk/whatsapp.js +50 -50
  91. package/dist/{pw-ai-GcYO6HPE.js → pw-ai-CmphSzHx.js} +1 -1
  92. package/dist/{slash-dispatch.runtime-Dh053pQK.js → slash-dispatch.runtime-131yup2e.js} +6 -6
  93. package/dist/{subagent-registry-runtime-DSi5mnCQ.js → subagent-registry-runtime-DbSf_Je6.js} +6 -6
  94. package/dist/{web-1hWJDzNA.js → web-MR9d7KyB.js} +6 -6
  95. package/package.json +5 -2
  96. package/scripts/create-instance.sh +44 -19
  97. package/scripts/install-maca.sh +39 -28
  98. package/scripts/npm_publish.sh +8 -6
  99. package/ui/index.html +16 -0
  100. package/ui/node_modules/.bin/jiti +21 -0
  101. package/ui/node_modules/.bin/lessc +21 -0
  102. package/ui/node_modules/.bin/marked +21 -0
  103. package/ui/node_modules/.bin/playwright +21 -0
  104. package/ui/node_modules/.bin/sass +21 -0
  105. package/ui/node_modules/.bin/tsx +21 -0
  106. package/ui/node_modules/.bin/vite +21 -0
  107. package/ui/node_modules/.bin/vitest +21 -0
  108. package/ui/node_modules/.bin/yaml +21 -0
  109. package/ui/package.json +27 -0
  110. package/ui/public/apple-touch-icon.png +0 -0
  111. package/ui/public/favicon-32.png +0 -0
  112. package/ui/public/favicon.ico +0 -0
  113. package/ui/public/favicon.svg +22 -0
  114. package/ui/src/css.d.ts +1 -0
  115. package/ui/src/i18n/index.ts +3 -0
  116. package/ui/src/i18n/lib/lit-controller.ts +22 -0
  117. package/ui/src/i18n/lib/registry.ts +64 -0
  118. package/ui/src/i18n/lib/translate.ts +123 -0
  119. package/ui/src/i18n/lib/types.ts +9 -0
  120. package/ui/src/i18n/locales/de.ts +129 -0
  121. package/ui/src/i18n/locales/en.ts +337 -0
  122. package/ui/src/i18n/locales/pt-BR.ts +128 -0
  123. package/ui/src/i18n/locales/zh-CN.ts +330 -0
  124. package/ui/src/i18n/locales/zh-TW.ts +125 -0
  125. package/ui/src/i18n/test/translate.test.ts +56 -0
  126. package/ui/src/main.ts +2 -0
  127. package/ui/src/styles/base.css +385 -0
  128. package/ui/src/styles/chat/grouped.css +300 -0
  129. package/ui/src/styles/chat/layout.css +481 -0
  130. package/ui/src/styles/chat/sidebar.css +117 -0
  131. package/ui/src/styles/chat/text.css +146 -0
  132. package/ui/src/styles/chat/tool-cards.css +202 -0
  133. package/ui/src/styles/chat.css +5 -0
  134. package/ui/src/styles/components.css +2612 -0
  135. package/ui/src/styles/config.css +1658 -0
  136. package/ui/src/styles/layout.css +621 -0
  137. package/ui/src/styles/layout.mobile.css +374 -0
  138. package/ui/src/styles.css +5 -0
  139. package/ui/src/ui/__screenshots__/config-form.browser.test.ts/config-form-renderer-flags-unsupported-unions-1.png +0 -0
  140. package/ui/src/ui/__screenshots__/config-form.browser.test.ts/config-form-renderer-renders-inputs-and-patches-values-1.png +0 -0
  141. package/ui/src/ui/__screenshots__/config-form.browser.test.ts/config-form-renderer-renders-union-literals-as-select-options-1.png +0 -0
  142. package/ui/src/ui/__screenshots__/navigation.browser.test.ts/control-UI-routing-auto-scrolls-chat-history-to-the-latest-message-1.png +0 -0
  143. package/ui/src/ui/app-channels.ts +279 -0
  144. package/ui/src/ui/app-chat.ts +266 -0
  145. package/ui/src/ui/app-defaults.ts +50 -0
  146. package/ui/src/ui/app-events.ts +5 -0
  147. package/ui/src/ui/app-gateway.node.test.ts +229 -0
  148. package/ui/src/ui/app-gateway.ts +349 -0
  149. package/ui/src/ui/app-lifecycle.node.test.ts +44 -0
  150. package/ui/src/ui/app-lifecycle.ts +109 -0
  151. package/ui/src/ui/app-polling.ts +69 -0
  152. package/ui/src/ui/app-render-usage-tab.ts +273 -0
  153. package/ui/src/ui/app-render.helpers.node.test.ts +286 -0
  154. package/ui/src/ui/app-render.helpers.ts +574 -0
  155. package/ui/src/ui/app-render.ts +1168 -0
  156. package/ui/src/ui/app-scroll.test.ts +275 -0
  157. package/ui/src/ui/app-scroll.ts +179 -0
  158. package/ui/src/ui/app-settings.test.ts +70 -0
  159. package/ui/src/ui/app-settings.ts +440 -0
  160. package/ui/src/ui/app-tool-stream.node.test.ts +139 -0
  161. package/ui/src/ui/app-tool-stream.ts +455 -0
  162. package/ui/src/ui/app-view-state.ts +321 -0
  163. package/ui/src/ui/app.ts +621 -0
  164. package/ui/src/ui/assistant-identity.ts +23 -0
  165. package/ui/src/ui/chat/constants.ts +12 -0
  166. package/ui/src/ui/chat/copy-as-markdown.ts +97 -0
  167. package/ui/src/ui/chat/grouped-render.ts +287 -0
  168. package/ui/src/ui/chat/message-extract.test.ts +64 -0
  169. package/ui/src/ui/chat/message-extract.ts +122 -0
  170. package/ui/src/ui/chat/message-normalizer.test.ts +179 -0
  171. package/ui/src/ui/chat/message-normalizer.ts +101 -0
  172. package/ui/src/ui/chat/tool-cards.ts +156 -0
  173. package/ui/src/ui/chat/tool-helpers.test.ts +141 -0
  174. package/ui/src/ui/chat/tool-helpers.ts +37 -0
  175. package/ui/src/ui/chat-event-reload.test.ts +47 -0
  176. package/ui/src/ui/chat-event-reload.ts +16 -0
  177. package/ui/src/ui/chat-markdown.browser.test.ts +37 -0
  178. package/ui/src/ui/components/resizable-divider.ts +110 -0
  179. package/ui/src/ui/config-form.browser.test.ts +443 -0
  180. package/ui/src/ui/controllers/agent-files.ts +126 -0
  181. package/ui/src/ui/controllers/agent-identity.ts +59 -0
  182. package/ui/src/ui/controllers/agent-skills.ts +33 -0
  183. package/ui/src/ui/controllers/agents.test.ts +61 -0
  184. package/ui/src/ui/controllers/agents.ts +64 -0
  185. package/ui/src/ui/controllers/assistant-identity.ts +34 -0
  186. package/ui/src/ui/controllers/channels.ts +94 -0
  187. package/ui/src/ui/controllers/channels.types.ts +15 -0
  188. package/ui/src/ui/controllers/chat.test.ts +568 -0
  189. package/ui/src/ui/controllers/chat.ts +318 -0
  190. package/ui/src/ui/controllers/config/form-coerce.ts +160 -0
  191. package/ui/src/ui/controllers/config/form-utils.node.test.ts +455 -0
  192. package/ui/src/ui/controllers/config/form-utils.ts +90 -0
  193. package/ui/src/ui/controllers/config.test.ts +289 -0
  194. package/ui/src/ui/controllers/config.ts +219 -0
  195. package/ui/src/ui/controllers/control-ui-bootstrap.test.ts +82 -0
  196. package/ui/src/ui/controllers/control-ui-bootstrap.ts +49 -0
  197. package/ui/src/ui/controllers/cron-filters.test.ts +81 -0
  198. package/ui/src/ui/controllers/cron.test.ts +1070 -0
  199. package/ui/src/ui/controllers/cron.ts +921 -0
  200. package/ui/src/ui/controllers/debug.ts +60 -0
  201. package/ui/src/ui/controllers/devices.ts +159 -0
  202. package/ui/src/ui/controllers/exec-approval.ts +100 -0
  203. package/ui/src/ui/controllers/exec-approvals.ts +170 -0
  204. package/ui/src/ui/controllers/logs.ts +147 -0
  205. package/ui/src/ui/controllers/nodes.ts +32 -0
  206. package/ui/src/ui/controllers/presence.ts +37 -0
  207. package/ui/src/ui/controllers/sessions.test.ts +104 -0
  208. package/ui/src/ui/controllers/sessions.ts +127 -0
  209. package/ui/src/ui/controllers/skills.ts +157 -0
  210. package/ui/src/ui/controllers/usage.node.test.ts +181 -0
  211. package/ui/src/ui/controllers/usage.ts +315 -0
  212. package/ui/src/ui/data/moonshot-kimi-k2.ts +45 -0
  213. package/ui/src/ui/device-auth.ts +73 -0
  214. package/ui/src/ui/device-identity.ts +112 -0
  215. package/ui/src/ui/external-link.test.ts +18 -0
  216. package/ui/src/ui/external-link.ts +19 -0
  217. package/ui/src/ui/focus-mode.browser.test.ts +39 -0
  218. package/ui/src/ui/format.test.ts +101 -0
  219. package/ui/src/ui/format.ts +60 -0
  220. package/ui/src/ui/gateway.ts +360 -0
  221. package/ui/src/ui/icons.ts +256 -0
  222. package/ui/src/ui/markdown.test.ts +85 -0
  223. package/ui/src/ui/markdown.ts +139 -0
  224. package/ui/src/ui/navigation.browser.test.ts +188 -0
  225. package/ui/src/ui/navigation.test.ts +189 -0
  226. package/ui/src/ui/navigation.ts +165 -0
  227. package/ui/src/ui/open-external-url.test.ts +108 -0
  228. package/ui/src/ui/open-external-url.ts +73 -0
  229. package/ui/src/ui/presenter.ts +85 -0
  230. package/ui/src/ui/storage.node.test.ts +63 -0
  231. package/ui/src/ui/storage.ts +99 -0
  232. package/ui/src/ui/test-helpers/app-mount.ts +27 -0
  233. package/ui/src/ui/text-direction.test.ts +24 -0
  234. package/ui/src/ui/text-direction.ts +30 -0
  235. package/ui/src/ui/theme-transition.ts +109 -0
  236. package/ui/src/ui/theme.ts +16 -0
  237. package/ui/src/ui/tool-display.ts +159 -0
  238. package/ui/src/ui/types/chat-types.ts +44 -0
  239. package/ui/src/ui/types.ts +627 -0
  240. package/ui/src/ui/ui-types.ts +54 -0
  241. package/ui/src/ui/usage-helpers.node.test.ts +43 -0
  242. package/ui/src/ui/usage-helpers.ts +321 -0
  243. package/ui/src/ui/usage-types.ts +22 -0
  244. package/ui/src/ui/uuid.test.ts +41 -0
  245. package/ui/src/ui/uuid.ts +57 -0
  246. package/ui/src/ui/views/agents-panels-status-files.ts +461 -0
  247. package/ui/src/ui/views/agents-panels-tools-skills.browser.test.ts +102 -0
  248. package/ui/src/ui/views/agents-panels-tools-skills.ts +537 -0
  249. package/ui/src/ui/views/agents-utils.test.ts +100 -0
  250. package/ui/src/ui/views/agents-utils.ts +502 -0
  251. package/ui/src/ui/views/agents.ts +499 -0
  252. package/ui/src/ui/views/channel-config-extras.ts +49 -0
  253. package/ui/src/ui/views/channels.config.ts +155 -0
  254. package/ui/src/ui/views/channels.discord.ts +65 -0
  255. package/ui/src/ui/views/channels.googlechat.ts +79 -0
  256. package/ui/src/ui/views/channels.imessage.ts +65 -0
  257. package/ui/src/ui/views/channels.nostr-profile-form.ts +321 -0
  258. package/ui/src/ui/views/channels.nostr.ts +237 -0
  259. package/ui/src/ui/views/channels.shared.ts +38 -0
  260. package/ui/src/ui/views/channels.signal.ts +69 -0
  261. package/ui/src/ui/views/channels.slack.ts +65 -0
  262. package/ui/src/ui/views/channels.telegram.ts +120 -0
  263. package/ui/src/ui/views/channels.ts +325 -0
  264. package/ui/src/ui/views/channels.types.ts +62 -0
  265. package/ui/src/ui/views/channels.whatsapp.ts +118 -0
  266. package/ui/src/ui/views/chat-image-open.browser.test.ts +70 -0
  267. package/ui/src/ui/views/chat.test.ts +227 -0
  268. package/ui/src/ui/views/chat.ts +616 -0
  269. package/ui/src/ui/views/config-form.analyze.ts +267 -0
  270. package/ui/src/ui/views/config-form.node.ts +1073 -0
  271. package/ui/src/ui/views/config-form.render.ts +478 -0
  272. package/ui/src/ui/views/config-form.search.node.test.ts +69 -0
  273. package/ui/src/ui/views/config-form.shared.ts +96 -0
  274. package/ui/src/ui/views/config-form.ts +4 -0
  275. package/ui/src/ui/views/config-search.node.test.ts +50 -0
  276. package/ui/src/ui/views/config-search.ts +92 -0
  277. package/ui/src/ui/views/config.browser.test.ts +233 -0
  278. package/ui/src/ui/views/config.ts +820 -0
  279. package/ui/src/ui/views/cron.test.ts +741 -0
  280. package/ui/src/ui/views/cron.ts +1758 -0
  281. package/ui/src/ui/views/debug.ts +151 -0
  282. package/ui/src/ui/views/exec-approval.ts +89 -0
  283. package/ui/src/ui/views/gateway-url-confirmation.ts +40 -0
  284. package/ui/src/ui/views/instances.ts +89 -0
  285. package/ui/src/ui/views/logs.ts +155 -0
  286. package/ui/src/ui/views/markdown-sidebar.ts +40 -0
  287. package/ui/src/ui/views/nodes-exec-approvals.ts +617 -0
  288. package/ui/src/ui/views/nodes-shared.ts +67 -0
  289. package/ui/src/ui/views/nodes.ts +485 -0
  290. package/ui/src/ui/views/overview-hints.ts +16 -0
  291. package/ui/src/ui/views/overview.node.test.ts +39 -0
  292. package/ui/src/ui/views/overview.ts +361 -0
  293. package/ui/src/ui/views/sessions.test.ts +81 -0
  294. package/ui/src/ui/views/sessions.ts +321 -0
  295. package/ui/src/ui/views/skills-grouping.ts +40 -0
  296. package/ui/src/ui/views/skills-shared.ts +52 -0
  297. package/ui/src/ui/views/skills.ts +192 -0
  298. package/ui/src/ui/views/usage-metrics.ts +578 -0
  299. package/ui/src/ui/views/usage-query.ts +277 -0
  300. package/ui/src/ui/views/usage-render-details.test.ts +136 -0
  301. package/ui/src/ui/views/usage-render-details.ts +1083 -0
  302. package/ui/src/ui/views/usage-render-overview.ts +796 -0
  303. package/ui/src/ui/views/usage-styles/usageStyles-part1.ts +701 -0
  304. package/ui/src/ui/views/usage-styles/usageStyles-part2.ts +702 -0
  305. package/ui/src/ui/views/usage-styles/usageStyles-part3.ts +551 -0
  306. package/ui/src/ui/views/usage.ts +836 -0
  307. package/ui/src/ui/views/usageStyles.ts +5 -0
  308. package/ui/src/ui/views/usageTypes.ts +105 -0
  309. package/ui/vite.config.ts +43 -0
  310. package/ui/vitest.config.ts +15 -0
  311. package/ui/vitest.node.config.ts +10 -0
  312. package/dist/plugin-sdk/deliver-runtime-BFdqklJM.js +0 -32
  313. package/dist/plugin-sdk/deps-send-discord.runtime-DuqpYwU0.js +0 -23
  314. package/dist/plugin-sdk/deps-send-imessage.runtime-CZ2rS8Lb.js +0 -22
  315. package/dist/plugin-sdk/deps-send-signal.runtime-BdqiWhIh.js +0 -21
  316. package/dist/plugin-sdk/deps-send-slack.runtime-04s36qiC.js +0 -19
  317. package/dist/plugin-sdk/deps-send-telegram.runtime-LE5tkPvr.js +0 -24
  318. package/dist/plugin-sdk/deps-send-whatsapp.runtime-Bz57lobC.js +0 -57
  319. package/dist/plugin-sdk/image-runtime-B8twoubs.js +0 -25
  320. package/dist/plugin-sdk/manager-runtime-CMeLwose.js +0 -15
  321. package/dist/plugin-sdk/pi-model-discovery-runtime-D8CJhtJY.js +0 -8
  322. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-SkO91TZH.js +0 -10
  323. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-B0VWK5hm.js +0 -19
  324. package/dist/plugin-sdk/slash-commands.runtime-DS6vCNSL.js +0 -13
  325. package/dist/plugin-sdk/slash-dispatch.runtime-BXrxb2wd.js +0 -52
  326. package/dist/plugin-sdk/slash-skill-commands.runtime-Bd6qQ2oT.js +0 -16
  327. package/dist/plugin-sdk/subagent-registry-runtime-1uwQbuXj.js +0 -52
  328. package/dist/plugin-sdk/web-B74yhL2N.js +0 -56
@@ -8,8 +8,8 @@ import "./plugins-D32XloiU.js";
8
8
  import "./accounts-CSwQwmi-.js";
9
9
  import "./accounts-D0b225eZ.js";
10
10
  import "./image-ops-Cdb65Ugz.js";
11
- import "./pi-embedded-helpers-uTRAmQ4n.js";
12
- import "./chrome-D45SyhQL.js";
11
+ import "./pi-embedded-helpers-CwuBTKza.js";
12
+ import "./chrome-CMU2WVFh.js";
13
13
  import "./skills-DhJjHaBz.js";
14
14
  import "./path-alias-guards-B6LFrksx.js";
15
15
  import "./redact-DBcTOmRL.js";
@@ -20,8 +20,8 @@ import "./store-CSSX03Wl.js";
20
20
  import "./accounts-CTAmvqQt.js";
21
21
  import "./paths-BgCTr3-D.js";
22
22
  import "./tool-images-DpgWhBLv.js";
23
- import "./image-DAOPwVXi.js";
24
- import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-B-UvoDjZ.js";
23
+ import "./image-BCVLo0qw.js";
24
+ import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-DZbSWT9E.js";
25
25
  import "./fetch-Bz-lmDr4.js";
26
26
  import "./fetch-guard-BiA86VyP.js";
27
27
  import "./api-key-rotation-xR-rxS2R.js";
@@ -3,7 +3,7 @@ import { L as logVerbose, O as createSubsystemLogger, Y as resolvePreferredOpenC
3
3
  import { A as requireApiKey, Y as loadConfig, at as isInboundPathAllowed, c as normalizeProviderId, cr as resolveOpenClawAgentDir, h as normalizeGoogleModelId, it as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, j as resolveApiKeyForProvider, ot as mergeInboundPathRoots, st as resolveIMessageAttachmentRoots } from "./model-selection-CGn4LwFd.js";
4
4
  import { _ as normalizeChatType } from "./plugins-D32XloiU.js";
5
5
  import { E as kindFromMime, S as getFileExtension, b as detectMime, w as isAudioFileName } from "./image-ops-Cdb65Ugz.js";
6
- import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-DAOPwVXi.js";
6
+ import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-BCVLo0qw.js";
7
7
  import { a as getDefaultMediaLocalRoots, n as fetchRemoteMedia, t as MediaFetchError } from "./fetch-Bz-lmDr4.js";
8
8
  import { n as fetchWithTimeout } from "./fetch-timeout-B_Wivh-n.js";
9
9
  import { t as fetchWithSsrFGuard } from "./fetch-guard-BiA86VyP.js";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.3.6",
3
- "commit": "125fa9bfa578476ee216a47eb52cd74eb4a2518f",
4
- "builtAt": "2026-03-11T01:30:31.581Z"
2
+ "version": "1.3.8",
3
+ "commit": "8afa4d08011fb75e30b6bcfc686357485ab325f3",
4
+ "builtAt": "2026-03-11T03:06:29.028Z"
5
5
  }
@@ -1 +1 @@
1
- e3ff4301b018b4da65b54f0b9eb467992a63f1a247d387847a549cbf696f47b9
1
+ 9fd6c6a2171e93a48e5bf4332547f5933391f6af4cc410abca0bb7fc2580a90c
@@ -13,7 +13,7 @@ import { createHmac } from "node:crypto";
13
13
  import net from "node:net";
14
14
  import http, { createServer } from "node:http";
15
15
  import https from "node:https";
16
- import WebSocket$1, { WebSocketServer } from "ws";
16
+ import WebSocket, { WebSocketServer } from "ws";
17
17
  import { Buffer as Buffer$1 } from "node:buffer";
18
18
 
19
19
  //#region src/browser/constants.ts
@@ -592,7 +592,7 @@ async function ensureChromeExtensionRelayServer(opts) {
592
592
  let extensionWs = null;
593
593
  const cdpClients = /* @__PURE__ */ new Set();
594
594
  const connectedTargets = /* @__PURE__ */ new Map();
595
- const extensionConnected = () => extensionWs?.readyState === WebSocket$1.OPEN;
595
+ const extensionConnected = () => extensionWs?.readyState === WebSocket.OPEN;
596
596
  const hasConnectedTargets = () => connectedTargets.size > 0;
597
597
  let extensionDisconnectCleanupTimer = null;
598
598
  const extensionReconnectWaiters = /* @__PURE__ */ new Set();
@@ -644,7 +644,7 @@ async function ensureChromeExtensionRelayServer(opts) {
644
644
  let nextExtensionId = 1;
645
645
  const sendToExtension = async (payload) => {
646
646
  const ws = extensionWs;
647
- if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
647
+ if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
648
648
  ws.send(JSON.stringify(payload));
649
649
  return await new Promise((resolve, reject) => {
650
650
  const timer = setTimeout(() => {
@@ -661,12 +661,12 @@ async function ensureChromeExtensionRelayServer(opts) {
661
661
  const broadcastToCdpClients = (evt) => {
662
662
  const msg = JSON.stringify(evt);
663
663
  for (const ws of cdpClients) {
664
- if (ws.readyState !== WebSocket$1.OPEN) continue;
664
+ if (ws.readyState !== WebSocket.OPEN) continue;
665
665
  ws.send(msg);
666
666
  }
667
667
  };
668
668
  const sendResponseToCdp = (ws, res) => {
669
- if (ws.readyState !== WebSocket$1.OPEN) return;
669
+ if (ws.readyState !== WebSocket.OPEN) return;
670
670
  ws.send(JSON.stringify(res));
671
671
  };
672
672
  const dropConnectedTargetSession = (sessionId) => {
@@ -920,7 +920,7 @@ async function ensureChromeExtensionRelayServer(opts) {
920
920
  rejectUpgrade(socket, 401, "Unauthorized");
921
921
  return;
922
922
  }
923
- if (extensionWs && extensionWs.readyState !== WebSocket$1.OPEN) {
923
+ if (extensionWs && extensionWs.readyState !== WebSocket.OPEN) {
924
924
  try {
925
925
  extensionWs.terminate();
926
926
  } catch {}
@@ -953,7 +953,7 @@ async function ensureChromeExtensionRelayServer(opts) {
953
953
  clearExtensionDisconnectCleanupTimer();
954
954
  flushExtensionReconnectWaiters(true);
955
955
  const ping = setInterval(() => {
956
- if (ws.readyState !== WebSocket$1.OPEN) return;
956
+ if (ws.readyState !== WebSocket.OPEN) return;
957
957
  ws.send(JSON.stringify({ method: "ping" }));
958
958
  }, 5e3);
959
959
  ws.on("message", (data) => {
@@ -1309,7 +1309,7 @@ function openCdpWebSocket(wsUrl, opts) {
1309
1309
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
1310
1310
  const handshakeTimeoutMs = typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : CDP_WS_HANDSHAKE_TIMEOUT_MS;
1311
1311
  const agent = getDirectAgentForCdp(wsUrl);
1312
- return new WebSocket$1(wsUrl, {
1312
+ return new WebSocket(wsUrl, {
1313
1313
  handshakeTimeout: handshakeTimeoutMs,
1314
1314
  ...Object.keys(headers).length ? { headers } : {},
1315
1315
  ...agent ? { agent } : {}
@@ -7,7 +7,7 @@ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-J9Qxdf
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-D32XloiU.js";
8
8
  import { n as generateSecureUuid } from "./secure-random-D68-1Hhs.js";
9
9
  import { r as parseTelegramTarget } from "./targets-D1wBrTyc.js";
10
- import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, i as isMessagingToolDuplicate, lt as parseInlineDirectives } from "./pi-embedded-helpers-uTRAmQ4n.js";
10
+ import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, i as isMessagingToolDuplicate, lt as parseInlineDirectives } from "./pi-embedded-helpers-CwuBTKza.js";
11
11
  import { i as getAgentScopedMediaLocalRoots } from "./fetch-Bz-lmDr4.js";
12
12
  import { d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, l as chunkByParagraph, m as resolveChunkMode, s as resolveMarkdownTableMode, v as parseFenceSpans } from "./ir-CGmIWskW.js";
13
13
  import { c as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BPEFN_Rs.js";
@@ -7,11 +7,11 @@ import "./thinking-BnMXBaoj.js";
7
7
  import "./tokens-J9QxdfW4.js";
8
8
  import "./plugins-D32XloiU.js";
9
9
  import "./accounts-CSwQwmi-.js";
10
- import { t as deliverOutboundPayloads } from "./deliver-B9cys0EZ.js";
10
+ import { t as deliverOutboundPayloads } from "./deliver-BXVcFIHL.js";
11
11
  import "./accounts-D0b225eZ.js";
12
12
  import "./image-ops-Cdb65Ugz.js";
13
- import "./pi-embedded-helpers-uTRAmQ4n.js";
14
- import "./chrome-D45SyhQL.js";
13
+ import "./pi-embedded-helpers-CwuBTKza.js";
14
+ import "./chrome-CMU2WVFh.js";
15
15
  import "./skills-DhJjHaBz.js";
16
16
  import "./path-alias-guards-B6LFrksx.js";
17
17
  import "./redact-DBcTOmRL.js";
@@ -2,7 +2,7 @@ import "./run-with-concurrency-CwEpSWUB.js";
2
2
  import "./paths-CaA28K0s.js";
3
3
  import "./logger-DLNJPYG_.js";
4
4
  import "./model-selection-CGn4LwFd.js";
5
- import "./pi-embedded-DYU79yGe.js";
5
+ import "./pi-embedded-CgQ_W6Xs.js";
6
6
  import "./github-copilot-token-BWXANsA6.js";
7
7
  import "./thinking-BnMXBaoj.js";
8
8
  import "./tokens-J9QxdfW4.js";
@@ -10,14 +10,14 @@ import "./plugins-D32XloiU.js";
10
10
  import "./accounts-CSwQwmi-.js";
11
11
  import "./send-gxHdLxHb.js";
12
12
  import "./send-coHgGFcr.js";
13
- import "./deliver-B9cys0EZ.js";
13
+ import "./deliver-BXVcFIHL.js";
14
14
  import "./diagnostic-B6424ZSe.js";
15
15
  import "./accounts-D0b225eZ.js";
16
16
  import "./image-ops-Cdb65Ugz.js";
17
17
  import "./send-DEuQpTH0.js";
18
18
  import "./pi-model-discovery-BKJwRHhi.js";
19
- import "./pi-embedded-helpers-uTRAmQ4n.js";
20
- import "./chrome-D45SyhQL.js";
19
+ import "./pi-embedded-helpers-CwuBTKza.js";
20
+ import "./chrome-CMU2WVFh.js";
21
21
  import "./skills-DhJjHaBz.js";
22
22
  import "./path-alias-guards-B6LFrksx.js";
23
23
  import "./redact-DBcTOmRL.js";
@@ -28,8 +28,8 @@ import "./store-CSSX03Wl.js";
28
28
  import "./accounts-CTAmvqQt.js";
29
29
  import "./paths-BgCTr3-D.js";
30
30
  import "./tool-images-DpgWhBLv.js";
31
- import "./image-DAOPwVXi.js";
32
- import "./audio-transcription-runner-B-UvoDjZ.js";
31
+ import "./image-BCVLo0qw.js";
32
+ import "./audio-transcription-runner-DZbSWT9E.js";
33
33
  import "./fetch-Bz-lmDr4.js";
34
34
  import "./fetch-guard-BiA86VyP.js";
35
35
  import "./api-key-rotation-xR-rxS2R.js";
@@ -51,6 +51,6 @@ import "./query-expansion-63ZssZwq.js";
51
51
  import { t as sendMessageWhatsApp } from "./outbound-X5zpyh9i.js";
52
52
  import "./session-CALrkcHT.js";
53
53
  import "./login-D_H3eQpx.js";
54
- import "./web-1hWJDzNA.js";
54
+ import "./web-MR9d7KyB.js";
55
55
 
56
56
  export { sendMessageWhatsApp };
@@ -2,7 +2,7 @@ import { S as ensureAgentWorkspace, a as resolveAgentDir, c as resolveAgentWorks
2
2
  import "./paths-CaA28K0s.js";
3
3
  import "./logger-DLNJPYG_.js";
4
4
  import { Tr as DEFAULT_PROVIDER, m as resolveThinkingDefault, wr as DEFAULT_MODEL } from "./model-selection-CGn4LwFd.js";
5
- import { G as resolveAgentIdentity, W as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-DYU79yGe.js";
5
+ import { G as resolveAgentIdentity, W as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-CgQ_W6Xs.js";
6
6
  import "./github-copilot-token-BWXANsA6.js";
7
7
  import "./thinking-BnMXBaoj.js";
8
8
  import "./tokens-J9QxdfW4.js";
@@ -10,14 +10,14 @@ import "./plugins-D32XloiU.js";
10
10
  import "./accounts-CSwQwmi-.js";
11
11
  import "./send-gxHdLxHb.js";
12
12
  import "./send-coHgGFcr.js";
13
- import "./deliver-B9cys0EZ.js";
13
+ import "./deliver-BXVcFIHL.js";
14
14
  import "./diagnostic-B6424ZSe.js";
15
15
  import "./accounts-D0b225eZ.js";
16
16
  import "./image-ops-Cdb65Ugz.js";
17
17
  import "./send-DEuQpTH0.js";
18
18
  import "./pi-model-discovery-BKJwRHhi.js";
19
- import { W as loadSessionStore, q as saveSessionStore } from "./pi-embedded-helpers-uTRAmQ4n.js";
20
- import "./chrome-D45SyhQL.js";
19
+ import { W as loadSessionStore, q as saveSessionStore } from "./pi-embedded-helpers-CwuBTKza.js";
20
+ import "./chrome-CMU2WVFh.js";
21
21
  import "./skills-DhJjHaBz.js";
22
22
  import "./path-alias-guards-B6LFrksx.js";
23
23
  import "./redact-DBcTOmRL.js";
@@ -28,8 +28,8 @@ import "./store-CSSX03Wl.js";
28
28
  import "./accounts-CTAmvqQt.js";
29
29
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-BgCTr3-D.js";
30
30
  import "./tool-images-DpgWhBLv.js";
31
- import "./image-DAOPwVXi.js";
32
- import "./audio-transcription-runner-B-UvoDjZ.js";
31
+ import "./image-BCVLo0qw.js";
32
+ import "./audio-transcription-runner-DZbSWT9E.js";
33
33
  import "./fetch-Bz-lmDr4.js";
34
34
  import "./fetch-guard-BiA86VyP.js";
35
35
  import "./api-key-rotation-xR-rxS2R.js";
@@ -1,7 +1,7 @@
1
1
  import { mt as resolveAgentModelPrimaryValue, pt as resolveAgentModelFallbackValues } from "./run-with-concurrency-CwEpSWUB.js";
2
2
  import { f as isRecord, x as shortenHomeInString } from "./logger-DLNJPYG_.js";
3
3
  import { A as requireApiKey, O as getApiKeyForModel, Y as loadConfig, _ as resolveImplicitBedrockProvider, _r as normalizeSecretInput, cr as resolveOpenClawAgentDir, g as normalizeProviders, qn as applyConfigEnvVars, v as resolveImplicitCopilotProvider, y as resolveImplicitProviders } from "./model-selection-CGn4LwFd.js";
4
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-uTRAmQ4n.js";
4
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-CwuBTKza.js";
5
5
  import { n as redactToolDetail } from "./redact-DBcTOmRL.js";
6
6
  import path from "node:path";
7
7
  import fs from "node:fs/promises";
@@ -8,8 +8,8 @@ import "./plugins-D32XloiU.js";
8
8
  import "./accounts-CSwQwmi-.js";
9
9
  import "./accounts-D0b225eZ.js";
10
10
  import "./image-ops-Cdb65Ugz.js";
11
- import "./pi-embedded-helpers-uTRAmQ4n.js";
12
- import "./chrome-D45SyhQL.js";
11
+ import "./pi-embedded-helpers-CwuBTKza.js";
12
+ import "./chrome-CMU2WVFh.js";
13
13
  import "./skills-DhJjHaBz.js";
14
14
  import "./path-alias-guards-B6LFrksx.js";
15
15
  import "./redact-DBcTOmRL.js";
@@ -20,6 +20,6 @@ import "./store-CSSX03Wl.js";
20
20
  import "./accounts-CTAmvqQt.js";
21
21
  import "./paths-BgCTr3-D.js";
22
22
  import "./tool-images-DpgWhBLv.js";
23
- import { t as describeImageWithModel } from "./image-DAOPwVXi.js";
23
+ import { t as describeImageWithModel } from "./image-BCVLo0qw.js";
24
24
 
25
25
  export { describeImageWithModel };
@@ -10,15 +10,15 @@ import { a as logWebSelfId, h as resolveAccountEntry, i as getWebAuthAgeMs, m as
10
10
  import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-gxHdLxHb.js";
11
11
  import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-coHgGFcr.js";
12
12
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-D68-1Hhs.js";
13
- import { C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-B9cys0EZ.js";
13
+ import { C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-BXVcFIHL.js";
14
14
  import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as isDiagnosticsEnabled, i as logMessageProcessed, l as logWebhookProcessed, m as emitDiagnosticEvent, n as logLaneDequeue, o as logSessionStateChange, p as getDiagnosticSessionState, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-B6424ZSe.js";
15
15
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-D0b225eZ.js";
16
16
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-D1wBrTyc.js";
17
17
  import { A as mediaKindFromMime, C as imageMimeFromFormat, E as kindFromMime, O as MAX_IMAGE_BYTES, T as isGifMedia, _ as GATEWAY_CLIENT_IDS, b as detectMime, c as INTERNAL_MESSAGE_CHANNEL, d as isInternalMessageChannel, f as isMarkdownCapableMessageChannel, g as resolveMessageChannel, h as resolveGatewayMessageChannel, i as getImageMetadata, l as isDeliverableMessageChannel, m as normalizeMessageChannel, p as listDeliverableMessageChannels, s as resizeToJpeg, u as isGatewayMessageChannel, v as GATEWAY_CLIENT_MODES, w as isAudioFileName, x as extensionForMime, y as GATEWAY_CLIENT_NAMES } from "./image-ops-Cdb65Ugz.js";
18
18
  import { $ as removeChannelAllowFromStoreEntry, A as expandTextLinks, B as resolveTelegramThreadSpec, C as buildSenderName, D as buildTelegramThreadParams, E as buildTelegramParentPeer, F as resolveTelegramForumThreadId, G as firstDefined$1, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as resolveGroupAllowFromSources, K as isSenderIdAllowed, L as resolveTelegramMediaPlaceholder, M as hasBotMention, N as normalizeForwardedContext, O as buildTypingThreadParams, P as resolveTelegramDirectPeerId, Q as readChannelAllowFromStore, R as resolveTelegramReplyId, S as buildSenderLabel, T as buildTelegramGroupPeerId, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch$1, X as toLocationContext, Y as formatLocationText, Z as addChannelAllowFromStoreEntry, _ as splitTelegramCaption, a as reactMessageTelegram, at as isVoiceCompatibleAudio, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, et as upsertChannelPairingRequest, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, it as listPairingChannels, j as extractTelegramLocation, k as describeReplyTarget, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, nt as writeJsonFileAtomically, o as sendMessageTelegram, p as markdownToTelegramHtml, q as mergeDmAllowFromSources, r as deleteMessageTelegram, rt as getPairingAdapter, s as sendPollTelegram, t as buildInlineKeyboard, tt as readJsonFileWithFallback, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildTelegramGroupFrom, x as buildGroupLabel, y as loadCronStore, z as resolveTelegramStreamMode } from "./send-DEuQpTH0.js";
19
19
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BKJwRHhi.js";
20
- import { $ as deliveryContextFromSession, $t as matchesAnyGlobPattern, A as isTransientHttpError, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCompactionFailureError, Ct as resolveFreshSessionTotalTokens, D as isLikelyContextOverflowError, Dt as resolveMainSessionKey, E as isFailoverErrorMessage, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateLastRoute, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageSizeError, Mt as resolveSessionLockMaxHoldFromTimeout, N as sanitizeUserFacingText, Nt as createBrowserRouteContext, O as isRateLimitAssistantError, Ot as deriveSessionMetaPatch, P as isAuthPermanentErrorMessage, Pt as registerBrowserRoutes, Q as resolveCacheTtlMs$1, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isCloudCodeAssistFormatError, St as mergeSessionEntry, T as isFailoverAssistantError, Tt as canonicalizeMainSessionAlias, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as updateSessionStoreEntry, Xt as normalizeToolName, Y as updateSessionStore, Yt as expandToolGroups, Z as isCacheEnabled, Zt as resolveToolProfilePolicy, _ as formatBillingErrorMessage, _t as resolveChannelResetConfig, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as archiveSessionTranscripts, b as isAuthAssistantError, bt as resolveThreadFlag, c as extractToolCallsFromAssistant, ct as extractToolCallNames, d as downgradeOpenAIFunctionCallReasoningPairs, dt as applyInputProvenanceToUserMessage, en as buildBootstrapContextFiles, et as deliveryContextKey, f as downgradeOpenAIReasoningBlocks, ft as hasInterSessionUserProvenance, g as formatAssistantErrorText, gt as evaluateSessionFreshness, h as classifyFailoverReason, ht as resolveSessionKey, in as resolveBootstrapTotalMaxChars, it as normalizeAccountId$3, j as parseImageDimensionError, jt as acquireSessionWriteLock, k as isRawApiErrorPayload, kt as resolveConversationLabel, l as extractToolResultId, lt as parseInlineDirectives$1, m as BILLING_ERROR_USER_MESSAGE, mt as jsonUtf8Bytes, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeDeliveryContext, o as normalizeTextForComparison, ot as capArrayByJsonBytes, p as isGoogleModelApi, pt as normalizeInputProvenance, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeSessionDeliveryFields, s as sanitizeSessionMessagesImages, st as countToolResults, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as mergeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as INPUT_PROVENANCE_KIND_VALUES, v as formatRawAssistantErrorForUi, vt as resolveSessionResetPolicy, w as isContextOverflowError, wt as setSessionRuntimeModel, x as isBillingAssistantError, xt as DEFAULT_RESET_TRIGGERS, y as getApiErrorPayloadFingerprint, yt as resolveSessionResetType, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-uTRAmQ4n.js";
21
- import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-D45SyhQL.js";
20
+ import { $ as deliveryContextFromSession, $t as matchesAnyGlobPattern, A as isTransientHttpError, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCompactionFailureError, Ct as resolveFreshSessionTotalTokens, D as isLikelyContextOverflowError, Dt as resolveMainSessionKey, E as isFailoverErrorMessage, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateLastRoute, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageSizeError, Mt as resolveSessionLockMaxHoldFromTimeout, N as sanitizeUserFacingText, Nt as createBrowserRouteContext, O as isRateLimitAssistantError, Ot as deriveSessionMetaPatch, P as isAuthPermanentErrorMessage, Pt as registerBrowserRoutes, Q as resolveCacheTtlMs$1, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isCloudCodeAssistFormatError, St as mergeSessionEntry, T as isFailoverAssistantError, Tt as canonicalizeMainSessionAlias, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as updateSessionStoreEntry, Xt as normalizeToolName, Y as updateSessionStore, Yt as expandToolGroups, Z as isCacheEnabled, Zt as resolveToolProfilePolicy, _ as formatBillingErrorMessage, _t as resolveChannelResetConfig, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as archiveSessionTranscripts, b as isAuthAssistantError, bt as resolveThreadFlag, c as extractToolCallsFromAssistant, ct as extractToolCallNames, d as downgradeOpenAIFunctionCallReasoningPairs, dt as applyInputProvenanceToUserMessage, en as buildBootstrapContextFiles, et as deliveryContextKey, f as downgradeOpenAIReasoningBlocks, ft as hasInterSessionUserProvenance, g as formatAssistantErrorText, gt as evaluateSessionFreshness, h as classifyFailoverReason, ht as resolveSessionKey, in as resolveBootstrapTotalMaxChars, it as normalizeAccountId$3, j as parseImageDimensionError, jt as acquireSessionWriteLock, k as isRawApiErrorPayload, kt as resolveConversationLabel, l as extractToolResultId, lt as parseInlineDirectives$1, m as BILLING_ERROR_USER_MESSAGE, mt as jsonUtf8Bytes, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeDeliveryContext, o as normalizeTextForComparison, ot as capArrayByJsonBytes, p as isGoogleModelApi, pt as normalizeInputProvenance, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeSessionDeliveryFields, s as sanitizeSessionMessagesImages, st as countToolResults, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as mergeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as INPUT_PROVENANCE_KIND_VALUES, v as formatRawAssistantErrorForUi, vt as resolveSessionResetPolicy, w as isContextOverflowError, wt as setSessionRuntimeModel, x as isBillingAssistantError, xt as DEFAULT_RESET_TRIGGERS, y as getApiErrorPayloadFingerprint, yt as resolveSessionResetType, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-CwuBTKza.js";
21
+ import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-CMU2WVFh.js";
22
22
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-DhJjHaBz.js";
23
23
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-B6LFrksx.js";
24
24
  import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-DBcTOmRL.js";
@@ -31,8 +31,8 @@ import { t as resolveIMessageAccount } from "./accounts-CTAmvqQt.js";
31
31
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BgCTr3-D.js";
32
32
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-UAKcGiUQ.js";
33
33
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-DpgWhBLv.js";
34
- import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-DAOPwVXi.js";
35
- import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-B-UvoDjZ.js";
34
+ import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-BCVLo0qw.js";
35
+ import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-DZbSWT9E.js";
36
36
  import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-Bz-lmDr4.js";
37
37
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-B_Wivh-n.js";
38
38
  import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-BiA86VyP.js";
@@ -69,7 +69,7 @@ import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, Setting
69
69
  import { EdgeTTS } from "node-edge-tts";
70
70
  import { createServer } from "node:http";
71
71
  import { ProxyAgent, fetch as fetch$1 } from "undici";
72
- import WebSocket$1, { WebSocket } from "ws";
72
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
73
73
  import { Buffer as Buffer$1 } from "node:buffer";
74
74
  import { createJiti } from "jiti";
75
75
  import AjvPkg from "ajv";
@@ -8210,7 +8210,7 @@ var GatewayClient = class {
8210
8210
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8211
8211
  });
8212
8212
  }
8213
- this.ws = new WebSocket(url, wsOptions);
8213
+ this.ws = new WebSocket$1(url, wsOptions);
8214
8214
  this.ws.on("open", () => {
8215
8215
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8216
8216
  const tlsError = this.validateTlsFingerprint();
@@ -8406,7 +8406,7 @@ var GatewayClient = class {
8406
8406
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
8407
8407
  if (this.connectTimer) clearTimeout(this.connectTimer);
8408
8408
  this.connectTimer = setTimeout(() => {
8409
- if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
8409
+ if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
8410
8410
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
8411
8411
  this.ws?.close(1008, "connect challenge timeout");
8412
8412
  }, connectChallengeTimeoutMs);
@@ -8448,7 +8448,7 @@ var GatewayClient = class {
8448
8448
  return null;
8449
8449
  }
8450
8450
  async request(method, params, opts) {
8451
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
8451
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
8452
8452
  const id = randomUUID();
8453
8453
  const frame = {
8454
8454
  type: "req",
@@ -9870,7 +9870,7 @@ function normalizeReplyPayload(payload, opts = {}) {
9870
9870
  */
9871
9871
  let deliverRuntimePromise$2 = null;
9872
9872
  function loadDeliverRuntime$2() {
9873
- deliverRuntimePromise$2 ??= import("./deliver-runtime-DhaQJ0pI.js");
9873
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-DTaIS-1i.js");
9874
9874
  return deliverRuntimePromise$2;
9875
9875
  }
9876
9876
  /**
@@ -11158,7 +11158,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
11158
11158
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
11159
11159
  let subagentRegistryRuntimePromise = null;
11160
11160
  function loadSubagentRegistryRuntime() {
11161
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DSi5mnCQ.js");
11161
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DbSf_Je6.js");
11162
11162
  return subagentRegistryRuntimePromise;
11163
11163
  }
11164
11164
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -14512,7 +14512,7 @@ async function runWithConcurrency(tasks, limit) {
14512
14512
  //#region src/media-understanding/echo-transcript.ts
14513
14513
  let deliverRuntimePromise$1 = null;
14514
14514
  function loadDeliverRuntime$1() {
14515
- deliverRuntimePromise$1 ??= import("./deliver-runtime-DhaQJ0pI.js");
14515
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-DTaIS-1i.js");
14516
14516
  return deliverRuntimePromise$1;
14517
14517
  }
14518
14518
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -50944,7 +50944,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
50944
50944
  const log$10 = createSubsystemLogger("session-maintenance-warning");
50945
50945
  let deliverRuntimePromise = null;
50946
50946
  function loadDeliverRuntime() {
50947
- deliverRuntimePromise ??= import("./deliver-runtime-DhaQJ0pI.js");
50947
+ deliverRuntimePromise ??= import("./deliver-runtime-DTaIS-1i.js");
50948
50948
  return deliverRuntimePromise;
50949
50949
  }
50950
50950
  function shouldSendWarning() {
@@ -55921,7 +55921,7 @@ const VISION_PROVIDERS = [
55921
55921
  ];
55922
55922
  let imageRuntimePromise = null;
55923
55923
  function loadImageRuntime() {
55924
- imageRuntimePromise ??= import("./image-runtime-wlCLVvVv.js");
55924
+ imageRuntimePromise ??= import("./image-runtime-DtCKpMPZ.js");
55925
55925
  return imageRuntimePromise;
55926
55926
  }
55927
55927
  /**
@@ -57914,7 +57914,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
57914
57914
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
57915
57915
  let transcript;
57916
57916
  if (needsPreflightTranscription) try {
57917
- const { transcribeFirstAudio } = await import("./audio-preflight-5FEeDooz.js");
57917
+ const { transcribeFirstAudio } = await import("./audio-preflight-DDBLZBdb.js");
57918
57918
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
57919
57919
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
57920
57920
  ctx: {
@@ -65174,7 +65174,7 @@ let slackSenderRuntimePromise = null;
65174
65174
  let signalSenderRuntimePromise = null;
65175
65175
  let imessageSenderRuntimePromise = null;
65176
65176
  function loadWhatsAppSenderRuntime() {
65177
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-DvTL2tzN.js");
65177
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-CIZqFAqb.js");
65178
65178
  return whatsappSenderRuntimePromise;
65179
65179
  }
65180
65180
  function loadTelegramSenderRuntime() {
@@ -68878,7 +68878,7 @@ function createDiscordGatewayPlugin(params) {
68878
68878
  return super.registerClient(client);
68879
68879
  }
68880
68880
  createWebSocket(url) {
68881
- return new WebSocket$1(url, { agent: wsAgent });
68881
+ return new WebSocket(url, { agent: wsAgent });
68882
68882
  }
68883
68883
  }
68884
68884
  return new ProxyGatewayPlugin();
@@ -77933,7 +77933,7 @@ function loadSlashCommandsRuntime() {
77933
77933
  return slashCommandsRuntimePromise;
77934
77934
  }
77935
77935
  function loadSlashDispatchRuntime() {
77936
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-Dh053pQK.js");
77936
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-131yup2e.js");
77937
77937
  return slashDispatchRuntimePromise;
77938
77938
  }
77939
77939
  function loadSlashSkillCommandsRuntime() {
@@ -81302,7 +81302,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
81302
81302
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
81303
81303
  let preflightTranscript;
81304
81304
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
81305
- const { transcribeFirstAudio } = await import("./audio-preflight-5FEeDooz.js");
81305
+ const { transcribeFirstAudio } = await import("./audio-preflight-DDBLZBdb.js");
81306
81306
  preflightTranscript = await transcribeFirstAudio({
81307
81307
  ctx: {
81308
81308
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -84202,7 +84202,7 @@ function loadWebLoginQr() {
84202
84202
  return webLoginQrPromise;
84203
84203
  }
84204
84204
  function loadWebChannel() {
84205
- webChannelPromise ??= import("./web-1hWJDzNA.js");
84205
+ webChannelPromise ??= import("./web-MR9d7KyB.js");
84206
84206
  return webChannelPromise;
84207
84207
  }
84208
84208
  function loadWhatsAppActions() {
@@ -92465,7 +92465,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92465
92465
  * Throws if the connection is not open.
92466
92466
  */
92467
92467
  send(event) {
92468
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
92468
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
92469
92469
  this.ws.send(JSON.stringify(event));
92470
92470
  }
92471
92471
  /**
@@ -92482,7 +92482,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92482
92482
  * Returns true if the WebSocket is currently open and ready to send.
92483
92483
  */
92484
92484
  isConnected() {
92485
- return this.ws !== null && this.ws.readyState === WebSocket$1.OPEN;
92485
+ return this.ws !== null && this.ws.readyState === WebSocket.OPEN;
92486
92486
  }
92487
92487
  /**
92488
92488
  * Permanently closes the WebSocket connection and disables auto-reconnect.
@@ -92492,7 +92492,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92492
92492
  this._cancelRetryTimer();
92493
92493
  if (this.ws) {
92494
92494
  this.ws.removeAllListeners();
92495
- if (this.ws.readyState === WebSocket$1.OPEN || this.ws.readyState === WebSocket$1.CONNECTING) this.ws.close(1e3, "Client closed");
92495
+ if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING) this.ws.close(1e3, "Client closed");
92496
92496
  this.ws = null;
92497
92497
  }
92498
92498
  }
@@ -92502,7 +92502,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92502
92502
  reject(/* @__PURE__ */ new Error("OpenAIWebSocketManager: apiKey is required before connecting."));
92503
92503
  return;
92504
92504
  }
92505
- const socket = new WebSocket$1(this.wsUrl, { headers: {
92505
+ const socket = new WebSocket(this.wsUrl, { headers: {
92506
92506
  Authorization: `Bearer ${this.apiKey}`,
92507
92507
  "OpenAI-Beta": "responses-websocket=v1"
92508
92508
  } });
@@ -6,7 +6,7 @@ import { d as getChannelDock, o as normalizeThinkLevel, v as normalizeHyphenSlug
6
6
  import { _ as normalizeChatType, r as normalizeChannelId } from "./plugins-D32XloiU.js";
7
7
  import { t as generateSecureToken } from "./secure-random-D68-1Hhs.js";
8
8
  import { i as getImageMetadata, m as normalizeMessageChannel, n as buildImageResizeSideGrid, p as listDeliverableMessageChannels, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-Cdb65Ugz.js";
9
- import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-D45SyhQL.js";
9
+ import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-CMU2WVFh.js";
10
10
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DhJjHaBz.js";
11
11
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-B6LFrksx.js";
12
12
  import { n as extractErrorCode, r as formatErrorMessage } from "./errors-BCQYh_Qb.js";
@@ -1275,7 +1275,7 @@ function isModuleNotFoundError(err) {
1275
1275
  }
1276
1276
  async function loadPwAiModule(mode) {
1277
1277
  try {
1278
- return await import("./pw-ai-GcYO6HPE.js");
1278
+ return await import("./pw-ai-CmphSzHx.js");
1279
1279
  } catch (err) {
1280
1280
  if (mode === "soft") return null;
1281
1281
  if (isModuleNotFoundError(err)) return null;
@@ -3641,7 +3641,7 @@ function createProfileAvailability({ opts, profile, state, getProfileState, setP
3641
3641
  //#region src/browser/server-context.reset.ts
3642
3642
  async function closePlaywrightBrowserConnection() {
3643
3643
  try {
3644
- await (await import("./pw-ai-GcYO6HPE.js")).closePlaywrightBrowserConnection();
3644
+ await (await import("./pw-ai-CmphSzHx.js")).closePlaywrightBrowserConnection();
3645
3645
  } catch {}
3646
3646
  }
3647
3647
  function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, isHttpReachable, resolveOpenClawUserDataDir }) {
@@ -1,5 +1,5 @@
1
- import { ot as normalizeAccountId } from "./run-with-concurrency-BR1DXa8T.js";
2
- import { v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-C1j7HSL0.js";
1
+ import { ot as normalizeAccountId } from "./run-with-concurrency-C_KCHwvf.js";
2
+ import { v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-CNCCkdEF.js";
3
3
 
4
4
  //#region src/imessage/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
@@ -1,5 +1,5 @@
1
- import { ot as normalizeAccountId } from "./run-with-concurrency-BR1DXa8T.js";
2
- import { v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-C1j7HSL0.js";
1
+ import { ot as normalizeAccountId } from "./run-with-concurrency-C_KCHwvf.js";
2
+ import { v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-CNCCkdEF.js";
3
3
 
4
4
  //#region src/signal/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal");
@@ -1,6 +1,6 @@
1
- import { at as DEFAULT_ACCOUNT_ID, ot as normalizeAccountId, st as normalizeOptionalAccountId } from "./run-with-concurrency-BR1DXa8T.js";
2
- import { Tr as formatCliCommand } from "./config-CHQrpx-Q.js";
3
- import { B as success, G as getChildLogger, I as info, j as defaultRuntime, m as jidToE164, y as resolveUserPath } from "./logger-DHIIvMxj.js";
1
+ import { at as DEFAULT_ACCOUNT_ID, ot as normalizeAccountId, st as normalizeOptionalAccountId } from "./run-with-concurrency-C_KCHwvf.js";
2
+ import { Tr as formatCliCommand } from "./config-B1z-UxQ3.js";
3
+ import { B as success, G as getChildLogger, I as info, j as defaultRuntime, m as jidToE164, y as resolveUserPath } from "./logger-CvPFVOgT.js";
4
4
  import { o as resolveOAuthDir } from "./paths-0d8fBoC4.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
@@ -1,5 +1,5 @@
1
- import { at as DEFAULT_ACCOUNT_ID } from "./run-with-concurrency-BR1DXa8T.js";
2
- import { Tr as formatCliCommand } from "./config-CHQrpx-Q.js";
1
+ import { at as DEFAULT_ACCOUNT_ID } from "./run-with-concurrency-C_KCHwvf.js";
2
+ import { Tr as formatCliCommand } from "./config-B1z-UxQ3.js";
3
3
  import crypto from "node:crypto";
4
4
 
5
5
  //#region src/logging/redact-identifier.ts
@@ -1,5 +1,5 @@
1
- import { Ht as normalizeProviderId } from "./config-CHQrpx-Q.js";
2
- import { r as formatErrorMessage } from "./errors-CtMWwS2Z.js";
1
+ import { Ht as normalizeProviderId } from "./config-B1z-UxQ3.js";
2
+ import { r as formatErrorMessage } from "./errors-B3cHyZZA.js";
3
3
 
4
4
  //#region src/infra/gemini-auth.ts
5
5
  /**