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
@@ -16354,7 +16354,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
16354
16354
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
16355
16355
  let subagentRegistryRuntimePromise = null;
16356
16356
  function loadSubagentRegistryRuntime() {
16357
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-Cy7dsGqF.js");
16357
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-D7ubAnDZ.js");
16358
16358
  return subagentRegistryRuntimePromise;
16359
16359
  }
16360
16360
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -32344,6 +32344,112 @@ function resolveContextTokensForModel(params) {
32344
32344
  return lookupContextTokens(params.model) ?? params.fallbackContextTokens;
32345
32345
  }
32346
32346
 
32347
+ //#endregion
32348
+ //#region src/agents/agent-tier.ts
32349
+ const PAID_PROVIDERS = ["anthropic", "openai"];
32350
+ function isPaidProvider(modelRef) {
32351
+ const trimmed = modelRef.trim().toLowerCase();
32352
+ for (const provider of PAID_PROVIDERS) if (trimmed.startsWith(provider + "/") || trimmed.startsWith(provider + ":")) return {
32353
+ isPaid: true,
32354
+ provider
32355
+ };
32356
+ return {
32357
+ isPaid: false,
32358
+ provider: ""
32359
+ };
32360
+ }
32361
+ /**
32362
+ * Check if the primary provider's last interaction was a failure
32363
+ * with no successful use after it.
32364
+ */
32365
+ function isPrimaryLastKnownBroken(store, profileIds, now) {
32366
+ for (const id of profileIds) {
32367
+ const stats = store.usageStats?.[id];
32368
+ if (!stats) continue;
32369
+ if (typeof stats.disabledUntil === "number" && stats.disabledUntil > now) return true;
32370
+ if (typeof stats.cooldownUntil === "number" && stats.cooldownUntil > now && (stats.errorCount ?? 0) > 0) return true;
32371
+ const lastFailure = stats.lastFailureAt ?? 0;
32372
+ const lastSuccess = stats.lastUsed ?? 0;
32373
+ if (lastFailure > 0 && lastFailure > lastSuccess) return true;
32374
+ }
32375
+ return false;
32376
+ }
32377
+ /**
32378
+ * Resolve the fallback flag file path.
32379
+ */
32380
+ function resolveFallbackFlagPath() {
32381
+ const dir = process.env.SQUIDCLAW_DIR || path.join(process.env.HOME || "/root", ".squidclaw");
32382
+ return path.join(dir, "fallback-active.json");
32383
+ }
32384
+ /**
32385
+ * Read the fallback flag file. Returns null if not present or invalid.
32386
+ */
32387
+ function readFallbackFlag() {
32388
+ try {
32389
+ const flagPath = resolveFallbackFlagPath();
32390
+ if (!fs.existsSync(flagPath)) return null;
32391
+ const data = JSON.parse(fs.readFileSync(flagPath, "utf8"));
32392
+ if (data && data.active) return data;
32393
+ return null;
32394
+ } catch {
32395
+ return null;
32396
+ }
32397
+ }
32398
+ /**
32399
+ * Write the fallback flag file when primary model fails.
32400
+ */
32401
+ function writeFallbackFlag(data) {
32402
+ try {
32403
+ const flagPath = resolveFallbackFlagPath();
32404
+ fs.writeFileSync(flagPath, JSON.stringify({
32405
+ active: true,
32406
+ ...data,
32407
+ since: Date.now()
32408
+ }));
32409
+ } catch {}
32410
+ }
32411
+ /**
32412
+ * Clear the fallback flag file when primary model recovers.
32413
+ */
32414
+ function clearFallbackFlag() {
32415
+ try {
32416
+ const flagPath = resolveFallbackFlagPath();
32417
+ if (fs.existsSync(flagPath)) fs.unlinkSync(flagPath);
32418
+ } catch {}
32419
+ }
32420
+ /**
32421
+ * Resolve the current agent tier.
32422
+ *
32423
+ * - "super": Paid provider configured and last known working.
32424
+ * - "degraded": Paid provider configured but last attempt failed (no success since).
32425
+ * - "base": Local/free model only.
32426
+ */
32427
+ function resolveAgentTier(params) {
32428
+ const primary = resolveAgentModelPrimaryValue(params.cfg?.agents?.defaults?.model);
32429
+ if (!primary) return "base";
32430
+ const { isPaid, provider } = isPaidProvider(primary);
32431
+ if (!isPaid) return "base";
32432
+ if (!resolveEnvApiKey(provider)) return "base";
32433
+ try {
32434
+ const authStore = ensureAuthProfileStore(params.agentDir ?? resolveSquidClawAgentDir(), { allowKeychainPrompt: false });
32435
+ const profileIds = resolveAuthProfileOrder({
32436
+ cfg: params.cfg,
32437
+ store: authStore,
32438
+ provider
32439
+ });
32440
+ if (profileIds.length > 0 && isPrimaryLastKnownBroken(authStore, profileIds, Date.now())) return "degraded";
32441
+ } catch {}
32442
+ if (readFallbackFlag()) return "degraded";
32443
+ return "super";
32444
+ }
32445
+ function formatAgentTierLabel(tier) {
32446
+ switch (tier) {
32447
+ case "super": return "🟢 Super Agent";
32448
+ case "degraded": return "🟠 Basic Agent (degraded)";
32449
+ case "base": return "🟡 Basic Agent";
32450
+ }
32451
+ }
32452
+
32347
32453
  //#endregion
