squidclaw 3.0.2 → 3.0.3

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 (388) hide show
  1. package/dist/{accounts-LA308FHj.js → accounts-CK_sHUyT.js} +2 -2
  2. package/dist/{accounts-CL_NXliB.js → accounts-CkF7YwoF.js} +17 -17
  3. package/dist/{accounts-F7tGwezI.js → accounts-DbloMfwT.js} +2 -2
  4. package/dist/{active-listener-DJv1FZqf.js → active-listener-AepfNSUY.js} +2 -2
  5. package/dist/{agents-DdixSPs3.js → agents-JnnOlm2G.js} +5 -5
  6. package/dist/{agents.config-Cn_vTN1v.js → agents.config-BeGeS2jv.js} +1 -1
  7. package/dist/{agents.config-C6KTwnde.js → agents.config-DHJBQ7uA.js} +1 -1
  8. package/dist/{plugin-sdk/api-key-rotation-DE4gr5YM.js → api-key-rotation-BHFJiYbw.js} +2 -2
  9. package/dist/{audio-preflight-AEM744TY.js → audio-preflight-BTYxAJjy.js} +32 -32
  10. package/dist/{audio-preflight-DpCWFB4z.js → audio-preflight-Dkl6Z32z.js} +4 -4
  11. package/dist/{audio-transcription-runner-CItniQDZ.js → audio-transcription-runner-DBkDgluo.js} +12 -12
  12. package/dist/{audio-transcription-runner-B2BdTEps.js → audio-transcription-runner-Gi_h5HEE.js} +1 -1
  13. package/dist/{audit-membership-runtime-w23FnNAN.js → audit-membership-runtime-DyLj-uhz.js} +4 -4
  14. package/dist/{auth-choice-7WVhiM9J.js → auth-choice-DQbCl-4F.js} +2 -2
  15. package/dist/{auth-choice-17U1cGPH.js → auth-choice-xwYK6txn.js} +2 -2
  16. package/dist/{banner-CJTrU-HC.js → banner-BxibaqUz.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 +51 -51
  22. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  23. package/dist/{channel-activity-DPrXawu4.js → channel-activity-C5kTj83_.js} +3 -3
  24. package/dist/{channel-options-x47KAgAV.js → channel-options-BKsCYdHu.js} +1 -1
  25. package/dist/{channel-options-BM7IEY5X.js → channel-options-FdCN4cFo.js} +1 -1
  26. package/dist/{channel-web-B48pVgke.js → channel-web-BFUPrpIe.js} +1 -1
  27. package/dist/{channel-web-HM1q5FP_.js → channel-web-BkYtM8H5.js} +1 -1
  28. package/dist/{channels-cli-iPiD6449.js → channels-cli-BxhfVD-R.js} +7 -7
  29. package/dist/{channels-cli-y66ZCzYf.js → channels-cli-CZzGaGvG.js} +7 -7
  30. package/dist/{chrome-BQDCalPp.js → chrome-CAd6FQEn.js} +8 -8
  31. package/dist/{chrome-BFfAGQtd.js → chrome-pBkBuWci.js} +26 -26
  32. package/dist/cli/daemon-cli.js +1 -1
  33. package/dist/{cli-C-neGkM4.js → cli-GSev2Q95.js} +2 -2
  34. package/dist/{cli-BzpBs_KI.js → cli-bXiYaLre.js} +2 -2
  35. package/dist/{command-registry-BL80-JCV.js → command-registry-CvgCFxfY.js} +9 -9
  36. package/dist/{commands-registry-C2t2bcZ6.js → commands-registry-D6ZOTo1C.js} +4 -4
  37. package/dist/{completion-cli-CJ_L_gYr.js → completion-cli-BGM1V6EN.js} +2 -2
  38. package/dist/{completion-cli-Bi2s1mq8.js → completion-cli-OrgUDc2S.js} +1 -1
  39. package/dist/{config-cli-FhKX7MOY.js → config-cli-DbBvjvpS.js} +1 -1
  40. package/dist/{config-cli-BVpzzhoY.js → config-cli-uIP4r17f.js} +1 -1
  41. package/dist/{configure-ChiLGQo6.js → configure-BGvoAfbs.js} +6 -6
  42. package/dist/{configure-t9fm4x9H.js → configure-BOsTXjBw.js} +6 -6
  43. package/dist/{daemon-cli-DK8fQgAw.js → daemon-cli-CNi-QjEX.js} +1 -1
  44. package/dist/{daemon-cli-CO09shIt.js → daemon-cli-DN2TnjHQ.js} +1 -1
  45. package/dist/{deliver-aL8yOYS1.js → deliver-BJuiq0GS.js} +1 -1
  46. package/dist/{deliver-neVJ7AU9.js → deliver-DBXe-ZmL.js} +21 -21
  47. package/dist/{deliver-runtime-ChVR6sR3.js → deliver-runtime-DHKcNQzq.js} +3 -3
  48. package/dist/deliver-runtime-GlnBJNCj.js +36 -0
  49. package/dist/deps-send-discord.runtime-BRE0s2nz.js +26 -0
  50. package/dist/deps-send-imessage.runtime-DbIRBnmD.js +25 -0
  51. package/dist/deps-send-signal.runtime-B4h6X3o4.js +24 -0
  52. package/dist/deps-send-slack.runtime-BWXOnOxS.js +22 -0
  53. package/dist/deps-send-telegram.runtime-YvauJtgv.js +27 -0
  54. package/dist/{deps-send-whatsapp.runtime-WND2o1Mr.js → deps-send-whatsapp.runtime-BcxCalPD.js} +4 -4
  55. package/dist/deps-send-whatsapp.runtime-CslTuV47.js +60 -0
  56. package/dist/{deps-send-whatsapp.runtime-CZj97m5A.js → deps-send-whatsapp.runtime-DdxKewuy.js} +7 -7
  57. package/dist/{deps-send-whatsapp.runtime-DSbrPzxG.js → deps-send-whatsapp.runtime-Dl4ro-Df.js} +4 -4
  58. package/dist/{diagnostic-DoguEiWW.js → diagnostic-ySwZga6c.js} +2 -2
  59. package/dist/{doctor-completion-CKaQEebJ.js → doctor-completion-42wcUATu.js} +1 -1
  60. package/dist/{doctor-completion-Ctqsu6Y2.js → doctor-completion-D6RGDBD5.js} +1 -1
  61. package/dist/entry.js +2 -2
  62. package/dist/{plugin-sdk/errors-9oVz7reJ.js → errors-kkRuS2Cs.js} +1 -1
  63. package/dist/extensionAPI.js +6 -6
  64. package/dist/{fetch-DdiB5_OX.js → fetch-BLS7EMnx.js} +5 -5
  65. package/dist/{fetch-guard-CEV5qBHc.js → fetch-guard-D0fXNJls.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-CSIyrhFg.js → gateway-cli-BbPfLLT6.js} +10 -10
  69. package/dist/{gateway-cli-xX1CTw9n.js → gateway-cli-CG3mshpO.js} +10 -10
  70. package/dist/{github-copilot-token-Cw3tAXM9.js → github-copilot-token-B5cPlwaz.js} +7 -7
  71. package/dist/{health-D9Pie2kF.js → health-CJgEuWuG.js} +1 -1
  72. package/dist/{health-D7mPTab_.js → health-dZqyhpdR.js} +1 -1
  73. package/dist/{hooks-cli-C6aI9HU7.js → hooks-cli-BD4Ww1dF.js} +3 -3
  74. package/dist/{hooks-cli-_1zdKcZA.js → hooks-cli-C0wWJOBW.js} +3 -3
  75. package/dist/{image-ecaECpjT.js → image-j_UomzVG.js} +6 -6
  76. package/dist/{image-ops-bdrMTILs.js → image-ops-CdgypS_g.js} +2 -2
  77. package/dist/image-runtime-BNh3IfMj.js +29 -0
  78. package/dist/{image-runtime-poRypm-b.js → image-runtime-SUtf9jqh.js} +3 -3
  79. package/dist/{image-DKZCmkET.js → image-sRW3RpTY.js} +1 -1
  80. package/dist/index.js +7 -7
  81. package/dist/{ir-D_GD01cg.js → ir-BvisJWXv.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-gJWPqN66.js → login-BMeLPUiO.js} +5 -5
  86. package/dist/{login-qr-CgmlF7zK.js → login-qr-B2B67qqQ.js} +10 -10
  87. package/dist/{manager-CD69uguS.js → manager-DdxMYEDd.js} +13 -13
  88. package/dist/manager-runtime-BMygJEz3.js +18 -0
  89. package/dist/{model-selection-DMjtmGZP.js → model-selection-ag9BmVct.js} +43 -43
  90. package/dist/{models-BviRe-_7.js → models-BXT0s4KJ.js} +3 -3
  91. package/dist/{models-cli-BM5yo_mo.js → models-cli-BtLc9uPC.js} +3 -3
  92. package/dist/{models-cli-pvYVl1i-.js → models-cli-BwPFxWK2.js} +4 -4
  93. package/dist/{npm-resolution-DMM9Hopy.js → npm-resolution-DWpNPsBF.js} +1 -1
  94. package/dist/{npm-resolution-BTFMooVS.js → npm-resolution-Djbuzx6o.js} +1 -1
  95. package/dist/{onboard-DVuhj8ub.js → onboard-1KfKwvMR.js} +3 -3
  96. package/dist/{onboard-DTsgFKIa.js → onboard-ChxvwUze.js} +3 -3
  97. package/dist/{onboard-channels-W9UHiBQg.js → onboard-channels-CHrtFmhi.js} +2 -2
  98. package/dist/{onboard-channels-B1D9LqV_.js → onboard-channels-CXjnFvP1.js} +2 -2
  99. package/dist/{onboard-helpers-DVaF21TE.js → onboard-helpers-Bvpkyuwm.js} +6 -6
  100. package/dist/{onboard-helpers-PRhg7ZY5.js → onboard-helpers-ByttGRIZ.js} +6 -6
  101. package/dist/{onboard-remote-h-aHSDJ1.js → onboard-remote-Cfx2v9OI.js} +1 -1
  102. package/dist/{onboard-remote-DkIrV4Hx.js → onboard-remote-DxBaaS6o.js} +1 -1
  103. package/dist/{onboard-skills-fFSuiv21.js → onboard-skills-B7pHg1lN.js} +1 -1
  104. package/dist/{onboard-skills-fgrVmjJP.js → onboard-skills-PCnCZ6Od.js} +1 -1
  105. package/dist/{onboarding-D1nCnc_t.js → onboarding-D6kMb3yv.js} +7 -7
  106. package/dist/{onboarding-CYWs766P.js → onboarding-DuUMPrqA.js} +7 -7
  107. package/dist/{onboarding.finalize-Bcan6_vA.js → onboarding.finalize-KTOhO1-l.js} +7 -7
  108. package/dist/{onboarding.finalize-bAiXf9D6.js → onboarding.finalize-bphDUwZy.js} +6 -6
  109. package/dist/{onboarding.gateway-config-61E9xXYF.js → onboarding.gateway-config-DDdX0W74.js} +1 -1
  110. package/dist/{onboarding.gateway-config-Dyaqc_M7.js → onboarding.gateway-config-DNUJ0seU.js} +1 -1
  111. package/dist/{outbound-Cboz5UyH.js → outbound-DHDBvGLA.js} +6 -6
  112. package/dist/{outbound-attachment-PwEbEhAL.js → outbound-attachment-CqXiWbKN.js} +2 -2
  113. package/dist/{path-alias-guards-Cpsiv2KL.js → path-alias-guards-DORgbZ1w.js} +1 -1
  114. package/dist/{paths-CSdAWKDO.js → paths-DA5srn0U.js} +5 -5
  115. package/dist/{paths-CXClY8zC.js → paths-DSd911Oe.js} +4 -4
  116. package/dist/{pi-embedded-MktS4l8v.js → pi-embedded-BGz_qdCc.js} +24 -24
  117. package/dist/{pi-embedded-CkTlmTq8.js → pi-embedded-BP2UlUm_.js} +171 -171
  118. package/dist/{pi-embedded-helpers-DYWYzEOC.js → pi-embedded-helpers-BruaFB5l.js} +3 -3
  119. package/dist/{pi-embedded-helpers-Bfm_CvEb.js → pi-embedded-helpers-CmLnmKlb.js} +52 -52
  120. package/dist/{pi-model-discovery-DEps5Exd.js → pi-model-discovery-DAzuqPoG.js} +7 -7
  121. package/dist/pi-model-discovery-runtime-Dpu7Jm2L.js +11 -0
  122. package/dist/{pi-tools.before-tool-call.runtime-4wPdP7Br.js → pi-tools.before-tool-call.runtime-2Sp1jmlg.js} +9 -9
  123. package/dist/{plugin-registry-CvMvSI8O.js → plugin-registry-CLEhrKYA.js} +1 -1
  124. package/dist/{plugin-registry-DL2ClHLQ.js → plugin-registry-DtuxmgWx.js} +1 -1
  125. package/dist/plugin-sdk/{accounts-kr-Gz1hk.js → accounts-DghIDNk2.js} +2 -2
  126. package/dist/plugin-sdk/{accounts-CxUSDHsT.js → accounts-YTdQYQFr.js} +3 -3
  127. package/dist/plugin-sdk/{accounts-PSzw-z3S.js → accounts-h__dTrLK.js} +2 -2
  128. package/dist/plugin-sdk/{active-listener-BQNrTcR3.js → active-listener-_PRYjtJv.js} +2 -2
  129. package/dist/plugin-sdk/{api-key-rotation-Bhck7wki.js → api-key-rotation-mVDSAkKQ.js} +2 -2
  130. package/dist/plugin-sdk/{audio-preflight-_xgGaeho.js → audio-preflight-BZlQM-qX.js} +26 -26
  131. package/dist/plugin-sdk/{audio-transcription-runner-Dwc0Eh-B.js → audio-transcription-runner-CrYTX8py.js} +11 -11
  132. package/dist/plugin-sdk/{audit-membership-runtime-DHQDvH4u.js → audit-membership-runtime-Xl20kCBe.js} +2 -2
  133. package/dist/plugin-sdk/{channel-activity-XajEg_DL.js → channel-activity-gwxRn4wF.js} +3 -3
  134. package/dist/plugin-sdk/{channel-web-KtqCp4mz.js → channel-web-1WF-Nabe.js} +18 -18
  135. package/dist/plugin-sdk/{chrome-diV5m81I.js → chrome-BXbYwXRH.js} +6 -6
  136. package/dist/plugin-sdk/{commands-registry-DwZAJuut.js → commands-registry-0w-aZenK.js} +4 -4
  137. package/dist/plugin-sdk/{common-CqnO92P8.js → common-DBOCt6Yv.js} +2 -2
  138. package/dist/plugin-sdk/{config-DYbtdrsT.js → config-pRtEoVyZ.js} +7 -7
  139. package/dist/plugin-sdk/{deliver-DG_7Uagn.js → deliver-FjlJrtZk.js} +10 -10
  140. package/dist/plugin-sdk/deliver-runtime-DEzvpBW1.js +32 -0
  141. package/dist/plugin-sdk/deps-send-discord.runtime-Bhusa_Hi.js +23 -0
  142. package/dist/plugin-sdk/deps-send-imessage.runtime-bmakPm5f.js +22 -0
  143. package/dist/plugin-sdk/deps-send-signal.runtime-n00sfFto.js +21 -0
  144. package/dist/plugin-sdk/deps-send-slack.runtime-BvM3Z-Mr.js +19 -0
  145. package/dist/plugin-sdk/deps-send-telegram.runtime-CPuMkcmo.js +24 -0
  146. package/dist/plugin-sdk/deps-send-whatsapp.runtime-BzO6S-KX.js +57 -0
  147. package/dist/plugin-sdk/{diagnostic-CT7v_kM2.js → diagnostic-Dt2i3afe.js} +2 -2
  148. package/dist/plugin-sdk/{errors-B8oJXuCF.js → errors-CgRPdp3o.js} +1 -1
  149. package/dist/plugin-sdk/{fetch-guard-Or5BCq0E.js → fetch-guard-DyPZh8r2.js} +2 -2
  150. package/dist/plugin-sdk/{fs-safe-DFbwq9CS.js → fs-safe-DqCO1D4C.js} +3 -3
  151. package/dist/plugin-sdk/{image-rycGCqJO.js → image-CQ9TZ9vq.js} +6 -6
  152. package/dist/plugin-sdk/{image-ops-CMsocOob.js → image-ops-sw0uZ0GN.js} +2 -2
  153. package/dist/plugin-sdk/image-runtime-17_mTqsy.js +25 -0
  154. package/dist/plugin-sdk/index.js +50 -50
  155. package/dist/plugin-sdk/{ir-DihI2SIz.js → ir-BVZ5kUMb.js} +7 -7
  156. package/dist/plugin-sdk/{local-roots-1xVosTZ4.js → local-roots-fO3ZgW3G.js} +4 -4
  157. package/dist/plugin-sdk/{logger-Bg4vIUJn.js → logger-DIb2cGHp.js} +2 -2
  158. package/dist/plugin-sdk/{login-YhFrVUWo.js → login-Dg5cxB_3.js} +4 -4
  159. package/dist/plugin-sdk/{login-qr-SpUTuwYv.js → login-qr-C3Vn30cq.js} +5 -5
  160. package/dist/plugin-sdk/{manager-DrzOPeMD.js → manager-BR-TwWTH.js} +8 -8
  161. package/dist/plugin-sdk/manager-runtime-CvI9wF8N.js +15 -0
  162. package/dist/plugin-sdk/{outbound-Cc4cUn9K.js → outbound-1a3Z_QJ2.js} +5 -5
  163. package/dist/plugin-sdk/{outbound-attachment-Dtp3hQgc.js → outbound-attachment-BTQjD4YE.js} +2 -2
  164. package/dist/plugin-sdk/{path-alias-guards-DA0MhfkG.js → path-alias-guards-TnxupPQC.js} +1 -1
  165. package/dist/plugin-sdk/{paths-CP67O8eN.js → paths-B7_75Pdr.js} +1 -1
  166. package/dist/plugin-sdk/{pi-embedded-helpers-BDJ_4Plh.js → pi-embedded-helpers-DZRNadD8.js} +16 -16
  167. package/dist/plugin-sdk/{pi-model-discovery-Mk0GTDJl.js → pi-model-discovery-DGh6xekX.js} +1 -1
  168. package/dist/plugin-sdk/pi-model-discovery-runtime-DjjBdPYt.js +8 -0
  169. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-DV72wTDb.js → pi-tools.before-tool-call.runtime-BZ9XgG_x.js} +4 -4
  170. package/dist/plugin-sdk/{plugins-DSs2-fnK.js → plugins-B8pWVYug.js} +4 -4
  171. package/dist/plugin-sdk/{proxy-env-Ib4-LUh-.js → proxy-env-BOlkiW1-.js} +1 -1
  172. package/dist/plugin-sdk/{proxy-fetch-ZPEvp58f.js → proxy-fetch-Dt5BedH8.js} +1 -1
  173. package/dist/plugin-sdk/{pw-ai-DIx2wpkY.js → pw-ai-C17A1o4w.js} +9 -9
  174. package/dist/plugin-sdk/{qmd-manager-Ov9ElEfG.js → qmd-manager-Bei6TaFq.js} +7 -7
  175. package/dist/plugin-sdk/{query-expansion-CzjwW461.js → query-expansion-POz2za8a.js} +4 -4
  176. package/dist/plugin-sdk/{redact-BoNEjbpF.js → redact-9WsNyb7S.js} +1 -1
  177. package/dist/plugin-sdk/{reply-CWWUd_JS.js → reply-BFbijn6_.js} +73 -73
  178. package/dist/plugin-sdk/{resolve-outbound-target-BOkvxZtM.js → resolve-outbound-target-B9iFEh0y.js} +2 -2
  179. package/dist/plugin-sdk/{run-with-concurrency-kVooFCVo.js → run-with-concurrency-DmTrN5JG.js} +1 -1
  180. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-DzhkSmLi.js +10 -0
  181. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DyILWezU.js +19 -0
  182. package/dist/plugin-sdk/{send-BP1fSEBR.js → send-BGZo6HW1.js} +5 -5
  183. package/dist/plugin-sdk/{send-D9CSOGul.js → send-BisREGBZ.js} +6 -6
  184. package/dist/plugin-sdk/{send-BeLBlAsQ.js → send-BqkUDZed.js} +13 -13
  185. package/dist/plugin-sdk/{send-DLKxJJYV.js → send-D6_nNvi0.js} +8 -8
  186. package/dist/plugin-sdk/{send-XZ6IXCtL.js → send-Dj7XEcZN.js} +7 -7
  187. package/dist/plugin-sdk/{session-DtLUYWvY.js → session-D4KDs7Hq.js} +3 -3
  188. package/dist/plugin-sdk/{skill-commands-Bv7EZypt.js → skill-commands-D_xeseiI.js} +4 -4
  189. package/dist/plugin-sdk/{skills-BzXN4uev.js → skills-Bs2b3JfV.js} +6 -6
  190. package/dist/plugin-sdk/slash-commands.runtime-CUb5sqqf.js +13 -0
  191. package/dist/plugin-sdk/slash-dispatch.runtime-DCB6bGjB.js +52 -0
  192. package/dist/plugin-sdk/slash-skill-commands.runtime-BqEweE4K.js +16 -0
  193. package/dist/plugin-sdk/{store-DnJhFFW5.js → store-B7ESm9_L.js} +2 -2
  194. package/dist/plugin-sdk/subagent-registry-runtime-CCUW4SbM.js +52 -0
  195. package/dist/plugin-sdk/{tables-CpmqssLF.js → tables-1vhBJPK_.js} +1 -1
  196. package/dist/plugin-sdk/{thinking-1UCPuD9d.js → thinking-DjaClmzi.js} +7 -7
  197. package/dist/plugin-sdk/{tokens-DAL_5WHL.js → tokens-CLE20fRI.js} +1 -1
  198. package/dist/plugin-sdk/{tool-images-RX4QTMnt.js → tool-images-B95xcwiR.js} +2 -2
  199. package/dist/plugin-sdk/web-DeRmHQ4_.js +56 -0
  200. package/dist/plugin-sdk/{whatsapp-actions-BF6ih4Gi.js → whatsapp-actions-BYpcWkTN.js} +17 -17
  201. package/dist/plugin-sdk/whatsapp.js +50 -50
  202. package/dist/{plugins-CmdmAU0K.js → plugins-DXkm70nK.js} +11 -11
  203. package/dist/{plugins-cli-DBtLtIsQ.js → plugins-cli-Cs3UUJew.js} +3 -3
  204. package/dist/{plugins-cli-BMPvpwSo.js → plugins-cli-KPz6APX0.js} +3 -3
  205. package/dist/{program-context-KSeqVkRM.js → program-context-J_FyEsaS.js} +18 -18
  206. package/dist/{program-C6sTShRB.js → program-xNEHPhT8.js} +8 -8
  207. package/dist/{prompt-select-styled-Ba5fC0g1.js → prompt-select-styled-B1LjjgQ0.js} +5 -5
  208. package/dist/{prompt-select-styled-DFhJPiqx.js → prompt-select-styled-BRiogP_P.js} +5 -5
  209. package/dist/{provider-auth-helpers-S2rdI85T.js → provider-auth-helpers-CxUWqt95.js} +1 -1
  210. package/dist/{provider-auth-helpers-BPvZ8xkJ.js → provider-auth-helpers-hhFVhZdv.js} +1 -1
  211. package/dist/{proxy-env-QUJz9VEJ.js → proxy-env-D75CWSOo.js} +1 -1
  212. package/dist/{proxy-fetch-C2v-Utgg.js → proxy-fetch-lH6RsRTE.js} +1 -1
  213. package/dist/{push-apns-BQEPMPtG.js → push-apns-BBkpZyNR.js} +1 -1
  214. package/dist/{push-apns-CGibQhps.js → push-apns-BQjV_93G.js} +1 -1
  215. package/dist/{pw-ai-SYjuzbV6.js → pw-ai-7kHgUGj0.js} +14 -14
  216. package/dist/{pw-ai-zFPBSxaL.js → pw-ai-BmGrTicP.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-DP_2xCaO.js → register.agent-DYq06QHS.js} +8 -8
  221. package/dist/{register.agent-BwhWwpRX.js → register.agent-reU63wQ5.js} +7 -7
  222. package/dist/{register.configure-D8TE-yQn.js → register.configure-C4p9ad2q.js} +10 -10
  223. package/dist/{register.configure-C5i661J4.js → register.configure-DezZ4Q1p.js} +10 -10
  224. package/dist/{register.maintenance-BS2i3S5V.js → register.maintenance-CTvFmkAm.js} +9 -9
  225. package/dist/{register.maintenance-BA4UOg2_.js → register.maintenance-CzMKTC2a.js} +8 -8
  226. package/dist/{register.message-oFI2Mzrd.js → register.message-BmsovYS6.js} +3 -3
  227. package/dist/{register.message-D9hVI5b6.js → register.message-Bp4SDXWk.js} +3 -3
  228. package/dist/{register.onboard-D6wqijOl.js → register.onboard-C39xhpv1.js} +3 -3
  229. package/dist/{register.onboard-OaKr3SnU.js → register.onboard-DZt2kSAg.js} +3 -3
  230. package/dist/{register.setup-DsK_7zih.js → register.setup-04L_8wfA.js} +3 -3
  231. package/dist/{register.setup-Dygx-glo.js → register.setup-DWctFmOd.js} +3 -3
  232. package/dist/{register.status-health-sessions-C6VfEhho.js → register.status-health-sessions-CBPZoj51.js} +4 -4
  233. package/dist/{register.status-health-sessions-BmWcbWPR.js → register.status-health-sessions-N6SFc-UY.js} +4 -4
  234. package/dist/{register.subclis-CLf32krW.js → register.subclis-C3TphbCF.js} +10 -10
  235. package/dist/{reply-ZWkzBiSb.js → reply-CB1p166g.js} +5 -5
  236. package/dist/{run-main-asKkGUqy.js → run-main-7tknx04F.js} +15 -15
  237. package/dist/{run-with-concurrency-FczpX8ng.js → run-with-concurrency-BFR3ReeF.js} +4 -4
  238. package/dist/runtime-whatsapp-login.runtime-DSR-m0FW.js +13 -0
  239. package/dist/runtime-whatsapp-outbound.runtime-Blywd_bv.js +22 -0
  240. package/dist/{send-oS3t6gE6.js → send-C98RfcAb.js} +5 -5
  241. package/dist/{send-DX_O1OHH.js → send-Co5Bqwuo.js} +6 -6
  242. package/dist/{send-BNsV-D2Y.js → send-DjL7KlMV.js} +8 -8
  243. package/dist/{send-C-jb8X9I.js → send-Do7hKDL9.js} +7 -7
  244. package/dist/{send-D-Rnbdzz.js → send-bW7jDv8D.js} +26 -26
  245. package/dist/{server-node-events-DV2yeAp-.js → server-node-events-Ctjzvlem.js} +3 -3
  246. package/dist/{server-node-events-BHv7a_ll.js → server-node-events-DrCKK0J4.js} +3 -3
  247. package/dist/{session-DRyURckG.js → session-QSn69XeJ.js} +8 -8
  248. package/dist/{skill-commands-BrlAf_CG.js → skill-commands-Bi_jchJn.js} +9 -9
  249. package/dist/{skills-DWrRJwa-.js → skills-CTV78w4q.js} +22 -22
  250. package/dist/slash-commands.runtime-63MUmCBt.js +16 -0
  251. package/dist/{slash-dispatch.runtime-DkcAYuyK.js → slash-dispatch.runtime-BL3qA1O3.js} +6 -6
  252. package/dist/{slash-dispatch.runtime-BJOuQOeN.js → slash-dispatch.runtime-DRGqAgwa.js} +2 -2
  253. package/dist/slash-dispatch.runtime-Dh2L_3Tg.js +56 -0
  254. package/dist/{slash-dispatch.runtime-CEAbkOCI.js → slash-dispatch.runtime-uqWhoI6q.js} +2 -2
  255. package/dist/slash-skill-commands.runtime-B3MSSAQ-.js +20 -0
  256. package/dist/{status-Ck8-aQIF.js → status-BkfSGlOi.js} +3 -3
  257. package/dist/{status-CMhW6nGs.js → status-DdW571-j.js} +3 -3
  258. package/dist/{store-BFNH5fXG.js → store-B89Hj8Ub.js} +2 -2
  259. package/dist/{subagent-registry-DQpeidFk.js → subagent-registry-DGrfQVN3.js} +5 -5
  260. package/dist/subagent-registry-runtime-BRNDawlJ.js +56 -0
  261. package/dist/{subagent-registry-runtime-C-jjppV6.js → subagent-registry-runtime-DatTO2LD.js} +2 -2
  262. package/dist/{subagent-registry-runtime-tRRyFZL8.js → subagent-registry-runtime-Dsrz3yIh.js} +2 -2
  263. package/dist/{subagent-registry-runtime-BlRAnw80.js → subagent-registry-runtime-MtjBCcgn.js} +6 -6
  264. package/dist/{subsystem-BaLYRf7D.js → subsystem-6v7sWnAD.js} +14 -14
  265. package/dist/{tables-CnlmCLb3.js → tables-DGHzaXQz.js} +1 -1
  266. package/dist/{target-errors-Df1wB-I7.js → target-errors-CweAa7L9.js} +2 -2
  267. package/dist/{thinking-CTpcVnlx.js → thinking-SdNGqtJE.js} +7 -7
  268. package/dist/{tokens-D2XhLqIz.js → tokens-DfbMVF9y.js} +1 -1
  269. package/dist/{tool-images-CElPu2en.js → tool-images-8BKrL7Bn.js} +2 -2
  270. package/dist/{update-cli-5KzuA6pa.js → update-cli-0UiUaT3q.js} +10 -10
  271. package/dist/{update-cli-CEghYBNP.js → update-cli-C-uyQcFS.js} +9 -9
  272. package/dist/{update-runner-C5XgCwj2.js → update-runner-CT9YRLtn.js} +1 -1
  273. package/dist/{update-runner-C0q8aGFd.js → update-runner-CqVLeGYA.js} +1 -1
  274. package/dist/{web-DBm_uXOl.js → web-B2qXyOb9.js} +3 -3
  275. package/dist/{web-DdrUn13G.js → web-B7kbCskR.js} +55 -55
  276. package/dist/{web-DddJa7ZT.js → web-D1ZoRVB0.js} +6 -6
  277. package/dist/{web-O2WkG3cH.js → web-FqoNMI-k.js} +3 -3
  278. package/dist/{whatsapp-actions-DPszRJ8b.js → whatsapp-actions-BDkbnZVH.js} +21 -21
  279. package/dist/{workspace-TqfVSQuO.js → workspace-kVMIaBrV.js} +20 -20
  280. package/package.json +1 -1
  281. package/dist/api-key-rotation-Dzvqp3Dc.js +0 -181
  282. package/dist/deliver-runtime-BdUlqV9E.js +0 -36
  283. package/dist/deps-send-discord.runtime-R8jUd_2I.js +0 -26
  284. package/dist/deps-send-imessage.runtime-Die0aWtU.js +0 -25
  285. package/dist/deps-send-signal.runtime-Biux_4v4.js +0 -24
  286. package/dist/deps-send-slack.runtime-CkUST2Ky.js +0 -22
  287. package/dist/deps-send-telegram.runtime-CIN5ILBe.js +0 -27
  288. package/dist/deps-send-whatsapp.runtime-DUff9bWS.js +0 -60
  289. package/dist/errors-DfgAh2Ml.js +0 -54
  290. package/dist/image-runtime-irHu11-U.js +0 -29
  291. package/dist/manager-runtime-BISxj7HK.js +0 -18
  292. package/dist/pi-model-discovery-runtime-bzJViQLK.js +0 -11
  293. package/dist/plugin-sdk/accounts-BNuRM3rG.js +0 -288
  294. package/dist/plugin-sdk/accounts-CGTYP7Rh.js +0 -46
  295. package/dist/plugin-sdk/accounts-CcS9IAhD.js +0 -35
  296. package/dist/plugin-sdk/active-listener-CTsLn1AX.js +0 -50
  297. package/dist/plugin-sdk/audio-preflight-CRGLqp-g.js +0 -69
  298. package/dist/plugin-sdk/audio-transcription-runner-RXsskMMk.js +0 -2176
  299. package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +0 -58
  300. package/dist/plugin-sdk/channel-activity-gPvD1D7S.js +0 -94
  301. package/dist/plugin-sdk/channel-web-LGl1zPJt.js +0 -2256
  302. package/dist/plugin-sdk/chrome-9Y_LcUg1.js +0 -2415
  303. package/dist/plugin-sdk/commands-registry-CcdEPxVg.js +0 -1125
  304. package/dist/plugin-sdk/config-CrQ5bCrw.js +0 -17912
  305. package/dist/plugin-sdk/deliver-D3xr5AkB.js +0 -1694
  306. package/dist/plugin-sdk/deliver-runtime-B79ZQu69.js +0 -32
  307. package/dist/plugin-sdk/deliver-runtime-BdTC7uKE.js +0 -32
  308. package/dist/plugin-sdk/deps-send-discord.runtime-BOQZIqC8.js +0 -23
  309. package/dist/plugin-sdk/deps-send-discord.runtime-CObCNMt3.js +0 -23
  310. package/dist/plugin-sdk/deps-send-imessage.runtime-CuHOc9Ka.js +0 -22
  311. package/dist/plugin-sdk/deps-send-imessage.runtime-DlWgi2DH.js +0 -22
  312. package/dist/plugin-sdk/deps-send-signal.runtime-Cz7FT8J8.js +0 -21
  313. package/dist/plugin-sdk/deps-send-signal.runtime-iPynghkE.js +0 -21
  314. package/dist/plugin-sdk/deps-send-slack.runtime-D4vDoRsg.js +0 -19
  315. package/dist/plugin-sdk/deps-send-slack.runtime-DNTbE5jS.js +0 -19
  316. package/dist/plugin-sdk/deps-send-telegram.runtime-7CR-xtCF.js +0 -24
  317. package/dist/plugin-sdk/deps-send-telegram.runtime-DjTVED_m.js +0 -24
  318. package/dist/plugin-sdk/deps-send-whatsapp.runtime-CRWOIKRC.js +0 -57
  319. package/dist/plugin-sdk/deps-send-whatsapp.runtime-bUi8kghi.js +0 -57
  320. package/dist/plugin-sdk/diagnostic-BXkLYs_9.js +0 -319
  321. package/dist/plugin-sdk/fetch-guard-C55uvn27.js +0 -156
  322. package/dist/plugin-sdk/fs-safe-Dqmpk-Fr.js +0 -352
  323. package/dist/plugin-sdk/image-3xW7IJdq.js +0 -2310
  324. package/dist/plugin-sdk/image-ops-BjK2qZZn.js +0 -584
  325. package/dist/plugin-sdk/image-runtime-CZZJJqcW.js +0 -25
  326. package/dist/plugin-sdk/image-runtime-Cjz368oj.js +0 -25
  327. package/dist/plugin-sdk/ir-CS7uuQhN.js +0 -1296
  328. package/dist/plugin-sdk/local-roots-DmOKwiNW.js +0 -186
  329. package/dist/plugin-sdk/logger-DDdrdbDu.js +0 -1163
  330. package/dist/plugin-sdk/login-BSEeU27Y.js +0 -57
  331. package/dist/plugin-sdk/login-qr-BwWJsDSj.js +0 -320
  332. package/dist/plugin-sdk/manager-DiXPCubI.js +0 -3917
  333. package/dist/plugin-sdk/manager-runtime-CF55pBNe.js +0 -15
  334. package/dist/plugin-sdk/manager-runtime-Ct0m9UJC.js +0 -15
  335. package/dist/plugin-sdk/outbound-attachment-BoFx05zw.js +0 -19
  336. package/dist/plugin-sdk/outbound-cpqK1GFe.js +0 -212
  337. package/dist/plugin-sdk/path-alias-guards-gBhrAn14.js +0 -43
  338. package/dist/plugin-sdk/paths-C6W4VHoa.js +0 -166
  339. package/dist/plugin-sdk/pi-embedded-helpers-C-B9B6Sp.js +0 -9627
  340. package/dist/plugin-sdk/pi-model-discovery-BGEeoPzN.js +0 -134
  341. package/dist/plugin-sdk/pi-model-discovery-runtime-BHZ_Htob.js +0 -8
  342. package/dist/plugin-sdk/pi-model-discovery-runtime-BrwtJHPU.js +0 -8
  343. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-ByN_xThw.js +0 -354
  344. package/dist/plugin-sdk/plugins-D5cdn70e.js +0 -864
  345. package/dist/plugin-sdk/proxy-fetch-Cf3IUSDw.js +0 -38
  346. package/dist/plugin-sdk/pw-ai-C_QOIuin.js +0 -1938
  347. package/dist/plugin-sdk/qmd-manager-6bozlfFg.js +0 -1448
  348. package/dist/plugin-sdk/query-expansion-eeVz_aEm.js +0 -1011
  349. package/dist/plugin-sdk/redact-DfACyt0X.js +0 -319
  350. package/dist/plugin-sdk/reply-CQUX_haM.js +0 -98828
  351. package/dist/plugin-sdk/resolve-outbound-target-Dbz0O8cR.js +0 -40
  352. package/dist/plugin-sdk/run-with-concurrency-5DMu9szx.js +0 -1994
  353. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-DitS0I1z.js +0 -10
  354. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-OthrtsLL.js +0 -10
  355. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-CYCr6A3v.js +0 -19
  356. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-Q2HL0zL3.js +0 -19
  357. package/dist/plugin-sdk/send-BACEu1Un.js +0 -414
  358. package/dist/plugin-sdk/send-BU4OoR7u.js +0 -2587
  359. package/dist/plugin-sdk/send-DbxOJ_BC.js +0 -3135
  360. package/dist/plugin-sdk/send-n932vjT5.js +0 -540
  361. package/dist/plugin-sdk/send-uCPS53j8.js +0 -503
  362. package/dist/plugin-sdk/session-DenDKR_-.js +0 -169
  363. package/dist/plugin-sdk/skill-commands-BK1KDKmS.js +0 -342
  364. package/dist/plugin-sdk/skills-D4am-zkO.js +0 -1428
  365. package/dist/plugin-sdk/slash-commands.runtime-Bx1K1iqP.js +0 -13
  366. package/dist/plugin-sdk/slash-commands.runtime-DWfFqMZw.js +0 -13
  367. package/dist/plugin-sdk/slash-dispatch.runtime-DVn338JI.js +0 -52
  368. package/dist/plugin-sdk/slash-dispatch.runtime-pnWH5AjM.js +0 -52
  369. package/dist/plugin-sdk/slash-skill-commands.runtime-Dbi_YzPO.js +0 -16
  370. package/dist/plugin-sdk/slash-skill-commands.runtime-DxvNWv_E.js +0 -16
  371. package/dist/plugin-sdk/ssrf-2WBi1Tzx.js +0 -202
  372. package/dist/plugin-sdk/store-BKDMuvyn.js +0 -81
  373. package/dist/plugin-sdk/subagent-registry-runtime-FhP0l-Rw.js +0 -52
  374. package/dist/plugin-sdk/subagent-registry-runtime-hH9ADku1.js +0 -52
  375. package/dist/plugin-sdk/tables-CrDYcv_b.js +0 -55
  376. package/dist/plugin-sdk/target-errors-aOwE-MIU.js +0 -195
  377. package/dist/plugin-sdk/thinking-D41FMh9T.js +0 -1206
  378. package/dist/plugin-sdk/tokens-CTIYTLWu.js +0 -52
  379. package/dist/plugin-sdk/tool-images-CWc54lpI.js +0 -274
  380. package/dist/plugin-sdk/web-AtEy-48y.js +0 -56
  381. package/dist/plugin-sdk/web-DjKONHqF.js +0 -56
  382. package/dist/plugin-sdk/whatsapp-actions-DEZcm_CZ.js +0 -80
  383. package/dist/runtime-whatsapp-login.runtime-BqOsE5As.js +0 -13
  384. package/dist/runtime-whatsapp-outbound.runtime-D5S6mxFT.js +0 -22
  385. package/dist/slash-commands.runtime-JqCsKeu2.js +0 -16
  386. package/dist/slash-dispatch.runtime-h9I6EDYB.js +0 -56
  387. package/dist/slash-skill-commands.runtime-C0QZlkpu.js +0 -20
  388. package/dist/subagent-registry-runtime-BxvwRp_3.js +0 -56
