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
@@ -0,0 +1,13 @@
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 "./thinking-1UCPuD9d.js";
8
+ import "./accounts-PSzw-z3S.js";
9
+ import "./accounts-kr-Gz1hk.js";
10
+ import "./github-copilot-token-C0y6vp3r.js";
11
+ import { f as resolveCommandArgMenu, n as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs } from "./commands-registry-DwZAJuut.js";
12
+
13
+ export { buildCommandTextFromArgs, findCommandByNativeName, listNativeCommandSpecsForConfig, parseCommandArgs, resolveCommandArgMenu };
@@ -0,0 +1,13 @@
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 "./thinking-D41FMh9T.js";
8
+ import "./plugins-D5cdn70e.js";
9
+ import "./accounts-CcS9IAhD.js";
10
+ import "./accounts-CGTYP7Rh.js";
11
+ import { f as resolveCommandArgMenu, n as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs } from "./commands-registry-CcdEPxVg.js";
12
+
13
+ export { buildCommandTextFromArgs, findCommandByNativeName, listNativeCommandSpecsForConfig, parseCommandArgs, resolveCommandArgMenu };
@@ -0,0 +1,52 @@
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 "./thinking-1UCPuD9d.js";
8
+ import "./accounts-PSzw-z3S.js";
9
+ import "./send-D9CSOGul.js";
10
+ import "./common-CqnO92P8.js";
11
+ import { H as finalizeInboundContext, O as resolveAgentRoute, S as dispatchReplyWithDispatcher, o as deliverSlackSlashReplies, r as recordInboundSessionMetaSafe, u as createReplyPrefixOptions } from "./reply-CWWUd_JS.js";
12
+ import "./image-ops-CMsocOob.js";
13
+ import { rn as resolveConversationLabel } from "./pi-embedded-helpers-BDJ_4Plh.js";
14
+ import "./accounts-kr-Gz1hk.js";
15
+ import "./send-DLKxJJYV.js";
16
+ import "./github-copilot-token-C0y6vp3r.js";
17
+ import "./paths-CP67O8eN.js";
18
+ import "./send-BeLBlAsQ.js";
19
+ import "./tokens-DAL_5WHL.js";
20
+ import "./audio-transcription-runner-Dwc0Eh-B.js";
21
+ import "./image-rycGCqJO.js";
22
+ import "./chrome-diV5m81I.js";
23
+ import "./skills-BzXN4uev.js";
24
+ import "./path-alias-guards-DA0MhfkG.js";
25
+ import "./redact-DfACyt0X.js";
26
+ import "./errors-9oVz7reJ.js";
27
+ import "./fs-safe-DFbwq9CS.js";
28
+ import "./proxy-env-Ib4-LUh-.js";
29
+ import "./store-DnJhFFW5.js";
30
+ import "./tool-images-RX4QTMnt.js";
31
+ import "./fetch-guard-Or5BCq0E.js";
32
+ import "./api-key-rotation-DE4gr5YM.js";
33
+ import "./local-roots-1xVosTZ4.js";
34
+ import "./proxy-fetch-Cf3IUSDw.js";
35
+ import "./deliver-DG_7Uagn.js";
36
+ import "./commands-registry-DwZAJuut.js";
37
+ import "./skill-commands-Bv7EZypt.js";
38
+ import "./fetch-D3HDdlk7.js";
39
+ import "./diagnostic-CT7v_kM2.js";
40
+ import "./pi-model-discovery-Mk0GTDJl.js";
41
+ import { m as resolveChunkMode, s as resolveMarkdownTableMode } from "./ir-DihI2SIz.js";
42
+ import "./render-95l30zcf.js";
43
+ import "./send-BP1fSEBR.js";
44
+ import "./outbound-attachment-Dtp3hQgc.js";
45
+ import "./send-XZ6IXCtL.js";
46
+ import "./channel-activity-XajEg_DL.js";
47
+ import "./tables-CpmqssLF.js";
48
+ import "./proxy-BOZmkV9K.js";
49
+ import "./manager-DrzOPeMD.js";
50
+ import "./query-expansion-CzjwW461.js";
51
+
52
+ export { createReplyPrefixOptions, deliverSlackSlashReplies, dispatchReplyWithDispatcher, finalizeInboundContext, recordInboundSessionMetaSafe, resolveAgentRoute, resolveChunkMode, resolveConversationLabel, resolveMarkdownTableMode };
@@ -0,0 +1,52 @@
1
+ import "./run-with-concurrency-5DMu9szx.js";
2
+ import "./accounts-BNuRM3rG.js";
3
+ import { N as finalizeInboundContext, X as createReplyPrefixOptions, a as deliverSlackSlashReplies, m as dispatchReplyWithDispatcher, n as recordInboundSessionMetaSafe, v as resolveAgentRoute } from "./reply-CQUX_haM.js";
4
+ import "./paths-8xF5kDne.js";
5
+ import "./github-copilot-token-Dy-0-Kh3.js";
6
+ import "./config-CrQ5bCrw.js";
7
+ import "./logger-DDdrdbDu.js";
8
+ import "./thinking-D41FMh9T.js";
9
+ import "./image-ops-BjK2qZZn.js";
10
+ import { rn as resolveConversationLabel } from "./pi-embedded-helpers-C-B9B6Sp.js";
11
+ import "./plugins-D5cdn70e.js";
12
+ import "./accounts-CcS9IAhD.js";
13
+ import "./accounts-CGTYP7Rh.js";
14
+ import "./send-DbxOJ_BC.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-gPvD1D7S.js";
20
+ import "./path-alias-guards-gBhrAn14.js";
21
+ import "./fs-safe-Dqmpk-Fr.js";
22
+ import "./ssrf-2WBi1Tzx.js";
23
+ import "./fetch-guard-C55uvn27.js";
24
+ import "./local-roots-DmOKwiNW.js";
25
+ import { d as resolveChunkMode, i as resolveMarkdownTableMode } from "./ir-CS7uuQhN.js";
26
+ import "./render-HmipMDlP.js";
27
+ import "./tables-CrDYcv_b.js";
28
+ import "./send-uCPS53j8.js";
29
+ import "./send-BU4OoR7u.js";
30
+ import "./tool-images-CWc54lpI.js";
31
+ import "./target-errors-aOwE-MIU.js";
32
+ import "./send-BACEu1Un.js";
33
+ import "./audio-transcription-runner-RXsskMMk.js";
34
+ import "./tokens-CTIYTLWu.js";
35
+ import "./skill-commands-BK1KDKmS.js";
36
+ import "./skills-D4am-zkO.js";
37
+ import "./chrome-9Y_LcUg1.js";
38
+ import "./deliver-D3xr5AkB.js";
39
+ import "./diagnostic-BXkLYs_9.js";
40
+ import "./store-BKDMuvyn.js";
41
+ import "./commands-registry-CcdEPxVg.js";
42
+ import "./image-3xW7IJdq.js";
43
+ import "./api-key-rotation-Bhck7wki.js";
44
+ import "./proxy-fetch-ZPEvp58f.js";
45
+ import "./pi-model-discovery-BGEeoPzN.js";
46
+ import "./send-n932vjT5.js";
47
+ import "./outbound-attachment-BoFx05zw.js";
48
+ import "./proxy-BKdNrmWL.js";
49
+ import "./manager-DiXPCubI.js";
50
+ import "./query-expansion-eeVz_aEm.js";
51
+
52
+ export { createReplyPrefixOptions, deliverSlackSlashReplies, dispatchReplyWithDispatcher, finalizeInboundContext, recordInboundSessionMetaSafe, resolveAgentRoute, resolveChunkMode, resolveConversationLabel, resolveMarkdownTableMode };
@@ -0,0 +1,16 @@
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 "./thinking-1UCPuD9d.js";
8
+ import "./accounts-PSzw-z3S.js";
9
+ import "./accounts-kr-Gz1hk.js";
10
+ import "./github-copilot-token-C0y6vp3r.js";
11
+ import "./skills-BzXN4uev.js";
12
+ import "./path-alias-guards-DA0MhfkG.js";
13
+ import "./commands-registry-DwZAJuut.js";
14
+ import { n as listSkillCommandsForAgents } from "./skill-commands-Bv7EZypt.js";
15
+
16
+ export { listSkillCommandsForAgents };
@@ -0,0 +1,16 @@
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 "./thinking-D41FMh9T.js";
8
+ import "./plugins-D5cdn70e.js";
9
+ import "./accounts-CcS9IAhD.js";
10
+ import "./accounts-CGTYP7Rh.js";
11
+ import "./path-alias-guards-gBhrAn14.js";
12
+ import { n as listSkillCommandsForAgents } from "./skill-commands-BK1KDKmS.js";
13
+ import "./skills-D4am-zkO.js";
14
+ import "./commands-registry-CcdEPxVg.js";
15
+
16
+ export { listSkillCommandsForAgents };
@@ -0,0 +1,202 @@
1
+ import { $ as parseCanonicalIpAddress, G as isBlockedSpecialUseIpv4Address, J as isIpv4Address, K as isBlockedSpecialUseIpv6Address, W as extractEmbeddedIpv4FromIpv6, Y as isLegacyIpv4Literal, et as parseLooseIpAddress, q as isCanonicalDottedDecimalIPv4 } from "./config-CrQ5bCrw.js";
2
+ import { Agent } from "undici";
3
+ import { lookup } from "node:dns";
4
+ import { lookup as lookup$1 } from "node:dns/promises";
5
+
6
+ //#region src/infra/net/proxy-env.ts
7
+ const PROXY_ENV_KEYS = [
8
+ "HTTP_PROXY",
9
+ "HTTPS_PROXY",
10
+ "ALL_PROXY",
11
+ "http_proxy",
12
+ "https_proxy",
13
+ "all_proxy"
14
+ ];
15
+ function hasProxyEnvConfigured(env = process.env) {
16
+ for (const key of PROXY_ENV_KEYS) {
17
+ const value = env[key];
18
+ if (typeof value === "string" && value.trim().length > 0) return true;
19
+ }
20
+ return false;
21
+ }
22
+
23
+ //#endregion
24
+ //#region src/infra/net/hostname.ts
25
+ function normalizeHostname(hostname) {
26
+ const normalized = hostname.trim().toLowerCase().replace(/\.$/, "");
27
+ if (normalized.startsWith("[") && normalized.endsWith("]")) return normalized.slice(1, -1);
28
+ return normalized;
29
+ }
30
+
31
+ //#endregion
32
+ //#region src/infra/net/ssrf.ts
33
+ var SsrFBlockedError = class extends Error {
34
+ constructor(message) {
35
+ super(message);
36
+ this.name = "SsrFBlockedError";
37
+ }
38
+ };
39
+ const BLOCKED_HOSTNAMES = new Set([
40
+ "localhost",
41
+ "localhost.localdomain",
42
+ "metadata.google.internal"
43
+ ]);
44
+ function normalizeHostnameSet(values) {
45
+ if (!values || values.length === 0) return /* @__PURE__ */ new Set();
46
+ return new Set(values.map((value) => normalizeHostname(value)).filter(Boolean));
47
+ }
48
+ function normalizeHostnameAllowlist(values) {
49
+ if (!values || values.length === 0) return [];
50
+ return Array.from(new Set(values.map((value) => normalizeHostname(value)).filter((value) => value !== "*" && value !== "*." && value.length > 0)));
51
+ }
52
+ function isPrivateNetworkAllowedByPolicy(policy) {
53
+ return policy?.dangerouslyAllowPrivateNetwork === true || policy?.allowPrivateNetwork === true;
54
+ }
55
+ function resolveIpv4SpecialUseBlockOptions(policy) {
56
+ return { allowRfc2544BenchmarkRange: policy?.allowRfc2544BenchmarkRange === true };
57
+ }
58
+ function isHostnameAllowedByPattern(hostname, pattern) {
59
+ if (pattern.startsWith("*.")) {
60
+ const suffix = pattern.slice(2);
61
+ if (!suffix || hostname === suffix) return false;
62
+ return hostname.endsWith(`.${suffix}`);
63
+ }
64
+ return hostname === pattern;
65
+ }
66
+ function matchesHostnameAllowlist(hostname, allowlist) {
67
+ if (allowlist.length === 0) return true;
68
+ return allowlist.some((pattern) => isHostnameAllowedByPattern(hostname, pattern));
69
+ }
70
+ function looksLikeUnsupportedIpv4Literal(address) {
71
+ const parts = address.split(".");
72
+ if (parts.length === 0 || parts.length > 4) return false;
73
+ if (parts.some((part) => part.length === 0)) return true;
74
+ return parts.every((part) => /^[0-9]+$/.test(part) || /^0x/i.test(part));
75
+ }
76
+ function isPrivateIpAddress(address, policy) {
77
+ let normalized = address.trim().toLowerCase();
78
+ if (normalized.startsWith("[") && normalized.endsWith("]")) normalized = normalized.slice(1, -1);
79
+ if (!normalized) return false;
80
+ const blockOptions = resolveIpv4SpecialUseBlockOptions(policy);
81
+ const strictIp = parseCanonicalIpAddress(normalized);
82
+ if (strictIp) {
83
+ if (isIpv4Address(strictIp)) return isBlockedSpecialUseIpv4Address(strictIp, blockOptions);
84
+ if (isBlockedSpecialUseIpv6Address(strictIp)) return true;
85
+ const embeddedIpv4 = extractEmbeddedIpv4FromIpv6(strictIp);
86
+ if (embeddedIpv4) return isBlockedSpecialUseIpv4Address(embeddedIpv4, blockOptions);
87
+ return false;
88
+ }
89
+ if (normalized.includes(":") && !parseLooseIpAddress(normalized)) return true;
90
+ if (!isCanonicalDottedDecimalIPv4(normalized) && isLegacyIpv4Literal(normalized)) return true;
91
+ if (looksLikeUnsupportedIpv4Literal(normalized)) return true;
92
+ return false;
93
+ }
94
+ function isBlockedHostname(hostname) {
95
+ const normalized = normalizeHostname(hostname);
96
+ if (!normalized) return false;
97
+ return isBlockedHostnameNormalized(normalized);
98
+ }
99
+ function isBlockedHostnameNormalized(normalized) {
100
+ if (BLOCKED_HOSTNAMES.has(normalized)) return true;
101
+ return normalized.endsWith(".localhost") || normalized.endsWith(".local") || normalized.endsWith(".internal");
102
+ }
103
+ function isBlockedHostnameOrIp(hostname, policy) {
104
+ const normalized = normalizeHostname(hostname);
105
+ if (!normalized) return false;
106
+ return isBlockedHostnameNormalized(normalized) || isPrivateIpAddress(normalized, policy);
107
+ }
108
+ const BLOCKED_HOST_OR_IP_MESSAGE = "Blocked hostname or private/internal/special-use IP address";
109
+ const BLOCKED_RESOLVED_IP_MESSAGE = "Blocked: resolves to private/internal/special-use IP address";
110
+ function assertAllowedHostOrIpOrThrow(hostnameOrIp, policy) {
111
+ if (isBlockedHostnameOrIp(hostnameOrIp, policy)) throw new SsrFBlockedError(BLOCKED_HOST_OR_IP_MESSAGE);
112
+ }
113
+ function assertAllowedResolvedAddressesOrThrow(results, policy) {
114
+ for (const entry of results) if (isBlockedHostnameOrIp(entry.address, policy)) throw new SsrFBlockedError(BLOCKED_RESOLVED_IP_MESSAGE);
115
+ }
116
+ function createPinnedLookup(params) {
117
+ const normalizedHost = normalizeHostname(params.hostname);
118
+ const fallback = params.fallback ?? lookup;
119
+ const fallbackLookup = fallback;
120
+ const fallbackWithOptions = fallback;
121
+ const records = params.addresses.map((address) => ({
122
+ address,
123
+ family: address.includes(":") ? 6 : 4
124
+ }));
125
+ let index = 0;
126
+ return ((host, options, callback) => {
127
+ const cb = typeof options === "function" ? options : callback;
128
+ if (!cb) return;
129
+ const normalized = normalizeHostname(host);
130
+ if (!normalized || normalized !== normalizedHost) {
131
+ if (typeof options === "function" || options === void 0) return fallbackLookup(host, cb);
132
+ return fallbackWithOptions(host, options, cb);
133
+ }
134
+ const opts = typeof options === "object" && options !== null ? options : {};
135
+ const requestedFamily = typeof options === "number" ? options : typeof opts.family === "number" ? opts.family : 0;
136
+ const candidates = requestedFamily === 4 || requestedFamily === 6 ? records.filter((entry) => entry.family === requestedFamily) : records;
137
+ const usable = candidates.length > 0 ? candidates : records;
138
+ if (opts.all) {
139
+ cb(null, usable);
140
+ return;
141
+ }
142
+ const chosen = usable[index % usable.length];
143
+ index += 1;
144
+ cb(null, chosen.address, chosen.family);
145
+ });
146
+ }
147
+ function dedupeAndPreferIpv4(results) {
148
+ const seen = /* @__PURE__ */ new Set();
149
+ const ipv4 = [];
150
+ const otherFamilies = [];
151
+ for (const entry of results) {
152
+ if (seen.has(entry.address)) continue;
153
+ seen.add(entry.address);
154
+ if (entry.family === 4) {
155
+ ipv4.push(entry.address);
156
+ continue;
157
+ }
158
+ otherFamilies.push(entry.address);
159
+ }
160
+ return [...ipv4, ...otherFamilies];
161
+ }
162
+ async function resolvePinnedHostnameWithPolicy(hostname, params = {}) {
163
+ const normalized = normalizeHostname(hostname);
164
+ if (!normalized) throw new Error("Invalid hostname");
165
+ const allowPrivateNetwork = isPrivateNetworkAllowedByPolicy(params.policy);
166
+ const allowedHostnames = normalizeHostnameSet(params.policy?.allowedHostnames);
167
+ const hostnameAllowlist = normalizeHostnameAllowlist(params.policy?.hostnameAllowlist);
168
+ const isExplicitAllowed = allowedHostnames.has(normalized);
169
+ const skipPrivateNetworkChecks = allowPrivateNetwork || isExplicitAllowed;
170
+ if (!matchesHostnameAllowlist(normalized, hostnameAllowlist)) throw new SsrFBlockedError(`Blocked hostname (not in allowlist): ${hostname}`);
171
+ if (!skipPrivateNetworkChecks) assertAllowedHostOrIpOrThrow(normalized, params.policy);
172
+ const results = await (params.lookupFn ?? lookup$1)(normalized, { all: true });
173
+ if (results.length === 0) throw new Error(`Unable to resolve hostname: ${hostname}`);
174
+ if (!skipPrivateNetworkChecks) assertAllowedResolvedAddressesOrThrow(results, params.policy);
175
+ const addresses = dedupeAndPreferIpv4(results);
176
+ if (addresses.length === 0) throw new Error(`Unable to resolve hostname: ${hostname}`);
177
+ return {
178
+ hostname: normalized,
179
+ addresses,
180
+ lookup: createPinnedLookup({
181
+ hostname: normalized,
182
+ addresses
183
+ })
184
+ };
185
+ }
186
+ function createPinnedDispatcher(pinned) {
187
+ return new Agent({ connect: { lookup: pinned.lookup } });
188
+ }
189
+ async function closeDispatcher(dispatcher) {
190
+ if (!dispatcher) return;
191
+ const candidate = dispatcher;
192
+ try {
193
+ if (typeof candidate.close === "function") {
194
+ await candidate.close();
195
+ return;
196
+ }
197
+ if (typeof candidate.destroy === "function") candidate.destroy();
198
+ } catch {}
199
+ }
200
+
201
+ //#endregion
202
+ export { isBlockedHostnameOrIp as a, resolvePinnedHostnameWithPolicy as c, isBlockedHostname as i, normalizeHostname as l, closeDispatcher as n, isPrivateIpAddress as o, createPinnedDispatcher as r, isPrivateNetworkAllowedByPolicy as s, SsrFBlockedError as t, hasProxyEnvConfigured as u };
@@ -0,0 +1,81 @@
1
+ import { w as resolveConfigDir } from "./logger-DDdrdbDu.js";
2
+ import { c as detectMime, l as extensionForMime } from "./image-ops-BjK2qZZn.js";
3
+ import { createWriteStream } from "node:fs";
4
+ import path from "node:path";
5
+ import fs$1 from "node:fs/promises";
6
+ import crypto from "node:crypto";
7
+ import { pipeline } from "node:stream/promises";
8
+ import { request } from "node:https";
9
+
10
+ //#region src/media/store.ts
11
+ const resolveMediaDir = () => path.join(resolveConfigDir(), "media");
12
+ const MEDIA_MAX_BYTES = 5 * 1024 * 1024;
13
+ const MAX_BYTES = MEDIA_MAX_BYTES;
14
+ const DEFAULT_TTL_MS = 120 * 1e3;
15
+ const MEDIA_FILE_MODE = 420;
16
+ /**
17
+ * Sanitize a filename for cross-platform safety.
18
+ * Removes chars unsafe on Windows/SharePoint/all platforms.
19
+ * Keeps: alphanumeric, dots, hyphens, underscores, Unicode letters/numbers.
20
+ */
21
+ function sanitizeFilename(name) {
22
+ const trimmed = name.trim();
23
+ if (!trimmed) return "";
24
+ return trimmed.replace(/[^\p{L}\p{N}._-]+/gu, "_").replace(/_+/g, "_").replace(/^_|_$/g, "").slice(0, 60);
25
+ }
26
+ /**
27
+ * Extract original filename from path if it matches the embedded format.
28
+ * Pattern: {original}---{uuid}.{ext} → returns "{original}.{ext}"
29
+ * Falls back to basename if no pattern match, or "file.bin" if empty.
30
+ */
31
+ function extractOriginalFilename(filePath) {
32
+ const basename = path.basename(filePath);
33
+ if (!basename) return "file.bin";
34
+ const ext = path.extname(basename);
35
+ const match = path.basename(basename, ext).match(/^(.+)---[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i);
36
+ if (match?.[1]) return `${match[1]}${ext}`;
37
+ return basename;
38
+ }
39
+ function getMediaDir() {
40
+ return resolveMediaDir();
41
+ }
42
+ async function ensureMediaDir() {
43
+ const mediaDir = resolveMediaDir();
44
+ await fs$1.mkdir(mediaDir, {
45
+ recursive: true,
46
+ mode: 448
47
+ });
48
+ return mediaDir;
49
+ }
50
+ async function saveMediaBuffer(buffer, contentType, subdir = "inbound", maxBytes = MAX_BYTES, originalFilename) {
51
+ if (buffer.byteLength > maxBytes) throw new Error(`Media exceeds ${(maxBytes / (1024 * 1024)).toFixed(0)}MB limit`);
52
+ const dir = path.join(resolveMediaDir(), subdir);
53
+ await fs$1.mkdir(dir, {
54
+ recursive: true,
55
+ mode: 448
56
+ });
57
+ const uuid = crypto.randomUUID();
58
+ const headerExt = extensionForMime(contentType?.split(";")[0]?.trim() ?? void 0);
59
+ const mime = await detectMime({
60
+ buffer,
61
+ headerMime: contentType
62
+ });
63
+ const ext = headerExt ?? extensionForMime(mime) ?? "";
64
+ let id;
65
+ if (originalFilename) {
66
+ const base = path.parse(originalFilename).name;
67
+ const sanitized = sanitizeFilename(base);
68
+ id = sanitized ? `${sanitized}---${uuid}${ext}` : `${uuid}${ext}`;
69
+ } else id = ext ? `${uuid}${ext}` : uuid;
70
+ const dest = path.join(dir, id);
71
+ await fs$1.writeFile(dest, buffer, { mode: MEDIA_FILE_MODE });
72
+ return {
73
+ id,
74
+ path: dest,
75
+ size: buffer.byteLength,
76
+ contentType: mime
77
+ };
78
+ }
79
+
80
+ //#endregion
81
+ export { saveMediaBuffer as a, getMediaDir as i, ensureMediaDir as n, extractOriginalFilename as r, MEDIA_MAX_BYTES as t };
@@ -1,5 +1,5 @@
1
- import { _ as resolveConfigDir } from "./logger-DIb2cGHp.js";
2
- import { c as detectMime, l as extensionForMime } from "./image-ops-sw0uZ0GN.js";
1
+ import { _ as resolveConfigDir } from "./logger-Bg4vIUJn.js";
2
+ import { c as detectMime, l as extensionForMime } from "./image-ops-CMsocOob.js";
3
3
  import path from "node:path";
4
4
  import fs$1 from "node:fs/promises";
5
5
  import crypto from "node:crypto";
@@ -0,0 +1,52 @@
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 "./thinking-1UCPuD9d.js";
8
+ import "./accounts-PSzw-z3S.js";
9
+ import "./send-D9CSOGul.js";
10
+ import "./common-CqnO92P8.js";
11
+ import { F as resolveRequesterForChildSession, M as countPendingDescendantRuns, N as countPendingDescendantRunsExcludingRun, P as isSubagentSessionRunActive, j as countActiveDescendantRuns } from "./reply-CWWUd_JS.js";
12
+ import "./image-ops-CMsocOob.js";
13
+ import "./pi-embedded-helpers-BDJ_4Plh.js";
14
+ import "./accounts-kr-Gz1hk.js";
15
+ import "./send-DLKxJJYV.js";
16
+ import "./github-copilot-token-C0y6vp3r.js";
17
+ import "./paths-CP67O8eN.js";
18
+ import "./send-BeLBlAsQ.js";
19
+ import "./tokens-DAL_5WHL.js";
20
+ import "./audio-transcription-runner-Dwc0Eh-B.js";
21
+ import "./image-rycGCqJO.js";
22
+ import "./chrome-diV5m81I.js";
23
+ import "./skills-BzXN4uev.js";
24
+ import "./path-alias-guards-DA0MhfkG.js";
25
+ import "./redact-DfACyt0X.js";
26
+ import "./errors-9oVz7reJ.js";
27
+ import "./fs-safe-DFbwq9CS.js";
28
+ import "./proxy-env-Ib4-LUh-.js";
29
+ import "./store-DnJhFFW5.js";
30
+ import "./tool-images-RX4QTMnt.js";
31
+ import "./fetch-guard-Or5BCq0E.js";
32
+ import "./api-key-rotation-DE4gr5YM.js";
33
+ import "./local-roots-1xVosTZ4.js";
34
+ import "./proxy-fetch-Cf3IUSDw.js";
35
+ import "./deliver-DG_7Uagn.js";
36
+ import "./commands-registry-DwZAJuut.js";
37
+ import "./skill-commands-Bv7EZypt.js";
38
+ import "./fetch-D3HDdlk7.js";
39
+ import "./diagnostic-CT7v_kM2.js";
40
+ import "./pi-model-discovery-Mk0GTDJl.js";
41
+ import "./ir-DihI2SIz.js";
42
+ import "./render-95l30zcf.js";
43
+ import "./send-BP1fSEBR.js";
44
+ import "./outbound-attachment-Dtp3hQgc.js";
45
+ import "./send-XZ6IXCtL.js";
46
+ import "./channel-activity-XajEg_DL.js";
47
+ import "./tables-CpmqssLF.js";
48
+ import "./proxy-BOZmkV9K.js";
49
+ import "./manager-DrzOPeMD.js";
50
+ import "./query-expansion-CzjwW461.js";
51
+
52
+ export { countActiveDescendantRuns, countPendingDescendantRuns, countPendingDescendantRunsExcludingRun, isSubagentSessionRunActive, resolveRequesterForChildSession };
@@ -0,0 +1,52 @@
1
+ import "./run-with-concurrency-5DMu9szx.js";
2
+ import "./accounts-BNuRM3rG.js";
3
+ import { C as countPendingDescendantRunsExcludingRun, S as countPendingDescendantRuns, T as resolveRequesterForChildSession, w as isSubagentSessionRunActive, x as countActiveDescendantRuns } from "./reply-CQUX_haM.js";
4
+ import "./paths-8xF5kDne.js";
5
+ import "./github-copilot-token-Dy-0-Kh3.js";
6
+ import "./config-CrQ5bCrw.js";
7
+ import "./logger-DDdrdbDu.js";
8
+ import "./thinking-D41FMh9T.js";
9
+ import "./image-ops-BjK2qZZn.js";
10
+ import "./pi-embedded-helpers-C-B9B6Sp.js";
11
+ import "./plugins-D5cdn70e.js";
12
+ import "./accounts-CcS9IAhD.js";
13
+ import "./accounts-CGTYP7Rh.js";
14
+ import "./send-DbxOJ_BC.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-gPvD1D7S.js";
20
+ import "./path-alias-guards-gBhrAn14.js";
21
+ import "./fs-safe-Dqmpk-Fr.js";
22
+ import "./ssrf-2WBi1Tzx.js";
23
+ import "./fetch-guard-C55uvn27.js";
24
+ import "./local-roots-DmOKwiNW.js";
25
+ import "./ir-CS7uuQhN.js";
26
+ import "./render-HmipMDlP.js";
27
+ import "./tables-CrDYcv_b.js";
28
+ import "./send-uCPS53j8.js";
29
+ import "./send-BU4OoR7u.js";
30
+ import "./tool-images-CWc54lpI.js";
31
+ import "./target-errors-aOwE-MIU.js";
32
+ import "./send-BACEu1Un.js";
33
+ import "./audio-transcription-runner-RXsskMMk.js";
34
+ import "./tokens-CTIYTLWu.js";
35
+ import "./skill-commands-BK1KDKmS.js";
36
+ import "./skills-D4am-zkO.js";
37
+ import "./chrome-9Y_LcUg1.js";
38
+ import "./deliver-D3xr5AkB.js";
39
+ import "./diagnostic-BXkLYs_9.js";
40
+ import "./store-BKDMuvyn.js";
41
+ import "./commands-registry-CcdEPxVg.js";
42
+ import "./image-3xW7IJdq.js";
43
+ import "./api-key-rotation-Bhck7wki.js";
44
+ import "./proxy-fetch-ZPEvp58f.js";
45
+ import "./pi-model-discovery-BGEeoPzN.js";
46
+ import "./send-n932vjT5.js";
47
+ import "./outbound-attachment-BoFx05zw.js";
48
+ import "./proxy-BKdNrmWL.js";
49
+ import "./manager-DiXPCubI.js";
50
+ import "./query-expansion-eeVz_aEm.js";
51
+
52
+ export { countActiveDescendantRuns, countPendingDescendantRuns, countPendingDescendantRunsExcludingRun, isSubagentSessionRunActive, resolveRequesterForChildSession };
@@ -1,4 +1,4 @@
1
- import { r as markdownToIRWithMeta } from "./ir-BVZ5kUMb.js";
1
+ import { r as markdownToIRWithMeta } from "./ir-DihI2SIz.js";
2
2
  import { t as renderMarkdownWithMarkers } from "./render-95l30zcf.js";
3
3
 
4
4
  //#region src/markdown/tables.ts
@@ -0,0 +1,55 @@
1
+ import { r as markdownToIRWithMeta } from "./ir-CS7uuQhN.js";
2
+ import { t as renderMarkdownWithMarkers } from "./render-HmipMDlP.js";
3
+
4
+ //#region src/markdown/tables.ts
5
+ const MARKDOWN_STYLE_MARKERS = {
6
+ bold: {
7
+ open: "**",
8
+ close: "**"
9
+ },
10
+ italic: {
11
+ open: "_",
12
+ close: "_"
13
+ },
14
+ strikethrough: {
15
+ open: "~~",
16
+ close: "~~"
17
+ },
18
+ code: {
19
+ open: "`",
20
+ close: "`"
21
+ },
22
+ code_block: {
23
+ open: "```\n",
24
+ close: "```"
25
+ }
26
+ };
27
+ function convertMarkdownTables(markdown, mode) {
28
+ if (!markdown || mode === "off") return markdown;
29
+ const { ir, hasTables } = markdownToIRWithMeta(markdown, {
30
+ linkify: false,
31
+ autolink: false,
32
+ headingStyle: "none",
33
+ blockquotePrefix: "",
34
+ tableMode: mode
35
+ });
36
+ if (!hasTables) return markdown;
37
+ return renderMarkdownWithMarkers(ir, {
38
+ styleMarkers: MARKDOWN_STYLE_MARKERS,
39
+ escapeText: (text) => text,
40
+ buildLink: (link, text) => {
41
+ const href = link.href.trim();
42
+ if (!href) return null;
43
+ if (!text.slice(link.start, link.end)) return null;
44
+ return {
45
+ start: link.start,
46
+ end: link.end,
47
+ open: "[",
48
+ close: `](${href})`
49
+ };
50
+ }
51
+ });
52
+ }
53
+
54
+ //#endregion
55
+ export { convertMarkdownTables as t };