openclaw-multi-auto 1.3.7 → 1.3.9

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 (414) hide show
  1. package/dist/{accounts-L9ByEpnP.js → accounts-C9HcPI9h.js} +2 -2
  2. package/dist/{accounts-BOzyfwW4.js → accounts-C_lW3Ag9.js} +2 -2
  3. package/dist/{accounts-yfBeCZtS.js → accounts-Tgelvk0C.js} +17 -17
  4. package/dist/{active-listener-D1yqT1cw.js → active-listener-BEdprTkn.js} +2 -2
  5. package/dist/{api-key-rotation-DtsNS2Nb.js → api-key-rotation-BJpKWXy0.js} +2 -2
  6. package/dist/{audio-preflight-DpxQCpsA.js → audio-preflight-BMvgEQ5j.js} +32 -32
  7. package/dist/{audio-transcription-runner-28fcRNNi.js → audio-transcription-runner-gLFfz8fr.js} +12 -12
  8. package/dist/{audit-membership-runtime-DWyHWAHM.js → audit-membership-runtime-Dntemq07.js} +4 -4
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +51 -51
  11. package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
  12. package/dist/bundled/command-logger/handler.js +2 -2
  13. package/dist/bundled/session-memory/handler.js +51 -51
  14. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  15. package/dist/{channel-activity-xHOMiarp.js → channel-activity-BDnjYF7B.js} +3 -3
  16. package/dist/{chrome-DwizpzOC.js → chrome-DxxEKrY7.js} +18 -18
  17. package/dist/{commands-registry-V1zZ5pPC.js → commands-registry-D5qXbFJn.js} +4 -4
  18. package/dist/control-ui/apple-touch-icon.png +0 -0
  19. package/dist/control-ui/assets/de-Bm0iuKxz.js +2 -0
  20. package/dist/control-ui/assets/de-Bm0iuKxz.js.map +1 -0
  21. package/dist/control-ui/assets/index-7XbUBC_m.js +8380 -0
  22. package/dist/control-ui/assets/index-7XbUBC_m.js.map +1 -0
  23. package/dist/control-ui/assets/index-E0j6Tkrc.css +1 -0
  24. package/dist/control-ui/assets/pt-BR-C2uaHesk.js +2 -0
  25. package/dist/control-ui/assets/pt-BR-C2uaHesk.js.map +1 -0
  26. package/dist/control-ui/assets/zh-CN-CqPGpAps.js +2 -0
  27. package/dist/control-ui/assets/zh-CN-CqPGpAps.js.map +1 -0
  28. package/dist/control-ui/assets/zh-TW-Cyl5GDQh.js +2 -0
  29. package/dist/control-ui/assets/zh-TW-Cyl5GDQh.js.map +1 -0
  30. package/dist/control-ui/favicon-32.png +0 -0
  31. package/dist/control-ui/favicon.ico +0 -0
  32. package/dist/control-ui/favicon.svg +22 -0
  33. package/dist/control-ui/index.html +17 -0
  34. package/dist/{deliver-D4o6VIur.js → deliver-DbdywYJE.js} +21 -21
  35. package/dist/deliver-runtime-BFs7iAZF.js +36 -0
  36. package/dist/deps-send-discord.runtime-DZUccI6Z.js +26 -0
  37. package/dist/deps-send-imessage.runtime-CF3OpoqY.js +25 -0
  38. package/dist/deps-send-signal.runtime-Cw4-ozeO.js +24 -0
  39. package/dist/deps-send-slack.runtime-BDsDhS1P.js +22 -0
  40. package/dist/deps-send-telegram.runtime-D_4xVasO.js +27 -0
  41. package/dist/deps-send-whatsapp.runtime-DK8jqd14.js +60 -0
  42. package/dist/{diagnostic-Bn4PZjMZ.js → diagnostic-Co6Kghr-.js} +2 -2
  43. package/dist/{errors-CCLeFWAg.js → errors-xt401nuk.js} +1 -1
  44. package/dist/{fetch-BlJWzEP6.js → fetch-DuraYswo.js} +5 -5
  45. package/dist/{fetch-guard-ChYBwfiy.js → fetch-guard-DWr0d00H.js} +2 -2
  46. package/dist/{frontmatter-CvaMP376.js → frontmatter-BkTfEZ93.js} +3 -3
  47. package/dist/{fs-safe-0jAo_Whb.js → fs-safe-CTYUrIgQ.js} +4 -4
  48. package/dist/{github-copilot-token-D13V9YBz.js → github-copilot-token-BDioPmd6.js} +7 -7
  49. package/dist/{image-Bbn53mzj.js → image-eT7Y-nP5.js} +6 -6
  50. package/dist/{image-ops-CehkHxmW.js → image-ops-BuUnEOE0.js} +2 -2
  51. package/dist/image-runtime-BcAK3n8a.js +29 -0
  52. package/dist/{ir-DAP-B-Xw.js → ir-B83looB-.js} +8 -8
  53. package/dist/{legacy-names-TyzbVqa_.js → legacy-names-DOC03BkU.js} +1 -1
  54. package/dist/llm-slug-generator.js +51 -51
  55. package/dist/{logger-DMZQQtxK.js → logger-BfjWMCSD.js} +7 -7
  56. package/dist/{login-DiCctRo1.js → login-CrIwcrVI.js} +5 -5
  57. package/dist/{login-qr-MUbXgjtd.js → login-qr-BpPDZdl_.js} +10 -10
  58. package/dist/{manager-BW_NSIMl.js → manager-1bvuGrNR.js} +13 -13
  59. package/dist/manager-runtime-FO1Sx3W8.js +18 -0
  60. package/dist/{model-selection-idoqPmw0.js → model-selection-Dna0Gz1k.js} +43 -43
  61. package/dist/{outbound-C2kanETZ.js → outbound-ChDjtuD6.js} +6 -6
  62. package/dist/{outbound-attachment-DBrYWX8h.js → outbound-attachment-DqHlD21U.js} +2 -2
  63. package/dist/{path-alias-guards-DqXRZmsL.js → path-alias-guards-BzvdLvTI.js} +1 -1
  64. package/dist/{paths-CCxysrzL.js → paths-Bkr-BCxW.js} +4 -4
  65. package/dist/{paths-C6TxBCvO.js → paths-Cvc9EM8Y.js} +5 -5
  66. package/dist/{pi-embedded-BaGj07T0.js → pi-embedded-BQQa91aA.js} +158 -158
  67. package/dist/{pi-embedded-helpers-wy0DZvx1.js → pi-embedded-helpers-CLXm10bV.js} +52 -52
  68. package/dist/{plugin-sdk/pi-model-discovery-v-XPUOOf.js → pi-model-discovery-Dymwdjt0.js} +2 -2
  69. package/dist/pi-model-discovery-runtime-BeY4EUPp.js +11 -0
  70. package/dist/{pi-tools.before-tool-call.runtime-BuLxSyx9.js → pi-tools.before-tool-call.runtime-Cwab_5W1.js} +9 -9
  71. package/dist/plugin-sdk/index.js +50 -50
  72. package/dist/plugin-sdk/mattermost.js +3 -3
  73. package/dist/plugin-sdk/signal.js +2 -2
  74. package/dist/plugin-sdk/zalo.js +2 -2
  75. package/dist/{plugins-CWkRQYDj.js → plugins-4Rj4OjLY.js} +11 -11
  76. package/dist/{proxy-env-Cq5gdrbj.js → proxy-env-DlmzDx8x.js} +1 -1
  77. package/dist/{proxy-fetch-CCjEYbFm.js → proxy-fetch-B2pEfjbR.js} +1 -1
  78. package/dist/{pw-ai-Cl1Lc7RC.js → pw-ai-DNMjFMqH.js} +14 -14
  79. package/dist/{qmd-manager-BsYsO9Ii.js → qmd-manager-BtIKUaO9.js} +10 -10
  80. package/dist/{query-expansion-DtLc3wjL.js → query-expansion-CX-1fS52.js} +6 -6
  81. package/dist/{plugin-sdk/redact-DjVX-1N3.js → redact-COik8ET1.js} +1 -1
  82. package/dist/{run-with-concurrency-D_ZpbgEG.js → run-with-concurrency-BgYfgkXT.js} +4 -4
  83. package/dist/runtime-whatsapp-login.runtime-DUb55byQ.js +13 -0
  84. package/dist/runtime-whatsapp-outbound.runtime-Bii_xSfI.js +22 -0
  85. package/dist/{send-Dx2RkUOZ.js → send-6lz6rNVP.js} +6 -6
  86. package/dist/{send-vmONuVgL.js → send-BHTiZcH3.js} +26 -26
  87. package/dist/{send-Bj776ESJ.js → send-L7gRiwyd.js} +7 -7
  88. package/dist/{send-DcxmcFi_.js → send-PE6cwoTe.js} +8 -8
  89. package/dist/{send-BQERFNyo.js → send-dfu6_rgf.js} +5 -5
  90. package/dist/{session-A4QhBRvH.js → session-D8ImowSs.js} +8 -8
  91. package/dist/{skill-commands-CMzBZKG2.js → skill-commands-DNqJ-kwn.js} +9 -9
  92. package/dist/{skills-CE_iqvM5.js → skills-7ODkHQYp.js} +22 -22
  93. package/dist/slash-commands.runtime-CVw6566g.js +16 -0
  94. package/dist/slash-dispatch.runtime-B9Ygtzi4.js +56 -0
  95. package/dist/slash-skill-commands.runtime-DxZ4z5h6.js +20 -0
  96. package/dist/{store--eR1R_UX.js → store-D89wDcz9.js} +2 -2
  97. package/dist/subagent-registry-runtime-DL1Wv7nA.js +56 -0
  98. package/dist/{subsystem-Di1z8l0Z.js → subsystem-B45WV3qB.js} +14 -14
  99. package/dist/{tables-d739Y1xW.js → tables-mE4cJBN2.js} +1 -1
  100. package/dist/{plugin-sdk/target-errors-Blia4S69.js → target-errors-mnlwhAjP.js} +2 -2
  101. package/dist/{thinking-DXYisHiZ.js → thinking-BeGmb5k6.js} +7 -7
  102. package/dist/{tokens-DxnY9ui_.js → tokens-q32vI39c.js} +1 -1
  103. package/dist/{tool-images-2cBx1W8h.js → tool-images-RZdHiZcG.js} +2 -2
  104. package/dist/{web-CzWRVmFt.js → web-Btj-e8kN.js} +55 -55
  105. package/dist/{whatsapp-actions-iEArE_Ez.js → whatsapp-actions-BHbJJyqw.js} +21 -21
  106. package/dist/{workspace-CUVC6GX1.js → workspace-U-DyR64O.js} +20 -20
  107. package/package.json +7 -5
  108. package/scripts/create-instance.sh +66 -27
  109. package/scripts/install-maca.sh +1 -1
  110. package/scripts/npm_publish.sh +5 -1
  111. package/ui/index.html +16 -0
  112. package/ui/node_modules/.bin/jiti +21 -0
  113. package/ui/node_modules/.bin/lessc +21 -0
  114. package/ui/node_modules/.bin/marked +21 -0
  115. package/ui/node_modules/.bin/playwright +21 -0
  116. package/ui/node_modules/.bin/sass +21 -0
  117. package/ui/node_modules/.bin/tsx +21 -0
  118. package/ui/node_modules/.bin/vite +21 -0
  119. package/ui/node_modules/.bin/vitest +21 -0
  120. package/ui/node_modules/.bin/yaml +21 -0
  121. package/ui/package.json +27 -0
  122. package/ui/public/apple-touch-icon.png +0 -0
  123. package/ui/public/favicon-32.png +0 -0
  124. package/ui/public/favicon.ico +0 -0
  125. package/ui/public/favicon.svg +22 -0
  126. package/ui/src/css.d.ts +1 -0
  127. package/ui/src/i18n/index.ts +3 -0
  128. package/ui/src/i18n/lib/lit-controller.ts +22 -0
  129. package/ui/src/i18n/lib/registry.ts +64 -0
  130. package/ui/src/i18n/lib/translate.ts +123 -0
  131. package/ui/src/i18n/lib/types.ts +9 -0
  132. package/ui/src/i18n/locales/de.ts +129 -0
  133. package/ui/src/i18n/locales/en.ts +337 -0
  134. package/ui/src/i18n/locales/pt-BR.ts +128 -0
  135. package/ui/src/i18n/locales/zh-CN.ts +330 -0
  136. package/ui/src/i18n/locales/zh-TW.ts +125 -0
  137. package/ui/src/i18n/test/translate.test.ts +56 -0
  138. package/ui/src/main.ts +2 -0
  139. package/ui/src/styles/base.css +385 -0
  140. package/ui/src/styles/chat/grouped.css +300 -0
  141. package/ui/src/styles/chat/layout.css +481 -0
  142. package/ui/src/styles/chat/sidebar.css +117 -0
  143. package/ui/src/styles/chat/text.css +146 -0
  144. package/ui/src/styles/chat/tool-cards.css +202 -0
  145. package/ui/src/styles/chat.css +5 -0
  146. package/ui/src/styles/components.css +2612 -0
  147. package/ui/src/styles/config.css +1658 -0
  148. package/ui/src/styles/layout.css +621 -0
  149. package/ui/src/styles/layout.mobile.css +374 -0
  150. package/ui/src/styles.css +5 -0
  151. package/ui/src/ui/__screenshots__/config-form.browser.test.ts/config-form-renderer-flags-unsupported-unions-1.png +0 -0
  152. package/ui/src/ui/__screenshots__/config-form.browser.test.ts/config-form-renderer-renders-inputs-and-patches-values-1.png +0 -0
  153. package/ui/src/ui/__screenshots__/config-form.browser.test.ts/config-form-renderer-renders-union-literals-as-select-options-1.png +0 -0
  154. package/ui/src/ui/__screenshots__/navigation.browser.test.ts/control-UI-routing-auto-scrolls-chat-history-to-the-latest-message-1.png +0 -0
  155. package/ui/src/ui/app-channels.ts +279 -0
  156. package/ui/src/ui/app-chat.ts +266 -0
  157. package/ui/src/ui/app-defaults.ts +50 -0
  158. package/ui/src/ui/app-events.ts +5 -0
  159. package/ui/src/ui/app-gateway.node.test.ts +229 -0
  160. package/ui/src/ui/app-gateway.ts +349 -0
  161. package/ui/src/ui/app-lifecycle.node.test.ts +44 -0
  162. package/ui/src/ui/app-lifecycle.ts +109 -0
  163. package/ui/src/ui/app-polling.ts +69 -0
  164. package/ui/src/ui/app-render-usage-tab.ts +273 -0
  165. package/ui/src/ui/app-render.helpers.node.test.ts +286 -0
  166. package/ui/src/ui/app-render.helpers.ts +574 -0
  167. package/ui/src/ui/app-render.ts +1168 -0
  168. package/ui/src/ui/app-scroll.test.ts +275 -0
  169. package/ui/src/ui/app-scroll.ts +179 -0
  170. package/ui/src/ui/app-settings.test.ts +70 -0
  171. package/ui/src/ui/app-settings.ts +440 -0
  172. package/ui/src/ui/app-tool-stream.node.test.ts +139 -0
  173. package/ui/src/ui/app-tool-stream.ts +455 -0
  174. package/ui/src/ui/app-view-state.ts +321 -0
  175. package/ui/src/ui/app.ts +621 -0
  176. package/ui/src/ui/assistant-identity.ts +23 -0
  177. package/ui/src/ui/chat/constants.ts +12 -0
  178. package/ui/src/ui/chat/copy-as-markdown.ts +97 -0
  179. package/ui/src/ui/chat/grouped-render.ts +287 -0
  180. package/ui/src/ui/chat/message-extract.test.ts +64 -0
  181. package/ui/src/ui/chat/message-extract.ts +122 -0
  182. package/ui/src/ui/chat/message-normalizer.test.ts +179 -0
  183. package/ui/src/ui/chat/message-normalizer.ts +101 -0
  184. package/ui/src/ui/chat/tool-cards.ts +156 -0
  185. package/ui/src/ui/chat/tool-helpers.test.ts +141 -0
  186. package/ui/src/ui/chat/tool-helpers.ts +37 -0
  187. package/ui/src/ui/chat-event-reload.test.ts +47 -0
  188. package/ui/src/ui/chat-event-reload.ts +16 -0
  189. package/ui/src/ui/chat-markdown.browser.test.ts +37 -0
  190. package/ui/src/ui/components/resizable-divider.ts +110 -0
  191. package/ui/src/ui/config-form.browser.test.ts +443 -0
  192. package/ui/src/ui/controllers/agent-files.ts +126 -0
  193. package/ui/src/ui/controllers/agent-identity.ts +59 -0
  194. package/ui/src/ui/controllers/agent-skills.ts +33 -0
  195. package/ui/src/ui/controllers/agents.test.ts +61 -0
  196. package/ui/src/ui/controllers/agents.ts +64 -0
  197. package/ui/src/ui/controllers/assistant-identity.ts +34 -0
  198. package/ui/src/ui/controllers/channels.ts +94 -0
  199. package/ui/src/ui/controllers/channels.types.ts +15 -0
  200. package/ui/src/ui/controllers/chat.test.ts +568 -0
  201. package/ui/src/ui/controllers/chat.ts +318 -0
  202. package/ui/src/ui/controllers/config/form-coerce.ts +160 -0
  203. package/ui/src/ui/controllers/config/form-utils.node.test.ts +455 -0
  204. package/ui/src/ui/controllers/config/form-utils.ts +90 -0
  205. package/ui/src/ui/controllers/config.test.ts +289 -0
  206. package/ui/src/ui/controllers/config.ts +219 -0
  207. package/ui/src/ui/controllers/control-ui-bootstrap.test.ts +82 -0
  208. package/ui/src/ui/controllers/control-ui-bootstrap.ts +49 -0
  209. package/ui/src/ui/controllers/cron-filters.test.ts +81 -0
  210. package/ui/src/ui/controllers/cron.test.ts +1070 -0
  211. package/ui/src/ui/controllers/cron.ts +921 -0
  212. package/ui/src/ui/controllers/debug.ts +60 -0
  213. package/ui/src/ui/controllers/devices.ts +159 -0
  214. package/ui/src/ui/controllers/exec-approval.ts +100 -0
  215. package/ui/src/ui/controllers/exec-approvals.ts +170 -0
  216. package/ui/src/ui/controllers/logs.ts +147 -0
  217. package/ui/src/ui/controllers/nodes.ts +32 -0
  218. package/ui/src/ui/controllers/presence.ts +37 -0
  219. package/ui/src/ui/controllers/sessions.test.ts +104 -0
  220. package/ui/src/ui/controllers/sessions.ts +127 -0
  221. package/ui/src/ui/controllers/skills.ts +157 -0
  222. package/ui/src/ui/controllers/usage.node.test.ts +181 -0
  223. package/ui/src/ui/controllers/usage.ts +315 -0
  224. package/ui/src/ui/data/moonshot-kimi-k2.ts +45 -0
  225. package/ui/src/ui/device-auth.ts +73 -0
  226. package/ui/src/ui/device-identity.ts +112 -0
  227. package/ui/src/ui/external-link.test.ts +18 -0
  228. package/ui/src/ui/external-link.ts +19 -0
  229. package/ui/src/ui/focus-mode.browser.test.ts +39 -0
  230. package/ui/src/ui/format.test.ts +101 -0
  231. package/ui/src/ui/format.ts +60 -0
  232. package/ui/src/ui/gateway.ts +360 -0
  233. package/ui/src/ui/icons.ts +256 -0
  234. package/ui/src/ui/markdown.test.ts +85 -0
  235. package/ui/src/ui/markdown.ts +139 -0
  236. package/ui/src/ui/navigation.browser.test.ts +188 -0
  237. package/ui/src/ui/navigation.test.ts +189 -0
  238. package/ui/src/ui/navigation.ts +165 -0
  239. package/ui/src/ui/open-external-url.test.ts +108 -0
  240. package/ui/src/ui/open-external-url.ts +73 -0
  241. package/ui/src/ui/presenter.ts +85 -0
  242. package/ui/src/ui/storage.node.test.ts +63 -0
  243. package/ui/src/ui/storage.ts +99 -0
  244. package/ui/src/ui/test-helpers/app-mount.ts +27 -0
  245. package/ui/src/ui/text-direction.test.ts +24 -0
  246. package/ui/src/ui/text-direction.ts +30 -0
  247. package/ui/src/ui/theme-transition.ts +109 -0
  248. package/ui/src/ui/theme.ts +16 -0
  249. package/ui/src/ui/tool-display.ts +159 -0
  250. package/ui/src/ui/types/chat-types.ts +44 -0
  251. package/ui/src/ui/types.ts +627 -0
  252. package/ui/src/ui/ui-types.ts +54 -0
  253. package/ui/src/ui/usage-helpers.node.test.ts +43 -0
  254. package/ui/src/ui/usage-helpers.ts +321 -0
  255. package/ui/src/ui/usage-types.ts +22 -0
  256. package/ui/src/ui/uuid.test.ts +41 -0
  257. package/ui/src/ui/uuid.ts +57 -0
  258. package/ui/src/ui/views/agents-panels-status-files.ts +461 -0
  259. package/ui/src/ui/views/agents-panels-tools-skills.browser.test.ts +102 -0
  260. package/ui/src/ui/views/agents-panels-tools-skills.ts +537 -0
  261. package/ui/src/ui/views/agents-utils.test.ts +100 -0
  262. package/ui/src/ui/views/agents-utils.ts +502 -0
  263. package/ui/src/ui/views/agents.ts +499 -0
  264. package/ui/src/ui/views/channel-config-extras.ts +49 -0
  265. package/ui/src/ui/views/channels.config.ts +155 -0
  266. package/ui/src/ui/views/channels.discord.ts +65 -0
  267. package/ui/src/ui/views/channels.googlechat.ts +79 -0
  268. package/ui/src/ui/views/channels.imessage.ts +65 -0
  269. package/ui/src/ui/views/channels.nostr-profile-form.ts +321 -0
  270. package/ui/src/ui/views/channels.nostr.ts +237 -0
  271. package/ui/src/ui/views/channels.shared.ts +38 -0
  272. package/ui/src/ui/views/channels.signal.ts +69 -0
  273. package/ui/src/ui/views/channels.slack.ts +65 -0
  274. package/ui/src/ui/views/channels.telegram.ts +120 -0
  275. package/ui/src/ui/views/channels.ts +325 -0
  276. package/ui/src/ui/views/channels.types.ts +62 -0
  277. package/ui/src/ui/views/channels.whatsapp.ts +118 -0
  278. package/ui/src/ui/views/chat-image-open.browser.test.ts +70 -0
  279. package/ui/src/ui/views/chat.test.ts +227 -0
  280. package/ui/src/ui/views/chat.ts +616 -0
  281. package/ui/src/ui/views/config-form.analyze.ts +267 -0
  282. package/ui/src/ui/views/config-form.node.ts +1073 -0
  283. package/ui/src/ui/views/config-form.render.ts +478 -0
  284. package/ui/src/ui/views/config-form.search.node.test.ts +69 -0
  285. package/ui/src/ui/views/config-form.shared.ts +96 -0
  286. package/ui/src/ui/views/config-form.ts +4 -0
  287. package/ui/src/ui/views/config-search.node.test.ts +50 -0
  288. package/ui/src/ui/views/config-search.ts +92 -0
  289. package/ui/src/ui/views/config.browser.test.ts +233 -0
  290. package/ui/src/ui/views/config.ts +820 -0
  291. package/ui/src/ui/views/cron.test.ts +741 -0
  292. package/ui/src/ui/views/cron.ts +1758 -0
  293. package/ui/src/ui/views/debug.ts +151 -0
  294. package/ui/src/ui/views/exec-approval.ts +89 -0
  295. package/ui/src/ui/views/gateway-url-confirmation.ts +40 -0
  296. package/ui/src/ui/views/instances.ts +89 -0
  297. package/ui/src/ui/views/logs.ts +155 -0
  298. package/ui/src/ui/views/markdown-sidebar.ts +40 -0
  299. package/ui/src/ui/views/nodes-exec-approvals.ts +617 -0
  300. package/ui/src/ui/views/nodes-shared.ts +67 -0
  301. package/ui/src/ui/views/nodes.ts +485 -0
  302. package/ui/src/ui/views/overview-hints.ts +16 -0
  303. package/ui/src/ui/views/overview.node.test.ts +39 -0
  304. package/ui/src/ui/views/overview.ts +361 -0
  305. package/ui/src/ui/views/sessions.test.ts +81 -0
  306. package/ui/src/ui/views/sessions.ts +321 -0
  307. package/ui/src/ui/views/skills-grouping.ts +40 -0
  308. package/ui/src/ui/views/skills-shared.ts +52 -0
  309. package/ui/src/ui/views/skills.ts +192 -0
  310. package/ui/src/ui/views/usage-metrics.ts +578 -0
  311. package/ui/src/ui/views/usage-query.ts +277 -0
  312. package/ui/src/ui/views/usage-render-details.test.ts +136 -0
  313. package/ui/src/ui/views/usage-render-details.ts +1083 -0
  314. package/ui/src/ui/views/usage-render-overview.ts +796 -0
  315. package/ui/src/ui/views/usage-styles/usageStyles-part1.ts +701 -0
  316. package/ui/src/ui/views/usage-styles/usageStyles-part2.ts +702 -0
  317. package/ui/src/ui/views/usage-styles/usageStyles-part3.ts +551 -0
  318. package/ui/src/ui/views/usage.ts +836 -0
  319. package/ui/src/ui/views/usageStyles.ts +5 -0
  320. package/ui/src/ui/views/usageTypes.ts +105 -0
  321. package/ui/vite.config.ts +43 -0
  322. package/ui/vitest.config.ts +15 -0
  323. package/ui/vitest.node.config.ts +10 -0
  324. package/dist/deliver-runtime-P-G3bPjW.js +0 -36
  325. package/dist/deps-send-discord.runtime-DnbhTFX9.js +0 -26
  326. package/dist/deps-send-imessage.runtime-BOiQ6mDx.js +0 -25
  327. package/dist/deps-send-signal.runtime-CTcl388M.js +0 -24
  328. package/dist/deps-send-slack.runtime-CCqBz4Kg.js +0 -22
  329. package/dist/deps-send-telegram.runtime-DGSKTCpH.js +0 -27
  330. package/dist/deps-send-whatsapp.runtime-CJkTHkah.js +0 -60
  331. package/dist/image-runtime-CVv2ra9J.js +0 -29
  332. package/dist/manager-runtime-BN6VevdC.js +0 -18
  333. package/dist/pi-model-discovery-BGgOlX8N.js +0 -134
  334. package/dist/pi-model-discovery-runtime-Bwmi4Ev8.js +0 -11
  335. package/dist/plugin-sdk/accounts-CJWOBzwB.js +0 -35
  336. package/dist/plugin-sdk/accounts-DP1-L-QS.js +0 -288
  337. package/dist/plugin-sdk/accounts-DZhWlEg3.js +0 -46
  338. package/dist/plugin-sdk/active-listener-B_sLJTXM.js +0 -50
  339. package/dist/plugin-sdk/api-key-rotation-BRE4X2tf.js +0 -181
  340. package/dist/plugin-sdk/audio-preflight-DGEUDxxR.js +0 -69
  341. package/dist/plugin-sdk/audio-transcription-runner-DkoPNPYt.js +0 -2176
  342. package/dist/plugin-sdk/audit-membership-runtime-DSBHHw7o.js +0 -58
  343. package/dist/plugin-sdk/channel-activity-F3d0yUwy.js +0 -94
  344. package/dist/plugin-sdk/channel-web-QF7EpjeP.js +0 -2256
  345. package/dist/plugin-sdk/chrome-BXoCyCkY.js +0 -2415
  346. package/dist/plugin-sdk/commands-registry-t7cXBTfN.js +0 -1125
  347. package/dist/plugin-sdk/config-BkEnz2Po.js +0 -17913
  348. package/dist/plugin-sdk/deliver-B6AG_l67.js +0 -1694
  349. package/dist/plugin-sdk/deliver-runtime-D585kJZc.js +0 -32
  350. package/dist/plugin-sdk/deps-send-discord.runtime-a_OKY2js.js +0 -23
  351. package/dist/plugin-sdk/deps-send-imessage.runtime-Baxy9TD4.js +0 -22
  352. package/dist/plugin-sdk/deps-send-signal.runtime-BwXoCrFl.js +0 -21
  353. package/dist/plugin-sdk/deps-send-slack.runtime-CLmKjgso.js +0 -19
  354. package/dist/plugin-sdk/deps-send-telegram.runtime-BKfdBKnZ.js +0 -24
  355. package/dist/plugin-sdk/deps-send-whatsapp.runtime-BOTwkbx_.js +0 -57
  356. package/dist/plugin-sdk/diagnostic-CsP-lEkI.js +0 -319
  357. package/dist/plugin-sdk/errors-DaiAM-yU.js +0 -54
  358. package/dist/plugin-sdk/fetch-guard-DETCcJzQ.js +0 -156
  359. package/dist/plugin-sdk/fs-safe-B8y811FR.js +0 -352
  360. package/dist/plugin-sdk/image-DjTEkYZE.js +0 -2310
  361. package/dist/plugin-sdk/image-ops-BSiMpAw4.js +0 -584
  362. package/dist/plugin-sdk/image-runtime-6xPp8m5a.js +0 -25
  363. package/dist/plugin-sdk/ir-DQ7_HbvK.js +0 -1296
  364. package/dist/plugin-sdk/local-roots-BUP4YBmR.js +0 -186
  365. package/dist/plugin-sdk/logger-CZY9KIoY.js +0 -1163
  366. package/dist/plugin-sdk/login-BxEKLlCo.js +0 -57
  367. package/dist/plugin-sdk/login-qr-BQIpMPr9.js +0 -320
  368. package/dist/plugin-sdk/manager-I6KbPihW.js +0 -3917
  369. package/dist/plugin-sdk/manager-runtime-CFfYYWIQ.js +0 -15
  370. package/dist/plugin-sdk/outbound-NS6UHnB6.js +0 -212
  371. package/dist/plugin-sdk/outbound-attachment-Dy6fyf6H.js +0 -19
  372. package/dist/plugin-sdk/path-alias-guards-DBjLbIX_.js +0 -43
  373. package/dist/plugin-sdk/paths-vTM3Lh3X.js +0 -166
  374. package/dist/plugin-sdk/pi-embedded-helpers-1R1gu7eX.js +0 -9627
  375. package/dist/plugin-sdk/pi-model-discovery-runtime-Do9o-dUd.js +0 -8
  376. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-D4sFsIks.js +0 -354
  377. package/dist/plugin-sdk/plugins-DeBZB9l_.js +0 -864
  378. package/dist/plugin-sdk/proxy-fetch-ChxOhWF4.js +0 -38
  379. package/dist/plugin-sdk/pw-ai-DEOmCSSC.js +0 -1938
  380. package/dist/plugin-sdk/qmd-manager-HyYKoEch.js +0 -1448
  381. package/dist/plugin-sdk/query-expansion-CeyKUeDW.js +0 -1011
  382. package/dist/plugin-sdk/reply-DAo_Jt8K.js +0 -97916
  383. package/dist/plugin-sdk/resolve-outbound-target-B42qgQS9.js +0 -40
  384. package/dist/plugin-sdk/run-with-concurrency-Bt_ks0Qa.js +0 -1994
  385. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-B6W989eF.js +0 -10
  386. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-c_GDFy37.js +0 -19
  387. package/dist/plugin-sdk/send-CQpMudwO.js +0 -2587
  388. package/dist/plugin-sdk/send-DQHLzVyO.js +0 -414
  389. package/dist/plugin-sdk/send-DTB24bEF.js +0 -3135
  390. package/dist/plugin-sdk/send-DfHadjZ_.js +0 -503
  391. package/dist/plugin-sdk/send-XXlW2iny.js +0 -540
  392. package/dist/plugin-sdk/session-6TF6MyaC.js +0 -169
  393. package/dist/plugin-sdk/skill-commands-CkGeFUMl.js +0 -342
  394. package/dist/plugin-sdk/skills-CBkHBYPq.js +0 -1428
  395. package/dist/plugin-sdk/slash-commands.runtime-CxliuGaP.js +0 -13
  396. package/dist/plugin-sdk/slash-dispatch.runtime-DFaeYlJQ.js +0 -52
  397. package/dist/plugin-sdk/slash-skill-commands.runtime-0M0OLCxq.js +0 -16
  398. package/dist/plugin-sdk/ssrf-cFtplYtS.js +0 -202
  399. package/dist/plugin-sdk/store-5nyxY3WU.js +0 -81
  400. package/dist/plugin-sdk/subagent-registry-runtime-DCtmDwna.js +0 -52
  401. package/dist/plugin-sdk/tables-C47P4GTN.js +0 -55
  402. package/dist/plugin-sdk/thinking-Bo2eosVa.js +0 -1206
  403. package/dist/plugin-sdk/tokens-DgNRBwIg.js +0 -52
  404. package/dist/plugin-sdk/tool-images-Gk_-0y2N.js +0 -274
  405. package/dist/plugin-sdk/web-CVxZbXyH.js +0 -56
  406. package/dist/plugin-sdk/whatsapp-actions-Bw0H9g-n.js +0 -80
  407. package/dist/redact-ClbcYG1J.js +0 -319
  408. package/dist/runtime-whatsapp-login.runtime-IeylZEl4.js +0 -13
  409. package/dist/runtime-whatsapp-outbound.runtime-ClBRuLsq.js +0 -22
  410. package/dist/slash-commands.runtime-Cpn2tYW4.js +0 -16
  411. package/dist/slash-dispatch.runtime-DoBAQBU5.js +0 -56
  412. package/dist/slash-skill-commands.runtime-DKMvvdDW.js +0 -20
  413. package/dist/subagent-registry-runtime-ppWS3tVu.js +0 -56
  414. package/dist/target-errors-CBI2Ga0y.js +0 -195
