squidclaw 3.0.19 → 3.0.21

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 (407) hide show
  1. package/dist/{accounts-s5e9zidf.js → accounts-C7pGQPcS.js} +2 -2
  2. package/dist/{accounts-Bkb-J8V6.js → accounts-DjhBQg_8.js} +2 -2
  3. package/dist/{accounts-B6F_XCgS.js → accounts-DwGoZKGm.js} +17 -17
  4. package/dist/{active-listener-6-Svu8Dx.js → active-listener-DPc_PGsA.js} +2 -2
  5. package/dist/{agents-DL8uYsUq.js → agents-DXKtU4Il.js} +4 -4
  6. package/dist/{agents.config-B4KAAVvR.js → agents.config-BM-2SLCh.js} +1 -1
  7. package/dist/{agents.config-D93fF1eJ.js → agents.config-eMSUW-iw.js} +1 -1
  8. package/dist/{plugin-sdk/api-key-rotation-DyjMI2n3.js → api-key-rotation-DVyYtQxC.js} +2 -2
  9. package/dist/{audio-preflight-DZ1LNMJp.js → audio-preflight-BUCBED7N.js} +32 -32
  10. package/dist/{audio-preflight-Bzo_zN4j.js → audio-preflight-lT9iRnYi.js} +4 -4
  11. package/dist/{audio-transcription-runner-B3u2x_ja.js → audio-transcription-runner-Cv0Q47cM.js} +12 -12
  12. package/dist/{audio-transcription-runner-Cp_lkLCv.js → audio-transcription-runner-YiR1ym3a.js} +1 -1
  13. package/dist/{audit-membership-runtime-w23FnNAN.js → audit-membership-runtime-DyLj-uhz.js} +4 -4
  14. package/dist/{auth-choice-Ba4AEm_k.js → auth-choice-CXepQc7c.js} +1 -1
  15. package/dist/{auth-choice-ziFj5bXd.js → auth-choice-D2JrMJn-.js} +1 -1
  16. package/dist/{banner-DDih2slD.js → banner-DMfuBV69.js} +1 -1
  17. package/dist/build-info.json +3 -3
  18. package/dist/bundled/boot-md/handler.js +51 -51
  19. package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
  20. package/dist/bundled/command-logger/handler.js +2 -2
  21. package/dist/bundled/session-memory/handler.js +687 -51
  22. package/dist/canvas-host/a2ui/a2ui.bundle.js +1 -17815
  23. package/dist/{channel-activity-CxJbx4sD.js → channel-activity-CPpt4XaL.js} +3 -3
  24. package/dist/{channel-options-DTDfU0R6.js → channel-options-CQ-gER0J.js} +1 -1
  25. package/dist/{channel-options-BBSsevyl.js → channel-options-SijIkAlT.js} +1 -1
  26. package/dist/{channel-web-BXl9jCKV.js → channel-web-7t1a2N13.js} +1 -1
  27. package/dist/{channel-web-SF18oYqo.js → channel-web-LLzBxZrT.js} +1 -1
  28. package/dist/{channels-cli-BiuWJpJu.js → channels-cli-D4xUEYYC.js} +6 -6
  29. package/dist/{channels-cli-BDLabpWH.js → channels-cli-DYaFNMme.js} +6 -6
  30. package/dist/{chrome-CZQnp4VH.js → chrome-CuBHInKC.js} +8 -8
  31. package/dist/{chrome-Dxm25ptH.js → chrome-OgCChbC_.js} +26 -26
  32. package/dist/{cli-CfgDCCuC.js → cli-CAID9zkL.js} +1 -1
  33. package/dist/{cli-DAZ1MKrJ.js → cli-Dlc9IFWZ.js} +1 -1
  34. package/dist/{command-registry-DkjNuW8w.js → command-registry-AHS8_9da.js} +9 -9
  35. package/dist/{commands-registry-B44COZFz.js → commands-registry-BJjv8_oR.js} +4 -4
  36. package/dist/{completion-cli-DbNma3J9.js → completion-cli-B8xjpHDs.js} +1 -1
  37. package/dist/{completion-cli-Du8H92bM.js → completion-cli-BR1r9_h4.js} +2 -2
  38. package/dist/{config-cli-CQhQ8Bcc.js → config-cli-D0A8Awoo.js} +1 -1
  39. package/dist/{config-cli-D16tlTWa.js → config-cli-D4Rxoozg.js} +1 -1
  40. package/dist/{configure-B9b3cQTC.js → configure-DOiI8_8c.js} +3 -3
  41. package/dist/{configure-B4TiK50K.js → configure-XmOqwwy9.js} +3 -3
  42. package/dist/control-ui/assets/{index-cM5P_3w7.js → index-BqxuPQOl.js} +2 -2
  43. package/dist/control-ui/assets/{index-cM5P_3w7.js.map → index-BqxuPQOl.js.map} +1 -1
  44. package/dist/control-ui/index.html +1 -1
  45. package/dist/{deliver-B4WWPQvt.js → deliver-6zfT7daI.js} +1 -1
  46. package/dist/{deliver-BcnsjbAB.js → deliver-DMTUTpTM.js} +21 -21
  47. package/dist/deliver-runtime-B80olQwJ.js +36 -0
  48. package/dist/{deliver-runtime-CeE1X9si.js → deliver-runtime-MBexxUuG.js} +3 -3
  49. package/dist/deps-send-discord.runtime-GIuvX7Xw.js +26 -0
  50. package/dist/deps-send-imessage.runtime-B3TC7G80.js +25 -0
  51. package/dist/deps-send-signal.runtime-CuVJyw7n.js +24 -0
  52. package/dist/deps-send-slack.runtime-cbfFoLZ4.js +22 -0
  53. package/dist/deps-send-telegram.runtime-CRyP-xDQ.js +27 -0
  54. package/dist/deps-send-whatsapp.runtime-4aOUBP2J.js +60 -0
  55. package/dist/{deps-send-whatsapp.runtime-B9uivfkM.js → deps-send-whatsapp.runtime-CETLGt-t.js} +3 -3
  56. package/dist/{deps-send-whatsapp.runtime-miTfQkK9.js → deps-send-whatsapp.runtime-CrxkfP31.js} +7 -7
  57. package/dist/{deps-send-whatsapp.runtime-CFnZsKW0.js → deps-send-whatsapp.runtime-__ogpmJj.js} +3 -3
  58. package/dist/{diagnostic-C2lklhkn.js → diagnostic-CnVwZNbm.js} +2 -2
  59. package/dist/{doctor-completion-ujZ_JdIz.js → doctor-completion-CZoEdMS-.js} +1 -1
  60. package/dist/{doctor-completion-CEiVFPte.js → doctor-completion-DhLEFUhN.js} +1 -1
  61. package/dist/entry.js +2 -2
  62. package/dist/{plugin-sdk/errors-B8oJXuCF.js → errors-kkRuS2Cs.js} +1 -1
  63. package/dist/extensionAPI.js +6 -6
  64. package/dist/{fetch-b8tSR7_e.js → fetch-DP-JjB6Z.js} +5 -5
  65. package/dist/{fetch-guard-D16tjNsZ.js → fetch-guard-BDy975wP.js} +2 -2
  66. package/dist/{frontmatter-CjKtFduT.js → frontmatter-Cq1TcIQ2.js} +3 -3
  67. package/dist/{fs-safe-CwHbZdFH.js → fs-safe-BoB4X3GD.js} +4 -4
  68. package/dist/{gateway-cli-NXeo-J8r.js → gateway-cli-BJHBChfI.js} +8 -8
  69. package/dist/{gateway-cli-2jaWM_Ci.js → gateway-cli-BpHskeDd.js} +8 -8
  70. package/dist/{github-copilot-token-Cw3tAXM9.js → github-copilot-token-B5cPlwaz.js} +7 -7
  71. package/dist/{health-BPZALM__.js → health-TmpUGSqu.js} +1 -1
  72. package/dist/{health-DFZKMrW2.js → health-XFKFZ7ZJ.js} +1 -1
  73. package/dist/{hooks-cli-B3rkhWcT.js → hooks-cli-CXsZK8H9.js} +2 -2
  74. package/dist/{hooks-cli-BO_gZJVD.js → hooks-cli-DsDV-Pxz.js} +2 -2
  75. package/dist/{image-DKkuLtZ4.js → image-VgwN31FZ.js} +1 -1
  76. package/dist/{image-C-8Kd2Mh.js → image-kKMG59st.js} +6 -6
  77. package/dist/{image-ops-BoN1E_WZ.js → image-ops-Dg8iraUV.js} +2 -2
  78. package/dist/image-runtime-BqIv7p_K.js +29 -0
  79. package/dist/{image-runtime-BMavqm9n.js → image-runtime-CwMuTYvd.js} +3 -3
  80. package/dist/index.js +6 -6
  81. package/dist/{ir-Dut0zXyS.js → ir-CKK03mBV.js} +8 -8
  82. package/dist/{legacy-names-B0wgIP0Q.js → legacy-names-aGJJuzM_.js} +1 -1
  83. package/dist/llm-slug-generator.js +51 -51
  84. package/dist/{logger-oGKcCLZ5.js → logger-CnTSBL7T.js} +7 -7
  85. package/dist/{login-DJ357UQV.js → login-CeKDrz6_.js} +5 -5
  86. package/dist/{login-qr-C0fDBnpM.js → login-qr-KbOpR0GQ.js} +10 -10
  87. package/dist/{manager-BPGhs30n.js → manager-DINhLnMi.js} +13 -13
  88. package/dist/manager-runtime-D6ckUNSs.js +18 -0
  89. package/dist/{model-selection-CHnojCCK.js → model-selection-DuNLFQPR.js} +43 -43
  90. package/dist/{models-Bb-GYqHr.js → models-5VXwJBU2.js} +2 -2
  91. package/dist/{models-cli-DffAz0ji.js → models-cli-Br56IHfy.js} +3 -3
  92. package/dist/{models-cli-CAIJM1Wh.js → models-cli-CrR1RN3j.js} +2 -2
  93. package/dist/{npm-resolution-D2_zGJM-.js → npm-resolution-CKtyq4FH.js} +1 -1
  94. package/dist/{npm-resolution-D5pBCkUw.js → npm-resolution-CPk7dS7F.js} +1 -1
  95. package/dist/{onboard-DcVsL9Jx.js → onboard-DUnBamC0.js} +2 -2
  96. package/dist/{onboard-channels-mNXKTvFs.js → onboard-channels-D45grihx.js} +1 -1
  97. package/dist/{onboard-channels-C-cQFUBH.js → onboard-channels-_kVo3Apf.js} +1 -1
  98. package/dist/{onboard-dhG2YBez.js → onboard-lFwpCpC3.js} +2 -2
  99. package/dist/{onboarding-B3-IwkNi.js → onboarding-CyCSQ__q.js} +3 -3
  100. package/dist/{onboarding-Cl6kW_iq.js → onboarding-EEd_g8Zg.js} +3 -3
  101. package/dist/{onboarding.finalize-CCU-ykTR.js → onboarding.finalize-CbMq7C4K.js} +5 -5
  102. package/dist/{onboarding.finalize-BZqsNG2H.js → onboarding.finalize-Cs1ukjFN.js} +6 -6
  103. package/dist/{outbound-qTioiTJg.js → outbound-C9svt6RH.js} +6 -6
  104. package/dist/{outbound-attachment-rlW7G5df.js → outbound-attachment-DwupUxYF.js} +2 -2
  105. package/dist/{path-alias-guards-Cpsiv2KL.js → path-alias-guards-DORgbZ1w.js} +1 -1
  106. package/dist/{paths-CSdAWKDO.js → paths-DA5srn0U.js} +5 -5
  107. package/dist/{paths-CXClY8zC.js → paths-DSd911Oe.js} +4 -4
  108. package/dist/{pi-embedded-B79nZERv.js → pi-embedded-BN8fghaF.js} +123 -26
  109. package/dist/{pi-embedded-C5U8Qxn6.js → pi-embedded-BiC4tIJ8.js} +266 -169
  110. package/dist/{pi-embedded-helpers-CEHpGDRs.js → pi-embedded-helpers-A9VYPVCH.js} +3 -3
  111. package/dist/{pi-embedded-helpers-DQ7IaeOi.js → pi-embedded-helpers-Di58J7Eh.js} +52 -52
  112. package/dist/{pi-model-discovery-o-WX5w2t.js → pi-model-discovery-V-InbjOM.js} +7 -7
  113. package/dist/pi-model-discovery-runtime--t6tAlar.js +11 -0
  114. package/dist/{pi-tools.before-tool-call.runtime-B_LUttg1.js → pi-tools.before-tool-call.runtime-Bpk4qTgV.js} +9 -9
  115. package/dist/{plugin-registry-CB47SSz1.js → plugin-registry-CXm125Uz.js} +1 -1
  116. package/dist/{plugin-registry-Gy_VByyf.js → plugin-registry-D3PnPE1D.js} +1 -1
  117. package/dist/plugin-sdk/{accounts-0kF5cxkn.js → accounts-C5PAuCTj.js} +2 -2
  118. package/dist/plugin-sdk/{accounts-u0-JAHzj.js → accounts-DC5cbH9r.js} +2 -2
  119. package/dist/plugin-sdk/{accounts-xZOA23tQ.js → accounts-DncG0Hx9.js} +3 -3
  120. package/dist/plugin-sdk/{active-listener-BO7eBEG_.js → active-listener-Bd3HH2km.js} +2 -2
  121. package/dist/plugin-sdk/agents/agent-tier.d.ts +22 -2
  122. package/dist/plugin-sdk/{api-key-rotation-C4C_mDsg.js → api-key-rotation-BAZ0GD26.js} +2 -2
  123. package/dist/plugin-sdk/{audio-preflight-C0q7lu6y.js → audio-preflight-tpVm-t9O.js} +26 -26
  124. package/dist/plugin-sdk/{audio-transcription-runner-Ced47O1H.js → audio-transcription-runner-DSScb434.js} +11 -11
  125. package/dist/plugin-sdk/{audit-membership-runtime-Xl20kCBe.js → audit-membership-runtime-DHQDvH4u.js} +2 -2
  126. package/dist/plugin-sdk/{channel-activity-CNffKOEQ.js → channel-activity-cYEaofTH.js} +3 -3
  127. package/dist/plugin-sdk/{channel-web-vB3Dcd8-.js → channel-web-CbeCrQ4C.js} +18 -18
  128. package/dist/plugin-sdk/{channel-web-BrhP6FQO.js → channel-web-CqiSEc52.js} +1 -1
  129. package/dist/plugin-sdk/{chrome-DJQWo149.js → chrome-DB2h0uN0.js} +6 -6
  130. package/dist/plugin-sdk/{commands-registry-_kBPE22q.js → commands-registry-DGZ1oFXJ.js} +4 -4
  131. package/dist/plugin-sdk/{common-J8vIST9Q.js → common-D5lLWoCW.js} +2 -2
  132. package/dist/plugin-sdk/compat.js +50 -50
  133. package/dist/plugin-sdk/{config-CnZ1TlEw.js → config-Bt-c7PWF.js} +7 -7
  134. package/dist/plugin-sdk/{deliver-Xh6voz9H.js → deliver-MvrkIeKJ.js} +10 -10
  135. package/dist/plugin-sdk/deliver-runtime-i50kjcNM.js +32 -0
  136. package/dist/plugin-sdk/deps-send-discord.runtime-hOYq9ov0.js +23 -0
  137. package/dist/plugin-sdk/deps-send-imessage.runtime-D5n9DXyL.js +22 -0
  138. package/dist/plugin-sdk/deps-send-signal.runtime-CwEaRyJU.js +21 -0
  139. package/dist/plugin-sdk/deps-send-slack.runtime-DOZeLIaC.js +19 -0
  140. package/dist/plugin-sdk/deps-send-telegram.runtime-BW1hSPKh.js +24 -0
  141. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Ce4Gzz-J.js → deps-send-whatsapp.runtime-DvxhnHR_.js} +3 -3
  142. package/dist/plugin-sdk/deps-send-whatsapp.runtime-JKmTtCFM.js +57 -0
  143. package/dist/plugin-sdk/{diagnostic-DKsyROPi.js → diagnostic-B6F3BtCX.js} +2 -2
  144. package/dist/plugin-sdk/{errors-CgRPdp3o.js → errors-9oVz7reJ.js} +1 -1
  145. package/dist/plugin-sdk/{fetch-guard-BBAT8G-1.js → fetch-guard-cfPCfkrw.js} +2 -2
  146. package/dist/plugin-sdk/{fs-safe-DqCO1D4C.js → fs-safe-DFbwq9CS.js} +3 -3
  147. package/dist/plugin-sdk/{image-4ay2cw7G.js → image-FK5xhY5u.js} +6 -6
  148. package/dist/plugin-sdk/{image-ops-G8KoEfY8.js → image-ops-BSYgrL7E.js} +2 -2
  149. package/dist/plugin-sdk/image-runtime-B95EPFpg.js +25 -0
  150. package/dist/plugin-sdk/index.js +2 -2
  151. package/dist/plugin-sdk/{ir-DXj1KGnL.js → ir-CWmryq5f.js} +7 -7
  152. package/dist/plugin-sdk/{local-roots-ovKHgVSP.js → local-roots-U25IdeDH.js} +4 -4
  153. package/dist/plugin-sdk/{logger-DIb2cGHp.js → logger-Bg4vIUJn.js} +2 -2
  154. package/dist/plugin-sdk/{login-Cgtm70by.js → login-8qzl2H7G.js} +4 -4
  155. package/dist/plugin-sdk/{login-qr-BrixqhMx.js → login-qr-kalCTJEw.js} +5 -5
  156. package/dist/plugin-sdk/{manager-PEQ_cPYF.js → manager-ijYHktIt.js} +8 -8
  157. package/dist/plugin-sdk/manager-runtime--JrLQE03.js +15 -0
  158. package/dist/plugin-sdk/{outbound-BK75h9CQ.js → outbound-BIVf0aPq.js} +5 -5
  159. package/dist/plugin-sdk/{outbound-attachment-BI1QngTS.js → outbound-attachment-F5tzeNUD.js} +2 -2
  160. package/dist/plugin-sdk/{path-alias-guards-TnxupPQC.js → path-alias-guards-DA0MhfkG.js} +1 -1
  161. package/dist/plugin-sdk/{paths-B7_75Pdr.js → paths-CP67O8eN.js} +1 -1
  162. package/dist/plugin-sdk/{pi-embedded-helpers-BioULNev.js → pi-embedded-helpers-CxMnPQ37.js} +16 -16
  163. package/dist/plugin-sdk/{pi-model-discovery-BMmAbnil.js → pi-model-discovery-8OL77kCh.js} +1 -1
  164. package/dist/plugin-sdk/pi-model-discovery-runtime-DGRFpUfd.js +8 -0
  165. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-rdRqZ9lk.js → pi-tools.before-tool-call.runtime-B7FW36KX.js} +4 -4
  166. package/dist/plugin-sdk/{plugins-BqKpJkqt.js → plugins-D3mrhffi.js} +4 -4
  167. package/dist/plugin-sdk/{proxy-env-C4s12rr8.js → proxy-env-CUUXO6rv.js} +1 -1
  168. package/dist/plugin-sdk/{proxy-fetch-ZPEvp58f.js → proxy-fetch-Cf3IUSDw.js} +1 -1
  169. package/dist/plugin-sdk/{pw-ai-Cb0ZDSq4.js → pw-ai-dPmKdw_w.js} +9 -9
  170. package/dist/plugin-sdk/{qmd-manager-Bei6TaFq.js → qmd-manager-Ov9ElEfG.js} +7 -7
  171. package/dist/plugin-sdk/{query-expansion-POz2za8a.js → query-expansion-CzjwW461.js} +4 -4
  172. package/dist/plugin-sdk/{redact-9WsNyb7S.js → redact-DfACyt0X.js} +1 -1
  173. package/dist/plugin-sdk/{reply-DxvpiQBp.js → reply-BczXGzC_.js} +137 -40
  174. package/dist/plugin-sdk/{reply-sFKB3ofA.js → reply-Dfjh1YtV.js} +206 -109
  175. package/dist/plugin-sdk/{resolve-outbound-target-DL1adXpk.js → resolve-outbound-target-BeIB_jm0.js} +2 -2
  176. package/dist/plugin-sdk/{run-with-concurrency-DmTrN5JG.js → run-with-concurrency-kVooFCVo.js} +1 -1
  177. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-B6EcC22F.js +10 -0
  178. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DH8J0Ie7.js +19 -0
  179. package/dist/plugin-sdk/{send-BCVXt-3e.js → send-CgkNzAhS.js} +8 -8
  180. package/dist/plugin-sdk/{send-CAG0Or0G.js → send-CuENGOhq.js} +7 -7
  181. package/dist/plugin-sdk/{send-X6QuS7x0.js → send-D6Uh2D1D.js} +5 -5
  182. package/dist/plugin-sdk/{send-BNePC8CO.js → send-DV5kR0Hg.js} +6 -6
  183. package/dist/plugin-sdk/{send-DhGDAZnT.js → send-DtA6ngBJ.js} +13 -13
  184. package/dist/plugin-sdk/{session-CAqYQVhe.js → session-CnlZn-bR.js} +3 -3
  185. package/dist/plugin-sdk/{skill-commands-Bk-IFyNw.js → skill-commands-Ckfii7h8.js} +4 -4
  186. package/dist/plugin-sdk/{skills-C5bT9-q4.js → skills-v0WQqKTa.js} +6 -6
  187. package/dist/plugin-sdk/slash-commands.runtime-BYoxsxkX.js +13 -0
  188. package/dist/plugin-sdk/{slash-dispatch.runtime-Dyb_EkUt.js → slash-dispatch.runtime-DOo1IzuY.js} +1 -1
  189. package/dist/plugin-sdk/slash-dispatch.runtime-JfFr7bNy.js +52 -0
  190. package/dist/plugin-sdk/slash-skill-commands.runtime-D0399tia.js +16 -0
  191. package/dist/plugin-sdk/{store-D3lgWnS2.js → store-C_UrNuM3.js} +2 -2
  192. package/dist/plugin-sdk/{subagent-registry-runtime-hdnabonI.js → subagent-registry-runtime-DLvup9ph.js} +1 -1
  193. package/dist/plugin-sdk/subagent-registry-runtime-DVl5xKOW.js +52 -0
  194. package/dist/plugin-sdk/{tables-Dmlu4_q_.js → tables-CJP05iMa.js} +1 -1
  195. package/dist/plugin-sdk/{thinking-DRNOh5Xx.js → thinking-BhP3vn1l.js} +7 -7
  196. package/dist/plugin-sdk/{tokens-CTIYTLWu.js → tokens-DAL_5WHL.js} +1 -1
  197. package/dist/plugin-sdk/{tool-images-GSlvf6RP.js → tool-images-ZE5G5UM0.js} +2 -2
  198. package/dist/plugin-sdk/{web-D9LAdsuU.js → web-C2Sj2WW0.js} +2 -2
  199. package/dist/plugin-sdk/web-CNY_ky8h.js +56 -0
  200. package/dist/plugin-sdk/{whatsapp-actions-BCJYmWCB.js → whatsapp-actions-DJmx6ihj.js} +17 -17
  201. package/dist/plugin-sdk/whatsapp.js +50 -50
  202. package/dist/{plugins-AqsVZZk3.js → plugins-DvejjZnJ.js} +11 -11
  203. package/dist/{plugins-cli-BYnoJwF1.js → plugins-cli-BA_2daJe.js} +2 -2
  204. package/dist/{plugins-cli-gtgkmDcv.js → plugins-cli-C0WKWrZo.js} +2 -2
  205. package/dist/{program-BGlgDpHI.js → program-D_xdLzmM.js} +7 -7
  206. package/dist/{program-context-M4FTWqqg.js → program-context-DfmCIQ91.js} +17 -17
  207. package/dist/{prompt-select-styled-AL5Tm3yO.js → prompt-select-styled-ApPSadr5.js} +4 -4
  208. package/dist/{prompt-select-styled-BVC2byQV.js → prompt-select-styled-BsheNEnh.js} +4 -4
  209. package/dist/{provider-auth-helpers-DDgrFku5.js → provider-auth-helpers-B5kD4Lt6.js} +1 -1
  210. package/dist/{provider-auth-helpers-Q7aIhDgv.js → provider-auth-helpers-DpOFkV28.js} +1 -1
  211. package/dist/{proxy-env-DXXfs2WL.js → proxy-env-D-fike7s.js} +1 -1
  212. package/dist/{plugin-sdk/proxy-fetch-Dt5BedH8.js → proxy-fetch-lH6RsRTE.js} +1 -1
  213. package/dist/{push-apns-Ga8xvhkh.js → push-apns-BbenjEX4.js} +1 -1
  214. package/dist/{push-apns-FyGbUyh2.js → push-apns-Ci2sdIKf.js} +1 -1
  215. package/dist/{pw-ai-GOBxzChI.js → pw-ai-B8ymIYub.js} +14 -14
  216. package/dist/{pw-ai-Du22SYoO.js → pw-ai-CM87tQwG.js} +1 -1
  217. package/dist/{qmd-manager-CO-shcLU.js → qmd-manager-BN0siR2Z.js} +10 -10
  218. package/dist/{query-expansion-DlQOkf-g.js → query-expansion-Dzxt6kXo.js} +6 -6
  219. package/dist/{redact-NmPEVjIo.js → redact-DvzicBMu.js} +1 -1
  220. package/dist/{register.agent-koAXw1ay.js → register.agent-CY6R-7fn.js} +6 -6
  221. package/dist/{register.agent-zP8a-sNB.js → register.agent-Dk_5V5oA.js} +7 -7
  222. package/dist/{register.configure-CUuP5J8W.js → register.configure-C8OFfGln.js} +7 -7
  223. package/dist/{register.configure-CYrmyjlf.js → register.configure-DT1RLeTR.js} +7 -7
  224. package/dist/{register.maintenance-BZuEljPU.js → register.maintenance-CluQOq8b.js} +8 -8
  225. package/dist/{register.maintenance-ByEQ2CVH.js → register.maintenance-YHXmOQzf.js} +7 -7
  226. package/dist/{register.message-BkSXhv9I.js → register.message-BCTXT5yK.js} +2 -2
  227. package/dist/{register.message-CgHfmDHm.js → register.message-BuoFjRqA.js} +2 -2
  228. package/dist/{register.onboard-HcQwPAEK.js → register.onboard-BJaRMtxU.js} +2 -2
  229. package/dist/{register.onboard-4ke40MNP.js → register.onboard-C64oXnvq.js} +2 -2
  230. package/dist/{register.setup-B41xZb1r.js → register.setup-Dl3nk2Ui.js} +2 -2
  231. package/dist/{register.setup-xAb7Cvzy.js → register.setup-Drc55K_w.js} +2 -2
  232. package/dist/{register.status-health-sessions-CcOVL0x8.js → register.status-health-sessions-BHtbPeCO.js} +3 -3
  233. package/dist/{register.status-health-sessions-BbHAAKwv.js → register.status-health-sessions-xgC_gtEM.js} +3 -3
  234. package/dist/{register.subclis-_uSASnfC.js → register.subclis-CDMFyaKR.js} +9 -9
  235. package/dist/{reply-BFTOdZcK.js → reply-DwjHsBuj.js} +137 -40
  236. package/dist/{run-main-C1eZrW-5.js → run-main-BcA22Ipv.js} +14 -14
  237. package/dist/{run-with-concurrency-FczpX8ng.js → run-with-concurrency-BFR3ReeF.js} +4 -4
  238. package/dist/runtime-whatsapp-login.runtime-DxV9iv6l.js +13 -0
  239. package/dist/runtime-whatsapp-outbound.runtime-DQqIlwhS.js +22 -0
  240. package/dist/{send-Bx9CqcZr.js → send-4nRsZJXH.js} +7 -7
  241. package/dist/{send-D5D0ZGht.js → send-BGlcHjUD.js} +26 -26
  242. package/dist/{send-DtHQ7_6Z.js → send-BTUU1jWM.js} +8 -8
  243. package/dist/{send-B9H0BkfO.js → send-DdBbRpTP.js} +6 -6
  244. package/dist/{send-B5QEmMJ4.js → send-dTQd-IyJ.js} +5 -5
  245. package/dist/{server-node-events-pYrJmi9w.js → server-node-events-Q0cT2ifj.js} +2 -2
  246. package/dist/{server-node-events-DbS1jJ5j.js → server-node-events-YN5eJeHa.js} +2 -2
  247. package/dist/{session-DLTCuoUD.js → session-CnCwDJke.js} +8 -8
  248. package/dist/{skill-commands-BwTLQRR8.js → skill-commands-Cz45_nme.js} +9 -9
  249. package/dist/{skills-B9N2bqKU.js → skills-CdCS1HeL.js} +22 -22
  250. package/dist/slash-commands.runtime-CZz6v6b3.js +16 -0
  251. package/dist/{slash-dispatch.runtime-PX9_08Hm.js → slash-dispatch.runtime-BOMEVFk0.js} +1 -1
  252. package/dist/{slash-dispatch.runtime-DmFVOi3w.js → slash-dispatch.runtime-DB1QsBRc.js} +1 -1
  253. package/dist/slash-dispatch.runtime-SO7HOe8q.js +56 -0
  254. package/dist/{slash-dispatch.runtime-BGXbtMX6.js → slash-dispatch.runtime-sXaUYn4v.js} +6 -6
  255. package/dist/slash-skill-commands.runtime-Bawt7j0r.js +20 -0
  256. package/dist/{status-DtiapFqq.js → status-Bh5x6DsW.js} +2 -2
  257. package/dist/{status-B4eVRJcO.js → status-cU9cJReo.js} +2 -2
  258. package/dist/{store-CvQ41zCV.js → store-D9z0dn7D.js} +2 -2
  259. package/dist/{subagent-registry-Ctrhw4X-.js → subagent-registry-CIgFD2oi.js} +103 -6
  260. package/dist/{subagent-registry-runtime-CezPaX9P.js → subagent-registry-runtime-232sNNT6.js} +6 -6
  261. package/dist/subagent-registry-runtime-D2rUxU5J.js +56 -0
  262. package/dist/{subagent-registry-runtime-Cy7dsGqF.js → subagent-registry-runtime-D7ubAnDZ.js} +1 -1
  263. package/dist/{subagent-registry-runtime-CTjx4TK5.js → subagent-registry-runtime-DGTjU9Lb.js} +1 -1
  264. package/dist/{subsystem-BaLYRf7D.js → subsystem-6v7sWnAD.js} +14 -14
  265. package/dist/{tables-BRYYxYs7.js → tables-BTFiZyRU.js} +1 -1
  266. package/dist/{target-errors-D0ZJUbbf.js → target-errors-DgNRx3Nr.js} +2 -2
  267. package/dist/{thinking-B-A99X3F.js → thinking-B75CXkTT.js} +7 -7
  268. package/dist/{tokens-D2XhLqIz.js → tokens-DfbMVF9y.js} +1 -1
  269. package/dist/{tool-images-Zn6jVmkX.js → tool-images-Dp5OiXeA.js} +2 -2
  270. package/dist/{update-cli-_FsTRdQZ.js → update-cli-CktBOXZF.js} +7 -7
  271. package/dist/{update-cli-DLOWRdjv.js → update-cli-DM_dUip_.js} +8 -8
  272. package/dist/{update-runner-BY3l7ytB.js → update-runner-BBJZmfZ4.js} +1 -1
  273. package/dist/{update-runner-BKWHnVYI.js → update-runner-BYGPkHXG.js} +1 -1
  274. package/dist/{web-BdZ3mX3p.js → web-CZhZC1EA.js} +2 -2
  275. package/dist/{web-B46aOGK0.js → web-Chw1dtKA.js} +6 -6
  276. package/dist/{web-BNfDYvlW.js → web-DWRZAXj9.js} +2 -2
  277. package/dist/{web-1D0d1RHD.js → web-QsxgXbNK.js} +55 -55
  278. package/dist/{whatsapp-actions-Cuy0qeQK.js → whatsapp-actions-CzqsuSGx.js} +21 -21
  279. package/dist/{workspace-TqfVSQuO.js → workspace-kVMIaBrV.js} +20 -20
  280. package/extensions/acpx/node_modules/.bin/acpx +2 -2
  281. package/extensions/diagnostics-otel/node_modules/.bin/acorn +2 -2
  282. package/extensions/diffs/node_modules/.bin/playwright-core +2 -2
  283. package/extensions/googlechat/node_modules/.bin/squidclaw +2 -2
  284. package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
  285. package/extensions/memory-core/node_modules/.bin/squidclaw +2 -2
  286. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +2 -2
  287. package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
  288. package/extensions/nostr/node_modules/.bin/tsc +2 -2
  289. package/extensions/nostr/node_modules/.bin/tsserver +2 -2
  290. package/extensions/tlon/node_modules/.bin/tlon +2 -2
  291. package/package.json +1 -1
  292. package/dist/api-key-rotation-TRwuCWbu.js +0 -181
  293. package/dist/canvas-host/a2ui/.bundle.hash +0 -1
  294. package/dist/deliver-runtime-_mBfV_4S.js +0 -36
  295. package/dist/deps-send-discord.runtime-CUTAK2hy.js +0 -26
  296. package/dist/deps-send-imessage.runtime-CQOiEIuA.js +0 -25
  297. package/dist/deps-send-signal.runtime-wN7MkzLw.js +0 -24
  298. package/dist/deps-send-slack.runtime-HEEwW4uU.js +0 -22
  299. package/dist/deps-send-telegram.runtime-DHlcnjQO.js +0 -27
  300. package/dist/deps-send-whatsapp.runtime-Cw7U9orE.js +0 -60
  301. package/dist/errors-DfgAh2Ml.js +0 -54
  302. package/dist/export-html/vendor/highlight.min.js +0 -1213
  303. package/dist/export-html/vendor/marked.min.js +0 -6
  304. package/dist/image-runtime-D11wBIC8.js +0 -29
  305. package/dist/manager-runtime-BB9lcoFR.js +0 -18
  306. package/dist/pi-model-discovery-runtime-DBkQoIJw.js +0 -11
  307. package/dist/plugin-sdk/accounts-CUEuUR3C.js +0 -46
  308. package/dist/plugin-sdk/accounts-D0W2pELU.js +0 -288
  309. package/dist/plugin-sdk/accounts-ucj0odJq.js +0 -35
  310. package/dist/plugin-sdk/active-listener-C5xPUSTb.js +0 -50
  311. package/dist/plugin-sdk/audio-preflight-Cqdo0JKm.js +0 -69
  312. package/dist/plugin-sdk/audio-transcription-runner-DnEooIyE.js +0 -2176
  313. package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +0 -58
  314. package/dist/plugin-sdk/channel-activity-BMWLw4o2.js +0 -94
  315. package/dist/plugin-sdk/channel-web-D9WdAFlv.js +0 -2256
  316. package/dist/plugin-sdk/chrome-CV-q0Lmc.js +0 -2415
  317. package/dist/plugin-sdk/commands-registry-e7YoqrbP.js +0 -1125
  318. package/dist/plugin-sdk/config-B2B64aX0.js +0 -17911
  319. package/dist/plugin-sdk/deliver-BkyBtcLR.js +0 -1694
  320. package/dist/plugin-sdk/deliver-runtime-5UVcSskg.js +0 -32
  321. package/dist/plugin-sdk/deliver-runtime-O4lwAWMw.js +0 -32
  322. package/dist/plugin-sdk/deps-send-discord.runtime-BAeeBldY.js +0 -23
  323. package/dist/plugin-sdk/deps-send-discord.runtime-DTspXSCt.js +0 -23
  324. package/dist/plugin-sdk/deps-send-imessage.runtime-EL-CfikZ.js +0 -22
  325. package/dist/plugin-sdk/deps-send-imessage.runtime-qThAwDEe.js +0 -22
  326. package/dist/plugin-sdk/deps-send-signal.runtime-BeemHeUu.js +0 -21
  327. package/dist/plugin-sdk/deps-send-signal.runtime-DnjnVzZF.js +0 -21
  328. package/dist/plugin-sdk/deps-send-slack.runtime-CbKevLnv.js +0 -19
  329. package/dist/plugin-sdk/deps-send-slack.runtime-DTttkC0N.js +0 -19
  330. package/dist/plugin-sdk/deps-send-telegram.runtime-C6y29O9E.js +0 -24
  331. package/dist/plugin-sdk/deps-send-telegram.runtime-Dsf9Cnka.js +0 -24
  332. package/dist/plugin-sdk/deps-send-whatsapp.runtime-CCS71r77.js +0 -57
  333. package/dist/plugin-sdk/deps-send-whatsapp.runtime-CuxKhIE0.js +0 -57
  334. package/dist/plugin-sdk/diagnostic-DPRVoKTk.js +0 -319
  335. package/dist/plugin-sdk/fetch-guard-F0Fnqisy.js +0 -156
  336. package/dist/plugin-sdk/fs-safe-Dqmpk-Fr.js +0 -352
  337. package/dist/plugin-sdk/image-cBW8L8pp.js +0 -2310
  338. package/dist/plugin-sdk/image-ops-BP8ix1GC.js +0 -584
  339. package/dist/plugin-sdk/image-runtime-9xkgSlNz.js +0 -25
  340. package/dist/plugin-sdk/image-runtime-CpfepTDc.js +0 -25
  341. package/dist/plugin-sdk/ir-DWEc6zOp.js +0 -1296
  342. package/dist/plugin-sdk/local-roots-BIPT8uAO.js +0 -186
  343. package/dist/plugin-sdk/logger-DDdrdbDu.js +0 -1163
  344. package/dist/plugin-sdk/login-BMTiGutN.js +0 -57
  345. package/dist/plugin-sdk/login-qr-BFxqYUkc.js +0 -320
  346. package/dist/plugin-sdk/manager-BD-aYaZ8.js +0 -3917
  347. package/dist/plugin-sdk/manager-runtime-BmgTeb5G.js +0 -15
  348. package/dist/plugin-sdk/manager-runtime-C5bRwUlz.js +0 -15
  349. package/dist/plugin-sdk/outbound-Bm07xvO6.js +0 -212
  350. package/dist/plugin-sdk/outbound-attachment-DLsaxDsc.js +0 -19
  351. package/dist/plugin-sdk/path-alias-guards-gBhrAn14.js +0 -43
  352. package/dist/plugin-sdk/paths-C6W4VHoa.js +0 -166
  353. package/dist/plugin-sdk/pi-embedded-helpers-BExwPvTh.js +0 -9627
  354. package/dist/plugin-sdk/pi-model-discovery-DdctvBeX.js +0 -134
  355. package/dist/plugin-sdk/pi-model-discovery-runtime-COnuGwZt.js +0 -8
  356. package/dist/plugin-sdk/pi-model-discovery-runtime-DrtpLJjk.js +0 -8
  357. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-rgTz3FBl.js +0 -354
  358. package/dist/plugin-sdk/plugins-BN64HHZA.js +0 -864
  359. package/dist/plugin-sdk/pw-ai-DBm3RdBK.js +0 -1938
  360. package/dist/plugin-sdk/qmd-manager-6bozlfFg.js +0 -1448
  361. package/dist/plugin-sdk/query-expansion-eeVz_aEm.js +0 -1011
  362. package/dist/plugin-sdk/redact-BoNEjbpF.js +0 -319
  363. package/dist/plugin-sdk/reply-CqXMy3Yd.js +0 -98731
  364. package/dist/plugin-sdk/resolve-outbound-target-DXfjGlZQ.js +0 -40
  365. package/dist/plugin-sdk/run-with-concurrency-5DMu9szx.js +0 -1994
  366. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-99sCh8RG.js +0 -10
  367. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-D2hkJBa-.js +0 -10
  368. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-C06I4adi.js +0 -19
  369. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-dTkDaXHl.js +0 -19
  370. package/dist/plugin-sdk/send-B9xnwtQ-.js +0 -540
  371. package/dist/plugin-sdk/send-BxySs-Cu.js +0 -2587
  372. package/dist/plugin-sdk/send-D9THKp_J.js +0 -414
  373. package/dist/plugin-sdk/send-DCuaaP2w.js +0 -503
  374. package/dist/plugin-sdk/send-Dm_-_xje.js +0 -3135
  375. package/dist/plugin-sdk/session-DDzIZHxt.js +0 -169
  376. package/dist/plugin-sdk/skill-commands-DRvqtuFC.js +0 -342
  377. package/dist/plugin-sdk/skills-BWwlfbVj.js +0 -1428
  378. package/dist/plugin-sdk/slash-commands.runtime-BzYsaTST.js +0 -13
  379. package/dist/plugin-sdk/slash-commands.runtime-EAZKpRKq.js +0 -13
  380. package/dist/plugin-sdk/slash-dispatch.runtime-BC3IAF-I.js +0 -52
  381. package/dist/plugin-sdk/slash-dispatch.runtime-C7u7mlny.js +0 -52
  382. package/dist/plugin-sdk/slash-skill-commands.runtime-DGd_JSWX.js +0 -16
  383. package/dist/plugin-sdk/slash-skill-commands.runtime-sg98L8BK.js +0 -16
  384. package/dist/plugin-sdk/ssrf-DOBwjFow.js +0 -202
  385. package/dist/plugin-sdk/store-BKDR_-Qk.js +0 -81
  386. package/dist/plugin-sdk/subagent-registry-runtime-B6l6PxqP.js +0 -52
  387. package/dist/plugin-sdk/subagent-registry-runtime-Ceu7AzWi.js +0 -52
  388. package/dist/plugin-sdk/tables-GIj79us5.js +0 -55
  389. package/dist/plugin-sdk/target-errors-jlLHihbX.js +0 -195
  390. package/dist/plugin-sdk/thinking-BgdUnMZ2.js +0 -1206
  391. package/dist/plugin-sdk/tokens-CLE20fRI.js +0 -52
  392. package/dist/plugin-sdk/tool-images-BY1gsRyE.js +0 -274
  393. package/dist/plugin-sdk/web-BK2-uaOo.js +0 -56
  394. package/dist/plugin-sdk/web-Bnn82S4u.js +0 -56
  395. package/dist/plugin-sdk/whatsapp-actions-DQpK_5Ds.js +0 -80
  396. package/dist/proxy-fetch-C2v-Utgg.js +0 -38
  397. package/dist/runtime-whatsapp-login.runtime-DumUjKRz.js +0 -13
  398. package/dist/runtime-whatsapp-outbound.runtime-Cgu2MfqR.js +0 -22
  399. package/dist/slash-commands.runtime-CjBXruwG.js +0 -16
  400. package/dist/slash-dispatch.runtime-DqZVfX4H.js +0 -56
  401. package/dist/slash-skill-commands.runtime-DYK20Lxf.js +0 -20
  402. package/dist/subagent-registry-runtime-BIKGAzgI.js +0 -56
  403. package/docs/reference/templates/IDENTITY.md +0 -29
  404. package/docs/reference/templates/USER.md +0 -23
  405. package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
  406. package/docs/zh-CN/reference/templates/USER.md +0 -30
  407. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
