squidclaw 3.0.3 → 3.0.4

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 (240) hide show
  1. package/dist/{audio-preflight-BTYxAJjy.js → audio-preflight-BKgdc7dS.js} +4 -4
  2. package/dist/{audio-preflight-Dkl6Z32z.js → audio-preflight-DpCWFB4z.js} +4 -4
  3. package/dist/{audio-transcription-runner-Gi_h5HEE.js → audio-transcription-runner-B2BdTEps.js} +1 -1
  4. package/dist/{audio-transcription-runner-DBkDgluo.js → audio-transcription-runner-BnbdYMDl.js} +1 -1
  5. package/dist/build-info.json +3 -3
  6. package/dist/bundled/boot-md/handler.js +6 -6
  7. package/dist/bundled/session-memory/handler.js +6 -6
  8. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  9. package/dist/{chrome-CAd6FQEn.js → chrome-BQDCalPp.js} +8 -8
  10. package/dist/{chrome-pBkBuWci.js → chrome-CjxCwFA9.js} +8 -8
  11. package/dist/{command-registry-CvgCFxfY.js → command-registry-CxiSVXru.js} +6 -6
  12. package/dist/{completion-cli-BGM1V6EN.js → completion-cli-s0fxD0OE.js} +2 -2
  13. package/dist/{completion-cli-OrgUDc2S.js → completion-cli-slzdOlRV.js} +1 -1
  14. package/dist/{config-cli-DbBvjvpS.js → config-cli-C0mk9eRl.js} +1 -1
  15. package/dist/{config-cli-uIP4r17f.js → config-cli-DhHEA_Nc.js} +1 -1
  16. package/dist/{configure-BGvoAfbs.js → configure-CeLdVVyh.js} +8 -1
  17. package/dist/{configure-BOsTXjBw.js → configure-FRd92XZ8.js} +8 -1
  18. package/dist/{deliver-DBXe-ZmL.js → deliver-D-f6Wa3i.js} +1 -1
  19. package/dist/{deliver-BJuiq0GS.js → deliver-aL8yOYS1.js} +1 -1
  20. package/dist/{deliver-runtime-DHKcNQzq.js → deliver-runtime-ChVR6sR3.js} +3 -3
  21. package/dist/{deliver-runtime-GlnBJNCj.js → deliver-runtime-_egya0QZ.js} +3 -3
  22. package/dist/{deps-send-whatsapp.runtime-DdxKewuy.js → deps-send-whatsapp.runtime-CZj97m5A.js} +7 -7
  23. package/dist/{deps-send-whatsapp.runtime-CslTuV47.js → deps-send-whatsapp.runtime-CiG6xd2e.js} +7 -7
  24. package/dist/{doctor-completion-42wcUATu.js → doctor-completion-I-WDZUs1.js} +1 -1
  25. package/dist/{doctor-completion-D6RGDBD5.js → doctor-completion-mnJOkoQ_.js} +1 -1
  26. package/dist/entry.js +2 -2
  27. package/dist/extensionAPI.js +6 -6
  28. package/dist/{gateway-cli-CG3mshpO.js → gateway-cli-B5rTNvd7.js} +1 -1
  29. package/dist/{gateway-cli-BbPfLLT6.js → gateway-cli-BHfkbI0u.js} +1 -1
  30. package/dist/{image-j_UomzVG.js → image-C-C7hQ26.js} +1 -1
  31. package/dist/{image-sRW3RpTY.js → image-DKZCmkET.js} +1 -1
  32. package/dist/{image-runtime-BNh3IfMj.js → image-runtime-D7n4dID4.js} +3 -3
  33. package/dist/{image-runtime-SUtf9jqh.js → image-runtime-poRypm-b.js} +3 -3
  34. package/dist/index.js +1 -1
  35. package/dist/llm-slug-generator.js +6 -6
  36. package/dist/{onboard-ChxvwUze.js → onboard-BP2Cr_Xy.js} +1 -1
  37. package/dist/{onboard-1KfKwvMR.js → onboard-CCJCvPgf.js} +1 -1
  38. package/dist/{onboarding-D6kMb3yv.js → onboarding-D5G87dvM.js} +1 -1
  39. package/dist/{onboarding-DuUMPrqA.js → onboarding-D7CIbxzd.js} +1 -1
  40. package/dist/{onboarding.finalize-KTOhO1-l.js → onboarding.finalize-B1MmYTFV.js} +4 -4
  41. package/dist/{onboarding.finalize-bphDUwZy.js → onboarding.finalize-Cxzl-fYU.js} +3 -3
  42. package/dist/{pi-embedded-BP2UlUm_.js → pi-embedded-CHzwPt6X.js} +24 -24
  43. package/dist/{pi-embedded-BGz_qdCc.js → pi-embedded-MktS4l8v.js} +24 -24
  44. package/dist/{pi-embedded-helpers-CmLnmKlb.js → pi-embedded-helpers-Bse_QhEf.js} +3 -3
  45. package/dist/{pi-embedded-helpers-BruaFB5l.js → pi-embedded-helpers-DYWYzEOC.js} +3 -3
  46. package/dist/plugin-sdk/accounts-BNuRM3rG.js +288 -0
  47. package/dist/plugin-sdk/accounts-CGTYP7Rh.js +46 -0
  48. package/dist/plugin-sdk/accounts-CcS9IAhD.js +35 -0
  49. package/dist/plugin-sdk/{accounts-YTdQYQFr.js → accounts-CxUSDHsT.js} +3 -3
  50. package/dist/plugin-sdk/{accounts-h__dTrLK.js → accounts-PSzw-z3S.js} +2 -2
  51. package/dist/plugin-sdk/{accounts-DghIDNk2.js → accounts-kr-Gz1hk.js} +2 -2
  52. package/dist/plugin-sdk/{active-listener-_PRYjtJv.js → active-listener-BQNrTcR3.js} +2 -2
  53. package/dist/plugin-sdk/active-listener-CTsLn1AX.js +50 -0
  54. package/dist/plugin-sdk/{api-key-rotation-mVDSAkKQ.js → api-key-rotation-Bhck7wki.js} +2 -2
  55. package/dist/plugin-sdk/api-key-rotation-DE4gr5YM.js +181 -0
  56. package/dist/plugin-sdk/audio-preflight-CRGLqp-g.js +69 -0
  57. package/dist/plugin-sdk/{audio-preflight-BZlQM-qX.js → audio-preflight-_xgGaeho.js} +26 -26
  58. package/dist/plugin-sdk/{audio-transcription-runner-CrYTX8py.js → audio-transcription-runner-Dwc0Eh-B.js} +11 -11
  59. package/dist/plugin-sdk/audio-transcription-runner-RXsskMMk.js +2176 -0
  60. package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +58 -0
  61. package/dist/plugin-sdk/{audit-membership-runtime-Xl20kCBe.js → audit-membership-runtime-DHQDvH4u.js} +2 -2
  62. package/dist/plugin-sdk/{channel-activity-gwxRn4wF.js → channel-activity-XajEg_DL.js} +3 -3
  63. package/dist/plugin-sdk/channel-activity-gPvD1D7S.js +94 -0
  64. package/dist/plugin-sdk/{channel-web-1WF-Nabe.js → channel-web-KtqCp4mz.js} +18 -18
  65. package/dist/plugin-sdk/channel-web-LGl1zPJt.js +2256 -0
  66. package/dist/plugin-sdk/chrome-9Y_LcUg1.js +2415 -0
  67. package/dist/plugin-sdk/{chrome-BXbYwXRH.js → chrome-diV5m81I.js} +6 -6
  68. package/dist/plugin-sdk/commands-registry-CcdEPxVg.js +1125 -0
  69. package/dist/plugin-sdk/{commands-registry-0w-aZenK.js → commands-registry-DwZAJuut.js} +4 -4
  70. package/dist/plugin-sdk/{common-DBOCt6Yv.js → common-CqnO92P8.js} +2 -2
  71. package/dist/plugin-sdk/config-CrQ5bCrw.js +17912 -0
  72. package/dist/plugin-sdk/{config-pRtEoVyZ.js → config-DYbtdrsT.js} +7 -7
  73. package/dist/plugin-sdk/deliver-D3xr5AkB.js +1694 -0
  74. package/dist/plugin-sdk/{deliver-FjlJrtZk.js → deliver-DG_7Uagn.js} +10 -10
  75. package/dist/plugin-sdk/deliver-runtime-B79ZQu69.js +32 -0
  76. package/dist/plugin-sdk/deliver-runtime-BdTC7uKE.js +32 -0
  77. package/dist/plugin-sdk/deps-send-discord.runtime-BOQZIqC8.js +23 -0
  78. package/dist/plugin-sdk/deps-send-discord.runtime-CObCNMt3.js +23 -0
  79. package/dist/plugin-sdk/deps-send-imessage.runtime-CuHOc9Ka.js +22 -0
  80. package/dist/plugin-sdk/deps-send-imessage.runtime-DlWgi2DH.js +22 -0
  81. package/dist/plugin-sdk/deps-send-signal.runtime-Cz7FT8J8.js +21 -0
  82. package/dist/plugin-sdk/deps-send-signal.runtime-iPynghkE.js +21 -0
  83. package/dist/plugin-sdk/deps-send-slack.runtime-D4vDoRsg.js +19 -0
  84. package/dist/plugin-sdk/deps-send-slack.runtime-DNTbE5jS.js +19 -0
  85. package/dist/plugin-sdk/deps-send-telegram.runtime-7CR-xtCF.js +24 -0
  86. package/dist/plugin-sdk/deps-send-telegram.runtime-DjTVED_m.js +24 -0
  87. package/dist/plugin-sdk/deps-send-whatsapp.runtime-CRWOIKRC.js +57 -0
  88. package/dist/plugin-sdk/deps-send-whatsapp.runtime-bUi8kghi.js +57 -0
  89. package/dist/plugin-sdk/diagnostic-BXkLYs_9.js +319 -0
  90. package/dist/plugin-sdk/{diagnostic-Dt2i3afe.js → diagnostic-CT7v_kM2.js} +2 -2
  91. package/dist/plugin-sdk/{errors-CgRPdp3o.js → errors-9oVz7reJ.js} +1 -1
  92. package/dist/plugin-sdk/errors-B8oJXuCF.js +54 -0
  93. package/dist/plugin-sdk/fetch-guard-C55uvn27.js +156 -0
  94. package/dist/plugin-sdk/{fetch-guard-DyPZh8r2.js → fetch-guard-Or5BCq0E.js} +2 -2
  95. package/dist/plugin-sdk/{fs-safe-DqCO1D4C.js → fs-safe-DFbwq9CS.js} +3 -3
  96. package/dist/plugin-sdk/fs-safe-Dqmpk-Fr.js +352 -0
  97. package/dist/plugin-sdk/image-3xW7IJdq.js +2310 -0
  98. package/dist/plugin-sdk/image-ops-BjK2qZZn.js +584 -0
  99. package/dist/plugin-sdk/{image-ops-sw0uZ0GN.js → image-ops-CMsocOob.js} +2 -2
  100. package/dist/plugin-sdk/image-runtime-CZZJJqcW.js +25 -0
  101. package/dist/plugin-sdk/image-runtime-Cjz368oj.js +25 -0
  102. package/dist/plugin-sdk/{image-CQ9TZ9vq.js → image-rycGCqJO.js} +6 -6
  103. package/dist/plugin-sdk/index.js +50 -50
  104. package/dist/plugin-sdk/ir-CS7uuQhN.js +1296 -0
  105. package/dist/plugin-sdk/{ir-BVZ5kUMb.js → ir-DihI2SIz.js} +7 -7
  106. package/dist/plugin-sdk/{local-roots-fO3ZgW3G.js → local-roots-1xVosTZ4.js} +4 -4
  107. package/dist/plugin-sdk/local-roots-DmOKwiNW.js +186 -0
  108. package/dist/plugin-sdk/{logger-DIb2cGHp.js → logger-Bg4vIUJn.js} +2 -2
  109. package/dist/plugin-sdk/logger-DDdrdbDu.js +1163 -0
  110. package/dist/plugin-sdk/login-BSEeU27Y.js +57 -0
  111. package/dist/plugin-sdk/{login-Dg5cxB_3.js → login-YhFrVUWo.js} +4 -4
  112. package/dist/plugin-sdk/login-qr-BwWJsDSj.js +320 -0
  113. package/dist/plugin-sdk/{login-qr-C3Vn30cq.js → login-qr-SpUTuwYv.js} +5 -5
  114. package/dist/plugin-sdk/manager-DiXPCubI.js +3917 -0
  115. package/dist/plugin-sdk/{manager-BR-TwWTH.js → manager-DrzOPeMD.js} +8 -8
  116. package/dist/plugin-sdk/manager-runtime-CF55pBNe.js +15 -0
  117. package/dist/plugin-sdk/manager-runtime-Ct0m9UJC.js +15 -0
  118. package/dist/plugin-sdk/mattermost.js +3 -3
  119. package/dist/plugin-sdk/{outbound-1a3Z_QJ2.js → outbound-Cc4cUn9K.js} +5 -5
  120. package/dist/plugin-sdk/outbound-attachment-BoFx05zw.js +19 -0
  121. package/dist/plugin-sdk/{outbound-attachment-BTQjD4YE.js → outbound-attachment-Dtp3hQgc.js} +2 -2
  122. package/dist/plugin-sdk/outbound-cpqK1GFe.js +212 -0
  123. package/dist/plugin-sdk/{path-alias-guards-TnxupPQC.js → path-alias-guards-DA0MhfkG.js} +1 -1
  124. package/dist/plugin-sdk/path-alias-guards-gBhrAn14.js +43 -0
  125. package/dist/plugin-sdk/paths-C6W4VHoa.js +166 -0
  126. package/dist/plugin-sdk/{paths-B7_75Pdr.js → paths-CP67O8eN.js} +1 -1
  127. package/dist/plugin-sdk/{pi-embedded-helpers-DZRNadD8.js → pi-embedded-helpers-BDJ_4Plh.js} +16 -16
  128. package/dist/plugin-sdk/pi-embedded-helpers-C-B9B6Sp.js +9627 -0
  129. package/dist/plugin-sdk/pi-model-discovery-BGEeoPzN.js +134 -0
  130. package/dist/plugin-sdk/{pi-model-discovery-DGh6xekX.js → pi-model-discovery-Mk0GTDJl.js} +1 -1
  131. package/dist/plugin-sdk/pi-model-discovery-runtime-BHZ_Htob.js +8 -0
  132. package/dist/plugin-sdk/pi-model-discovery-runtime-BrwtJHPU.js +8 -0
  133. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-ByN_xThw.js +354 -0
  134. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-BZ9XgG_x.js → pi-tools.before-tool-call.runtime-DV72wTDb.js} +4 -4
  135. package/dist/plugin-sdk/plugins-D5cdn70e.js +864 -0
  136. package/dist/plugin-sdk/{plugins-B8pWVYug.js → plugins-DSs2-fnK.js} +4 -4
  137. package/dist/plugin-sdk/{proxy-env-BOlkiW1-.js → proxy-env-Ib4-LUh-.js} +1 -1
  138. package/dist/plugin-sdk/{proxy-fetch-Dt5BedH8.js → proxy-fetch-Cf3IUSDw.js} +1 -1
  139. package/dist/plugin-sdk/proxy-fetch-ZPEvp58f.js +38 -0
  140. package/dist/plugin-sdk/pw-ai-C_QOIuin.js +1938 -0
  141. package/dist/plugin-sdk/{pw-ai-C17A1o4w.js → pw-ai-DIx2wpkY.js} +9 -9
  142. package/dist/plugin-sdk/qmd-manager-6bozlfFg.js +1448 -0
  143. package/dist/plugin-sdk/{qmd-manager-Bei6TaFq.js → qmd-manager-Ov9ElEfG.js} +7 -7
  144. package/dist/plugin-sdk/{query-expansion-POz2za8a.js → query-expansion-CzjwW461.js} +4 -4
  145. package/dist/plugin-sdk/query-expansion-eeVz_aEm.js +1011 -0
  146. package/dist/plugin-sdk/{redact-9WsNyb7S.js → redact-BoNEjbpF.js} +1 -1
  147. package/dist/plugin-sdk/redact-DfACyt0X.js +319 -0
  148. package/dist/plugin-sdk/reply-CQUX_haM.js +98828 -0
  149. package/dist/plugin-sdk/{reply-BFbijn6_.js → reply-CWWUd_JS.js} +73 -73
  150. package/dist/plugin-sdk/{resolve-outbound-target-B9iFEh0y.js → resolve-outbound-target-BOkvxZtM.js} +2 -2
  151. package/dist/plugin-sdk/resolve-outbound-target-Dbz0O8cR.js +40 -0
  152. package/dist/plugin-sdk/run-with-concurrency-5DMu9szx.js +1994 -0
  153. package/dist/plugin-sdk/{run-with-concurrency-DmTrN5JG.js → run-with-concurrency-kVooFCVo.js} +1 -1
  154. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-DitS0I1z.js +10 -0
  155. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-OthrtsLL.js +10 -0
  156. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-CYCr6A3v.js +19 -0
  157. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-Q2HL0zL3.js +19 -0
  158. package/dist/plugin-sdk/send-BACEu1Un.js +414 -0
  159. package/dist/plugin-sdk/{send-BGZo6HW1.js → send-BP1fSEBR.js} +5 -5
  160. package/dist/plugin-sdk/send-BU4OoR7u.js +2587 -0
  161. package/dist/plugin-sdk/{send-BqkUDZed.js → send-BeLBlAsQ.js} +13 -13
  162. package/dist/plugin-sdk/{send-BisREGBZ.js → send-D9CSOGul.js} +6 -6
  163. package/dist/plugin-sdk/{send-D6_nNvi0.js → send-DLKxJJYV.js} +8 -8
  164. package/dist/plugin-sdk/send-DbxOJ_BC.js +3135 -0
  165. package/dist/plugin-sdk/{send-Dj7XEcZN.js → send-XZ6IXCtL.js} +7 -7
  166. package/dist/plugin-sdk/send-n932vjT5.js +540 -0
  167. package/dist/plugin-sdk/send-uCPS53j8.js +503 -0
  168. package/dist/plugin-sdk/session-DenDKR_-.js +169 -0
  169. package/dist/plugin-sdk/{session-D4KDs7Hq.js → session-DtLUYWvY.js} +3 -3
  170. package/dist/plugin-sdk/skill-commands-BK1KDKmS.js +342 -0
  171. package/dist/plugin-sdk/{skill-commands-D_xeseiI.js → skill-commands-Bv7EZypt.js} +4 -4
  172. package/dist/plugin-sdk/{skills-Bs2b3JfV.js → skills-BzXN4uev.js} +6 -6
  173. package/dist/plugin-sdk/skills-D4am-zkO.js +1428 -0
  174. package/dist/plugin-sdk/slash-commands.runtime-Bx1K1iqP.js +13 -0
  175. package/dist/plugin-sdk/slash-commands.runtime-DWfFqMZw.js +13 -0
  176. package/dist/plugin-sdk/slash-dispatch.runtime-DVn338JI.js +52 -0
  177. package/dist/plugin-sdk/slash-dispatch.runtime-pnWH5AjM.js +52 -0
  178. package/dist/plugin-sdk/slash-skill-commands.runtime-Dbi_YzPO.js +16 -0
  179. package/dist/plugin-sdk/slash-skill-commands.runtime-DxvNWv_E.js +16 -0
  180. package/dist/plugin-sdk/ssrf-2WBi1Tzx.js +202 -0
  181. package/dist/plugin-sdk/store-BKDMuvyn.js +81 -0
  182. package/dist/plugin-sdk/{store-B7ESm9_L.js → store-DnJhFFW5.js} +2 -2
  183. package/dist/plugin-sdk/subagent-registry-runtime-FhP0l-Rw.js +52 -0
  184. package/dist/plugin-sdk/subagent-registry-runtime-hH9ADku1.js +52 -0
  185. package/dist/plugin-sdk/{tables-1vhBJPK_.js → tables-CpmqssLF.js} +1 -1
  186. package/dist/plugin-sdk/tables-CrDYcv_b.js +55 -0
  187. package/dist/plugin-sdk/target-errors-aOwE-MIU.js +195 -0
  188. package/dist/plugin-sdk/{thinking-DjaClmzi.js → thinking-1UCPuD9d.js} +7 -7
  189. package/dist/plugin-sdk/thinking-D41FMh9T.js +1206 -0
  190. package/dist/plugin-sdk/{tokens-CLE20fRI.js → tokens-CTIYTLWu.js} +1 -1
  191. package/dist/plugin-sdk/tokens-DAL_5WHL.js +52 -0
  192. package/dist/plugin-sdk/{tool-images-B95xcwiR.js → tool-images-CWc54lpI.js} +2 -2
  193. package/dist/plugin-sdk/tool-images-RX4QTMnt.js +274 -0
  194. package/dist/plugin-sdk/web-AtEy-48y.js +56 -0
  195. package/dist/plugin-sdk/web-DjKONHqF.js +56 -0
  196. package/dist/plugin-sdk/{whatsapp-actions-BYpcWkTN.js → whatsapp-actions-BF6ih4Gi.js} +17 -17
  197. package/dist/plugin-sdk/whatsapp-actions-DEZcm_CZ.js +80 -0
  198. package/dist/plugin-sdk/whatsapp.js +50 -50
  199. package/dist/{program-xNEHPhT8.js → program-2J-jgdfk.js} +2 -2
  200. package/dist/{program-context-J_FyEsaS.js → program-context-SjYSWx_N.js} +8 -8
  201. package/dist/{prompt-select-styled-B1LjjgQ0.js → prompt-select-styled-Baiu3mAU.js} +1 -1
  202. package/dist/{prompt-select-styled-BRiogP_P.js → prompt-select-styled-DPnVmH8f.js} +1 -1
  203. package/dist/{pw-ai-7kHgUGj0.js → pw-ai-BwRP3TWc.js} +1 -1
  204. package/dist/{pw-ai-BmGrTicP.js → pw-ai-zFPBSxaL.js} +1 -1
  205. package/dist/{register.configure-DezZ4Q1p.js → register.configure-Ao1K2uze.js} +1 -1
  206. package/dist/{register.configure-C4p9ad2q.js → register.configure-CCkfhF-7.js} +1 -1
  207. package/dist/{register.maintenance-CzMKTC2a.js → register.maintenance-DMbs8w2m.js} +4 -4
  208. package/dist/{register.maintenance-CTvFmkAm.js → register.maintenance-pLpE2oF-.js} +5 -5
  209. package/dist/{register.onboard-C39xhpv1.js → register.onboard-Cb8xLIye.js} +2 -2
  210. package/dist/{register.onboard-DZt2kSAg.js → register.onboard-IMrHOeW_.js} +2 -2
  211. package/dist/{register.setup-04L_8wfA.js → register.setup-CX8IUmew.js} +2 -2
  212. package/dist/{register.setup-DWctFmOd.js → register.setup-DU7IDzAv.js} +2 -2
  213. package/dist/{register.subclis-C3TphbCF.js → register.subclis-BIbL6FBV.js} +3 -3
  214. package/dist/{run-main-7tknx04F.js → run-main-CpDZPsC_.js} +5 -5
  215. package/dist/{slash-dispatch.runtime-BL3qA1O3.js → slash-dispatch.runtime-DkcAYuyK.js} +6 -6
  216. package/dist/{slash-dispatch.runtime-Dh2L_3Tg.js → slash-dispatch.runtime-DuJRl-LD.js} +6 -6
  217. package/dist/{subagent-registry-runtime-MtjBCcgn.js → subagent-registry-runtime-BlRAnw80.js} +6 -6
  218. package/dist/{subagent-registry-runtime-BRNDawlJ.js → subagent-registry-runtime-COygB9b1.js} +6 -6
  219. package/dist/{update-cli-0UiUaT3q.js → update-cli-BwhvSo1R.js} +5 -5
  220. package/dist/{update-cli-C-uyQcFS.js → update-cli-TQEfxhWF.js} +4 -4
  221. package/dist/{web-D1ZoRVB0.js → web-DddJa7ZT.js} +6 -6
  222. package/dist/{web-B7kbCskR.js → web-DyCuTR9b.js} +6 -6
  223. package/package.json +7 -7
  224. package/dist/plugin-sdk/deliver-runtime-DEzvpBW1.js +0 -32
  225. package/dist/plugin-sdk/deps-send-discord.runtime-Bhusa_Hi.js +0 -23
  226. package/dist/plugin-sdk/deps-send-imessage.runtime-bmakPm5f.js +0 -22
  227. package/dist/plugin-sdk/deps-send-signal.runtime-n00sfFto.js +0 -21
  228. package/dist/plugin-sdk/deps-send-slack.runtime-BvM3Z-Mr.js +0 -19
  229. package/dist/plugin-sdk/deps-send-telegram.runtime-CPuMkcmo.js +0 -24
  230. package/dist/plugin-sdk/deps-send-whatsapp.runtime-BzO6S-KX.js +0 -57
  231. package/dist/plugin-sdk/image-runtime-17_mTqsy.js +0 -25
  232. package/dist/plugin-sdk/manager-runtime-CvI9wF8N.js +0 -15
  233. package/dist/plugin-sdk/pi-model-discovery-runtime-DjjBdPYt.js +0 -8
  234. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-DzhkSmLi.js +0 -10
  235. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DyILWezU.js +0 -19
  236. package/dist/plugin-sdk/slash-commands.runtime-CUb5sqqf.js +0 -13
  237. package/dist/plugin-sdk/slash-dispatch.runtime-DCB6bGjB.js +0 -52
  238. package/dist/plugin-sdk/slash-skill-commands.runtime-BqEweE4K.js +0 -16
  239. package/dist/plugin-sdk/subagent-registry-runtime-CCUW4SbM.js +0 -52
  240. package/dist/plugin-sdk/web-DeRmHQ4_.js +0 -56
