squidclaw 3.0.13 → 3.0.14

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 (307) hide show
  1. package/dist/{accounts-PhtBJ8mA.js → accounts-BjEXPlGc.js} +1 -1
  2. package/dist/{accounts-Xp5W2xrR.js → accounts-CyBVeR-N.js} +1 -1
  3. package/dist/{accounts-BFC1okn9.js → accounts-D095MOmG.js} +7 -7
  4. package/dist/{acp-cli-Dt95OPXW.js → acp-cli-Dd2joFFS.js} +8 -8
  5. package/dist/{agent-scope-tUxfsPYq.js → agent-scope-C1XMay0T.js} +17 -17
  6. package/dist/{agents.config-DNPisWCH.js → agents.config-CRKsD30n.js} +2 -2
  7. package/dist/{api-key-rotation-Y59kKrr0.js → api-key-rotation-BcKKu9kK.js} +1 -1
  8. package/dist/{audio-preflight-DeBM0nTy.js → audio-preflight-g9rsstMv.js} +34 -34
  9. package/dist/{audio-transcription-runner-B7oPsr3U.js → audio-transcription-runner-Bnl3Ubjo.js} +23 -23
  10. package/dist/{audit-Bq3iosCf.js → audit-B4s_5Gn1.js} +29 -29
  11. package/dist/{auth-HYiP0mxx.js → auth-DHSeaNcB.js} +1 -1
  12. package/dist/{auth-choice-Du_pIfBh.js → auth-choice-C-7c5Td_.js} +13 -13
  13. package/dist/{auth-choice-CX8TDXmp.js → auth-choice-D7LiN5Ju.js} +11 -11
  14. package/dist/{auth-choice.apply-helpers-DRfHu1d8.js → auth-choice.apply-helpers-CxO2Wbq-.js} +1 -1
  15. package/dist/{auth-token-BQRI3c6e.js → auth-token-BxYYHBlc.js} +1 -1
  16. package/dist/{bonjour-discovery-BenDpM0y.js → bonjour-discovery-mtNewKSx.js} +1 -1
  17. package/dist/{browser-cli-Et8PyJjA.js → browser-cli-I1fzIVmS.js} +12 -12
  18. package/dist/build-info.json +2 -2
  19. package/dist/{call-DbkLm3eP.js → call-DkR5OGhh.js} +10 -10
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-account-context-C_WQRa6U.js → channel-account-context-e4ysObLI.js} +5 -5
  22. package/dist/{channel-activity-7kixHIgY.js → channel-activity-CCjlTlcN.js} +1 -1
  23. package/dist/{channel-options-D0TjqxeO.js → channel-options-BL5mHe-R.js} +3 -3
  24. package/dist/{channel-selection-BwbXcgj2.js → channel-selection-D_20zq3H.js} +1 -1
  25. package/dist/{channel-web-lfZ3VOOl.js → channel-web-C7Iij0H0.js} +16 -16
  26. package/dist/{channels-cli-Hr4vekE6.js → channels-cli-BMiEn81Y.js} +92 -92
  27. package/dist/{channels-status-issues-DeoqSoo-.js → channels-status-issues-N9kzQrD8.js} +1 -1
  28. package/dist/{chrome-gIqO4t7T.js → chrome-BNfSmFAM.js} +4 -4
  29. package/dist/{clawbot-cli-C-jGxnTq.js → clawbot-cli-B6-68gsT.js} +11 -11
  30. package/dist/cli/daemon-cli.js +1 -1
  31. package/dist/{cli-BH62lCfL.js → cli-ByaubO_B.js} +72 -72
  32. package/dist/{client-CeaUCJtL.js → client-BURktNyH.js} +2 -2
  33. package/dist/{command-secret-targets-BF4WzaME.js → command-secret-targets-WwcPUFAf.js} +4 -4
  34. package/dist/{commands-CD6EMOiw.js → commands-CiY9HjRt.js} +1 -1
  35. package/dist/{commands-registry-DCUj1QOi.js → commands-registry-0bpX7A_Q.js} +3 -3
  36. package/dist/{completion-cli-BIY_jjYY.js → completion-cli-8PdK97J-.js} +12 -12
  37. package/dist/{config-cli-DvNViMXW.js → config-cli-ClomIMw7.js} +7 -7
  38. package/dist/{config-guard-DwgnWjmj.js → config-guard-rLrk7eSS.js} +16 -16
  39. package/dist/{config-validation-CcqZ--gE.js → config-validation-BQEaXMk7.js} +3 -3
  40. package/dist/{configure-B5Zuhebc.js → configure-CoXGul3l.js} +17 -17
  41. package/dist/{control-ui-assets-x69xyZH-.js → control-ui-assets-Bz7TCLpb.js} +1 -1
  42. package/dist/{cron-cli-Bv-X4msQ.js → cron-cli-C3iKBccc.js} +11 -11
  43. package/dist/{daemon-cli-B-8-rGND.js → daemon-cli-BVcrlw5o.js} +15 -15
  44. package/dist/{daemon-install-2y4HHhYl.js → daemon-install-CXDWHEEO.js} +4 -4
  45. package/dist/{daemon-install-helpers-Cdo6Pryw.js → daemon-install-helpers-a4pGEsbA.js} +11 -11
  46. package/dist/{deliver-CVl43oM1.js → deliver-B1sllFkh.js} +7 -7
  47. package/dist/deliver-runtime-CaV7seKv.js +61 -0
  48. package/dist/deps-send-discord.runtime-DbS5pxta.js +36 -0
  49. package/dist/deps-send-imessage.runtime-Ji753_F7.js +35 -0
  50. package/dist/deps-send-signal.runtime-DLJqvPLf.js +34 -0
  51. package/dist/deps-send-slack.runtime-DrFxeZ1I.js +32 -0
  52. package/dist/{deps-send-telegram.runtime-C9lz8bf0.js → deps-send-telegram.runtime-CF-Ylrvr.js} +16 -16
  53. package/dist/deps-send-whatsapp.runtime-BOE0Ke6v.js +118 -0
  54. package/dist/{devices-cli-BT8K0hdG.js → devices-cli-Dn_norz3.js} +8 -8
  55. package/dist/{diagnostic-5bqrhGEp.js → diagnostic-CNl71AzW.js} +1 -1
  56. package/dist/{diagnostics-C0CazfQM.js → diagnostics-DZ99A0EW.js} +5 -5
  57. package/dist/{directory-cli-BZcT9ie1.js → directory-cli-ZzwXkW89.js} +7 -7
  58. package/dist/{dns-cli-CPYaeASu.js → dns-cli-DipYQjtY.js} +5 -5
  59. package/dist/{dock-CVTqzMqE.js → dock-C7N1CmcP.js} +4 -4
  60. package/dist/{docs-cli-C50vGyDh.js → docs-cli-C-Izm9Tb.js} +4 -4
  61. package/dist/{doctor-completion-Emprau8v.js → doctor-completion-CGmYWy0n.js} +2 -2
  62. package/dist/{doctor-config-flow-DSA-JE3n.js → doctor-config-flow-DDWA3Z2D.js} +15 -15
  63. package/dist/{enable-CAYj5OhY.js → enable-RJyJVP_B.js} +1 -1
  64. package/dist/{exec-approvals-allowlist-BO4EEQUI.js → exec-approvals-allowlist-Bu_oaDJC.js} +1 -1
  65. package/dist/{exec-approvals-cli-DSOHdWJR.js → exec-approvals-cli-Csducy9L.js} +16 -16
  66. package/dist/{exec-safe-bin-runtime-policy-CSnpe1AT.js → exec-safe-bin-runtime-policy-DRQwt8kj.js} +2 -2
  67. package/dist/{fetch-guard-VcWeni3c.js → fetch-guard-DNykKlIv.js} +1 -1
  68. package/dist/{fs-safe-CjHYKGbt.js → fs-safe-CKHYu4Vz.js} +24 -24
  69. package/dist/{gateway-cli-B2fScwuY.js → gateway-cli-CUph5Eqo.js} +152 -152
  70. package/dist/{gateway-rpc-DpqZnhyz.js → gateway-rpc-DoKw40aG.js} +1 -1
  71. package/dist/{health-BZcB9SMe.js → health-Cia3g9r1.js} +11 -11
  72. package/dist/{hooks-cli-BylHgZ52.js → hooks-cli-LDbU3XMU.js} +80 -80
  73. package/dist/{hooks-status-DqGd74DG.js → hooks-status-Dd_iWcBZ.js} +1 -1
  74. package/dist/{image-CulZw1up.js → image-D2a7rcK1.js} +5 -5
  75. package/dist/{image-ops-BpsIdA2j.js → image-ops-BIWika4g.js} +10 -10
  76. package/dist/image-runtime-DTxVPe7Z.js +55 -0
  77. package/dist/index.js +82 -82
  78. package/dist/{inspect-D5T8Bbzl.js → inspect-C3PHuODr.js} +4 -4
  79. package/dist/{install-safe-path-BoN-MLvX.js → install-safe-path-iCmVuopp.js} +25 -25
  80. package/dist/{installs-CPHMcmNj.js → installs-CyjlehlR.js} +9 -9
  81. package/dist/{ipv4-Bwl9ruCP.js → ipv4-CWVOQw5T.js} +1 -1
  82. package/dist/{ir-xnftdkOo.js → ir-BPM7rQYq.js} +8 -8
  83. package/dist/{issue-format-8t_ncgFx.js → issue-format-sA05c-6t.js} +1 -1
  84. package/dist/{json-files-DIEpaxUj.js → json-files-D6M304Qd.js} +8 -8
  85. package/dist/{lifecycle-core-DKiBjZdv.js → lifecycle-core-DsfZ6965.js} +5 -5
  86. package/dist/{local-roots-BrxGyJnb.js → local-roots-CMxJ8L4w.js} +3 -3
  87. package/dist/{login-CxDYXbgx.js → login-BjtBaVVG.js} +3 -3
  88. package/dist/{login-qr-zf4B1lpU.js → login-qr-JfRlpd7I.js} +6 -6
  89. package/dist/{logs-cli-CJAe1_dv.js → logs-cli-gv2Ql7GE.js} +9 -9
  90. package/dist/{manager-DBgRFvYb.js → manager-XeZQ6ws7.js} +14 -14
  91. package/dist/{manager-runtime-Dl31cGh-.js → manager-runtime-BvGqzQIY.js} +9 -9
  92. package/dist/{manifest-registry-Cx3mB9zS.js → manifest-registry-BaUPjNKb.js} +1 -1
  93. package/dist/{memory-cli-Bhoc-n_1.js → memory-cli-BUJHSsW6.js} +12 -12
  94. package/dist/{model-DYzjrxpA.js → model-Jy6fO59G.js} +2 -2
  95. package/dist/{model-catalog-kpDOW8eY.js → model-catalog-BfoWgIDd.js} +3 -3
  96. package/dist/{model-picker-BZwK54QT.js → model-picker-CxmHVCE1.js} +4 -4
  97. package/dist/{model-selection-ZV3PuYVR.js → model-selection-QgM_TOjC.js} +16 -16
  98. package/dist/{models-cli-BIxlIOFr.js → models-cli-DlbNL6it.js} +81 -81
  99. package/dist/{models-config-BLdDYoxi.js → models-config-DOD5jluc.js} +6 -6
  100. package/dist/{node-cli-6uYJccbd.js → node-cli-uJ5lFzxj.js} +33 -33
  101. package/dist/{node-command-policy-CKTXVa3D.js → node-command-policy-CwVo8Z1X.js} +1 -1
  102. package/dist/{node-service-DGPVb5ri.js → node-service-xGYkt3vb.js} +1 -1
  103. package/dist/{nodes-cli-CXLRfAYx.js → nodes-cli-eauCMbSr.js} +16 -16
  104. package/dist/{nodes-screen-C-tuRhA1.js → nodes-screen-iR_FzGNs.js} +7 -7
  105. package/dist/{npm-pack-install-DgSn7djE.js → npm-pack-install-s-mP9K0z.js} +18 -18
  106. package/dist/{npm-resolution-gw3vFNTB.js → npm-resolution-Ck7yFIM2.js} +4 -4
  107. package/dist/{onboard-CCaYDSO2.js → onboard-aISMp4Kt.js} +6 -6
  108. package/dist/{onboard-channels-DQnP5d3Y.js → onboard-channels-CELkEQUS.js} +21 -21
  109. package/dist/{onboard-custom-CJohrPzT.js → onboard-custom-BmAzWYbD.js} +4 -4
  110. package/dist/{onboard-helpers-Bcs_1b81.js → onboard-helpers-DRk4Y5uA.js} +10 -10
  111. package/dist/{onboard-hooks-A23nqe_3.js → onboard-hooks-lk1sMnDf.js} +4 -4
  112. package/dist/{onboard-remote-Hf9sTDHl.js → onboard-remote-Bj9cR8kF.js} +4 -4
  113. package/dist/{onboard-skills-Cpc8o6sG.js → onboard-skills-eRpyQ1la.js} +4 -4
  114. package/dist/{onboarding-wx00blu5.js → onboarding-Bl4RDn6W.js} +14 -14
  115. package/dist/{onboarding.finalize-B8wqvggG.js → onboarding.finalize-Bm7_INHb.js} +85 -85
  116. package/dist/{onboarding.gateway-config-CvWq5i_X.js → onboarding.gateway-config-BPyk6gwr.js} +18 -18
  117. package/dist/{onboarding.secret-input-CIN4p8mg.js → onboarding.secret-input-DlDt-I2O.js} +1 -1
  118. package/dist/{openai-model-default-BYfJa19m.js → openai-model-default-DnYP1Em1.js} +2 -2
  119. package/dist/{outbound-B3RZI-ai.js → outbound-BQtnr_z2.js} +3 -3
  120. package/dist/{outbound-attachment-BATDqOuj.js → outbound-attachment-WnXMTJC4.js} +2 -2
  121. package/dist/{pairing-cli-FMIw0yL6.js → pairing-cli-BsU-YnVT.js} +8 -8
  122. package/dist/{pairing-labels-MH31IXn_.js → pairing-labels-BXfoinTP.js} +1 -1
  123. package/dist/{pairing-store-KII9MIZX.js → pairing-store-C1FvWpDK.js} +3 -3
  124. package/dist/{path-alias-guards-B7H6jIIw.js → path-alias-guards-CCRXJArp.js} +3 -3
  125. package/dist/{path-safety-3wUzDqI9.js → path-safety-BWiXz6D4.js} +1 -1
  126. package/dist/{paths-BguvT84s.js → paths-Bg6h1q3v.js} +9 -9
  127. package/dist/{pi-embedded-helpers-D8WkqLZt.js → pi-embedded-helpers-DctimJJI.js} +6 -6
  128. package/dist/{pi-model-discovery-Bfyzj3Lq.js → pi-model-discovery-D63dINOn.js} +1 -1
  129. package/dist/{pi-model-discovery-runtime-nh-zh_Bp.js → pi-model-discovery-runtime-CcXGQcru.js} +5 -5
  130. package/dist/{pi-tools.before-tool-call.runtime-D4V6gUzq.js → pi-tools.before-tool-call.runtime-BMb_b90y.js} +5 -5
  131. package/dist/{pi-tools.policy-DCE9mhtw.js → pi-tools.policy-CXvZtJB7.js} +5 -5
  132. package/dist/{plugin-auto-enable-BJw5Rcbx.js → plugin-auto-enable-DMABTEO-.js} +3 -3
  133. package/dist/{plugin-registry-V0H8DaZf.js → plugin-registry-BSlUIHKX.js} +3 -3
  134. package/dist/plugin-sdk/accounts-B6gye1Jd.js +46 -0
  135. package/dist/plugin-sdk/accounts-C-BT6Po7.js +288 -0
  136. package/dist/plugin-sdk/accounts-DQDXV8eB.js +35 -0
  137. package/dist/plugin-sdk/active-listener-DZCohPuZ.js +50 -0
  138. package/dist/plugin-sdk/api-key-rotation-CrX0fvDj.js +181 -0
  139. package/dist/plugin-sdk/audio-preflight-xnWAFqH-.js +69 -0
  140. package/dist/plugin-sdk/audio-transcription-runner-BDmtq7-q.js +2176 -0
  141. package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +58 -0
  142. package/dist/plugin-sdk/channel-activity-JjLRpUa_.js +94 -0
  143. package/dist/plugin-sdk/channel-web-DNWsxhYh.js +2256 -0
  144. package/dist/plugin-sdk/chrome-B5PWOUbr.js +2415 -0
  145. package/dist/plugin-sdk/commands-registry-BKeyJUxK.js +1125 -0
  146. package/dist/plugin-sdk/config-FhBFLsNm.js +17911 -0
  147. package/dist/plugin-sdk/deliver-DEbTlzFy.js +1694 -0
  148. package/dist/plugin-sdk/deliver-runtime-CO2uP-r9.js +32 -0
  149. package/dist/plugin-sdk/deps-send-discord.runtime-DIPW0tR4.js +23 -0
  150. package/dist/plugin-sdk/deps-send-imessage.runtime-ByGjRa1H.js +22 -0
  151. package/dist/plugin-sdk/deps-send-signal.runtime-Ca1awu4L.js +21 -0
  152. package/dist/plugin-sdk/deps-send-slack.runtime-CRzWCVkC.js +19 -0
  153. package/dist/plugin-sdk/deps-send-telegram.runtime-BWyavKp9.js +24 -0
  154. package/dist/plugin-sdk/deps-send-whatsapp.runtime-cC_XvHV8.js +57 -0
  155. package/dist/plugin-sdk/diagnostic-Dv9S12vm.js +319 -0
  156. package/dist/plugin-sdk/errors-B8oJXuCF.js +54 -0
  157. package/dist/plugin-sdk/fetch-guard-W_A4uSz2.js +156 -0
  158. package/dist/plugin-sdk/fs-safe-Dqmpk-Fr.js +352 -0
  159. package/dist/plugin-sdk/image-BSFy8d1M.js +2310 -0
  160. package/dist/plugin-sdk/image-ops-DN17S88I.js +584 -0
  161. package/dist/plugin-sdk/image-runtime-5YO31sjU.js +25 -0
  162. package/dist/plugin-sdk/imessage.js +2 -2
  163. package/dist/plugin-sdk/index.js +50 -50
  164. package/dist/plugin-sdk/ir-JaPZ0yKH.js +1296 -0
  165. package/dist/plugin-sdk/local-roots-BTW3ifco.js +186 -0
  166. package/dist/plugin-sdk/logger-DDdrdbDu.js +1163 -0
  167. package/dist/plugin-sdk/login-BXGRny-S.js +57 -0
  168. package/dist/plugin-sdk/login-qr-DTs92ap8.js +320 -0
  169. package/dist/plugin-sdk/manager-DzFj9oHX.js +3917 -0
  170. package/dist/plugin-sdk/manager-runtime-DrpyZvO0.js +15 -0
  171. package/dist/plugin-sdk/mattermost.js +3 -3
  172. package/dist/plugin-sdk/outbound-CQ7uBBML.js +212 -0
  173. package/dist/plugin-sdk/outbound-attachment-dTE6EVdX.js +19 -0
  174. package/dist/plugin-sdk/path-alias-guards-gBhrAn14.js +43 -0
  175. package/dist/plugin-sdk/paths-C6W4VHoa.js +166 -0
  176. package/dist/plugin-sdk/pi-embedded-helpers-CfzQPXDC.js +9627 -0
  177. package/dist/plugin-sdk/pi-model-discovery-Bt6B0MAj.js +134 -0
  178. package/dist/plugin-sdk/pi-model-discovery-runtime-BcgXpTmL.js +8 -0
  179. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DYJQxhuo.js +354 -0
  180. package/dist/plugin-sdk/plugins-6NxPd6TS.js +864 -0
  181. package/dist/plugin-sdk/proxy-fetch-ZPEvp58f.js +38 -0
  182. package/dist/plugin-sdk/pw-ai-BFK39pwE.js +1938 -0
  183. package/dist/plugin-sdk/qmd-manager-6bozlfFg.js +1448 -0
  184. package/dist/plugin-sdk/query-expansion-eeVz_aEm.js +1011 -0
  185. package/dist/plugin-sdk/redact-BoNEjbpF.js +319 -0
  186. package/dist/plugin-sdk/reply-DgcrQBKL.js +98828 -0
  187. package/dist/plugin-sdk/resolve-outbound-target-CbaJ-kc2.js +40 -0
  188. package/dist/plugin-sdk/run-with-concurrency-5DMu9szx.js +1994 -0
  189. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-jkgyeVsN.js +10 -0
  190. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DdLJJ1YC.js +19 -0
  191. package/dist/plugin-sdk/send-BSoMbeqA.js +3135 -0
  192. package/dist/plugin-sdk/send-Byyfc20_.js +503 -0
  193. package/dist/plugin-sdk/send-CI-xWEs7.js +2587 -0
  194. package/dist/plugin-sdk/send-DzP9EJqK.js +540 -0
  195. package/dist/plugin-sdk/send-MlSZ82sA.js +414 -0
  196. package/dist/plugin-sdk/session-DFy97tfW.js +169 -0
  197. package/dist/plugin-sdk/signal.js +2 -2
  198. package/dist/plugin-sdk/skill-commands-yum46YuA.js +342 -0
  199. package/dist/plugin-sdk/skills-DUphJGKn.js +1428 -0
  200. package/dist/plugin-sdk/slash-commands.runtime-5UW5KLyR.js +13 -0
  201. package/dist/plugin-sdk/slash-dispatch.runtime-4oQ2P_qo.js +52 -0
  202. package/dist/plugin-sdk/slash-skill-commands.runtime-y_mOLyS7.js +16 -0
  203. package/dist/plugin-sdk/ssrf-B3XRWBsP.js +202 -0
  204. package/dist/plugin-sdk/store-DFvIhzWZ.js +81 -0
  205. package/dist/plugin-sdk/subagent-registry-runtime-DtKXhKtl.js +52 -0
  206. package/dist/plugin-sdk/tables-bDM_jlLP.js +55 -0
  207. package/dist/{target-errors-DlzVutaL.js → plugin-sdk/target-errors-BVBW25Y3.js} +4 -4
  208. package/dist/plugin-sdk/thinking-Bu-w5mW5.js +1206 -0
  209. package/dist/plugin-sdk/tokens-CTIYTLWu.js +52 -0
  210. package/dist/plugin-sdk/tool-images-D0G_giwP.js +274 -0
  211. package/dist/plugin-sdk/web-DSXk7XCb.js +56 -0
  212. package/dist/plugin-sdk/whatsapp-actions-BOyA0Uuj.js +80 -0
  213. package/dist/{plugins-Cl_3OCyK.js → plugins-H53_4Gxb.js} +2 -2
  214. package/dist/{plugins-cli-CN2fty5U.js → plugins-cli-CQkxWdnt.js} +82 -82
  215. package/dist/{ports-Bop51hz6.js → ports-CKXuQJST.js} +2 -2
  216. package/dist/{ports-6i8smH3e.js → ports-CXjhFS7T.js} +1 -1
  217. package/dist/{program-context-ehHvCw9L.js → program-context-tphS7xu7.js} +41 -41
  218. package/dist/{prompt-select-styled-CSMviLJY.js → prompt-select-styled-DL2p1pfi.js} +40 -40
  219. package/dist/{provider-auth-helpers-CgNWlsqs.js → provider-auth-helpers-BqWiy-r-.js} +5 -5
  220. package/dist/{proxy-env-CRD7fbqp.js → proxy-env-D1tz4Z6a.js} +1 -1
  221. package/dist/{push-apns-DoYzx3tH.js → push-apns-C-YdARdy.js} +5 -5
  222. package/dist/{pw-ai-yKJj32B4.js → pw-ai-SVeR5d2o.js} +18 -18
  223. package/dist/{qmd-manager-AYDUTXmc.js → qmd-manager-B-XXhWVw.js} +20 -20
  224. package/dist/{qr-cli-cikAHfYn.js → qr-cli-B4fjHvn1.js} +2 -2
  225. package/dist/{query-expansion-CV2Z4_mS.js → query-expansion-Bf60ekMj.js} +12 -12
  226. package/dist/{redact-snapshot-C9T1079O.js → redact-snapshot-DRqM8Vla.js} +1 -1
  227. package/dist/{register.agent-BlxoyQt0.js → register.agent-BdiM0qkl.js} +97 -97
  228. package/dist/register.configure-wANXDbzQ.js +164 -0
  229. package/dist/{register.maintenance-C-Yv2mHK.js → register.maintenance-CMAt3Nl8.js} +93 -93
  230. package/dist/{register.message-CUNXtFOj.js → register.message-CbxQ5lgi.js} +73 -73
  231. package/dist/{register.onboard-BKXm1mL7.js → register.onboard-CbiTdKQX.js} +18 -18
  232. package/dist/{register.setup-DaT9AIAz.js → register.setup-KhsHMx2v.js} +21 -21
  233. package/dist/{register.status-health-sessions-7yZmSvUL.js → register.status-health-sessions-Bw5YDa_s.js} +86 -86
  234. package/dist/{reply-CeUYZhWu.js → reply-BWXzPVSJ.js} +149 -149
  235. package/dist/{rpc-BDpuIniF.js → rpc-DlN_W_L1.js} +1 -1
  236. package/dist/{runtime-Dw7Yw4OJ.js → runtime-Ci7mtLvH.js} +3 -3
  237. package/dist/{runtime-config-collectors-jhc1wDBg.js → runtime-config-collectors-CKmGmTQ5.js} +1 -1
  238. package/dist/{runtime-whatsapp-login.runtime-f293Z_er.js → runtime-whatsapp-login.runtime-Bxqt5jiO.js} +7 -7
  239. package/dist/runtime-whatsapp-outbound.runtime-B-UsXwvb.js +32 -0
  240. package/dist/{sandbox-BgsD1lf7.js → sandbox-Cuk1IWYT.js} +18 -18
  241. package/dist/{sandbox-cli-BnvmhiN9.js → sandbox-cli-BxgFeoAD.js} +25 -25
  242. package/dist/{secrets-cli-D7-K7P82.js → secrets-cli-DODLX29x.js} +11 -11
  243. package/dist/{security-cli-BFJAgNYH.js → security-cli-Ch83VrLP.js} +42 -42
  244. package/dist/{send-BvlkshC1.js → send-BfVgGHK6.js} +6 -6
  245. package/dist/{send-tK0H9nwq.js → send-Bw8LNCit.js} +5 -5
  246. package/dist/{send-CDms2FQA.js → send-C9UJKBSM.js} +4 -4
  247. package/dist/{send-CPFNtAP8.js → send-DX_fR45p.js} +11 -11
  248. package/dist/{send-C3Aeswif.js → send-FTQaNJPj.js} +8 -8
  249. package/dist/{server-OfKJG6Bo.js → server-Q9nnn04D.js} +20 -20
  250. package/dist/{server-context-B-0KzcZE.js → server-context-CX28l04l.js} +12 -12
  251. package/dist/{server-lifecycle-D6VNKVvQ.js → server-lifecycle-yAUMTJhv.js} +2 -2
  252. package/dist/{server-middleware-7cXowO4W.js → server-middleware-DIc4WJOS.js} +1 -1
  253. package/dist/{server-node-events-DWQhNK-0.js → server-node-events-qU3NTncQ.js} +73 -73
  254. package/dist/{service-Dk-UMipf.js → service-D4y0_Q5Z.js} +15 -15
  255. package/dist/{session-Da18ilJ0.js → session-CZJ5Ux6-.js} +1 -1
  256. package/dist/{sessions-CmjcNTJ3.js → sessions-C5H_BZSr.js} +15 -15
  257. package/dist/{shared-BzY0v0tS.js → shared-CxdBWgym.js} +3 -3
  258. package/dist/{shared-BcB-feC8.js → shared-DwNtcoQg.js} +1 -1
  259. package/dist/{skill-commands-BEWkEml_.js → skill-commands-BSRPnzXp.js} +5 -5
  260. package/dist/{skill-scanner-Bb5SMbCz.js → skill-scanner-rdr9cQew.js} +6 -6
  261. package/dist/{skills-Rnr7zPen.js → skills-BnBOxX1c.js} +3 -3
  262. package/dist/{skills-cli-BowIIIzH.js → skills-cli-CUgeYV1y.js} +5 -5
  263. package/dist/{skills-install-BLNCKuex.js → skills-install-BE04CZ6e.js} +6 -6
  264. package/dist/{skills-status-BCU-5otB.js → skills-status-DQw98BkG.js} +1 -1
  265. package/dist/{slash-commands.runtime-BgVgQ-Eh.js → slash-commands.runtime-BPtL2Qev.js} +11 -11
  266. package/dist/slash-dispatch.runtime-Cf9dq1k6.js +113 -0
  267. package/dist/{slash-skill-commands.runtime-4dOiU6U0.js → slash-skill-commands.runtime-9BYoANpd.js} +15 -15
  268. package/dist/{squidclaw-root-BcB7vo9M.js → squidclaw-root-CnE19yKj.js} +8 -8
  269. package/dist/{status-COTRBaam.js → status-rb5Jz-VU.js} +26 -26
  270. package/dist/{status.update-BUql4yz-.js → status.update-BNODJGA9.js} +2 -2
  271. package/dist/{store-aa15VM42.js → store-PDMRmC5Z.js} +5 -5
  272. package/dist/subagent-registry-runtime-CTiA365B.js +113 -0
  273. package/dist/{system-cli-CgCUbH_M.js → system-cli-DJYyTO07.js} +9 -9
  274. package/dist/{system-run-command-Ny1SbbOD.js → system-run-command-BgnCyvrj.js} +1 -1
  275. package/dist/{systemd-zbKl2Q3E.js → systemd-fP8tz4aL.js} +9 -9
  276. package/dist/{systemd-hints-C9_7ouv7.js → systemd-hints-BG_t__ZD.js} +6 -6
  277. package/dist/{systemd-linger-BM6JyzAr.js → systemd-linger-DgK8uuKY.js} +1 -1
  278. package/dist/{tables-jZMI8hLl.js → tables-DUSFF9-W.js} +1 -1
  279. package/dist/{tailnet-gTCqUBfJ.js → tailnet-CLkKVwDq.js} +1 -1
  280. package/dist/target-errors-BxwxgIDk.js +195 -0
  281. package/dist/{tool-images-DTl_LHMa.js → tool-images-FhSCiY-o.js} +1 -1
  282. package/dist/{tui-kDK-MAOc.js → tui-BMOMT-ma.js} +6 -6
  283. package/dist/{tui-cli-Dxy6fKkU.js → tui-cli-kqZ_-2Mz.js} +32 -32
  284. package/dist/{update-ZUTn6Jsu.js → update-blK9j2ag.js} +3 -3
  285. package/dist/{update-cli-D_QEiKyz.js → update-cli-gLKrP8UQ.js} +102 -102
  286. package/dist/{update-runner-DOXPSA_-.js → update-runner-C2UrF4oZ.js} +16 -16
  287. package/dist/web-VmjeceHS.js +117 -0
  288. package/dist/{webhooks-cli-D1iehjkP.js → webhooks-cli-BEXPBILa.js} +6 -6
  289. package/dist/{whatsapp-actions-hN5bwjWU.js → whatsapp-actions-DhiV181U.js} +17 -17
  290. package/dist/{with-timeout-BjaANd4G.js → with-timeout-BCAfkt03.js} +3 -3
  291. package/dist/{workspace-BITWyKG4.js → workspace-B-k5DNiQ.js} +1 -1
  292. package/dist/{workspace-dirs-B7O9BAHp.js → workspace-dirs-B2dNahfe.js} +1 -1
  293. package/dist/{ws-Bx8lpC1N.js → ws-DKt5HoA5.js} +2 -2
  294. package/dist/{wsl-wYxPJ8EO.js → wsl-CgxzAzRe.js} +2 -2
  295. package/package.json +1 -1
  296. package/dist/deliver-runtime-uwleBPlq.js +0 -61
  297. package/dist/deps-send-discord.runtime-CuZGpA7H.js +0 -36
  298. package/dist/deps-send-imessage.runtime-ByVW2alP.js +0 -35
  299. package/dist/deps-send-signal.runtime-Dl4GaCbQ.js +0 -34
  300. package/dist/deps-send-slack.runtime-BEV10FHj.js +0 -32
  301. package/dist/deps-send-whatsapp.runtime-Di0SEPNK.js +0 -118
  302. package/dist/image-runtime-B5Q4J9w2.js +0 -55
  303. package/dist/register.configure-CGptmTVZ.js +0 -164
  304. package/dist/runtime-whatsapp-outbound.runtime-uDhEmWe1.js +0 -32
  305. package/dist/slash-dispatch.runtime-D83FVeU7.js +0 -113
  306. package/dist/subagent-registry-runtime-CrT5RSO9.js +0 -113
  307. package/dist/web-DtSq_aUB.js +0 -117