@@ -1,52 +0,0 @@
1
- import { _ as escapeRegExp } from "./logger-CZY9KIoY.js";
2
-
3
- //#region src/auto-reply/tokens.ts
4
- const HEARTBEAT_TOKEN = "HEARTBEAT_OK";
5
- const SILENT_REPLY_TOKEN = "NO_REPLY";
6
- const silentExactRegexByToken = /* @__PURE__ */ new Map();
7
- const silentTrailingRegexByToken = /* @__PURE__ */ new Map();
8
- function getSilentExactRegex(token) {
9
- const cached = silentExactRegexByToken.get(token);
10
- if (cached) return cached;
11
- const escaped = escapeRegExp(token);
12
- const regex = new RegExp(`^\\s*${escaped}\\s*$`);
13
- silentExactRegexByToken.set(token, regex);
14
- return regex;
15
- }
16
- function getSilentTrailingRegex(token) {
17
- const cached = silentTrailingRegexByToken.get(token);
18
- if (cached) return cached;
19
- const escaped = escapeRegExp(token);
20
- const regex = new RegExp(`(?:^|\\s+|\\*+)${escaped}\\s*$`);
21
- silentTrailingRegexByToken.set(token, regex);
22
- return regex;
23
- }
24
- function isSilentReplyText(text, token = SILENT_REPLY_TOKEN) {
25
- if (!text) return false;
26
- return getSilentExactRegex(token).test(text);
27
- }
28
- /**
29
- * Strip a trailing silent reply token from mixed-content text.
30
- * Returns the remaining text with the token removed (trimmed).
31
- * If the result is empty, the entire message should be treated as silent.
32
- */
33
- function stripSilentToken(text, token = SILENT_REPLY_TOKEN) {
34
- return text.replace(getSilentTrailingRegex(token), "").trim();
35
- }
36
- function isSilentReplyPrefixText(text, token = SILENT_REPLY_TOKEN) {
37
- if (!text) return false;
38
- const trimmed = text.trimStart();
39
- if (!trimmed) return false;
40
- if (trimmed !== trimmed.toUpperCase()) return false;
41
- const normalized = trimmed.toUpperCase();
42
- if (!normalized) return false;
43
- if (normalized.length < 2) return false;
44
- if (/[^A-Z_]/.test(normalized)) return false;
45
- const tokenUpper = token.toUpperCase();
46
- if (!tokenUpper.startsWith(normalized)) return false;
47
- if (normalized.includes("_")) return true;
48
- return tokenUpper === SILENT_REPLY_TOKEN && normalized === "NO";
49
- }
50
-
51
- //#endregion
52
- export { stripSilentToken as a, isSilentReplyText as i, SILENT_REPLY_TOKEN as n, isSilentReplyPrefixText as r, HEARTBEAT_TOKEN as t };
@@ -1,274 +0,0 @@
1
- import { a as createSubsystemLogger } from "./logger-CZY9KIoY.js";
2
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-BSiMpAw4.js";
3
-
4
- //#region src/media/base64.ts
5
- function estimateBase64DecodedBytes(base64) {
6
- let effectiveLen = 0;
7
- for (let i = 0; i < base64.length; i += 1) {
8
- if (base64.charCodeAt(i) <= 32) continue;
9
- effectiveLen += 1;
10
- }
11
- if (effectiveLen === 0) return 0;
12
- let padding = 0;
13
- let end = base64.length - 1;
14
- while (end >= 0 && base64.charCodeAt(end) <= 32) end -= 1;
15
- if (end >= 0 && base64[end] === "=") {
16
- padding = 1;
17
- end -= 1;
18
- while (end >= 0 && base64.charCodeAt(end) <= 32) end -= 1;
19
- if (end >= 0 && base64[end] === "=") padding = 2;
20
- }
21
- const estimated = Math.floor(effectiveLen * 3 / 4) - padding;
22
- return Math.max(0, estimated);
23
- }
24
- const BASE64_CHARS_RE = /^[A-Za-z0-9+/]+={0,2}$/;
25
- /**
26
- * Normalize and validate a base64 string.
27
- * Returns canonical base64 (no whitespace) or undefined when invalid.
28
- */
29
- function canonicalizeBase64(base64) {
30
- const cleaned = base64.replace(/\s+/g, "");
31
- if (!cleaned || cleaned.length % 4 !== 0 || !BASE64_CHARS_RE.test(cleaned)) return;
32
- return cleaned;
33
- }
34
-
35
- //#endregion
36
- //#region src/agents/image-sanitization.ts
37
- const DEFAULT_IMAGE_MAX_DIMENSION_PX = 1200;
38
- const DEFAULT_IMAGE_MAX_BYTES = 5 * 1024 * 1024;
39
- function resolveImageSanitizationLimits(cfg) {
40
- const configured = cfg?.agents?.defaults?.imageMaxDimensionPx;
41
- if (typeof configured !== "number" || !Number.isFinite(configured)) return {};
42
- return { maxDimensionPx: Math.max(1, Math.floor(configured)) };
43
- }
44
-
45
- //#endregion
46
- //#region src/agents/tool-images.ts
47
- const MAX_IMAGE_DIMENSION_PX = DEFAULT_IMAGE_MAX_DIMENSION_PX;
48
- const MAX_IMAGE_BYTES = DEFAULT_IMAGE_MAX_BYTES;
49
- const log = createSubsystemLogger("agents/tool-images");
50
- function isImageBlock(block) {
51
- if (!block || typeof block !== "object") return false;
52
- const rec = block;
53
- return rec.type === "image" && typeof rec.data === "string" && typeof rec.mimeType === "string";
54
- }
55
- function isTextBlock(block) {
56
- if (!block || typeof block !== "object") return false;
57
- const rec = block;
58
- return rec.type === "text" && typeof rec.text === "string";
59
- }
60
- function inferMimeTypeFromBase64(base64) {
61
- const trimmed = base64.trim();
62
- if (!trimmed) return;
63
- if (trimmed.startsWith("/9j/")) return "image/jpeg";
64
- if (trimmed.startsWith("iVBOR")) return "image/png";
65
- if (trimmed.startsWith("R0lGOD")) return "image/gif";
66
- }
67
- function formatBytesShort(bytes) {
68
- if (!Number.isFinite(bytes) || bytes < 1024) return `${Math.max(0, Math.round(bytes))}B`;
69
- if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}KB`;
70
- return `${(bytes / (1024 * 1024)).toFixed(2)}MB`;
71
- }
72
- function parseMediaPathFromText(text) {
73
- for (const line of text.split(/\r?\n/u)) {
74
- const trimmed = line.trim();
75
- if (!trimmed.startsWith("MEDIA:")) continue;
76
- const raw = trimmed.slice(6).trim();
77
- if (!raw) continue;
78
- return (raw.match(/^`([^`]+)`$/u)?.[1] ?? raw).trim();
79
- }
80
- }
81
- function fileNameFromPathLike(pathLike) {
82
- const value = pathLike.trim();
83
- if (!value) return;
84
- try {
85
- const candidate = new URL(value).pathname.split("/").filter(Boolean).at(-1);
86
- return candidate && candidate.length > 0 ? candidate : void 0;
87
- } catch {}
88
- const candidate = value.replaceAll("\\", "/").split("/").filter(Boolean).at(-1);
89
- return candidate && candidate.length > 0 ? candidate : void 0;
90
- }
91
- function inferImageFileName(params) {
92
- const rec = params.block;
93
- for (const key of [
94
- "fileName",
95
- "filename",
96
- "path",
97
- "url"
98
- ]) {
99
- const raw = rec[key];
100
- if (typeof raw !== "string" || raw.trim().length === 0) continue;
101
- const candidate = fileNameFromPathLike(raw);
102
- if (candidate) return candidate;
103
- }
104
- if (typeof rec.name === "string" && rec.name.trim().length > 0) return rec.name.trim();
105
- if (params.mediaPathHint) {
106
- const candidate = fileNameFromPathLike(params.mediaPathHint);
107
- if (candidate) return candidate;
108
- }
109
- if (typeof params.label === "string" && params.label.startsWith("read:")) {
110
- const candidate = fileNameFromPathLike(params.label.slice(5));
111
- if (candidate) return candidate;
112
- }
113
- }
114
- async function resizeImageBase64IfNeeded(params) {
115
- const buf = Buffer.from(params.base64, "base64");
116
- const meta = await getImageMetadata(buf);
117
- const width = meta?.width;
118
- const height = meta?.height;
119
- const overBytes = buf.byteLength > params.maxBytes;
120
- const hasDimensions = typeof width === "number" && typeof height === "number";
121
- const overDimensions = hasDimensions && (width > params.maxDimensionPx || height > params.maxDimensionPx);
122
- if (hasDimensions && !overBytes && width <= params.maxDimensionPx && height <= params.maxDimensionPx) return {
123
- base64: params.base64,
124
- mimeType: params.mimeType,
125
- resized: false,
126
- width,
127
- height
128
- };
129
- const maxDim = hasDimensions ? Math.max(width ?? 0, height ?? 0) : params.maxDimensionPx;
130
- const sideStart = maxDim > 0 ? Math.min(params.maxDimensionPx, maxDim) : params.maxDimensionPx;
131
- const sideGrid = buildImageResizeSideGrid(params.maxDimensionPx, sideStart);
132
- let smallest = null;
133
- for (const side of sideGrid) for (const quality of IMAGE_REDUCE_QUALITY_STEPS) {
134
- const out = await resizeToJpeg({
135
- buffer: buf,
136
- maxSide: side,
137
- quality,
138
- withoutEnlargement: true
139
- });
140
- if (!smallest || out.byteLength < smallest.size) smallest = {
141
- buffer: out,
142
- size: out.byteLength
143
- };
144
- if (out.byteLength <= params.maxBytes) {
145
- const sourcePixels = typeof width === "number" && typeof height === "number" ? `${width}x${height}px` : "unknown";
146
- const sourceWithFile = params.fileName ? `${params.fileName} ${sourcePixels}` : sourcePixels;
147
- const byteReductionPct = buf.byteLength > 0 ? Number(((buf.byteLength - out.byteLength) / buf.byteLength * 100).toFixed(1)) : 0;
148
- log.info(`Image resized to fit limits: ${sourceWithFile} ${formatBytesShort(buf.byteLength)} -> ${formatBytesShort(out.byteLength)} (-${byteReductionPct}%)`, {
149
- label: params.label,
150
- fileName: params.fileName,
151
- sourceMimeType: params.mimeType,
152
- sourceWidth: width,
153
- sourceHeight: height,
154
- sourceBytes: buf.byteLength,
155
- maxBytes: params.maxBytes,
156
- maxDimensionPx: params.maxDimensionPx,
157
- triggerOverBytes: overBytes,
158
- triggerOverDimensions: overDimensions,
159
- outputMimeType: "image/jpeg",
160
- outputBytes: out.byteLength,
161
- outputQuality: quality,
162
- outputMaxSide: side,
163
- byteReductionPct
164
- });
165
- return {
166
- base64: out.toString("base64"),
167
- mimeType: "image/jpeg",
168
- resized: true,
169
- width,
170
- height
171
- };
172
- }
173
- }
174
- const best = smallest?.buffer ?? buf;
175
- const maxMb = (params.maxBytes / (1024 * 1024)).toFixed(0);
176
- const gotMb = (best.byteLength / (1024 * 1024)).toFixed(2);
177
- const sourcePixels = typeof width === "number" && typeof height === "number" ? `${width}x${height}px` : "unknown";
178
- const sourceWithFile = params.fileName ? `${params.fileName} ${sourcePixels}` : sourcePixels;
179
- log.warn(`Image resize failed to fit limits: ${sourceWithFile} best=${formatBytesShort(best.byteLength)} limit=${formatBytesShort(params.maxBytes)}`, {
180
- label: params.label,
181
- fileName: params.fileName,
182
- sourceMimeType: params.mimeType,
183
- sourceWidth: width,
184
- sourceHeight: height,
185
- sourceBytes: buf.byteLength,
186
- maxDimensionPx: params.maxDimensionPx,
187
- maxBytes: params.maxBytes,
188
- smallestCandidateBytes: best.byteLength,
189
- triggerOverBytes: overBytes,
190
- triggerOverDimensions: overDimensions
191
- });
192
- throw new Error(`Image could not be reduced below ${maxMb}MB (got ${gotMb}MB)`);
193
- }
194
- async function sanitizeContentBlocksImages(blocks, label, opts = {}) {
195
- const maxDimensionPx = Math.max(opts.maxDimensionPx ?? MAX_IMAGE_DIMENSION_PX, 1);
196
- const maxBytes = Math.max(opts.maxBytes ?? MAX_IMAGE_BYTES, 1);
197
- const out = [];
198
- let mediaPathHint;
199
- for (const block of blocks) {
200
- if (isTextBlock(block)) {
201
- const mediaPath = parseMediaPathFromText(block.text);
202
- if (mediaPath) mediaPathHint = mediaPath;
203
- }
204
- if (!isImageBlock(block)) {
205
- out.push(block);
206
- continue;
207
- }
208
- const data = block.data.trim();
209
- if (!data) {
210
- out.push({
211
- type: "text",
212
- text: `[${label}] omitted empty image payload`
213
- });
214
- continue;
215
- }
216
- const canonicalData = canonicalizeBase64(data);
217
- if (!canonicalData) {
218
- out.push({
219
- type: "text",
220
- text: `[${label}] omitted image payload: invalid base64`
221
- });
222
- continue;
223
- }
224
- try {
225
- const mimeType = inferMimeTypeFromBase64(canonicalData) ?? block.mimeType;
226
- const resized = await resizeImageBase64IfNeeded({
227
- base64: canonicalData,
228
- mimeType,
229
- maxDimensionPx,
230
- maxBytes,
231
- label,
232
- fileName: inferImageFileName({
233
- block,
234
- label,
235
- mediaPathHint
236
- })
237
- });
238
- out.push({
239
- ...block,
240
- data: resized.base64,
241
- mimeType: resized.resized ? resized.mimeType : mimeType
242
- });
243
- } catch (err) {
244
- out.push({
245
- type: "text",
246
- text: `[${label}] omitted image payload: ${String(err)}`
247
- });
248
- }
249
- }
250
- return out;
251
- }
252
- async function sanitizeImageBlocks(images, label, opts = {}) {
253
- if (images.length === 0) return {
254
- images,
255
- dropped: 0
256
- };
257
- const next = (await sanitizeContentBlocksImages(images, label, opts)).filter(isImageBlock);
258
- return {
259
- images: next,
260
- dropped: Math.max(0, images.length - next.length)
261
- };
262
- }
263
- async function sanitizeToolResultImages(result, label, opts = {}) {
264
- const content = Array.isArray(result.content) ? result.content : [];
265
- if (!content.some((b) => isImageBlock(b) || isTextBlock(b))) return result;
266
- const next = await sanitizeContentBlocksImages(content, label, opts);
267
- return {
268
- ...result,
269
- content: next
270
- };
271
- }
272
-
273
- //#endregion
274
- export { canonicalizeBase64 as a, resolveImageSanitizationLimits as i, sanitizeImageBlocks as n, estimateBase64DecodedBytes as o, sanitizeToolResultImages as r, sanitizeContentBlocksImages as t };
@@ -1,56 +0,0 @@
1
- import "./run-with-concurrency-Bt_ks0Qa.js";
2
- import { _ as webAuthExists, c as logWebSelfId, d as pickWebChannel, o as WA_WEB_AUTH_DIR } from "./accounts-DP1-L-QS.js";
3
- import "./reply-DAo_Jt8K.js";
4
- import "./paths-MKyEVmEb.js";
5
- import "./github-copilot-token-D5fdS6xD.js";
6
- import "./config-BkEnz2Po.js";
7
- import "./logger-CZY9KIoY.js";
8
- import "./thinking-Bo2eosVa.js";
9
- import "./image-ops-BSiMpAw4.js";
10
- import "./pi-embedded-helpers-1R1gu7eX.js";
11
- import "./plugins-DeBZB9l_.js";
12
- import "./accounts-CJWOBzwB.js";
13
- import "./accounts-DZhWlEg3.js";
14
- import "./send-DTB24bEF.js";
15
- import "./paths-vTM3Lh3X.js";
16
- import "./fetch-Bv4TQOMH.js";
17
- import "./redact-DjVX-1N3.js";
18
- import "./errors-DaiAM-yU.js";
19
- import "./channel-activity-F3d0yUwy.js";
20
- import "./path-alias-guards-DBjLbIX_.js";
21
- import "./fs-safe-B8y811FR.js";
22
- import "./ssrf-cFtplYtS.js";
23
- import "./fetch-guard-DETCcJzQ.js";
24
- import "./local-roots-BUP4YBmR.js";
25
- import "./ir-DQ7_HbvK.js";
26
- import "./render-HmipMDlP.js";
27
- import "./tables-C47P4GTN.js";
28
- import "./send-DfHadjZ_.js";
29
- import "./send-CQpMudwO.js";
30
- import "./tool-images-Gk_-0y2N.js";
31
- import "./target-errors-Blia4S69.js";
32
- import "./send-DQHLzVyO.js";
33
- import "./audio-transcription-runner-DkoPNPYt.js";
34
- import "./tokens-DgNRBwIg.js";
35
- import "./skill-commands-CkGeFUMl.js";
36
- import "./skills-CBkHBYPq.js";
37
- import "./chrome-BXoCyCkY.js";
38
- import "./deliver-B6AG_l67.js";
39
- import "./diagnostic-CsP-lEkI.js";
40
- import "./store-5nyxY3WU.js";
41
- import "./commands-registry-t7cXBTfN.js";
42
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-QF7EpjeP.js";
43
- import "./image-DjTEkYZE.js";
44
- import "./api-key-rotation-BRE4X2tf.js";
45
- import "./proxy-fetch-ChxOhWF4.js";
46
- import "./pi-model-discovery-v-XPUOOf.js";
47
- import "./send-XXlW2iny.js";
48
- import "./outbound-attachment-Dy6fyf6H.js";
49
- import "./proxy-BKdNrmWL.js";
50
- import "./manager-I6KbPihW.js";
51
- import "./query-expansion-CeyKUeDW.js";
52
- import { t as sendMessageWhatsApp } from "./outbound-NS6UHnB6.js";
53
- import { i as waitForWaConnection, t as createWaSocket } from "./session-6TF6MyaC.js";
54
- import { t as loginWeb } from "./login-BxEKLlCo.js";
55
-
56
- export { WA_WEB_AUTH_DIR, createWaSocket, logWebSelfId, loginWeb, monitorWebChannel, monitorWebInbox, pickWebChannel, sendMessageWhatsApp, waitForWaConnection, webAuthExists };
@@ -1,80 +0,0 @@
1
- import "./run-with-concurrency-Bt_ks0Qa.js";
2
- import { i as resolveWhatsAppAccount } from "./accounts-DP1-L-QS.js";
3
- import "./paths-MKyEVmEb.js";
4
- import "./github-copilot-token-D5fdS6xD.js";
5
- import "./config-BkEnz2Po.js";
6
- import "./logger-CZY9KIoY.js";
7
- import "./image-ops-BSiMpAw4.js";
8
- import "./plugins-DeBZB9l_.js";
9
- import "./path-alias-guards-DBjLbIX_.js";
10
- import "./fs-safe-B8y811FR.js";
11
- import "./ssrf-cFtplYtS.js";
12
- import "./fetch-guard-DETCcJzQ.js";
13
- import "./local-roots-BUP4YBmR.js";
14
- import "./ir-DQ7_HbvK.js";
15
- import "./render-HmipMDlP.js";
16
- import "./tables-C47P4GTN.js";
17
- import "./tool-images-Gk_-0y2N.js";
18
- import { f as readReactionParams, h as readStringParam, i as ToolAuthorizationError, l as jsonResult, o as createActionGate } from "./target-errors-Blia4S69.js";
19
- import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-B42qgQS9.js";
20
- import { r as sendReactionWhatsApp } from "./outbound-NS6UHnB6.js";
21
-
22
- //#region src/agents/tools/whatsapp-target-auth.ts
23
- function resolveAuthorizedWhatsAppOutboundTarget(params) {
24
- const account = resolveWhatsAppAccount({
25
- cfg: params.cfg,
26
- accountId: params.accountId
27
- });
28
- const resolution = resolveWhatsAppOutboundTarget({
29
- to: params.chatJid,
30
- allowFrom: account.allowFrom ?? [],
31
- mode: "implicit"
32
- });
33
- if (!resolution.ok) throw new ToolAuthorizationError(`WhatsApp ${params.actionLabel} blocked: chatJid "${params.chatJid}" is not in the configured allowFrom list for account "${account.accountId}".`);
34
- return {
35
- to: resolution.to,
36
- accountId: account.accountId
37
- };
38
- }
39
-
40
- //#endregion
41
- //#region src/agents/tools/whatsapp-actions.ts
42
- async function handleWhatsAppAction(params, cfg) {
43
- const action = readStringParam(params, "action", { required: true });
44
- const isActionEnabled = createActionGate(cfg.channels?.whatsapp?.actions);
45
- if (action === "react") {
46
- if (!isActionEnabled("reactions")) throw new Error("WhatsApp reactions are disabled.");
47
- const chatJid = readStringParam(params, "chatJid", { required: true });
48
- const messageId = readStringParam(params, "messageId", { required: true });
49
- const { emoji, remove, isEmpty } = readReactionParams(params, { removeErrorMessage: "Emoji is required to remove a WhatsApp reaction." });
50
- const participant = readStringParam(params, "participant");
51
- const accountId = readStringParam(params, "accountId");
52
- const fromMeRaw = params.fromMe;
53
- const fromMe = typeof fromMeRaw === "boolean" ? fromMeRaw : void 0;
54
- const resolved = resolveAuthorizedWhatsAppOutboundTarget({
55
- cfg,
56
- chatJid,
57
- accountId,
58
- actionLabel: "reaction"
59
- });
60
- const resolvedEmoji = remove ? "" : emoji;
61
- await sendReactionWhatsApp(resolved.to, messageId, resolvedEmoji, {
62
- verbose: false,
63
- fromMe,
64
- participant: participant ?? void 0,
65
- accountId: resolved.accountId
66
- });
67
- if (!remove && !isEmpty) return jsonResult({
68
- ok: true,
69
- added: emoji
70
- });
71
- return jsonResult({
72
- ok: true,
73
- removed: true
74
- });
75
- }
76
- throw new Error(`Unsupported WhatsApp action: ${action}`);
77
- }
78
-
79
- //#endregion
80
- export { handleWhatsAppAction };