@@ -1,1125 +0,0 @@
1
- import { Jr as DEFAULT_MODEL, Mn as resolveConfiguredModelRef, Yr as DEFAULT_PROVIDER, wt as getActivePluginRegistry } from "./config-CrQ5bCrw.js";
2
- import { P as isPlainObject, _ as escapeRegExp } from "./logger-DDdrdbDu.js";
3
- import { f as listChannelDocks, r as listThinkingLevels } from "./thinking-D41FMh9T.js";
4
- import { r as normalizeChannelId } from "./plugins-D5cdn70e.js";
5
-
6
- //#region src/config/commands.ts
7
- function resolveAutoDefault(providerId) {
8
- const id = normalizeChannelId(providerId);
9
- if (!id) return false;
10
- if (id === "discord" || id === "telegram") return true;
11
- if (id === "slack") return false;
12
- return false;
13
- }
14
- function resolveNativeSkillsEnabled(params) {
15
- return resolveNativeCommandSetting(params);
16
- }
17
- function resolveNativeCommandsEnabled(params) {
18
- return resolveNativeCommandSetting(params);
19
- }
20
- function resolveNativeCommandSetting(params) {
21
- const { providerId, providerSetting, globalSetting } = params;
22
- const setting = providerSetting === void 0 ? globalSetting : providerSetting;
23
- if (setting === true) return true;
24
- if (setting === false) return false;
25
- return resolveAutoDefault(providerId);
26
- }
27
- function isNativeCommandsExplicitlyDisabled(params) {
28
- const { providerSetting, globalSetting } = params;
29
- if (providerSetting === false) return true;
30
- if (providerSetting === void 0) return globalSetting === false;
31
- return false;
32
- }
33
- function getOwnCommandFlagValue(config, key) {
34
- const { commands } = config ?? {};
35
- if (!isPlainObject(commands) || !Object.hasOwn(commands, key)) return;
36
- return commands[key];
37
- }
38
- function isCommandFlagEnabled(config, key) {
39
- return getOwnCommandFlagValue(config, key) === true;
40
- }
41
- function isRestartEnabled(config) {
42
- return getOwnCommandFlagValue(config, "restart") !== false;
43
- }
44
-
45
- //#endregion
46
- //#region src/auto-reply/commands-args.ts
47
- function normalizeArgValue(value) {
48
- if (value == null) return;
49
- let text;
50
- if (typeof value === "string") text = value.trim();
51
- else if (typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") text = String(value).trim();
52
- else if (typeof value === "symbol") text = value.toString().trim();
53
- else if (typeof value === "function") text = value.toString().trim();
54
- else text = JSON.stringify(value);
55
- return text ? text : void 0;
56
- }
57
- function formatActionArgs(values, params) {
58
- const action = normalizeArgValue(values.action)?.toLowerCase();
59
- const path = normalizeArgValue(values.path);
60
- const value = normalizeArgValue(values.value);
61
- if (!action) return;
62
- const knownAction = params.formatKnownAction(action, path);
63
- if (knownAction) return knownAction;
64
- return formatSetUnsetArgAction(action, {
65
- path,
66
- value
67
- });
68
- }
69
- const formatConfigArgs = (values) => formatActionArgs(values, { formatKnownAction: (action, path) => {
70
- if (action === "show" || action === "get") return path ? `${action} ${path}` : action;
71
- } });
72
- const formatDebugArgs = (values) => formatActionArgs(values, { formatKnownAction: (action) => {
73
- if (action === "show" || action === "reset") return action;
74
- } });
75
- function formatSetUnsetArgAction(action, params) {
76
- if (action === "unset") return params.path ? `${action} ${params.path}` : action;
77
- if (action === "set") {
78
- if (!params.path) return action;
79
- if (!params.value) return `${action} ${params.path}`;
80
- return `${action} ${params.path}=${params.value}`;
81
- }
82
- return action;
83
- }
84
- const formatQueueArgs = (values) => {
85
- const mode = normalizeArgValue(values.mode);
86
- const debounce = normalizeArgValue(values.debounce);
87
- const cap = normalizeArgValue(values.cap);
88
- const drop = normalizeArgValue(values.drop);
89
- const parts = [];
90
- if (mode) parts.push(mode);
91
- if (debounce) parts.push(`debounce:${debounce}`);
92
- if (cap) parts.push(`cap:${cap}`);
93
- if (drop) parts.push(`drop:${drop}`);
94
- return parts.length > 0 ? parts.join(" ") : void 0;
95
- };
96
- const formatExecArgs = (values) => {
97
- const host = normalizeArgValue(values.host);
98
- const security = normalizeArgValue(values.security);
99
- const ask = normalizeArgValue(values.ask);
100
- const node = normalizeArgValue(values.node);
101
- const parts = [];
102
- if (host) parts.push(`host=${host}`);
103
- if (security) parts.push(`security=${security}`);
104
- if (ask) parts.push(`ask=${ask}`);
105
- if (node) parts.push(`node=${node}`);
106
- return parts.length > 0 ? parts.join(" ") : void 0;
107
- };
108
- const COMMAND_ARG_FORMATTERS = {
109
- config: formatConfigArgs,
110
- debug: formatDebugArgs,
111
- queue: formatQueueArgs,
112
- exec: formatExecArgs
113
- };
114
-
115
- //#endregion
116
- //#region src/auto-reply/commands-registry.data.ts
117
- function defineChatCommand(command) {
118
- const aliases = (command.textAliases ?? (command.textAlias ? [command.textAlias] : [])).map((alias) => alias.trim()).filter(Boolean);
119
- const scope = command.scope ?? (command.nativeName ? aliases.length ? "both" : "native" : "text");
120
- const acceptsArgs = command.acceptsArgs ?? Boolean(command.args?.length);
121
- const argsParsing = command.argsParsing ?? (command.args?.length ? "positional" : "none");
122
- return {
123
- key: command.key,
124
- nativeName: command.nativeName,
125
- description: command.description,
126
- acceptsArgs,
127
- args: command.args,
128
- argsParsing,
129
- formatArgs: command.formatArgs,
130
- argsMenu: command.argsMenu,
131
- textAliases: aliases,
132
- scope,
133
- category: command.category
134
- };
135
- }
136
- function defineDockCommand(dock) {
137
- return defineChatCommand({
138
- key: `dock:${dock.id}`,
139
- nativeName: `dock_${dock.id}`,
140
- description: `Switch to ${dock.id} for replies.`,
141
- textAliases: [`/dock-${dock.id}`, `/dock_${dock.id}`],
142
- category: "docks"
143
- });
144
- }
145
- function registerAlias(commands, key, ...aliases) {
146
- const command = commands.find((entry) => entry.key === key);
147
- if (!command) throw new Error(`registerAlias: unknown command key: ${key}`);
148
- const existing = new Set(command.textAliases.map((alias) => alias.trim().toLowerCase()));
149
- for (const alias of aliases) {
150
- const trimmed = alias.trim();
151
- if (!trimmed) continue;
152
- const lowered = trimmed.toLowerCase();
153
- if (existing.has(lowered)) continue;
154
- existing.add(lowered);
155
- command.textAliases.push(trimmed);
156
- }
157
- }
158
- function assertCommandRegistry(commands) {
159
- const keys = /* @__PURE__ */ new Set();
160
- const nativeNames = /* @__PURE__ */ new Set();
161
- const textAliases = /* @__PURE__ */ new Set();
162
- for (const command of commands) {
163
- if (keys.has(command.key)) throw new Error(`Duplicate command key: ${command.key}`);
164
- keys.add(command.key);
165
- const nativeName = command.nativeName?.trim();
166
- if (command.scope === "text") {
167
- if (nativeName) throw new Error(`Text-only command has native name: ${command.key}`);
168
- if (command.textAliases.length === 0) throw new Error(`Text-only command missing text alias: ${command.key}`);
169
- } else if (!nativeName) throw new Error(`Native command missing native name: ${command.key}`);
170
- else {
171
- const nativeKey = nativeName.toLowerCase();
172
- if (nativeNames.has(nativeKey)) throw new Error(`Duplicate native command: ${nativeName}`);
173
- nativeNames.add(nativeKey);
174
- }
175
- if (command.scope === "native" && command.textAliases.length > 0) throw new Error(`Native-only command has text aliases: ${command.key}`);
176
- for (const alias of command.textAliases) {
177
- if (!alias.startsWith("/")) throw new Error(`Command alias missing leading '/': ${alias}`);
178
- const aliasKey = alias.toLowerCase();
179
- if (textAliases.has(aliasKey)) throw new Error(`Duplicate command alias: ${alias}`);
180
- textAliases.add(aliasKey);
181
- }
182
- }
183
- }
184
- let cachedCommands = null;
185
- let cachedRegistry = null;
186
- let cachedNativeCommandSurfaces = null;
187
- let cachedNativeRegistry = null;
188
- function buildChatCommands() {
189
- const commands = [
190
- defineChatCommand({
191
- key: "help",
192
- nativeName: "help",
193
- description: "Show available commands.",
194
- textAlias: "/help",
195
- category: "status"
196
- }),
197
- defineChatCommand({
198
- key: "commands",
199
- nativeName: "commands",
200
- description: "List all slash commands.",
201
- textAlias: "/commands",
202
- category: "status"
203
- }),
204
- defineChatCommand({
205
- key: "skill",
206
- nativeName: "skill",
207
- description: "Run a skill by name.",
208
- textAlias: "/skill",
209
- category: "tools",
210
- args: [{
211
- name: "name",
212
- description: "Skill name",
213
- type: "string",
214
- required: true
215
- }, {
216
- name: "input",
217
- description: "Skill input",
218
- type: "string",
219
- captureRemaining: true
220
- }]
221
- }),
222
- defineChatCommand({
223
- key: "status",
224
- nativeName: "status",
225
- description: "Show current status.",
226
- textAlias: "/status",
227
- category: "status"
228
- }),
229
- defineChatCommand({
230
- key: "allowlist",
231
- description: "List/add/remove allowlist entries.",
232
- textAlias: "/allowlist",
233
- acceptsArgs: true,
234
- scope: "text",
235
- category: "management"
236
- }),
237
- defineChatCommand({
238
- key: "approve",
239
- nativeName: "approve",
240
- description: "Approve or deny exec requests.",
241
- textAlias: "/approve",
242
- acceptsArgs: true,
243
- category: "management"
244
- }),
245
- defineChatCommand({
246
- key: "context",
247
- nativeName: "context",
248
- description: "Explain how context is built and used.",
249
- textAlias: "/context",
250
- acceptsArgs: true,
251
- category: "status"
252
- }),
253
- defineChatCommand({
254
- key: "export-session",
255
- nativeName: "export-session",
256
- description: "Export current session to HTML file with full system prompt.",
257
- textAliases: ["/export-session", "/export"],
258
- acceptsArgs: true,
259
- category: "status",
260
- args: [{
261
- name: "path",
262
- description: "Output path (default: workspace)",
263
- type: "string",
264
- required: false
265
- }]
266
- }),
267
- defineChatCommand({
268
- key: "tts",
269
- nativeName: "tts",
270
- description: "Control text-to-speech (TTS).",
271
- textAlias: "/tts",
272
- category: "media",
273
- args: [{
274
- name: "action",
275
- description: "TTS action",
276
- type: "string",
277
- choices: [
278
- {
279
- value: "on",
280
- label: "On"
281
- },
282
- {
283
- value: "off",
284
- label: "Off"
285
- },
286
- {
287
- value: "status",
288
- label: "Status"
289
- },
290
- {
291
- value: "provider",
292
- label: "Provider"
293
- },
294
- {
295
- value: "limit",
296
- label: "Limit"
297
- },
298
- {
299
- value: "summary",
300
- label: "Summary"
301
- },
302
- {
303
- value: "audio",
304
- label: "Audio"
305
- },
306
- {
307
- value: "help",
308
- label: "Help"
309
- }
310
- ]
311
- }, {
312
- name: "value",
313
- description: "Provider, limit, or text",
314
- type: "string",
315
- captureRemaining: true
316
- }],
317
- argsMenu: {
318
- arg: "action",
319
- title: "TTS Actions:\n• On – Enable TTS for responses\n• Off – Disable TTS\n• Status – Show current settings\n• Provider – Set voice provider (edge, elevenlabs, openai)\n• Limit – Set max characters for TTS\n• Summary – Toggle AI summary for long texts\n• Audio – Generate TTS from custom text\n• Help – Show usage guide"
320
- }
321
- }),
322
- defineChatCommand({
323
- key: "whoami",
324
- nativeName: "whoami",
325
- description: "Show your sender id.",
326
- textAlias: "/whoami",
327
- category: "status"
328
- }),
329
- defineChatCommand({
330
- key: "session",
331
- nativeName: "session",
332
- description: "Manage session-level settings (for example /session idle).",
333
- textAlias: "/session",
334
- category: "session",
335
- args: [{
336
- name: "action",
337
- description: "idle | max-age",
338
- type: "string",
339
- choices: ["idle", "max-age"]
340
- }, {
341
- name: "value",
342
- description: "Duration (24h, 90m) or off",
343
- type: "string",
344
- captureRemaining: true
345
- }],
346
- argsMenu: "auto"
347
- }),
348
- defineChatCommand({
349
- key: "subagents",
350
- nativeName: "subagents",
351
- description: "List, kill, log, spawn, or steer subagent runs for this session.",
352
- textAlias: "/subagents",
353
- category: "management",
354
- args: [
355
- {
356
- name: "action",
357
- description: "list | kill | log | info | send | steer | spawn",
358
- type: "string",
359
- choices: [
360
- "list",
361
- "kill",
362
- "log",
363
- "info",
364
- "send",
365
- "steer",
366
- "spawn"
367
- ]
368
- },
369
- {
370
- name: "target",
371
- description: "Run id, index, or session key",
372
- type: "string"
373
- },
374
- {
375
- name: "value",
376
- description: "Additional input (limit/message)",
377
- type: "string",
378
- captureRemaining: true
379
- }
380
- ],
381
- argsMenu: "auto"
382
- }),
383
- defineChatCommand({
384
- key: "acp",
385
- nativeName: "acp",
386
- description: "Manage ACP sessions and runtime options.",
387
- textAlias: "/acp",
388
- category: "management",
389
- args: [{
390
- name: "action",
391
- description: "Action to run",
392
- type: "string",
393
- preferAutocomplete: true,
394
- choices: [
395
- "spawn",
396
- "cancel",
397
- "steer",
398
- "close",
399
- "sessions",
400
- "status",
401
- "set-mode",
402
- "set",
403
- "cwd",
404
- "permissions",
405
- "timeout",
406
- "model",
407
- "reset-options",
408
- "doctor",
409
- "install",
410
- "help"
411
- ]
412
- }, {
413
- name: "value",
414
- description: "Action arguments",
415
- type: "string",
416
- captureRemaining: true
417
- }],
418
- argsMenu: "auto"
419
- }),
420
- defineChatCommand({
421
- key: "focus",
422
- nativeName: "focus",
423
- description: "Bind this Discord thread (or a new one) to a session target.",
424
- textAlias: "/focus",
425
- category: "management",
426
- args: [{
427
- name: "target",
428
- description: "Subagent label/index or session key/id/label",
429
- type: "string",
430
- captureRemaining: true
431
- }]
432
- }),
433
- defineChatCommand({
434
- key: "unfocus",
435
- nativeName: "unfocus",
436
- description: "Remove the current Discord thread binding.",
437
- textAlias: "/unfocus",
438
- category: "management"
439
- }),
440
- defineChatCommand({
441
- key: "agents",
442
- nativeName: "agents",
443
- description: "List thread-bound agents for this session.",
444
- textAlias: "/agents",
445
- category: "management"
446
- }),
447
- defineChatCommand({
448
- key: "kill",
449
- nativeName: "kill",
450
- description: "Kill a running subagent (or all).",
451
- textAlias: "/kill",
452
- category: "management",
453
- args: [{
454
- name: "target",
455
- description: "Label, run id, index, or all",
456
- type: "string"
457
- }],
458
- argsMenu: "auto"
459
- }),
460
- defineChatCommand({
461
- key: "steer",
462
- nativeName: "steer",
463
- description: "Send guidance to a running subagent.",
464
- textAlias: "/steer",
465
- category: "management",
466
- args: [{
467
- name: "target",
468
- description: "Label, run id, or index",
469
- type: "string"
470
- }, {
471
- name: "message",
472
- description: "Steering message",
473
- type: "string",
474
- captureRemaining: true
475
- }]
476
- }),
477
- defineChatCommand({
478
- key: "config",
479
- nativeName: "config",
480
- description: "Show or set config values.",
481
- textAlias: "/config",
482
- category: "management",
483
- args: [
484
- {
485
- name: "action",
486
- description: "show | get | set | unset",
487
- type: "string",
488
- choices: [
489
- "show",
490
- "get",
491
- "set",
492
- "unset"
493
- ]
494
- },
495
- {
496
- name: "path",
497
- description: "Config path",
498
- type: "string"
499
- },
500
- {
501
- name: "value",
502
- description: "Value for set",
503
- type: "string",
504
- captureRemaining: true
505
- }
506
- ],
507
- argsParsing: "none",
508
- formatArgs: COMMAND_ARG_FORMATTERS.config
509
- }),
510
- defineChatCommand({
511
- key: "debug",
512
- nativeName: "debug",
513
- description: "Set runtime debug overrides.",
514
- textAlias: "/debug",
515
- category: "management",
516
- args: [
517
- {
518
- name: "action",
519
- description: "show | reset | set | unset",
520
- type: "string",
521
- choices: [
522
- "show",
523
- "reset",
524
- "set",
525
- "unset"
526
- ]
527
- },
528
- {
529
- name: "path",
530
- description: "Debug path",
531
- type: "string"
532
- },
533
- {
534
- name: "value",
535
- description: "Value for set",
536
- type: "string",
537
- captureRemaining: true
538
- }
539
- ],
540
- argsParsing: "none",
541
- formatArgs: COMMAND_ARG_FORMATTERS.debug
542
- }),
543
- defineChatCommand({
544
- key: "usage",
545
- nativeName: "usage",
546
- description: "Usage footer or cost summary.",
547
- textAlias: "/usage",
548
- category: "options",
549
- args: [{
550
- name: "mode",
551
- description: "off, tokens, full, or cost",
552
- type: "string",
553
- choices: [
554
- "off",
555
- "tokens",
556
- "full",
557
- "cost"
558
- ]
559
- }],
560
- argsMenu: "auto"
561
- }),
562
- defineChatCommand({
563
- key: "stop",
564
- nativeName: "stop",
565
- description: "Stop the current run.",
566
- textAlias: "/stop",
567
- category: "session"
568
- }),
569
- defineChatCommand({
570
- key: "restart",
571
- nativeName: "restart",
572
- description: "Restart SquidClaw.",
573
- textAlias: "/restart",
574
- category: "tools"
575
- }),
576
- defineChatCommand({
577
- key: "activation",
578
- nativeName: "activation",
579
- description: "Set group activation mode.",
580
- textAlias: "/activation",
581
- category: "management",
582
- args: [{
583
- name: "mode",
584
- description: "mention or always",
585
- type: "string",
586
- choices: ["mention", "always"]
587
- }],
588
- argsMenu: "auto"
589
- }),
590
- defineChatCommand({
591
- key: "send",
592
- nativeName: "send",
593
- description: "Set send policy.",
594
- textAlias: "/send",
595
- category: "management",
596
- args: [{
597
- name: "mode",
598
- description: "on, off, or inherit",
599
- type: "string",
600
- choices: [
601
- "on",
602
- "off",
603
- "inherit"
604
- ]
605
- }],
606
- argsMenu: "auto"
607
- }),
608
- defineChatCommand({
609
- key: "reset",
610
- nativeName: "reset",
611
- description: "Reset the current session.",
612
- textAlias: "/reset",
613
- acceptsArgs: true,
614
- category: "session"
615
- }),
616
- defineChatCommand({
617
- key: "new",
618
- nativeName: "new",
619
- description: "Start a new session.",
620
- textAlias: "/new",
621
- acceptsArgs: true,
622
- category: "session"
623
- }),
624
- defineChatCommand({
625
- key: "compact",
626
- nativeName: "compact",
627
- description: "Compact the session context.",
628
- textAlias: "/compact",
629
- category: "session",
630
- args: [{
631
- name: "instructions",
632
- description: "Extra compaction instructions",
633
- type: "string",
634
- captureRemaining: true
635
- }]
636
- }),
637
- defineChatCommand({
638
- key: "think",
639
- nativeName: "think",
640
- description: "Set thinking level.",
641
- textAlias: "/think",
642
- category: "options",
643
- args: [{
644
- name: "level",
645
- description: "off, minimal, low, medium, high, xhigh",
646
- type: "string",
647
- choices: ({ provider, model }) => listThinkingLevels(provider, model)
648
- }],
649
- argsMenu: "auto"
650
- }),
651
- defineChatCommand({
652
- key: "verbose",
653
- nativeName: "verbose",
654
- description: "Toggle verbose mode.",
655
- textAlias: "/verbose",
656
- category: "options",
657
- args: [{
658
- name: "mode",
659
- description: "on or off",
660
- type: "string",
661
- choices: ["on", "off"]
662
- }],
663
- argsMenu: "auto"
664
- }),
665
- defineChatCommand({
666
- key: "reasoning",
667
- nativeName: "reasoning",
668
- description: "Toggle reasoning visibility.",
669
- textAlias: "/reasoning",
670
- category: "options",
671
- args: [{
672
- name: "mode",
673
- description: "on, off, or stream",
674
- type: "string",
675
- choices: [
676
- "on",
677
- "off",
678
- "stream"
679
- ]
680
- }],
681
- argsMenu: "auto"
682
- }),
683
- defineChatCommand({
684
- key: "elevated",
685
- nativeName: "elevated",
686
- description: "Toggle elevated mode.",
687
- textAlias: "/elevated",
688
- category: "options",
689
- args: [{
690
- name: "mode",
691
- description: "on, off, ask, or full",
692
- type: "string",
693
- choices: [
694
- "on",
695
- "off",
696
- "ask",
697
- "full"
698
- ]
699
- }],
700
- argsMenu: "auto"
701
- }),
702
- defineChatCommand({
703
- key: "exec",
704
- nativeName: "exec",
705
- description: "Set exec defaults for this session.",
706
- textAlias: "/exec",
707
- category: "options",
708
- args: [
709
- {
710
- name: "host",
711
- description: "sandbox, gateway, or node",
712
- type: "string",
713
- choices: [
714
- "sandbox",
715
- "gateway",
716
- "node"
717
- ]
718
- },
719
- {
720
- name: "security",
721
- description: "deny, allowlist, or full",
722
- type: "string",
723
- choices: [
724
- "deny",
725
- "allowlist",
726
- "full"
727
- ]
728
- },
729
- {
730
- name: "ask",
731
- description: "off, on-miss, or always",
732
- type: "string",
733
- choices: [
734
- "off",
735
- "on-miss",
736
- "always"
737
- ]
738
- },
739
- {
740
- name: "node",
741
- description: "Node id or name",
742
- type: "string"
743
- }
744
- ],
745
- argsParsing: "none",
746
- formatArgs: COMMAND_ARG_FORMATTERS.exec
747
- }),
748
- defineChatCommand({
749
- key: "model",
750
- nativeName: "model",
751
- description: "Show or set the model.",
752
- textAlias: "/model",
753
- category: "options",
754
- args: [{
755
- name: "model",
756
- description: "Model id (provider/model or id)",
757
- type: "string"
758
- }]
759
- }),
760
- defineChatCommand({
761
- key: "models",
762
- nativeName: "models",
763
- description: "List model providers or provider models.",
764
- textAlias: "/models",
765
- argsParsing: "none",
766
- acceptsArgs: true,
767
- category: "options"
768
- }),
769
- defineChatCommand({
770
- key: "queue",
771
- nativeName: "queue",
772
- description: "Adjust queue settings.",
773
- textAlias: "/queue",
774
- category: "options",
775
- args: [
776
- {
777
- name: "mode",
778
- description: "queue mode",
779
- type: "string",
780
- choices: [
781
- "steer",
782
- "interrupt",
783
- "followup",
784
- "collect",
785
- "steer-backlog"
786
- ]
787
- },
788
- {
789
- name: "debounce",
790
- description: "debounce duration (e.g. 500ms, 2s)",
791
- type: "string"
792
- },
793
- {
794
- name: "cap",
795
- description: "queue cap",
796
- type: "number"
797
- },
798
- {
799
- name: "drop",
800
- description: "drop policy",
801
- type: "string",
802
- choices: [
803
- "old",
804
- "new",
805
- "summarize"
806
- ]
807
- }
808
- ],
809
- argsParsing: "none",
810
- formatArgs: COMMAND_ARG_FORMATTERS.queue
811
- }),
812
- defineChatCommand({
813
- key: "bash",
814
- description: "Run host shell commands (host-only).",
815
- textAlias: "/bash",
816
- scope: "text",
817
- category: "tools",
818
- args: [{
819
- name: "command",
820
- description: "Shell command",
821
- type: "string",
822
- captureRemaining: true
823
- }]
824
- }),
825
- ...listChannelDocks().filter((dock) => dock.capabilities.nativeCommands).map((dock) => defineDockCommand(dock))
826
- ];
827
- registerAlias(commands, "whoami", "/id");
828
- registerAlias(commands, "think", "/thinking", "/t");
829
- registerAlias(commands, "verbose", "/v");
830
- registerAlias(commands, "reasoning", "/reason");
831
- registerAlias(commands, "elevated", "/elev");
832
- registerAlias(commands, "steer", "/tell");
833
- assertCommandRegistry(commands);
834
- return commands;
835
- }
836
- function getChatCommands() {
837
- const registry = getActivePluginRegistry();
838
- if (cachedCommands && registry === cachedRegistry) return cachedCommands;
839
- const commands = buildChatCommands();
840
- cachedCommands = commands;
841
- cachedRegistry = registry;
842
- cachedNativeCommandSurfaces = null;
843
- return commands;
844
- }
845
- function getNativeCommandSurfaces() {
846
- const registry = getActivePluginRegistry();
847
- if (cachedNativeCommandSurfaces && registry === cachedNativeRegistry) return cachedNativeCommandSurfaces;
848
- cachedNativeCommandSurfaces = new Set(listChannelDocks().filter((dock) => dock.capabilities.nativeCommands).map((dock) => dock.id));
849
- cachedNativeRegistry = registry;
850
- return cachedNativeCommandSurfaces;
851
- }
852
-
853
- //#endregion
854
- //#region src/auto-reply/commands-registry.ts
855
- let cachedTextAliasMap = null;
856
- let cachedTextAliasCommands = null;
857
- let cachedDetection;
858
- let cachedDetectionCommands = null;
859
- function getTextAliasMap() {
860
- const commands = getChatCommands();
861
- if (cachedTextAliasMap && cachedTextAliasCommands === commands) return cachedTextAliasMap;
862
- const map = /* @__PURE__ */ new Map();
863
- for (const command of commands) {
864
- const canonical = command.textAliases[0]?.trim() || `/${command.key}`;
865
- const acceptsArgs = Boolean(command.acceptsArgs);
866
- for (const alias of command.textAliases) {
867
- const normalized = alias.trim().toLowerCase();
868
- if (!normalized) continue;
869
- if (!map.has(normalized)) map.set(normalized, {
870
- key: command.key,
871
- canonical,
872
- acceptsArgs
873
- });
874
- }
875
- }
876
- cachedTextAliasMap = map;
877
- cachedTextAliasCommands = commands;
878
- return map;
879
- }
880
- function buildSkillCommandDefinitions(skillCommands) {
881
- if (!skillCommands || skillCommands.length === 0) return [];
882
- return skillCommands.map((spec) => ({
883
- key: `skill:${spec.skillName}`,
884
- nativeName: spec.name,
885
- description: spec.description,
886
- textAliases: [`/${spec.name}`],
887
- acceptsArgs: true,
888
- argsParsing: "none",
889
- scope: "both"
890
- }));
891
- }
892
- function listChatCommands(params) {
893
- const commands = getChatCommands();
894
- if (!params?.skillCommands?.length) return [...commands];
895
- return [...commands, ...buildSkillCommandDefinitions(params.skillCommands)];
896
- }
897
- function isCommandEnabled(cfg, commandKey) {
898
- if (commandKey === "config") return isCommandFlagEnabled(cfg, "config");
899
- if (commandKey === "debug") return isCommandFlagEnabled(cfg, "debug");
900
- if (commandKey === "bash") return isCommandFlagEnabled(cfg, "bash");
901
- return true;
902
- }
903
- function listChatCommandsForConfig(cfg, params) {
904
- const base = getChatCommands().filter((command) => isCommandEnabled(cfg, command.key));
905
- if (!params?.skillCommands?.length) return base;
906
- return [...base, ...buildSkillCommandDefinitions(params.skillCommands)];
907
- }
908
- const NATIVE_NAME_OVERRIDES = {
909
- discord: { tts: "voice" },
910
- slack: { status: "agentstatus" }
911
- };
912
- function resolveNativeName(command, provider) {
913
- if (!command.nativeName) return;
914
- if (provider) {
915
- const override = NATIVE_NAME_OVERRIDES[provider]?.[command.key];
916
- if (override) return override;
917
- }
918
- return command.nativeName;
919
- }
920
- function toNativeCommandSpec(command, provider) {
921
- return {
922
- name: resolveNativeName(command, provider) ?? command.key,
923
- description: command.description,
924
- acceptsArgs: Boolean(command.acceptsArgs),
925
- args: command.args
926
- };
927
- }
928
- function listNativeSpecsFromCommands(commands, provider) {
929
- return commands.filter((command) => command.scope !== "text" && command.nativeName).map((command) => toNativeCommandSpec(command, provider));
930
- }
931
- function listNativeCommandSpecs(params) {
932
- return listNativeSpecsFromCommands(listChatCommands({ skillCommands: params?.skillCommands }), params?.provider);
933
- }
934
- function listNativeCommandSpecsForConfig(cfg, params) {
935
- return listNativeSpecsFromCommands(listChatCommandsForConfig(cfg, params), params?.provider);
936
- }
937
- function findCommandByNativeName(name, provider) {
938
- const normalized = name.trim().toLowerCase();
939
- return getChatCommands().find((command) => command.scope !== "text" && resolveNativeName(command, provider)?.toLowerCase() === normalized);
940
- }
941
- function buildCommandText(commandName, args) {
942
- const trimmedArgs = args?.trim();
943
- return trimmedArgs ? `/${commandName} ${trimmedArgs}` : `/${commandName}`;
944
- }
945
- function parsePositionalArgs(definitions, raw) {
946
- const values = {};
947
- const trimmed = raw.trim();
948
- if (!trimmed) return values;
949
- const tokens = trimmed.split(/\s+/).filter(Boolean);
950
- let index = 0;
951
- for (const definition of definitions) {
952
- if (index >= tokens.length) break;
953
- if (definition.captureRemaining) {
954
- values[definition.name] = tokens.slice(index).join(" ");
955
- index = tokens.length;
956
- break;
957
- }
958
- values[definition.name] = tokens[index];
959
- index += 1;
960
- }
961
- return values;
962
- }
963
- function formatPositionalArgs(definitions, values) {
964
- const parts = [];
965
- for (const definition of definitions) {
966
- const value = values[definition.name];
967
- if (value == null) continue;
968
- let rendered;
969
- if (typeof value === "string") rendered = value.trim();
970
- else rendered = String(value);
971
- if (!rendered) continue;
972
- parts.push(rendered);
973
- if (definition.captureRemaining) break;
974
- }
975
- return parts.length > 0 ? parts.join(" ") : void 0;
976
- }
977
- function parseCommandArgs(command, raw) {
978
- const trimmed = raw?.trim();
979
- if (!trimmed) return;
980
- if (!command.args || command.argsParsing === "none") return { raw: trimmed };
981
- return {
982
- raw: trimmed,
983
- values: parsePositionalArgs(command.args, trimmed)
984
- };
985
- }
986
- function serializeCommandArgs(command, args) {
987
- if (!args) return;
988
- const raw = args.raw?.trim();
989
- if (raw) return raw;
990
- if (!args.values || !command.args) return;
991
- if (command.formatArgs) return command.formatArgs(args.values);
992
- return formatPositionalArgs(command.args, args.values);
993
- }
994
- function buildCommandTextFromArgs(command, args) {
995
- return buildCommandText(command.nativeName ?? command.key, serializeCommandArgs(command, args));
996
- }
997
- function resolveDefaultCommandContext(cfg) {
998
- const resolved = resolveConfiguredModelRef({
999
- cfg: cfg ?? {},
1000
- defaultProvider: DEFAULT_PROVIDER,
1001
- defaultModel: DEFAULT_MODEL
1002
- });
1003
- return {
1004
- provider: resolved.provider ?? DEFAULT_PROVIDER,
1005
- model: resolved.model ?? DEFAULT_MODEL
1006
- };
1007
- }
1008
- function resolveCommandArgChoices(params) {
1009
- const { command, arg, cfg } = params;
1010
- if (!arg.choices) return [];
1011
- const provided = arg.choices;
1012
- return (Array.isArray(provided) ? provided : (() => {
1013
- const defaults = resolveDefaultCommandContext(cfg);
1014
- return provided({
1015
- cfg,
1016
- provider: params.provider ?? defaults.provider,
1017
- model: params.model ?? defaults.model,
1018
- command,
1019
- arg
1020
- });
1021
- })()).map((choice) => typeof choice === "string" ? {
1022
- value: choice,
1023
- label: choice
1024
- } : choice);
1025
- }
1026
- function resolveCommandArgMenu(params) {
1027
- const { command, args, cfg } = params;
1028
- if (!command.args || !command.argsMenu) return null;
1029
- if (command.argsParsing === "none") return null;
1030
- const argSpec = command.argsMenu;
1031
- const argName = argSpec === "auto" ? command.args.find((arg) => resolveCommandArgChoices({
1032
- command,
1033
- arg,
1034
- cfg
1035
- }).length > 0)?.name : argSpec.arg;
1036
- if (!argName) return null;
1037
- if (args?.values && args.values[argName] != null) return null;
1038
- if (args?.raw && !args.values) return null;
1039
- const arg = command.args.find((entry) => entry.name === argName);
1040
- if (!arg) return null;
1041
- const choices = resolveCommandArgChoices({
1042
- command,
1043
- arg,
1044
- cfg
1045
- });
1046
- if (choices.length === 0) return null;
1047
- return {
1048
- arg,
1049
- choices,
1050
- title: argSpec !== "auto" ? argSpec.title : void 0
1051
- };
1052
- }
1053
- function normalizeCommandBody(raw, options) {
1054
- const trimmed = raw.trim();
1055
- if (!trimmed.startsWith("/")) return trimmed;
1056
- const newline = trimmed.indexOf("\n");
1057
- const singleLine = newline === -1 ? trimmed : trimmed.slice(0, newline).trim();
1058
- const colonMatch = singleLine.match(/^\/([^\s:]+)\s*:(.*)$/);
1059
- const normalized = colonMatch ? (() => {
1060
- const [, command, rest] = colonMatch;
1061
- const normalizedRest = rest.trimStart();
1062
- return normalizedRest ? `/${command} ${normalizedRest}` : `/${command}`;
1063
- })() : singleLine;
1064
- const normalizedBotUsername = options?.botUsername?.trim().toLowerCase();
1065
- const mentionMatch = normalizedBotUsername ? normalized.match(/^\/([^\s@]+)@([^\s]+)(.*)$/) : null;
1066
- const commandBody = mentionMatch && mentionMatch[2].toLowerCase() === normalizedBotUsername ? `/${mentionMatch[1]}${mentionMatch[3] ?? ""}` : normalized;
1067
- const lowered = commandBody.toLowerCase();
1068
- const textAliasMap = getTextAliasMap();
1069
- const exact = textAliasMap.get(lowered);
1070
- if (exact) return exact.canonical;
1071
- const tokenMatch = commandBody.match(/^\/([^\s]+)(?:\s+([\s\S]+))?$/);
1072
- if (!tokenMatch) return commandBody;
1073
- const [, token, rest] = tokenMatch;
1074
- const tokenKey = `/${token.toLowerCase()}`;
1075
- const tokenSpec = textAliasMap.get(tokenKey);
1076
- if (!tokenSpec) return commandBody;
1077
- if (rest && !tokenSpec.acceptsArgs) return commandBody;
1078
- const normalizedRest = rest?.trimStart();
1079
- return normalizedRest ? `${tokenSpec.canonical} ${normalizedRest}` : tokenSpec.canonical;
1080
- }
1081
- function getCommandDetection(_cfg) {
1082
- const commands = getChatCommands();
1083
- if (cachedDetection && cachedDetectionCommands === commands) return cachedDetection;
1084
- const exact = /* @__PURE__ */ new Set();
1085
- const patterns = [];
1086
- for (const cmd of commands) for (const alias of cmd.textAliases) {
1087
- const normalized = alias.trim().toLowerCase();
1088
- if (!normalized) continue;
1089
- exact.add(normalized);
1090
- const escaped = escapeRegExp(normalized);
1091
- if (!escaped) continue;
1092
- if (cmd.acceptsArgs) patterns.push(`${escaped}(?:\\s+.+|\\s*:\\s*.*)?`);
1093
- else patterns.push(`${escaped}(?:\\s*:\\s*)?`);
1094
- }
1095
- cachedDetection = {
1096
- exact,
1097
- regex: patterns.length ? new RegExp(`^(?:${patterns.join("|")})$`, "i") : /$^/
1098
- };
1099
- cachedDetectionCommands = commands;
1100
- return cachedDetection;
1101
- }
1102
- function maybeResolveTextAlias(raw, cfg) {
1103
- const trimmed = normalizeCommandBody(raw).trim();
1104
- if (!trimmed.startsWith("/")) return null;
1105
- const detection = getCommandDetection(cfg);
1106
- const normalized = trimmed.toLowerCase();
1107
- if (detection.exact.has(normalized)) return normalized;
1108
- if (!detection.regex.test(normalized)) return null;
1109
- const tokenMatch = normalized.match(/^\/([^\s:]+)(?:\s|$)/);
1110
- if (!tokenMatch) return null;
1111
- const tokenKey = `/${tokenMatch[1]}`;
1112
- return getTextAliasMap().has(tokenKey) ? tokenKey : null;
1113
- }
1114
- function isNativeCommandSurface(surface) {
1115
- if (!surface) return false;
1116
- return getNativeCommandSurfaces().has(surface.toLowerCase());
1117
- }
1118
- function shouldHandleTextCommands(params) {
1119
- if (params.commandSource === "native") return true;
1120
- if (params.cfg.commands?.text !== false) return true;
1121
- return !isNativeCommandSurface(params.surface);
1122
- }
1123
-
1124
- //#endregion
1125
- export { isRestartEnabled as _, listChatCommandsForConfig as a, maybeResolveTextAlias as c, resolveCommandArgChoices as d, resolveCommandArgMenu as f, isNativeCommandsExplicitlyDisabled as g, isCommandFlagEnabled as h, listChatCommands as i, normalizeCommandBody as l, shouldHandleTextCommands as m, findCommandByNativeName as n, listNativeCommandSpecs as o, serializeCommandArgs as p, isCommandEnabled as r, listNativeCommandSpecsForConfig as s, buildCommandTextFromArgs as t, parseCommandArgs as u, resolveNativeCommandsEnabled as v, resolveNativeSkillsEnabled as y };