@@ -0,0 +1,52 @@
1
+ import { _ as escapeRegExp } from "./logger-DDdrdbDu.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 };
@@ -0,0 +1,274 @@
1
+ import { a as createSubsystemLogger } from "./logger-DDdrdbDu.js";
2
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-DN17S88I.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 };
@@ -0,0 +1,56 @@
1
+ import "./run-with-concurrency-5DMu9szx.js";
2
+ import { _ as webAuthExists, c as logWebSelfId, d as pickWebChannel, o as WA_WEB_AUTH_DIR } from "./accounts-C-BT6Po7.js";
3
+ import "./reply-DgcrQBKL.js";
4
+ import "./paths-8xF5kDne.js";
5
+ import "./github-copilot-token-Dy-0-Kh3.js";
6
+ import "./config-FhBFLsNm.js";
7
+ import "./logger-DDdrdbDu.js";
8
+ import "./thinking-Bu-w5mW5.js";
9
+ import "./image-ops-DN17S88I.js";
10
+ import "./pi-embedded-helpers-CfzQPXDC.js";
11
+ import "./plugins-6NxPd6TS.js";
12
+ import "./accounts-DQDXV8eB.js";
13
+ import "./accounts-B6gye1Jd.js";
14
+ import "./send-BSoMbeqA.js";
15
+ import "./paths-C6W4VHoa.js";
16
+ import "./fetch-B_RcOnt9.js";
17
+ import "./redact-BoNEjbpF.js";
18
+ import "./errors-B8oJXuCF.js";
19
+ import "./channel-activity-JjLRpUa_.js";
20
+ import "./path-alias-guards-gBhrAn14.js";
21
+ import "./fs-safe-Dqmpk-Fr.js";
22
+ import "./ssrf-B3XRWBsP.js";
23
+ import "./fetch-guard-W_A4uSz2.js";
24
+ import "./local-roots-BTW3ifco.js";
25
+ import "./ir-JaPZ0yKH.js";
26
+ import "./render-HmipMDlP.js";
27
+ import "./tables-bDM_jlLP.js";
28
+ import "./send-Byyfc20_.js";
29
+ import "./send-CI-xWEs7.js";
30
+ import "./tool-images-D0G_giwP.js";
31
+ import "./target-errors-BVBW25Y3.js";
32
+ import "./send-MlSZ82sA.js";
33
+ import "./audio-transcription-runner-BDmtq7-q.js";
34
+ import "./tokens-CTIYTLWu.js";
35
+ import "./skill-commands-yum46YuA.js";
36
+ import "./skills-DUphJGKn.js";
37
+ import "./chrome-B5PWOUbr.js";
38
+ import "./deliver-DEbTlzFy.js";
39
+ import "./diagnostic-Dv9S12vm.js";
40
+ import "./store-DFvIhzWZ.js";
41
+ import "./commands-registry-BKeyJUxK.js";
42
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-DNWsxhYh.js";
43
+ import "./image-BSFy8d1M.js";
44
+ import "./api-key-rotation-CrX0fvDj.js";
45
+ import "./proxy-fetch-ZPEvp58f.js";
46
+ import "./pi-model-discovery-Bt6B0MAj.js";
47
+ import "./send-DzP9EJqK.js";
48
+ import "./outbound-attachment-dTE6EVdX.js";
49
+ import "./proxy-BKdNrmWL.js";
50
+ import "./manager-DzFj9oHX.js";
51
+ import "./query-expansion-eeVz_aEm.js";
52
+ import { t as sendMessageWhatsApp } from "./outbound-CQ7uBBML.js";
53
+ import { i as waitForWaConnection, t as createWaSocket } from "./session-DFy97tfW.js";
54
+ import { t as loginWeb } from "./login-BXGRny-S.js";
55
+
56
+ export { WA_WEB_AUTH_DIR, createWaSocket, logWebSelfId, loginWeb, monitorWebChannel, monitorWebInbox, pickWebChannel, sendMessageWhatsApp, waitForWaConnection, webAuthExists };
@@ -0,0 +1,80 @@
1
+ import "./run-with-concurrency-5DMu9szx.js";
2
+ import { i as resolveWhatsAppAccount } from "./accounts-C-BT6Po7.js";
3
+ import "./paths-8xF5kDne.js";
4
+ import "./github-copilot-token-Dy-0-Kh3.js";
5
+ import "./config-FhBFLsNm.js";
6
+ import "./logger-DDdrdbDu.js";
7
+ import "./image-ops-DN17S88I.js";
8
+ import "./plugins-6NxPd6TS.js";
9
+ import "./path-alias-guards-gBhrAn14.js";
10
+ import "./fs-safe-Dqmpk-Fr.js";
11
+ import "./ssrf-B3XRWBsP.js";
12
+ import "./fetch-guard-W_A4uSz2.js";
13
+ import "./local-roots-BTW3ifco.js";
14
+ import "./ir-JaPZ0yKH.js";
15
+ import "./render-HmipMDlP.js";
16
+ import "./tables-bDM_jlLP.js";
17
+ import "./tool-images-D0G_giwP.js";
18
+ import { f as readReactionParams, h as readStringParam, i as ToolAuthorizationError, l as jsonResult, o as createActionGate } from "./target-errors-BVBW25Y3.js";
19
+ import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-CbaJ-kc2.js";
20
+ import { r as sendReactionWhatsApp } from "./outbound-CQ7uBBML.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 };
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { m as normalizeE164 } from "./utils-DMGXr25O.js";
3
- import { d as resolveDefaultAgentId } from "./agent-scope-tUxfsPYq.js";
3
+ import { d as resolveDefaultAgentId } from "./agent-scope-C1XMay0T.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-DC87CPVS.js";
5
5
  import { _ as normalizeAccountId, c as normalizeAgentId, g as DEFAULT_ACCOUNT_ID, v as normalizeOptionalAccountId } from "./session-key-CIXZm7v4.js";
6
6
  import { M as normalizeResolvedSecretInputString, f as getActivePluginRegistryVersion, l as normalizeChatChannelId, n as CHAT_CHANNEL_ORDER, p as requireActivePluginRegistry, s as normalizeAnyChannelId } from "./registry-CpzNS8-a.js";
7
7
  import { t as isTruthyEnvValue } from "./env-DeB9SeAQ.js";
8
- import { v as createAccountListHelpers, y as resolveAccountEntry } from "./accounts-BFC1okn9.js";
8
+ import { v as createAccountListHelpers, y as resolveAccountEntry } from "./accounts-D095MOmG.js";
9
9
  import fs from "node:fs";
10
10
  import util from "node:util";
11
11