32348
32454
  //#region src/sessions/model-overrides.ts
32349
32455
  function applyModelOverrideToSessionEntry(params) {
@@ -32417,6 +32523,7 @@ function applyModelOverrideToSessionEntry(params) {
32417
32523
  }
32418
32524
  if (updated) {
32419
32525
  delete entry.fallbackNoticeSelectedModel;
32526
+ clearFallbackFlag();
32420
32527
  delete entry.fallbackNoticeActiveModel;
32421
32528
  delete entry.fallbackNoticeReason;
32422
32529
  entry.updatedAt = Date.now();
@@ -37719,7 +37826,7 @@ let slackSenderRuntimePromise = null;
37719
37826
  let signalSenderRuntimePromise = null;
37720
37827
  let imessageSenderRuntimePromise = null;
37721
37828
  function loadWhatsAppSenderRuntime() {
37722
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-B9uivfkM.js");
37829
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-CETLGt-t.js");
37723
37830
  return whatsappSenderRuntimePromise;
37724
37831
  }
37725
37832
  function loadTelegramSenderRuntime() {
@@ -50593,7 +50700,7 @@ function loadSlashCommandsRuntime() {
50593
50700
  return slashCommandsRuntimePromise;
50594
50701
  }
50595
50702
  function loadSlashDispatchRuntime() {
50596
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-DmFVOi3w.js");
50703
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-DB1QsBRc.js");
50597
50704
  return slashDispatchRuntimePromise;
50598
50705
  }
50599
50706
  function loadSlashSkillCommandsRuntime() {
@@ -51620,41 +51727,6 @@ function resolveTelegramAllowedUpdates() {
51620
51727
  return updates;
51621
51728
  }
51622
51729
 
51623
- //#endregion
51624
- //#region src/agents/agent-tier.ts
51625
- const PAID_PROVIDERS = ["anthropic", "openai"];
51626
- function isPaidProvider(modelRef) {
51627
- const trimmed = modelRef.trim().toLowerCase();
51628
- for (const provider of PAID_PROVIDERS) if (trimmed.startsWith(provider + "/") || trimmed.startsWith(provider + ":")) return {
51629
- isPaid: true,
51630
- provider
51631
- };
51632
- return {
51633
- isPaid: false,
51634
- provider: ""
51635
- };
51636
- }
51637
- /**
51638
- * Resolve the current agent tier.
51639
- *
51640
- * - "super": Paid provider configured and key present.
51641
- * - "base": Local/free model only.
51642
- */
51643
- function resolveAgentTier(params) {
51644
- const primary = resolveAgentModelPrimaryValue(params.cfg?.agents?.defaults?.model);
51645
- if (!primary) return "base";
51646
- const { isPaid, provider } = isPaidProvider(primary);
51647
- if (!isPaid) return "base";
51648
- if (!resolveEnvApiKey(provider)) return "base";
51649
- return "super";
51650
- }
51651
- function formatAgentTierLabel(tier) {
51652
- switch (tier) {
51653
- case "super": return "🟢 Super Agent";
51654
- case "base": return "🟡 Basic Agent";
51655
- }
51656
- }
51657
-
51658
51730
  //#endregion
51659
51731
  //#region src/infra/git-commit.ts
51660
51732
  const formatCommit = (value) => {
@@ -52133,6 +52205,22 @@ function buildStatusMessage(args) {
52133
52205
  activeModelRef: activeModelLabel,
52134
52206
  state: entry
52135
52207
  });
52208
+ if (!fallbackState.active) {
52209
+ const flag = readFallbackFlag();
52210
+ if (flag) {
52211
+ fallbackState = {
52212
+ active: true,
52213
+ reason: flag.reason || "primary unavailable"
52214
+ };
52215
+ if (flag.activeModel) {
52216
+ const parts = flag.activeModel.split("/");
52217
+ if (parts.length === 2) {
52218
+ activeProvider = parts[0];
52219
+ activeModel = parts[1];
52220
+ }
52221
+ }
52222
+ }
52223
+ }
52136
52224
  const effectiveCostAuthMode = fallbackState.active ? activeAuthMode : selectedAuthMode ?? activeAuthMode;
52137
52225
  const showCost = effectiveCostAuthMode === "api-key" || effectiveCostAuthMode === "mixed";
52138
52226
  const costConfig = showCost ? resolveModelCostConfig({
@@ -52189,7 +52277,11 @@ function buildStatusMessage(args) {
52189
52277
  const voiceLine = formatVoiceModeLine(args.config, args.sessionEntry);
52190
52278
  return [
52191
52279
  versionLine,
52192
- args.config ? formatAgentTierLabel(resolveAgentTier({ cfg: args.config })) : null,
52280
+ args.config ? formatAgentTierLabel((() => {
52281
+ const t = resolveAgentTier({ cfg: args.config });
52282
+ if (t === "super" && fallbackState.active) return "degraded";
52283
+ return t;
52284
+ })()) : null,
52193
52285
  args.timeLine,
52194
52286
  modelLine,
52195
52287
  fallbackLine,
@@ -59239,7 +59331,7 @@ function loadWebLoginQr() {
59239
59331
  return webLoginQrPromise;
59240
59332
  }
59241
59333
  function loadWebChannel() {
59242
- webChannelPromise ??= import("./web-BNfDYvlW.js");
59334
+ webChannelPromise ??= import("./web-DWRZAXj9.js");
59243
59335
  return webChannelPromise;
59244
59336
  }
59245
59337
  function loadWhatsAppActions() {
@@ -88329,6 +88421,11 @@ async function runReplyAgent(params) {
88329
88421
  fallbackStateEntry.fallbackNoticeSelectedModel = fallbackTransition.nextState.selectedModel;
88330
88422
  fallbackStateEntry.fallbackNoticeActiveModel = fallbackTransition.nextState.activeModel;
88331
88423
  fallbackStateEntry.fallbackNoticeReason = fallbackTransition.nextState.reason;
88424
+ writeFallbackFlag({
88425
+ selectedModel: fallbackTransition.nextState.selectedModel,
88426
+ activeModel: fallbackTransition.nextState.activeModel,
88427
+ reason: fallbackTransition.nextState.reason
88428
+ });
88332
88429
  fallbackStateEntry.updatedAt = Date.now();
88333
88430
  activeSessionEntry = fallbackStateEntry;
88334
88431
  }
@@ -31,7 +31,7 @@ import "./logging-CcxUDNcI.js";
31
31
  import "./accounts-KzgPbLHP.js";
32
32
  import "./send-z-sMjqvX.js";
33
33
  import "./send-DEs83M9V.js";
34
- import "./subagent-registry-Ctrhw4X-.js";
34
+ import "./subagent-registry-CIgFD2oi.js";
35
35
  import "./paths-Dn_rzeZN.js";
36
36
  import "./chat-envelope-thy05gXR.js";
37
37
  import "./client-G9E5HGM2.js";
@@ -114,9 +114,9 @@ import "./progress-DuhDspl6.js";
114
114
  import { t as ensureSquidClawCliOnPath } from "./path-env-_OXBdJlU.js";
115
115
  import "./note-IoQo8Ol0.js";
116
116
  import "./issue-format-DCcINW-9.js";
117
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Gy_VByyf.js";
117
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D3PnPE1D.js";
118
118
  import { t as assertSupportedRuntime } from "./runtime-guard-BPoq8vFM.js";
119
- import { t as emitCliBanner } from "./banner-DDih2slD.js";
119
+ import { t as emitCliBanner } from "./banner-DMfuBV69.js";
120
120
  import "./doctor-config-flow-C-h3yV4z.js";
121
121
  import { n as ensureConfigReady } from "./config-guard-BHy2f0hU.js";
122
122
  import process$1 from "node:process";
@@ -131,7 +131,7 @@ const routeHealth = {
131
131
  const verbose = getVerboseFlag(argv, { includeDebug: true });
132
132
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
133
133
  if (timeoutMs === null) return false;
134
- const { healthCommand } = await import("./health-DFZKMrW2.js").then((n) => n.i);
134
+ const { healthCommand } = await import("./health-XFKFZ7ZJ.js").then((n) => n.i);
135
135
  await healthCommand({
136
136
  json,
137
137
  timeoutMs,
@@ -151,7 +151,7 @@ const routeStatus = {
151
151
  const verbose = getVerboseFlag(argv, { includeDebug: true });
152
152
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
153
153
  if (timeoutMs === null) return false;
154
- const { statusCommand } = await import("./status-B4eVRJcO.js").then((n) => n.t);
154
+ const { statusCommand } = await import("./status-cU9cJReo.js").then((n) => n.t);
155
155
  await statusCommand({
156
156
  json,
157
157
  deep,
@@ -190,7 +190,7 @@ const routeAgentsList = {
190
190
  run: async (argv) => {
191
191
  const json = hasFlag(argv, "--json");
192
192
  const bindings = hasFlag(argv, "--bindings");
193
- const { agentsListCommand } = await import("./agents-DL8uYsUq.js").then((n) => n.t);
193
+ const { agentsListCommand } = await import("./agents-DXKtU4Il.js").then((n) => n.t);
194
194
  await agentsListCommand({
195
195
  json,
196
196
  bindings
@@ -256,7 +256,7 @@ const routes = [
256
256
  const pathArg = positionals[0];
257
257
  if (!pathArg) return false;
258
258
  const json = hasFlag(argv, "--json");
259
- const { runConfigGet } = await import("./config-cli-CQhQ8Bcc.js");
259
+ const { runConfigGet } = await import("./config-cli-D0A8Awoo.js");
260
260
  await runConfigGet({
261
261
  path: pathArg,
262
262
  json
@@ -271,7 +271,7 @@ const routes = [
271
271
  if (!positionals || positionals.length !== 1) return false;
272
272
  const pathArg = positionals[0];
273
273
  if (!pathArg) return false;
274
- const { runConfigUnset } = await import("./config-cli-CQhQ8Bcc.js");
274
+ const { runConfigUnset } = await import("./config-cli-D0A8Awoo.js");
275
275
  await runConfigUnset({ path: pathArg });
276
276
  return true;
277
277
  }
@@ -285,7 +285,7 @@ const routes = [
285
285
  const local = hasFlag(argv, "--local");
286
286
  const json = hasFlag(argv, "--json");
287
287
  const plain = hasFlag(argv, "--plain");
288
- const { modelsListCommand } = await import("./models-Bb-GYqHr.js").then((n) => n.t);
288
+ const { modelsListCommand } = await import("./models-5VXwJBU2.js").then((n) => n.t);
289
289
  await modelsListCommand({
290
290
  all,
291
291
  local,
@@ -316,7 +316,7 @@ const routes = [
316
316
  const plain = hasFlag(argv, "--plain");
317
317
  const check = hasFlag(argv, "--check");
318
318
  const probe = hasFlag(argv, "--probe");
319
- const { modelsStatusCommand } = await import("./models-Bb-GYqHr.js").then((n) => n.t);
319
+ const { modelsStatusCommand } = await import("./models-5VXwJBU2.js").then((n) => n.t);
320
320
  await modelsStatusCommand({
321
321
  json,
322
322
  plain,
@@ -419,7 +419,7 @@ async function runCli(argv = process$1.argv) {
419
419
  assertSupportedRuntime();
420
420
  if (await tryRouteCli(normalizedArgv)) return;
421
421
  enableConsoleCapture();
422
- const { buildProgram } = await import("./program-BGlgDpHI.js");
422
+ const { buildProgram } = await import("./program-D_xdLzmM.js");
423
423
  const program = buildProgram();
424
424
  installUnhandledRejectionHandler();
425
425
  process$1.on("uncaughtException", (error) => {
@@ -432,10 +432,10 @@ async function runCli(argv = process$1.argv) {
432
432
  const { getProgramContext } = await import("./program-context-DKVuITe2.js").then((n) => n.n);
433
433
  const ctx = getProgramContext(program);
434
434
  if (ctx) {
435
- const { registerCoreCliByName } = await import("./command-registry-DkjNuW8w.js").then((n) => n.t);
435
+ const { registerCoreCliByName } = await import("./command-registry-AHS8_9da.js").then((n) => n.t);
436
436
  await registerCoreCliByName(program, ctx, primary, parseArgv);
437
437
  }
438
- const { registerSubCliByName } = await import("./register.subclis-_uSASnfC.js").then((n) => n.a);
438
+ const { registerSubCliByName } = await import("./register.subclis-CDMFyaKR.js").then((n) => n.a);
439
439
  await registerSubCliByName(program, primary);
440
440
  }
441
441
  if (!shouldSkipPluginCommandRegistration({
@@ -443,7 +443,7 @@ async function runCli(argv = process$1.argv) {
443
443
  primary,
444
444
  hasBuiltinPrimary: primary !== null && program.commands.some((command) => command.name() === primary)
445
445
  })) {
446
- const { registerPluginCliCommands } = await import("./cli-CfgDCCuC.js");
446
+ const { registerPluginCliCommands } = await import("./cli-CAID9zkL.js");
447
447
  const { loadConfig } = await import("./auth-profiles-CX4YYu7Z.js").then((n) => n.F);
448
448
  registerPluginCliCommands(program, loadConfig());
449
449
  }
@@ -1,7 +1,7 @@
1
- import { c as resolveStateDir } from "./paths-CSdAWKDO.js";
2
- import { t as createSubsystemLogger } from "./subsystem-BaLYRf7D.js";
3
- import { $ as parseAgentSessionKey, B as resolveAgentIdFromSessionKey, R as normalizeAgentId, j as DEFAULT_AGENT_ID, p as resolveDefaultAgentWorkspaceDir } from "./workspace-TqfVSQuO.js";
4
- import { y as resolveUserPath } from "./logger-oGKcCLZ5.js";
1
+ import { c as resolveStateDir } from "./paths-DA5srn0U.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-6v7sWnAD.js";
3
+ import { $ as parseAgentSessionKey, B as resolveAgentIdFromSessionKey, R as normalizeAgentId, j as DEFAULT_AGENT_ID, p as resolveDefaultAgentWorkspaceDir } from "./workspace-kVMIaBrV.js";
4
+ import { y as resolveUserPath } from "./logger-CnTSBL7T.js";
5
5
  import path from "node:path";
6
6
 
7
7
  //#region src/config/model-input.ts
@@ -0,0 +1,13 @@
1
+ import "./run-with-concurrency-BFR3ReeF.js";
2
+ import "./paths-DA5srn0U.js";
3
+ import "./subsystem-6v7sWnAD.js";
4
+ import "./workspace-kVMIaBrV.js";
5
+ import "./logger-CnTSBL7T.js";
6
+ import "./model-selection-DuNLFQPR.js";
7
+ import "./github-copilot-token-B5cPlwaz.js";
8
+ import "./legacy-names-aGJJuzM_.js";
9
+ import "./accounts-DwGoZKGm.js";
10
+ import "./session-CnCwDJke.js";
11
+ import { t as loginWeb } from "./login-CeKDrz6_.js";
12
+
13
+ export { loginWeb };
@@ -0,0 +1,22 @@
1
+ import "./run-with-concurrency-BFR3ReeF.js";
2
+ import "./paths-DA5srn0U.js";
3
+ import "./subsystem-6v7sWnAD.js";
4
+ import "./workspace-kVMIaBrV.js";
5
+ import "./logger-CnTSBL7T.js";
6
+ import "./model-selection-DuNLFQPR.js";
7
+ import "./github-copilot-token-B5cPlwaz.js";
8
+ import "./legacy-names-aGJJuzM_.js";
9
+ import "./plugins-DvejjZnJ.js";
10
+ import "./accounts-DwGoZKGm.js";
11
+ import "./image-ops-Dg8iraUV.js";
12
+ import "./path-alias-guards-DORgbZ1w.js";
13
+ import "./fs-safe-BoB4X3GD.js";
14
+ import "./proxy-env-D-fike7s.js";
15
+ import "./fetch-DP-JjB6Z.js";
16
+ import "./fetch-guard-BDy975wP.js";
17
+ import "./ir-CKK03mBV.js";
18
+ import "./render-DW7AcFdD.js";
19
+ import "./tables-BTFiZyRU.js";
20
+ import { n as sendPollWhatsApp, t as sendMessageWhatsApp } from "./outbound-C9svt6RH.js";
21
+
22
+ export { sendMessageWhatsApp, sendPollWhatsApp };
@@ -1,10 +1,10 @@
1
- import { h as normalizeE164, y as resolveUserPath } from "./logger-oGKcCLZ5.js";
2
- import { X as loadConfig } from "./model-selection-CHnojCCK.js";
3
- import { E as kindFromMime } from "./image-ops-BoN1E_WZ.js";
4
- import { t as resolveIMessageAccount } from "./accounts-Bkb-J8V6.js";
5
- import { s as resolveMarkdownTableMode } from "./ir-Dut0zXyS.js";
6
- import { t as convertMarkdownTables } from "./tables-BRYYxYs7.js";
7
- import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-rlW7G5df.js";
1
+ import { h as normalizeE164, y as resolveUserPath } from "./logger-CnTSBL7T.js";
2
+ import { X as loadConfig } from "./model-selection-DuNLFQPR.js";
3
+ import { E as kindFromMime } from "./image-ops-Dg8iraUV.js";
4
+ import { t as resolveIMessageAccount } from "./accounts-DjhBQg_8.js";
5
+ import { s as resolveMarkdownTableMode } from "./ir-CKK03mBV.js";
6
+ import { t as convertMarkdownTables } from "./tables-BTFiZyRU.js";
7
+ import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-DwupUxYF.js";
8
8
  import { spawn } from "node:child_process";
9
9
  import { createInterface } from "node:readline";
10
10
 
@@ -1,26 +1,26 @@
1
- import { c as resolveStateDir, d as resolveRequiredHomeDir, l as expandHomePrefix, o as resolveOAuthDir } from "./paths-CSdAWKDO.js";
2
- import { c as danger, t as createSubsystemLogger, u as logVerbose } from "./subsystem-BaLYRf7D.js";
3
- import { G as normalizeAccountId, W as DEFAULT_ACCOUNT_ID } from "./workspace-TqfVSQuO.js";
4
- import { a as CONFIG_DIR, b as safeParseJson } from "./logger-oGKcCLZ5.js";
5
- import { Hn as resolveTelegramPreviewStreamMode, Q as readConfigFileSnapshotForWrite, X as loadConfig, Zn as isTruthyEnvValue, ar as withFileLock$1, et as writeConfigFile } from "./model-selection-CHnojCCK.js";
6
- import { l as resolveTelegramAccount, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-AqsVZZk3.js";
1
+ import { c as resolveStateDir, d as resolveRequiredHomeDir, l as expandHomePrefix, o as resolveOAuthDir } from "./paths-DA5srn0U.js";
2
+ import { c as danger, t as createSubsystemLogger, u as logVerbose } from "./subsystem-6v7sWnAD.js";
3
+ import { G as normalizeAccountId, W as DEFAULT_ACCOUNT_ID } from "./workspace-kVMIaBrV.js";
4
+ import { a as CONFIG_DIR, b as safeParseJson } from "./logger-CnTSBL7T.js";
5
+ import { Hn as resolveTelegramPreviewStreamMode, Q as readConfigFileSnapshotForWrite, X as loadConfig, Zn as isTruthyEnvValue, ar as withFileLock$1, et as writeConfigFile } from "./model-selection-DuNLFQPR.js";
6
+ import { l as resolveTelegramAccount, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-DvejjZnJ.js";
7
7
  import { n as normalizeTelegramLookupTarget, r as parseTelegramTarget, t as normalizeTelegramChatId } from "./targets-BiE9e9-P.js";
8
- import { D as normalizeMimeType, E as kindFromMime, S as getFileExtension, T as isGifMedia } from "./image-ops-BoN1E_WZ.js";
9
- import { t as redactSensitiveText } from "./redact-NmPEVjIo.js";
10
- import { i as formatUncaughtError, n as extractErrorCode, o as readErrorName, r as formatErrorMessage, t as collectErrorGraphCandidates } from "./errors-DfgAh2Ml.js";
11
- import { t as hasProxyEnvConfigured } from "./proxy-env-DXXfs2WL.js";
8
+ import { D as normalizeMimeType, E as kindFromMime, S as getFileExtension, T as isGifMedia } from "./image-ops-Dg8iraUV.js";
9
+ import { t as redactSensitiveText } from "./redact-DvzicBMu.js";
10
+ import { i as formatUncaughtError, n as extractErrorCode, o as readErrorName, r as formatErrorMessage, t as collectErrorGraphCandidates } from "./errors-kkRuS2Cs.js";
11
+ import { t as hasProxyEnvConfigured } from "./proxy-env-D-fike7s.js";
12
12
  import { r as writeJsonAtomic } from "./json-files-D7-rxoSr.js";
13
- import { t as makeProxyFetch } from "./proxy-fetch-C2v-Utgg.js";
14
- import { a as loadWebMedia, n as markdownToIR, s as resolveMarkdownTableMode, t as chunkMarkdownIR } from "./ir-Dut0zXyS.js";
13
+ import { t as makeProxyFetch } from "./proxy-fetch-lH6RsRTE.js";
14
+ import { a as loadWebMedia, n as markdownToIR, s as resolveMarkdownTableMode, t as chunkMarkdownIR } from "./ir-CKK03mBV.js";
15
15
  import { t as renderMarkdownWithMarkers } from "./render-DW7AcFdD.js";
16
16
  import { t as resolveFetch } from "./fetch-tZXOZ9FV.js";
17
- import { i as createTelegramRetryRunner, n as recordChannelActivity } from "./channel-activity-CxJbx4sD.js";
17
+ import { i as createTelegramRetryRunner, n as recordChannelActivity } from "./channel-activity-CPpt4XaL.js";
18
18
  import { t as buildOutboundMediaLoadOptions } from "./load-options-BFUunM8u.js";
19
19
  import { n as normalizePollInput } from "./polls-CYTwXmA1.js";
20
20
  import fs from "node:fs/promises";
21
21
  import os from "node:os";
22
22
  import path from "node:path";
23
- import fs$1, { readFileSync } from "node:fs";
23
+ import syncFs, { readFileSync } from "node:fs";
24
24
  import JSON5 from "json5";
25
25
  import process$1 from "node:process";
26
26
  import crypto, { randomBytes } from "node:crypto";
@@ -81,7 +81,7 @@ function getPairingAdapter(channelId) {
81
81
  //#region src/plugin-sdk/json-store.ts
82
82
  async function readJsonFileWithFallback(filePath, fallback) {
83
83
  try {
84
- const parsed = safeParseJson(await fs$1.promises.readFile(filePath, "utf-8"));
84
+ const parsed = safeParseJson(await syncFs.promises.readFile(filePath, "utf-8"));
85
85
  if (parsed == null) return {
86
86
  value: fallback,
87
87
  exists: true
@@ -168,7 +168,7 @@ async function readPairingRequests(filePath) {
168
168
  }
169
169
  async function ensureJsonFile(filePath, fallback) {
170
170
  try {
171
- await fs$1.promises.access(filePath);
171
+ await syncFs.promises.access(filePath);
172
172
  } catch {
173
173
  await writeJsonFile(filePath, fallback);
174
174
  }
@@ -324,7 +324,7 @@ function resolveAllowFromReadCacheOrMissing(filePath, stat) {
324
324
  async function readAllowFromStateForPathWithExists(channel, filePath) {
325
325
  let stat = null;
326
326
  try {
327
- stat = await fs$1.promises.stat(filePath);
327
+ stat = await syncFs.promises.stat(filePath);
328
328
  } catch (err) {
329
329
  if (err.code !== "ENOENT") throw err;
330
330
  }
@@ -367,7 +367,7 @@ async function writeAllowFromState(filePath, allowFrom) {
367
367
  });
368
368
  let stat = null;
369
369
  try {
370
- stat = await fs$1.promises.stat(filePath);
370
+ stat = await syncFs.promises.stat(filePath);
371
371
  } catch {}
372
372
  setAllowFromReadCache(filePath, {
373
373
  exists: true,
@@ -974,7 +974,7 @@ function resolveCronStorePath(storePath) {
974
974
  }
975
975
  async function loadCronStore(storePath) {
976
976
  try {
977
- const raw = await fs$1.promises.readFile(storePath, "utf-8");
977
+ const raw = await syncFs.promises.readFile(storePath, "utf-8");
978
978
  let parsed;
979
979
  try {
980
980
  parsed = JSON5.parse(raw);
@@ -1000,13 +1000,13 @@ async function loadCronStore(storePath) {
1000
1000
  }
1001
1001
  }
1002
1002
  async function saveCronStore(storePath, store) {
1003
- await fs$1.promises.mkdir(path.dirname(storePath), { recursive: true });
1003
+ await syncFs.promises.mkdir(path.dirname(storePath), { recursive: true });
1004
1004
  const json = JSON.stringify(store, null, 2);
1005
1005
  const cached = serializedStoreCache.get(storePath);
1006
1006
  if (cached === json) return;
1007
1007
  let previous = cached ?? null;
1008
1008
  if (previous === null) try {
1009
- previous = await fs$1.promises.readFile(storePath, "utf-8");
1009
+ previous = await syncFs.promises.readFile(storePath, "utf-8");
1010
1010
  } catch (err) {
1011
1011
  if (err.code !== "ENOENT") throw err;
1012
1012
  }
@@ -1015,9 +1015,9 @@ async function saveCronStore(storePath, store) {
1015
1015
  return;
1016
1016
  }
1017
1017
  const tmp = `${storePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
1018
- await fs$1.promises.writeFile(tmp, json, "utf-8");
1018
+ await syncFs.promises.writeFile(tmp, json, "utf-8");
1019
1019
  if (previous !== null) try {
1020
- await fs$1.promises.copyFile(storePath, `${storePath}.bak`);
1020
+ await syncFs.promises.copyFile(storePath, `${storePath}.bak`);
1021
1021
  } catch {}
1022
1022
  await renameWithRetry(tmp, storePath);
1023
1023
  serializedStoreCache.set(storePath, json);
@@ -1026,7 +1026,7 @@ const RENAME_MAX_RETRIES = 3;
1026
1026
  const RENAME_BASE_DELAY_MS = 50;
1027
1027
  async function renameWithRetry(src, dest) {
1028
1028
  for (let attempt = 0; attempt <= RENAME_MAX_RETRIES; attempt++) try {
1029
- await fs$1.promises.rename(src, dest);
1029
+ await syncFs.promises.rename(src, dest);
1030
1030
  return;
1031
1031
  } catch (err) {
1032
1032
  const code = err.code;
@@ -1035,8 +1035,8 @@ async function renameWithRetry(src, dest) {
1035
1035
  continue;
1036
1036
  }
1037
1037
  if (code === "EPERM" || code === "EEXIST") {
1038
- await fs$1.promises.copyFile(src, dest);
1039
- await fs$1.promises.unlink(src).catch(() => {});
1038
+ await syncFs.promises.copyFile(src, dest);
1039
+ await syncFs.promises.unlink(src).catch(() => {});
1040
1040
  return;
1041
1041
  }
1042
1042
  throw err;
@@ -1,15 +1,15 @@
1
- import { w as resolvePreferredSquidClawTmpDir } from "./subsystem-BaLYRf7D.js";
2
- import { G as normalizeAccountId, W as DEFAULT_ACCOUNT_ID } from "./workspace-TqfVSQuO.js";
3
- import { S as retryAsync, X as loadConfig, x as resolveRetryConfig } from "./model-selection-CHnojCCK.js";
4
- import { b as resolveDiscordAccount, x as normalizeDiscordToken } from "./plugins-AqsVZZk3.js";
1
+ import { w as resolvePreferredSquidClawTmpDir } from "./subsystem-6v7sWnAD.js";
2
+ import { G as normalizeAccountId, W as DEFAULT_ACCOUNT_ID } from "./workspace-kVMIaBrV.js";
3
+ import { S as retryAsync, X as loadConfig, x as resolveRetryConfig } from "./model-selection-DuNLFQPR.js";
4
+ import { b as resolveDiscordAccount, x as normalizeDiscordToken } from "./plugins-DvejjZnJ.js";
5
5
  import { i as requireTargetKind, r as parseMentionPrefixOrAtUserTarget, t as buildMessagingTarget } from "./targets-Bhj5bO-0.js";
6
- import { k as maxBytesForKind, x as extensionForMime } from "./image-ops-BoN1E_WZ.js";
7
- import { a as loadWebMedia, d as chunkMarkdownTextWithMode, m as resolveChunkMode, o as loadWebMediaRaw, s as resolveMarkdownTableMode } from "./ir-Dut0zXyS.js";
6
+ import { k as maxBytesForKind, x as extensionForMime } from "./image-ops-Dg8iraUV.js";
7
+ import { a as loadWebMedia, d as chunkMarkdownTextWithMode, m as resolveChunkMode, o as loadWebMediaRaw, s as resolveMarkdownTableMode } from "./ir-CKK03mBV.js";
8
8
  import { t as resolveFetch } from "./fetch-tZXOZ9FV.js";
9
- import { n as recordChannelActivity, r as createDiscordRetryRunner } from "./channel-activity-CxJbx4sD.js";
9
+ import { n as recordChannelActivity, r as createDiscordRetryRunner } from "./channel-activity-CPpt4XaL.js";
10
10
  import { t as buildOutboundMediaLoadOptions } from "./load-options-BFUunM8u.js";
11
11
  import { n as normalizePollInput, t as normalizePollDurationHours } from "./polls-CYTwXmA1.js";
12
- import { t as convertMarkdownTables } from "./tables-BRYYxYs7.js";
12
+ import { t as convertMarkdownTables } from "./tables-BTFiZyRU.js";
13
13
  import fs from "node:fs/promises";
14
14
  import path from "node:path";
15
15
  import { promisify } from "node:util";
@@ -1,10 +1,10 @@
1
- import { u as logVerbose } from "./subsystem-BaLYRf7D.js";
2
- import { X as loadConfig } from "./model-selection-CHnojCCK.js";
3
- import { i as isSilentReplyText } from "./tokens-D2XhLqIz.js";
4
- import { g as resolveSlackBotToken, p as resolveSlackAccount } from "./plugins-AqsVZZk3.js";
1
+ import { u as logVerbose } from "./subsystem-6v7sWnAD.js";
2
+ import { X as loadConfig } from "./model-selection-DuNLFQPR.js";
3
+ import { i as isSilentReplyText } from "./tokens-DfbMVF9y.js";
4
+ import { g as resolveSlackBotToken, p as resolveSlackAccount } from "./plugins-DvejjZnJ.js";
5
5
  import { i as requireTargetKind, n as ensureTargetId, r as parseMentionPrefixOrAtUserTarget, t as buildMessagingTarget } from "./targets-Bhj5bO-0.js";
6
- import { r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-D16tjNsZ.js";
7
- import { a as loadWebMedia, d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, m as resolveChunkMode, n as markdownToIR, s as resolveMarkdownTableMode, t as chunkMarkdownIR } from "./ir-Dut0zXyS.js";
6
+ import { r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-BDy975wP.js";
7
+ import { a as loadWebMedia, d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, m as resolveChunkMode, n as markdownToIR, s as resolveMarkdownTableMode, t as chunkMarkdownIR } from "./ir-CKK03mBV.js";
8
8
  import { t as renderMarkdownWithMarkers } from "./render-DW7AcFdD.js";
9
9
  import { WebClient } from "@slack/web-api";
10
10
 
@@ -1,11 +1,11 @@
1
- import { X as loadConfig } from "./model-selection-CHnojCCK.js";
1
+ import { X as loadConfig } from "./model-selection-DuNLFQPR.js";
2
2
  import { n as generateSecureUuid } from "./secure-random-CXrBi7Jq.js";
3
- import { n as resolveSignalAccount } from "./accounts-s5e9zidf.js";
4
- import { E as kindFromMime } from "./image-ops-BoN1E_WZ.js";
3
+ import { n as resolveSignalAccount } from "./accounts-C7pGQPcS.js";
4
+ import { E as kindFromMime } from "./image-ops-Dg8iraUV.js";
5
5
  import { n as fetchWithTimeout } from "./fetch-timeout-Wgx3OXYj.js";
6
- import { n as markdownToIR, s as resolveMarkdownTableMode, t as chunkMarkdownIR } from "./ir-Dut0zXyS.js";
6
+ import { n as markdownToIR, s as resolveMarkdownTableMode, t as chunkMarkdownIR } from "./ir-CKK03mBV.js";
7
7
  import { t as resolveFetch } from "./fetch-tZXOZ9FV.js";
8
- import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-rlW7G5df.js";
8
+ import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-DwupUxYF.js";
9
9
 
10
10
  //#region src/signal/format.ts
11
11
  function normalizeUrlForComparison(url) {
@@ -31,7 +31,7 @@ import "./logging-CcxUDNcI.js";
31
31
  import "./accounts-KzgPbLHP.js";
32
32
  import "./send-z-sMjqvX.js";
33
33
  import "./send-DEs83M9V.js";
34
- import { Et as resolveOutboundTarget, L as createOutboundSendDeps, N as agentCommandFromIngress, Un as enqueueSystemEvent, gn as buildOutboundSessionContext, qn as requestHeartbeatNow } from "./subagent-registry-Ctrhw4X-.js";
34
+ import { Et as resolveOutboundTarget, L as createOutboundSendDeps, N as agentCommandFromIngress, Un as enqueueSystemEvent, gn as buildOutboundSessionContext, qn as requestHeartbeatNow } from "./subagent-registry-CIgFD2oi.js";
35
35
  import "./paths-Dn_rzeZN.js";
36
36
  import "./chat-envelope-thy05gXR.js";
37
37
  import "./client-G9E5HGM2.js";
@@ -111,7 +111,7 @@ import "./links-Dye6HsRG.js";
111
111
  import "./cli-utils-BKqG4ZT-.js";
112
112
  import "./help-format-CpR5cEGe.js";
113
113
  import "./progress-DuhDspl6.js";
114
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-Ga8xvhkh.js";
114
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-BbenjEX4.js";
115
115
  import { randomUUID } from "node:crypto";
116
116
 
117
117
  //#region src/gateway/server-node-events.ts