@@ -1,4 +1,4 @@
1
- import { F as danger, O as createSubsystemLogger, g as pathExists$1, n as logError, t as logDebug, y as resolveUserPath, z as shouldLogVerbose } from "./logger-DIb2cGHp.js";
1
+ import { F as danger, O as createSubsystemLogger, g as pathExists$1, n as logError, t as logDebug, y as resolveUserPath, z as shouldLogVerbose } from "./logger-Bg4vIUJn.js";
2
2
  import { c as resolveStateDir, d as resolveRequiredHomeDir } from "./paths-Duwviem_.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs";
@@ -0,0 +1,10 @@
1
+ import "./run-with-concurrency-kVooFCVo.js";
2
+ import "./config-DYbtdrsT.js";
3
+ import "./logger-Bg4vIUJn.js";
4
+ import "./paths-Duwviem_.js";
5
+ import "./accounts-CxUSDHsT.js";
6
+ import "./github-copilot-token-C0y6vp3r.js";
7
+ import "./session-DtLUYWvY.js";
8
+ import { t as loginWeb } from "./login-YhFrVUWo.js";
9
+
10
+ export { loginWeb };
@@ -0,0 +1,10 @@
1
+ import "./run-with-concurrency-5DMu9szx.js";
2
+ import "./accounts-BNuRM3rG.js";
3
+ import "./paths-8xF5kDne.js";
4
+ import "./github-copilot-token-Dy-0-Kh3.js";
5
+ import "./config-CrQ5bCrw.js";
6
+ import "./logger-DDdrdbDu.js";
7
+ import "./session-DenDKR_-.js";
8
+ import { t as loginWeb } from "./login-BSEeU27Y.js";
9
+
10
+ export { loginWeb };
@@ -0,0 +1,19 @@
1
+ import "./run-with-concurrency-kVooFCVo.js";
2
+ import "./config-DYbtdrsT.js";
3
+ import "./logger-Bg4vIUJn.js";
4
+ import "./paths-Duwviem_.js";
5
+ import "./accounts-CxUSDHsT.js";
6
+ import "./plugins-DSs2-fnK.js";
7
+ import "./image-ops-CMsocOob.js";
8
+ import "./github-copilot-token-C0y6vp3r.js";
9
+ import "./path-alias-guards-DA0MhfkG.js";
10
+ import "./fs-safe-DFbwq9CS.js";
11
+ import "./proxy-env-Ib4-LUh-.js";
12
+ import "./fetch-guard-Or5BCq0E.js";
13
+ import "./local-roots-1xVosTZ4.js";
14
+ import "./ir-DihI2SIz.js";
15
+ import "./render-95l30zcf.js";
16
+ import "./tables-CpmqssLF.js";
17
+ import { n as sendPollWhatsApp, t as sendMessageWhatsApp } from "./outbound-Cc4cUn9K.js";
18
+
19
+ export { sendMessageWhatsApp, sendPollWhatsApp };
@@ -0,0 +1,19 @@
1
+ import "./run-with-concurrency-5DMu9szx.js";
2
+ import "./accounts-BNuRM3rG.js";
3
+ import "./paths-8xF5kDne.js";
4
+ import "./github-copilot-token-Dy-0-Kh3.js";
5
+ import "./config-CrQ5bCrw.js";
6
+ import "./logger-DDdrdbDu.js";
7
+ import "./image-ops-BjK2qZZn.js";
8
+ import "./plugins-D5cdn70e.js";
9
+ import "./path-alias-guards-gBhrAn14.js";
10
+ import "./fs-safe-Dqmpk-Fr.js";
11
+ import "./ssrf-2WBi1Tzx.js";
12
+ import "./fetch-guard-C55uvn27.js";
13
+ import "./local-roots-DmOKwiNW.js";
14
+ import "./ir-CS7uuQhN.js";
15
+ import "./render-HmipMDlP.js";
16
+ import "./tables-CrDYcv_b.js";
17
+ import { n as sendPollWhatsApp, t as sendMessageWhatsApp } from "./outbound-cpqK1GFe.js";
18
+
19
+ export { sendMessageWhatsApp, sendPollWhatsApp };
@@ -0,0 +1,414 @@
1
+ import { n as loadConfig } from "./config-CrQ5bCrw.js";
2
+ import { L as logVerbose } from "./logger-DDdrdbDu.js";
3
+ import { F as resolveSlackBotToken, M as resolveSlackAccount, m as parseSlackTarget } from "./plugins-D5cdn70e.js";
4
+ import { r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-C55uvn27.js";
5
+ import { c as chunkMarkdownTextWithMode, d as resolveChunkMode, f as resolveTextChunkLimit, i as resolveMarkdownTableMode, n as markdownToIR, t as chunkMarkdownIR, v as loadWebMedia } from "./ir-CS7uuQhN.js";
6
+ import { t as renderMarkdownWithMarkers } from "./render-HmipMDlP.js";
7
+ import { i as isSilentReplyText } from "./tokens-CTIYTLWu.js";
8
+ import { WebClient } from "@slack/web-api";
9
+
10
+ //#region src/slack/blocks-input.ts
11
+ const SLACK_MAX_BLOCKS = 50;
12
+ function parseBlocksJson(raw) {
13
+ try {
14
+ return JSON.parse(raw);
15
+ } catch {
16
+ throw new Error("blocks must be valid JSON");
17
+ }
18
+ }
19
+ function assertBlocksArray(raw) {
20
+ if (!Array.isArray(raw)) throw new Error("blocks must be an array");
21
+ if (raw.length === 0) throw new Error("blocks must contain at least one block");
22
+ if (raw.length > SLACK_MAX_BLOCKS) throw new Error(`blocks cannot exceed ${SLACK_MAX_BLOCKS} items`);
23
+ for (const block of raw) {
24
+ if (!block || typeof block !== "object" || Array.isArray(block)) throw new Error("each block must be an object");
25
+ const type = block.type;
26
+ if (typeof type !== "string" || type.trim().length === 0) throw new Error("each block must include a non-empty string type");
27
+ }
28
+ }
29
+ function validateSlackBlocksArray(raw) {
30
+ assertBlocksArray(raw);
31
+ return raw;
32
+ }
33
+ function parseSlackBlocksInput(raw) {
34
+ if (raw == null) return;
35
+ return validateSlackBlocksArray(typeof raw === "string" ? parseBlocksJson(raw) : raw);
36
+ }
37
+
38
+ //#endregion
39
+ //#region src/slack/client.ts
40
+ const SLACK_DEFAULT_RETRY_OPTIONS = {
41
+ retries: 2,
42
+ factor: 2,
43
+ minTimeout: 500,
44
+ maxTimeout: 3e3,
45
+ randomize: true
46
+ };
47
+ function resolveSlackWebClientOptions(options = {}) {
48
+ return {
49
+ ...options,
50
+ retryConfig: options.retryConfig ?? SLACK_DEFAULT_RETRY_OPTIONS
51
+ };
52
+ }
53
+ function createSlackWebClient(token, options = {}) {
54
+ return new WebClient(token, resolveSlackWebClientOptions(options));
55
+ }
56
+
57
+ //#endregion
58
+ //#region src/slack/blocks-fallback.ts
59
+ function cleanCandidate(value) {
60
+ if (typeof value !== "string") return;
61
+ const normalized = value.replace(/\s+/g, " ").trim();
62
+ return normalized.length > 0 ? normalized : void 0;
63
+ }
64
+ function readSectionText(block) {
65
+ return cleanCandidate(block.text?.text);
66
+ }
67
+ function readHeaderText(block) {
68
+ return cleanCandidate(block.text?.text);
69
+ }
70
+ function readImageText(block) {
71
+ return cleanCandidate(block.alt_text) ?? cleanCandidate(block.title?.text);
72
+ }
73
+ function readVideoText(block) {
74
+ return cleanCandidate(block.title?.text) ?? cleanCandidate(block.alt_text);
75
+ }
76
+ function readContextText(block) {
77
+ if (!Array.isArray(block.elements)) return;
78
+ const textParts = block.elements.map((element) => cleanCandidate(element.text)).filter((value) => Boolean(value));
79
+ return textParts.length > 0 ? textParts.join(" ") : void 0;
80
+ }
81
+ function buildSlackBlocksFallbackText(blocks) {
82
+ for (const raw of blocks) {
83
+ const block = raw;
84
+ switch (block.type) {
85
+ case "header": {
86
+ const text = readHeaderText(block);
87
+ if (text) return text;
88
+ break;
89
+ }
90
+ case "section": {
91
+ const text = readSectionText(block);
92
+ if (text) return text;
93
+ break;
94
+ }
95
+ case "image": {
96
+ const text = readImageText(block);
97
+ if (text) return text;
98
+ return "Shared an image";
99
+ }
100
+ case "video": {
101
+ const text = readVideoText(block);
102
+ if (text) return text;
103
+ return "Shared a video";
104
+ }
105
+ case "file": return "Shared a file";
106
+ case "context": {
107
+ const text = readContextText(block);
108
+ if (text) return text;
109
+ break;
110
+ }
111
+ default: break;
112
+ }
113
+ }
114
+ return "Shared a Block Kit message";
115
+ }
116
+
117
+ //#endregion
118
+ //#region src/slack/format.ts
119
+ function escapeSlackMrkdwnSegment(text) {
120
+ return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
121
+ }
122
+ const SLACK_ANGLE_TOKEN_RE = /<[^>\n]+>/g;
123
+ function isAllowedSlackAngleToken(token) {
124
+ if (!token.startsWith("<") || !token.endsWith(">")) return false;
125
+ const inner = token.slice(1, -1);
126
+ return inner.startsWith("@") || inner.startsWith("#") || inner.startsWith("!") || inner.startsWith("mailto:") || inner.startsWith("tel:") || inner.startsWith("http://") || inner.startsWith("https://") || inner.startsWith("slack://");
127
+ }
128
+ function escapeSlackMrkdwnContent(text) {
129
+ if (!text) return "";
130
+ if (!text.includes("&") && !text.includes("<") && !text.includes(">")) return text;
131
+ SLACK_ANGLE_TOKEN_RE.lastIndex = 0;
132
+ const out = [];
133
+ let lastIndex = 0;
134
+ for (let match = SLACK_ANGLE_TOKEN_RE.exec(text); match; match = SLACK_ANGLE_TOKEN_RE.exec(text)) {
135
+ const matchIndex = match.index ?? 0;
136
+ out.push(escapeSlackMrkdwnSegment(text.slice(lastIndex, matchIndex)));
137
+ const token = match[0] ?? "";
138
+ out.push(isAllowedSlackAngleToken(token) ? token : escapeSlackMrkdwnSegment(token));
139
+ lastIndex = matchIndex + token.length;
140
+ }
141
+ out.push(escapeSlackMrkdwnSegment(text.slice(lastIndex)));
142
+ return out.join("");
143
+ }
144
+ function escapeSlackMrkdwnText(text) {
145
+ if (!text) return "";
146
+ if (!text.includes("&") && !text.includes("<") && !text.includes(">")) return text;
147
+ return text.split("\n").map((line) => {
148
+ if (line.startsWith("> ")) return `> ${escapeSlackMrkdwnContent(line.slice(2))}`;
149
+ return escapeSlackMrkdwnContent(line);
150
+ }).join("\n");
151
+ }
152
+ function buildSlackLink(link, text) {
153
+ const href = link.href.trim();
154
+ if (!href) return null;
155
+ const trimmedLabel = text.slice(link.start, link.end).trim();
156
+ const comparableHref = href.startsWith("mailto:") ? href.slice(7) : href;
157
+ if (!(trimmedLabel.length > 0 && trimmedLabel !== href && trimmedLabel !== comparableHref)) return null;
158
+ const safeHref = escapeSlackMrkdwnSegment(href);
159
+ return {
160
+ start: link.start,
161
+ end: link.end,
162
+ open: `<${safeHref}|`,
163
+ close: ">"
164
+ };
165
+ }
166
+ function buildSlackRenderOptions() {
167
+ return {
168
+ styleMarkers: {
169
+ bold: {
170
+ open: "*",
171
+ close: "*"
172
+ },
173
+ italic: {
174
+ open: "_",
175
+ close: "_"
176
+ },
177
+ strikethrough: {
178
+ open: "~",
179
+ close: "~"
180
+ },
181
+ code: {
182
+ open: "`",
183
+ close: "`"
184
+ },
185
+ code_block: {
186
+ open: "```\n",
187
+ close: "```"
188
+ }
189
+ },
190
+ escapeText: escapeSlackMrkdwnText,
191
+ buildLink: buildSlackLink
192
+ };
193
+ }
194
+ function markdownToSlackMrkdwn(markdown, options = {}) {
195
+ return renderMarkdownWithMarkers(markdownToIR(markdown ?? "", {
196
+ linkify: false,
197
+ autolink: false,
198
+ headingStyle: "bold",
199
+ blockquotePrefix: "> ",
200
+ tableMode: options.tableMode
201
+ }), buildSlackRenderOptions());
202
+ }
203
+ function normalizeSlackOutboundText(markdown) {
204
+ return markdownToSlackMrkdwn(markdown ?? "");
205
+ }
206
+ function markdownToSlackMrkdwnChunks(markdown, limit, options = {}) {
207
+ const chunks = chunkMarkdownIR(markdownToIR(markdown ?? "", {
208
+ linkify: false,
209
+ autolink: false,
210
+ headingStyle: "bold",
211
+ blockquotePrefix: "> ",
212
+ tableMode: options.tableMode
213
+ }), limit);
214
+ const renderOptions = buildSlackRenderOptions();
215
+ return chunks.map((chunk) => renderMarkdownWithMarkers(chunk, renderOptions));
216
+ }
217
+
218
+ //#endregion
219
+ //#region src/slack/send.ts
220
+ const SLACK_TEXT_LIMIT = 4e3;
221
+ const SLACK_UPLOAD_SSRF_POLICY = {
222
+ allowedHostnames: [
223
+ "*.slack.com",
224
+ "*.slack-edge.com",
225
+ "*.slack-files.com"
226
+ ],
227
+ allowRfc2544BenchmarkRange: true
228
+ };
229
+ function hasCustomIdentity(identity) {
230
+ return Boolean(identity?.username || identity?.iconUrl || identity?.iconEmoji);
231
+ }
232
+ function isSlackCustomizeScopeError(err) {
233
+ if (!(err instanceof Error)) return false;
234
+ const maybeData = err;
235
+ if (maybeData.data?.error?.toLowerCase() !== "missing_scope") return false;
236
+ if ((maybeData.data?.needed?.toLowerCase())?.includes("chat:write.customize")) return true;
237
+ return [...maybeData.data?.response_metadata?.scopes ?? [], ...maybeData.data?.response_metadata?.acceptedScopes ?? []].map((scope) => scope.toLowerCase()).includes("chat:write.customize");
238
+ }
239
+ async function postSlackMessageBestEffort(params) {
240
+ const basePayload = {
241
+ channel: params.channelId,
242
+ text: params.text,
243
+ thread_ts: params.threadTs,
244
+ ...params.blocks?.length ? { blocks: params.blocks } : {}
245
+ };
246
+ try {
247
+ if (params.identity?.iconUrl) return await params.client.chat.postMessage({
248
+ ...basePayload,
249
+ ...params.identity.username ? { username: params.identity.username } : {},
250
+ icon_url: params.identity.iconUrl
251
+ });
252
+ if (params.identity?.iconEmoji) return await params.client.chat.postMessage({
253
+ ...basePayload,
254
+ ...params.identity.username ? { username: params.identity.username } : {},
255
+ icon_emoji: params.identity.iconEmoji
256
+ });
257
+ return await params.client.chat.postMessage({
258
+ ...basePayload,
259
+ ...params.identity?.username ? { username: params.identity.username } : {}
260
+ });
261
+ } catch (err) {
262
+ if (!hasCustomIdentity(params.identity) || !isSlackCustomizeScopeError(err)) throw err;
263
+ logVerbose("slack send: missing chat:write.customize, retrying without custom identity");
264
+ return params.client.chat.postMessage(basePayload);
265
+ }
266
+ }
267
+ function resolveToken(params) {
268
+ const explicit = resolveSlackBotToken(params.explicit);
269
+ if (explicit) return explicit;
270
+ const fallback = resolveSlackBotToken(params.fallbackToken);
271
+ if (!fallback) {
272
+ logVerbose(`slack send: missing bot token for account=${params.accountId} explicit=${Boolean(params.explicit)} source=${params.fallbackSource ?? "unknown"}`);
273
+ throw new Error(`Slack bot token missing for account "${params.accountId}" (set channels.slack.accounts.${params.accountId}.botToken or SLACK_BOT_TOKEN for default).`);
274
+ }
275
+ return fallback;
276
+ }
277
+ function parseRecipient(raw) {
278
+ const target = parseSlackTarget(raw);
279
+ if (!target) throw new Error("Recipient is required for Slack sends");
280
+ return {
281
+ kind: target.kind,
282
+ id: target.id
283
+ };
284
+ }
285
+ async function resolveChannelId(client, recipient) {
286
+ if (!(recipient.kind === "user" || /^U[A-Z0-9]+$/i.test(recipient.id))) return { channelId: recipient.id };
287
+ const channelId = (await client.conversations.open({ users: recipient.id })).channel?.id;
288
+ if (!channelId) throw new Error("Failed to open Slack DM channel");
289
+ return {
290
+ channelId,
291
+ isDm: true
292
+ };
293
+ }
294
+ async function uploadSlackFile(params) {
295
+ const { buffer, contentType, fileName } = await loadWebMedia(params.mediaUrl, {
296
+ maxBytes: params.maxBytes,
297
+ localRoots: params.mediaLocalRoots
298
+ });
299
+ const uploadUrlResp = await params.client.files.getUploadURLExternal({
300
+ filename: fileName ?? "upload",
301
+ length: buffer.length
302
+ });
303
+ if (!uploadUrlResp.ok || !uploadUrlResp.upload_url || !uploadUrlResp.file_id) throw new Error(`Failed to get upload URL: ${uploadUrlResp.error ?? "unknown error"}`);
304
+ const uploadBody = new Uint8Array(buffer);
305
+ const { response: uploadResp, release } = await fetchWithSsrFGuard(withTrustedEnvProxyGuardedFetchMode({
306
+ url: uploadUrlResp.upload_url,
307
+ init: {
308
+ method: "POST",
309
+ ...contentType ? { headers: { "Content-Type": contentType } } : {},
310
+ body: uploadBody
311
+ },
312
+ policy: SLACK_UPLOAD_SSRF_POLICY,
313
+ auditContext: "slack-upload-file"
314
+ }));
315
+ try {
316
+ if (!uploadResp.ok) throw new Error(`Failed to upload file: HTTP ${uploadResp.status}`);
317
+ } finally {
318
+ await release();
319
+ }
320
+ const completeResp = await params.client.files.completeUploadExternal({
321
+ files: [{
322
+ id: uploadUrlResp.file_id,
323
+ title: fileName ?? "upload"
324
+ }],
325
+ channel_id: params.channelId,
326
+ ...params.caption ? { initial_comment: params.caption } : {},
327
+ ...params.threadTs ? { thread_ts: params.threadTs } : {}
328
+ });
329
+ if (!completeResp.ok) throw new Error(`Failed to complete upload: ${completeResp.error ?? "unknown error"}`);
330
+ return uploadUrlResp.file_id;
331
+ }
332
+ async function sendMessageSlack(to, message, opts = {}) {
333
+ const trimmedMessage = message?.trim() ?? "";
334
+ if (isSilentReplyText(trimmedMessage) && !opts.mediaUrl && !opts.blocks) {
335
+ logVerbose("slack send: suppressed NO_REPLY token before API call");
336
+ return {
337
+ messageId: "suppressed",
338
+ channelId: ""
339
+ };
340
+ }
341
+ const blocks = opts.blocks == null ? void 0 : validateSlackBlocksArray(opts.blocks);
342
+ if (!trimmedMessage && !opts.mediaUrl && !blocks) throw new Error("Slack send requires text, blocks, or media");
343
+ const cfg = opts.cfg ?? loadConfig();
344
+ const account = resolveSlackAccount({
345
+ cfg,
346
+ accountId: opts.accountId
347
+ });
348
+ const token = resolveToken({
349
+ explicit: opts.token,
350
+ accountId: account.accountId,
351
+ fallbackToken: account.botToken,
352
+ fallbackSource: account.botTokenSource
353
+ });
354
+ const client = opts.client ?? createSlackWebClient(token);
355
+ const { channelId } = await resolveChannelId(client, parseRecipient(to));
356
+ if (blocks) {
357
+ if (opts.mediaUrl) throw new Error("Slack send does not support blocks with mediaUrl");
358
+ return {
359
+ messageId: (await postSlackMessageBestEffort({
360
+ client,
361
+ channelId,
362
+ text: trimmedMessage || buildSlackBlocksFallbackText(blocks),
363
+ threadTs: opts.threadTs,
364
+ identity: opts.identity,
365
+ blocks
366
+ })).ts ?? "unknown",
367
+ channelId
368
+ };
369
+ }
370
+ const textLimit = resolveTextChunkLimit(cfg, "slack", account.accountId);
371
+ const chunkLimit = Math.min(textLimit, SLACK_TEXT_LIMIT);
372
+ const tableMode = resolveMarkdownTableMode({
373
+ cfg,
374
+ channel: "slack",
375
+ accountId: account.accountId
376
+ });
377
+ const chunkMode = resolveChunkMode(cfg, "slack", account.accountId);
378
+ const chunks = (chunkMode === "newline" ? chunkMarkdownTextWithMode(trimmedMessage, chunkLimit, chunkMode) : [trimmedMessage]).flatMap((markdown) => markdownToSlackMrkdwnChunks(markdown, chunkLimit, { tableMode }));
379
+ if (!chunks.length && trimmedMessage) chunks.push(trimmedMessage);
380
+ const mediaMaxBytes = typeof account.config.mediaMaxMb === "number" ? account.config.mediaMaxMb * 1024 * 1024 : void 0;
381
+ let lastMessageId = "";
382
+ if (opts.mediaUrl) {
383
+ const [firstChunk, ...rest] = chunks;
384
+ lastMessageId = await uploadSlackFile({
385
+ client,
386
+ channelId,
387
+ mediaUrl: opts.mediaUrl,
388
+ mediaLocalRoots: opts.mediaLocalRoots,
389
+ caption: firstChunk,
390
+ threadTs: opts.threadTs,
391
+ maxBytes: mediaMaxBytes
392
+ });
393
+ for (const chunk of rest) lastMessageId = (await postSlackMessageBestEffort({
394
+ client,
395
+ channelId,
396
+ text: chunk,
397
+ threadTs: opts.threadTs,
398
+ identity: opts.identity
399
+ })).ts ?? lastMessageId;
400
+ } else for (const chunk of chunks.length ? chunks : [""]) lastMessageId = (await postSlackMessageBestEffort({
401
+ client,
402
+ channelId,
403
+ text: chunk,
404
+ threadTs: opts.threadTs,
405
+ identity: opts.identity
406
+ })).ts ?? lastMessageId;
407
+ return {
408
+ messageId: lastMessageId || "unknown",
409
+ channelId
410
+ };
411
+ }
412
+
413
+ //#endregion
414
+ export { createSlackWebClient as a, validateSlackBlocksArray as c, buildSlackBlocksFallbackText as i, markdownToSlackMrkdwnChunks as n, resolveSlackWebClientOptions as o, normalizeSlackOutboundText as r, parseSlackBlocksInput as s, sendMessageSlack as t };
@@ -1,11 +1,11 @@
1
- import { n as loadConfig } from "./config-pRtEoVyZ.js";
2
- import { m as kindFromMime } from "./image-ops-sw0uZ0GN.js";
3
- import { n as resolveSignalAccount } from "./accounts-DghIDNk2.js";
1
+ import { n as loadConfig } from "./config-DYbtdrsT.js";
2
+ import { m as kindFromMime } from "./image-ops-CMsocOob.js";
3
+ import { n as resolveSignalAccount } from "./accounts-kr-Gz1hk.js";
4
4
  import { n as generateSecureUuid } from "./secure-random-D2mQUJdh.js";
5
5
  import { n as fetchWithTimeout } from "./fetch-timeout-CR10Uz2k.js";
6
6
  import { t as resolveFetch } from "./fetch-D3HDdlk7.js";
7
- import { n as markdownToIR, s as resolveMarkdownTableMode, t as chunkMarkdownIR } from "./ir-BVZ5kUMb.js";
8
- import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-BTQjD4YE.js";
7
+ import { n as markdownToIR, s as resolveMarkdownTableMode, t as chunkMarkdownIR } from "./ir-DihI2SIz.js";
8
+ import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-Dtp3hQgc.js";
9
9
 
10
10
  //#region src/signal/format.ts
11
11
  function normalizeUrlForComparison(url) {