@@ -1,584 +0,0 @@
1
- import { O as runExec } from "./run-with-concurrency-5DMu9szx.js";
2
- import { Ct as normalizeChatChannelId, _t as CHANNEL_IDS, wt as getActivePluginRegistry } from "./config-B2B64aX0.js";
3
- import path from "node:path";
4
- import os from "node:os";
5
- import fs from "node:fs/promises";
6
- import { fileTypeFromBuffer } from "file-type";
7
-
8
- //#region src/gateway/protocol/client-info.ts
9
- const GATEWAY_CLIENT_IDS = {
10
- WEBCHAT_UI: "webchat-ui",
11
- CONTROL_UI: "squidclaw-control-ui",
12
- WEBCHAT: "webchat",
13
- CLI: "cli",
14
- GATEWAY_CLIENT: "gateway-client",
15
- MACOS_APP: "squidclaw-macos",
16
- IOS_APP: "squidclaw-ios",
17
- ANDROID_APP: "squidclaw-android",
18
- NODE_HOST: "node-host",
19
- TEST: "test",
20
- FINGERPRINT: "fingerprint",
21
- PROBE: "squidclaw-probe"
22
- };
23
- const GATEWAY_CLIENT_NAMES = GATEWAY_CLIENT_IDS;
24
- const GATEWAY_CLIENT_MODES = {
25
- WEBCHAT: "webchat",
26
- CLI: "cli",
27
- UI: "ui",
28
- BACKEND: "backend",
29
- NODE: "node",
30
- PROBE: "probe",
31
- TEST: "test"
32
- };
33
- const GATEWAY_CLIENT_ID_SET = new Set(Object.values(GATEWAY_CLIENT_IDS));
34
- const GATEWAY_CLIENT_MODE_SET = new Set(Object.values(GATEWAY_CLIENT_MODES));
35
-
36
- //#endregion
37
- //#region src/utils/message-channel.ts
38
- const INTERNAL_MESSAGE_CHANNEL = "webchat";
39
- const MARKDOWN_CAPABLE_CHANNELS = new Set([
40
- "slack",
41
- "telegram",
42
- "signal",
43
- "discord",
44
- "googlechat",
45
- "tui",
46
- INTERNAL_MESSAGE_CHANNEL
47
- ]);
48
- function isInternalMessageChannel(raw) {
49
- return normalizeMessageChannel(raw) === INTERNAL_MESSAGE_CHANNEL;
50
- }
51
- function normalizeMessageChannel(raw) {
52
- const normalized = raw?.trim().toLowerCase();
53
- if (!normalized) return;
54
- if (normalized === INTERNAL_MESSAGE_CHANNEL) return INTERNAL_MESSAGE_CHANNEL;
55
- const builtIn = normalizeChatChannelId(normalized);
56
- if (builtIn) return builtIn;
57
- return (getActivePluginRegistry()?.channels.find((entry) => {
58
- if (entry.plugin.id.toLowerCase() === normalized) return true;
59
- return (entry.plugin.meta.aliases ?? []).some((alias) => alias.trim().toLowerCase() === normalized);
60
- }))?.plugin.id ?? normalized;
61
- }
62
- const listPluginChannelIds = () => {
63
- const registry = getActivePluginRegistry();
64
- if (!registry) return [];
65
- return registry.channels.map((entry) => entry.plugin.id);
66
- };
67
- const listDeliverableMessageChannels = () => Array.from(new Set([...CHANNEL_IDS, ...listPluginChannelIds()]));
68
- const listGatewayMessageChannels = () => [...listDeliverableMessageChannels(), INTERNAL_MESSAGE_CHANNEL];
69
- function isGatewayMessageChannel(value) {
70
- return listGatewayMessageChannels().includes(value);
71
- }
72
- function isDeliverableMessageChannel(value) {
73
- return listDeliverableMessageChannels().includes(value);
74
- }
75
- function resolveGatewayMessageChannel(raw) {
76
- const normalized = normalizeMessageChannel(raw);
77
- if (!normalized) return;
78
- return isGatewayMessageChannel(normalized) ? normalized : void 0;
79
- }
80
- function resolveMessageChannel(primary, fallback) {
81
- return normalizeMessageChannel(primary) ?? normalizeMessageChannel(fallback);
82
- }
83
- function isMarkdownCapableMessageChannel(raw) {
84
- const channel = normalizeMessageChannel(raw);
85
- if (!channel) return false;
86
- return MARKDOWN_CAPABLE_CHANNELS.has(channel);
87
- }
88
-
89
- //#endregion
90
- //#region src/media/constants.ts
91
- const MAX_IMAGE_BYTES = 6 * 1024 * 1024;
92
- const MAX_AUDIO_BYTES = 16 * 1024 * 1024;
93
- const MAX_VIDEO_BYTES = 16 * 1024 * 1024;
94
- const MAX_DOCUMENT_BYTES = 100 * 1024 * 1024;
95
- function mediaKindFromMime(mime) {
96
- if (!mime) return "unknown";
97
- if (mime.startsWith("image/")) return "image";
98
- if (mime.startsWith("audio/")) return "audio";
99
- if (mime.startsWith("video/")) return "video";
100
- if (mime === "application/pdf") return "document";
101
- if (mime.startsWith("text/")) return "document";
102
- if (mime.startsWith("application/")) return "document";
103
- return "unknown";
104
- }
105
- function maxBytesForKind(kind) {
106
- switch (kind) {
107
- case "image": return MAX_IMAGE_BYTES;
108
- case "audio": return MAX_AUDIO_BYTES;
109
- case "video": return MAX_VIDEO_BYTES;
110
- case "document": return MAX_DOCUMENT_BYTES;
111
- default: return MAX_DOCUMENT_BYTES;
112
- }
113
- }
114
-
115
- //#endregion
116
- //#region src/media/mime.ts
117
- const EXT_BY_MIME = {
118
- "image/heic": ".heic",
119
- "image/heif": ".heif",
120
- "image/jpeg": ".jpg",
121
- "image/png": ".png",
122
- "image/webp": ".webp",
123
- "image/gif": ".gif",
124
- "audio/ogg": ".ogg",
125
- "audio/mpeg": ".mp3",
126
- "audio/x-m4a": ".m4a",
127
- "audio/mp4": ".m4a",
128
- "video/mp4": ".mp4",
129
- "video/quicktime": ".mov",
130
- "application/pdf": ".pdf",
131
- "application/json": ".json",
132
- "application/zip": ".zip",
133
- "application/gzip": ".gz",
134
- "application/x-tar": ".tar",
135
- "application/x-7z-compressed": ".7z",
136
- "application/vnd.rar": ".rar",
137
- "application/msword": ".doc",
138
- "application/vnd.ms-excel": ".xls",
139
- "application/vnd.ms-powerpoint": ".ppt",
140
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ".docx",
141
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ".xlsx",
142
- "application/vnd.openxmlformats-officedocument.presentationml.presentation": ".pptx",
143
- "text/csv": ".csv",
144
- "text/plain": ".txt",
145
- "text/markdown": ".md"
146
- };
147
- const MIME_BY_EXT = {
148
- ...Object.fromEntries(Object.entries(EXT_BY_MIME).map(([mime, ext]) => [ext, mime])),
149
- ".jpeg": "image/jpeg",
150
- ".js": "text/javascript"
151
- };
152
- const AUDIO_FILE_EXTENSIONS = new Set([
153
- ".aac",
154
- ".caf",
155
- ".flac",
156
- ".m4a",
157
- ".mp3",
158
- ".oga",
159
- ".ogg",
160
- ".opus",
161
- ".wav"
162
- ]);
163
- function normalizeMimeType(mime) {
164
- if (!mime) return;
165
- return mime.split(";")[0]?.trim().toLowerCase() || void 0;
166
- }
167
- async function sniffMime(buffer) {
168
- if (!buffer) return;
169
- try {
170
- return (await fileTypeFromBuffer(buffer))?.mime ?? void 0;
171
- } catch {
172
- return;
173
- }
174
- }
175
- function getFileExtension(filePath) {
176
- if (!filePath) return;
177
- try {
178
- if (/^https?:\/\//i.test(filePath)) {
179
- const url = new URL(filePath);
180
- return path.extname(url.pathname).toLowerCase() || void 0;
181
- }
182
- } catch {}
183
- return path.extname(filePath).toLowerCase() || void 0;
184
- }
185
- function isAudioFileName(fileName) {
186
- const ext = getFileExtension(fileName);
187
- if (!ext) return false;
188
- return AUDIO_FILE_EXTENSIONS.has(ext);
189
- }
190
- function detectMime(opts) {
191
- return detectMimeImpl(opts);
192
- }
193
- function isGenericMime(mime) {
194
- if (!mime) return true;
195
- const m = mime.toLowerCase();
196
- return m === "application/octet-stream" || m === "application/zip";
197
- }
198
- async function detectMimeImpl(opts) {
199
- const ext = getFileExtension(opts.filePath);
200
- const extMime = ext ? MIME_BY_EXT[ext] : void 0;
201
- const headerMime = normalizeMimeType(opts.headerMime);
202
- const sniffed = await sniffMime(opts.buffer);
203
- if (sniffed && (!isGenericMime(sniffed) || !extMime)) return sniffed;
204
- if (extMime) return extMime;
205
- if (headerMime && !isGenericMime(headerMime)) return headerMime;
206
- if (sniffed) return sniffed;
207
- if (headerMime) return headerMime;
208
- }
209
- function extensionForMime(mime) {
210
- const normalized = normalizeMimeType(mime);
211
- if (!normalized) return;
212
- return EXT_BY_MIME[normalized];
213
- }
214
- function isGifMedia(opts) {
215
- if (opts.contentType?.toLowerCase() === "image/gif") return true;
216
- return getFileExtension(opts.fileName) === ".gif";
217
- }
218
- function imageMimeFromFormat(format) {
219
- if (!format) return;
220
- switch (format.toLowerCase()) {
221
- case "jpg":
222
- case "jpeg": return "image/jpeg";
223
- case "heic": return "image/heic";
224
- case "heif": return "image/heif";
225
- case "png": return "image/png";
226
- case "webp": return "image/webp";
227
- case "gif": return "image/gif";
228
- default: return;
229
- }
230
- }
231
- function kindFromMime(mime) {
232
- return mediaKindFromMime(normalizeMimeType(mime));
233
- }
234
-
235
- //#endregion
236
- //#region src/media/image-ops.ts
237
- const IMAGE_REDUCE_QUALITY_STEPS = [
238
- 85,
239
- 75,
240
- 65,
241
- 55,
242
- 45,
243
- 35
244
- ];
245
- function buildImageResizeSideGrid(maxSide, sideStart) {
246
- return [
247
- sideStart,
248
- 1800,
249
- 1600,
250
- 1400,
251
- 1200,
252
- 1e3,
253
- 800
254
- ].map((value) => Math.min(maxSide, value)).filter((value, idx, arr) => value > 0 && arr.indexOf(value) === idx).toSorted((a, b) => b - a);
255
- }
256
- function isBun() {
257
- return typeof process.versions.bun === "string";
258
- }
259
- function prefersSips() {
260
- return process.env.SQUIDCLAW_IMAGE_BACKEND === "sips" || process.env.SQUIDCLAW_IMAGE_BACKEND !== "sharp" && isBun() && process.platform === "darwin";
261
- }
262
- async function loadSharp() {
263
- const mod = await import("sharp");
264
- const sharp = mod.default ?? mod;
265
- return (buffer) => sharp(buffer, { failOnError: false });
266
- }
267
- /**
268
- * Reads EXIF orientation from JPEG buffer.
269
- * Returns orientation value 1-8, or null if not found/not JPEG.
270
- *
271
- * EXIF orientation values:
272
- * 1 = Normal, 2 = Flip H, 3 = Rotate 180, 4 = Flip V,
273
- * 5 = Rotate 270 CW + Flip H, 6 = Rotate 90 CW, 7 = Rotate 90 CW + Flip H, 8 = Rotate 270 CW
274
- */
275
- function readJpegExifOrientation(buffer) {
276
- if (buffer.length < 2 || buffer[0] !== 255 || buffer[1] !== 216) return null;
277
- let offset = 2;
278
- while (offset < buffer.length - 4) {
279
- if (buffer[offset] !== 255) {
280
- offset++;
281
- continue;
282
- }
283
- const marker = buffer[offset + 1];
284
- if (marker === 255) {
285
- offset++;
286
- continue;
287
- }
288
- if (marker === 225) {
289
- const exifStart = offset + 4;
290
- if (buffer.length > exifStart + 6 && buffer.toString("ascii", exifStart, exifStart + 4) === "Exif" && buffer[exifStart + 4] === 0 && buffer[exifStart + 5] === 0) {
291
- const tiffStart = exifStart + 6;
292
- if (buffer.length < tiffStart + 8) return null;
293
- const isLittleEndian = buffer.toString("ascii", tiffStart, tiffStart + 2) === "II";
294
- const readU16 = (pos) => isLittleEndian ? buffer.readUInt16LE(pos) : buffer.readUInt16BE(pos);
295
- const readU32 = (pos) => isLittleEndian ? buffer.readUInt32LE(pos) : buffer.readUInt32BE(pos);
296
- const ifd0Start = tiffStart + readU32(tiffStart + 4);
297
- if (buffer.length < ifd0Start + 2) return null;
298
- const numEntries = readU16(ifd0Start);
299
- for (let i = 0; i < numEntries; i++) {
300
- const entryOffset = ifd0Start + 2 + i * 12;
301
- if (buffer.length < entryOffset + 12) break;
302
- if (readU16(entryOffset) === 274) {
303
- const value = readU16(entryOffset + 8);
304
- return value >= 1 && value <= 8 ? value : null;
305
- }
306
- }
307
- }
308
- return null;
309
- }
310
- if (marker >= 224 && marker <= 239) {
311
- const segmentLength = buffer.readUInt16BE(offset + 2);
312
- offset += 2 + segmentLength;
313
- continue;
314
- }
315
- if (marker === 192 || marker === 218) break;
316
- offset++;
317
- }
318
- return null;
319
- }
320
- async function withTempDir(fn) {
321
- const dir = await fs.mkdtemp(path.join(os.tmpdir(), "squidclaw-img-"));
322
- try {
323
- return await fn(dir);
324
- } finally {
325
- await fs.rm(dir, {
326
- recursive: true,
327
- force: true
328
- }).catch(() => {});
329
- }
330
- }
331
- async function sipsMetadataFromBuffer(buffer) {
332
- return await withTempDir(async (dir) => {
333
- const input = path.join(dir, "in.img");
334
- await fs.writeFile(input, buffer);
335
- const { stdout } = await runExec("/usr/bin/sips", [
336
- "-g",
337
- "pixelWidth",
338
- "-g",
339
- "pixelHeight",
340
- input
341
- ], {
342
- timeoutMs: 1e4,
343
- maxBuffer: 512 * 1024
344
- });
345
- const w = stdout.match(/pixelWidth:\s*([0-9]+)/);
346
- const h = stdout.match(/pixelHeight:\s*([0-9]+)/);
347
- if (!w?.[1] || !h?.[1]) return null;
348
- const width = Number.parseInt(w[1], 10);
349
- const height = Number.parseInt(h[1], 10);
350
- if (!Number.isFinite(width) || !Number.isFinite(height)) return null;
351
- if (width <= 0 || height <= 0) return null;
352
- return {
353
- width,
354
- height
355
- };
356
- });
357
- }
358
- async function sipsResizeToJpeg(params) {
359
- return await withTempDir(async (dir) => {
360
- const input = path.join(dir, "in.img");
361
- const output = path.join(dir, "out.jpg");
362
- await fs.writeFile(input, params.buffer);
363
- await runExec("/usr/bin/sips", [
364
- "-Z",
365
- String(Math.max(1, Math.round(params.maxSide))),
366
- "-s",
367
- "format",
368
- "jpeg",
369
- "-s",
370
- "formatOptions",
371
- String(Math.max(1, Math.min(100, Math.round(params.quality)))),
372
- input,
373
- "--out",
374
- output
375
- ], {
376
- timeoutMs: 2e4,
377
- maxBuffer: 1024 * 1024
378
- });
379
- return await fs.readFile(output);
380
- });
381
- }
382
- async function sipsConvertToJpeg(buffer) {
383
- return await withTempDir(async (dir) => {
384
- const input = path.join(dir, "in.heic");
385
- const output = path.join(dir, "out.jpg");
386
- await fs.writeFile(input, buffer);
387
- await runExec("/usr/bin/sips", [
388
- "-s",
389
- "format",
390
- "jpeg",
391
- input,
392
- "--out",
393
- output
394
- ], {
395
- timeoutMs: 2e4,
396
- maxBuffer: 1024 * 1024
397
- });
398
- return await fs.readFile(output);
399
- });
400
- }
401
- async function getImageMetadata(buffer) {
402
- if (prefersSips()) return await sipsMetadataFromBuffer(buffer).catch(() => null);
403
- try {
404
- const meta = await (await loadSharp())(buffer).metadata();
405
- const width = Number(meta.width ?? 0);
406
- const height = Number(meta.height ?? 0);
407
- if (!Number.isFinite(width) || !Number.isFinite(height)) return null;
408
- if (width <= 0 || height <= 0) return null;
409
- return {
410
- width,
411
- height
412
- };
413
- } catch {
414
- return null;
415
- }
416
- }
417
- /**
418
- * Applies rotation/flip to image buffer using sips based on EXIF orientation.
419
- */
420
- async function sipsApplyOrientation(buffer, orientation) {
421
- const ops = [];
422
- switch (orientation) {
423
- case 2:
424
- ops.push("-f", "horizontal");
425
- break;
426
- case 3:
427
- ops.push("-r", "180");
428
- break;
429
- case 4:
430
- ops.push("-f", "vertical");
431
- break;
432
- case 5:
433
- ops.push("-r", "270", "-f", "horizontal");
434
- break;
435
- case 6:
436
- ops.push("-r", "90");
437
- break;
438
- case 7:
439
- ops.push("-r", "90", "-f", "horizontal");
440
- break;
441
- case 8:
442
- ops.push("-r", "270");
443
- break;
444
- default: return buffer;
445
- }
446
- return await withTempDir(async (dir) => {
447
- const input = path.join(dir, "in.jpg");
448
- const output = path.join(dir, "out.jpg");
449
- await fs.writeFile(input, buffer);
450
- await runExec("/usr/bin/sips", [
451
- ...ops,
452
- input,
453
- "--out",
454
- output
455
- ], {
456
- timeoutMs: 2e4,
457
- maxBuffer: 1024 * 1024
458
- });
459
- return await fs.readFile(output);
460
- });
461
- }
462
- async function resizeToJpeg(params) {
463
- if (prefersSips()) {
464
- const normalized = await normalizeExifOrientationSips(params.buffer);
465
- if (params.withoutEnlargement !== false) {
466
- const meta = await getImageMetadata(normalized);
467
- if (meta) {
468
- const maxDim = Math.max(meta.width, meta.height);
469
- if (maxDim > 0 && maxDim <= params.maxSide) return await sipsResizeToJpeg({
470
- buffer: normalized,
471
- maxSide: maxDim,
472
- quality: params.quality
473
- });
474
- }
475
- }
476
- return await sipsResizeToJpeg({
477
- buffer: normalized,
478
- maxSide: params.maxSide,
479
- quality: params.quality
480
- });
481
- }
482
- return await (await loadSharp())(params.buffer).rotate().resize({
483
- width: params.maxSide,
484
- height: params.maxSide,
485
- fit: "inside",
486
- withoutEnlargement: params.withoutEnlargement !== false
487
- }).jpeg({
488
- quality: params.quality,
489
- mozjpeg: true
490
- }).toBuffer();
491
- }
492
- async function convertHeicToJpeg(buffer) {
493
- if (prefersSips()) return await sipsConvertToJpeg(buffer);
494
- return await (await loadSharp())(buffer).jpeg({
495
- quality: 90,
496
- mozjpeg: true
497
- }).toBuffer();
498
- }
499
- /**
500
- * Checks if an image has an alpha channel (transparency).
501
- * Returns true if the image has alpha, false otherwise.
502
- */
503
- async function hasAlphaChannel(buffer) {
504
- try {
505
- const meta = await (await loadSharp())(buffer).metadata();
506
- return meta.hasAlpha || meta.channels === 4;
507
- } catch {
508
- return false;
509
- }
510
- }
511
- /**
512
- * Resizes an image to PNG format, preserving alpha channel (transparency).
513
- * Falls back to sharp only (no sips fallback for PNG with alpha).
514
- */
515
- async function resizeToPng(params) {
516
- const sharp = await loadSharp();
517
- const compressionLevel = params.compressionLevel ?? 6;
518
- return await sharp(params.buffer).rotate().resize({
519
- width: params.maxSide,
520
- height: params.maxSide,
521
- fit: "inside",
522
- withoutEnlargement: params.withoutEnlargement !== false
523
- }).png({ compressionLevel }).toBuffer();
524
- }
525
- async function optimizeImageToPng(buffer, maxBytes) {
526
- const sides = [
527
- 2048,
528
- 1536,
529
- 1280,
530
- 1024,
531
- 800
532
- ];
533
- const compressionLevels = [
534
- 6,
535
- 7,
536
- 8,
537
- 9
538
- ];
539
- let smallest = null;
540
- for (const side of sides) for (const compressionLevel of compressionLevels) try {
541
- const out = await resizeToPng({
542
- buffer,
543
- maxSide: side,
544
- compressionLevel,
545
- withoutEnlargement: true
546
- });
547
- const size = out.length;
548
- if (!smallest || size < smallest.size) smallest = {
549
- buffer: out,
550
- size,
551
- resizeSide: side,
552
- compressionLevel
553
- };
554
- if (size <= maxBytes) return {
555
- buffer: out,
556
- optimizedSize: size,
557
- resizeSide: side,
558
- compressionLevel
559
- };
560
- } catch {}
561
- if (smallest) return {
562
- buffer: smallest.buffer,
563
- optimizedSize: smallest.size,
564
- resizeSide: smallest.resizeSide,
565
- compressionLevel: smallest.compressionLevel
566
- };
567
- throw new Error("Failed to optimize PNG image");
568
- }
569
- /**
570
- * Internal sips-only EXIF normalization (no sharp fallback).
571
- * Used by resizeToJpeg to normalize before sips resize.
572
- */
573
- async function normalizeExifOrientationSips(buffer) {
574
- try {
575
- const orientation = readJpegExifOrientation(buffer);
576
- if (!orientation || orientation === 1) return buffer;
577
- return await sipsApplyOrientation(buffer, orientation);
578
- } catch {
579
- return buffer;
580
- }
581
- }
582
-
583
- //#endregion
584
- export { GATEWAY_CLIENT_NAMES as A, isMarkdownCapableMessageChannel as C, resolveMessageChannel as D, resolveGatewayMessageChannel as E, GATEWAY_CLIENT_IDS as O, isInternalMessageChannel as S, normalizeMessageChannel as T, maxBytesForKind as _, hasAlphaChannel as a, isDeliverableMessageChannel as b, detectMime as c, imageMimeFromFormat as d, isAudioFileName as f, MAX_IMAGE_BYTES as g, normalizeMimeType as h, getImageMetadata as i, GATEWAY_CLIENT_MODES as k, extensionForMime as l, kindFromMime as m, buildImageResizeSideGrid as n, optimizeImageToPng as o, isGifMedia as p, convertHeicToJpeg as r, resizeToJpeg as s, IMAGE_REDUCE_QUALITY_STEPS as t, getFileExtension as u, mediaKindFromMime as v, listDeliverableMessageChannels as w, isGatewayMessageChannel as x, INTERNAL_MESSAGE_CHANNEL as y };
@@ -1,25 +0,0 @@
1
- import "./run-with-concurrency-5DMu9szx.js";
2
- import "./accounts-D0W2pELU.js";
3
- import "./paths-8xF5kDne.js";
4
- import "./github-copilot-token-Dy-0-Kh3.js";
5
- import "./config-B2B64aX0.js";
6
- import "./logger-DDdrdbDu.js";
7
- import "./thinking-BgdUnMZ2.js";
8
- import "./image-ops-BP8ix1GC.js";
9
- import "./pi-embedded-helpers-BExwPvTh.js";
10
- import "./plugins-BN64HHZA.js";
11
- import "./accounts-ucj0odJq.js";
12
- import "./accounts-CUEuUR3C.js";
13
- import "./paths-C6W4VHoa.js";
14
- import "./redact-BoNEjbpF.js";
15
- import "./errors-B8oJXuCF.js";
16
- import "./path-alias-guards-gBhrAn14.js";
17
- import "./fs-safe-Dqmpk-Fr.js";
18
- import "./ssrf-DOBwjFow.js";
19
- import "./tool-images-GSlvf6RP.js";
20
- import "./skills-BWwlfbVj.js";
21
- import "./chrome-CV-q0Lmc.js";
22
- import "./store-BKDR_-Qk.js";
23
- import { t as describeImageWithModel } from "./image-cBW8L8pp.js";
24
-
25
- export { describeImageWithModel };
@@ -1,25 +0,0 @@
1
- import "./run-with-concurrency-DmTrN5JG.js";
2
- import "./config-CnZ1TlEw.js";
3
- import "./logger-DIb2cGHp.js";
4
- import "./paths-Duwviem_.js";
5
- import "./accounts-xZOA23tQ.js";
6
- import "./plugins-BqKpJkqt.js";
7
- import "./thinking-DRNOh5Xx.js";
8
- import "./accounts-0kF5cxkn.js";
9
- import "./image-ops-G8KoEfY8.js";
10
- import "./pi-embedded-helpers-BioULNev.js";
11
- import "./accounts-u0-JAHzj.js";
12
- import "./github-copilot-token-C0y6vp3r.js";
13
- import "./paths-B7_75Pdr.js";
14
- import { t as describeImageWithModel } from "./image-4ay2cw7G.js";
15
- import "./chrome-DJQWo149.js";
16
- import "./skills-C5bT9-q4.js";
17
- import "./path-alias-guards-TnxupPQC.js";
18
- import "./redact-9WsNyb7S.js";
19
- import "./errors-CgRPdp3o.js";
20
- import "./fs-safe-DqCO1D4C.js";
21
- import "./proxy-env-C4s12rr8.js";
22
- import "./store-D3lgWnS2.js";
23
- import "./tool-images-BY1gsRyE.js";
24
-
25
- export { describeImageWithModel };