squidclaw 3.0.20 → 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 (325) 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-BOS_wASV.js → agents-DXKtU4Il.js} +4 -4
  6. package/dist/{agents.config-ChUZBohP.js → agents.config-BM-2SLCh.js} +1 -1
  7. package/dist/{agents.config-Dfsl4jNF.js → agents.config-eMSUW-iw.js} +1 -1
  8. package/dist/{api-key-rotation-TRwuCWbu.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-transcription-runner-B3u2x_ja.js → audio-transcription-runner-Cv0Q47cM.js} +12 -12
  11. package/dist/{audit-membership-runtime-w23FnNAN.js → audit-membership-runtime-DyLj-uhz.js} +4 -4
  12. package/dist/{auth-choice-B_pvWO2S.js → auth-choice-CXepQc7c.js} +1 -1
  13. package/dist/{auth-choice-kUm2JAky.js → auth-choice-D2JrMJn-.js} +1 -1
  14. package/dist/{banner-4LItBqCV.js → banner-DMfuBV69.js} +1 -1
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +51 -51
  17. package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
  18. package/dist/bundled/command-logger/handler.js +2 -2
  19. package/dist/bundled/session-memory/handler.js +687 -51
  20. package/dist/canvas-host/a2ui/a2ui.bundle.js +1 -17815
  21. package/dist/{channel-activity-CxJbx4sD.js → channel-activity-CPpt4XaL.js} +3 -3
  22. package/dist/{channel-options-DA-4IR6h.js → channel-options-CQ-gER0J.js} +1 -1
  23. package/dist/{channel-options-DQeQl3Rk.js → channel-options-SijIkAlT.js} +1 -1
  24. package/dist/{channel-web--dAjVoio.js → channel-web-7t1a2N13.js} +1 -1
  25. package/dist/{channel-web-DJ21CAFF.js → channel-web-LLzBxZrT.js} +1 -1
  26. package/dist/{channels-cli-QvrLGt6C.js → channels-cli-D4xUEYYC.js} +6 -6
  27. package/dist/{channels-cli-DviJtKuS.js → channels-cli-DYaFNMme.js} +6 -6
  28. package/dist/{chrome-Dxm25ptH.js → chrome-OgCChbC_.js} +26 -26
  29. package/dist/{cli-aCubMdJg.js → cli-CAID9zkL.js} +1 -1
  30. package/dist/{cli-q7seQ2Xx.js → cli-Dlc9IFWZ.js} +1 -1
  31. package/dist/{command-registry-C_YMaVul.js → command-registry-AHS8_9da.js} +9 -9
  32. package/dist/{commands-registry-B44COZFz.js → commands-registry-BJjv8_oR.js} +4 -4
  33. package/dist/{completion-cli-CyKEJDPO.js → completion-cli-B8xjpHDs.js} +1 -1
  34. package/dist/{completion-cli-w4XQjhDI.js → completion-cli-BR1r9_h4.js} +2 -2
  35. package/dist/{config-cli-BhQXEuBv.js → config-cli-D0A8Awoo.js} +1 -1
  36. package/dist/{config-cli-BfhjWCvB.js → config-cli-D4Rxoozg.js} +1 -1
  37. package/dist/{configure-Dsg_0ymU.js → configure-DOiI8_8c.js} +3 -3
  38. package/dist/{configure-0xkYrQ0e.js → configure-XmOqwwy9.js} +3 -3
  39. package/dist/control-ui/assets/{index-cM5P_3w7.js → index-BqxuPQOl.js} +2 -2
  40. package/dist/control-ui/assets/{index-cM5P_3w7.js.map → index-BqxuPQOl.js.map} +1 -1
  41. package/dist/control-ui/index.html +1 -1
  42. package/dist/{deliver-BcnsjbAB.js → deliver-DMTUTpTM.js} +21 -21
  43. package/dist/deliver-runtime-B80olQwJ.js +36 -0
  44. package/dist/deps-send-discord.runtime-GIuvX7Xw.js +26 -0
  45. package/dist/deps-send-imessage.runtime-B3TC7G80.js +25 -0
  46. package/dist/deps-send-signal.runtime-CuVJyw7n.js +24 -0
  47. package/dist/deps-send-slack.runtime-cbfFoLZ4.js +22 -0
  48. package/dist/deps-send-telegram.runtime-CRyP-xDQ.js +27 -0
  49. package/dist/deps-send-whatsapp.runtime-4aOUBP2J.js +60 -0
  50. package/dist/{deps-send-whatsapp.runtime-BNAJe11S.js → deps-send-whatsapp.runtime-CETLGt-t.js} +3 -3
  51. package/dist/{deps-send-whatsapp.runtime-qBpqM2k9.js → deps-send-whatsapp.runtime-CrxkfP31.js} +2 -2
  52. package/dist/{deps-send-whatsapp.runtime-BGDIgEzh.js → deps-send-whatsapp.runtime-__ogpmJj.js} +3 -3
  53. package/dist/{diagnostic-C2lklhkn.js → diagnostic-CnVwZNbm.js} +2 -2
  54. package/dist/{doctor-completion-BlkbgU5h.js → doctor-completion-CZoEdMS-.js} +1 -1
  55. package/dist/{doctor-completion-BCQdm02b.js → doctor-completion-DhLEFUhN.js} +1 -1
  56. package/dist/entry.js +2 -2
  57. package/dist/{plugin-sdk/errors-CgRPdp3o.js → errors-kkRuS2Cs.js} +1 -1
  58. package/dist/extensionAPI.js +1 -1
  59. package/dist/{fetch-b8tSR7_e.js → fetch-DP-JjB6Z.js} +5 -5
  60. package/dist/{fetch-guard-D16tjNsZ.js → fetch-guard-BDy975wP.js} +2 -2
  61. package/dist/{frontmatter-CjKtFduT.js → frontmatter-Cq1TcIQ2.js} +3 -3
  62. package/dist/{fs-safe-CwHbZdFH.js → fs-safe-BoB4X3GD.js} +4 -4
  63. package/dist/{gateway-cli-tFwyE4a3.js → gateway-cli-BJHBChfI.js} +8 -8
  64. package/dist/{gateway-cli-uWj08vdf.js → gateway-cli-BpHskeDd.js} +8 -8
  65. package/dist/{github-copilot-token-Cw3tAXM9.js → github-copilot-token-B5cPlwaz.js} +7 -7
  66. package/dist/{health-BwC4Qe5W.js → health-TmpUGSqu.js} +1 -1
  67. package/dist/{health-DS3reqch.js → health-XFKFZ7ZJ.js} +1 -1
  68. package/dist/{hooks-cli-oei5kRQM.js → hooks-cli-CXsZK8H9.js} +2 -2
  69. package/dist/{hooks-cli-tp5LchRL.js → hooks-cli-DsDV-Pxz.js} +2 -2
  70. package/dist/{image-C-8Kd2Mh.js → image-kKMG59st.js} +6 -6
  71. package/dist/{image-ops-BoN1E_WZ.js → image-ops-Dg8iraUV.js} +2 -2
  72. package/dist/image-runtime-BqIv7p_K.js +29 -0
  73. package/dist/index.js +6 -6
  74. package/dist/{ir-Dut0zXyS.js → ir-CKK03mBV.js} +8 -8
  75. package/dist/{legacy-names-B0wgIP0Q.js → legacy-names-aGJJuzM_.js} +1 -1
  76. package/dist/llm-slug-generator.js +51 -51
  77. package/dist/{logger-oGKcCLZ5.js → logger-CnTSBL7T.js} +7 -7
  78. package/dist/{login-DJ357UQV.js → login-CeKDrz6_.js} +5 -5
  79. package/dist/{login-qr-C0fDBnpM.js → login-qr-KbOpR0GQ.js} +10 -10
  80. package/dist/{manager-BPGhs30n.js → manager-DINhLnMi.js} +13 -13
  81. package/dist/manager-runtime-D6ckUNSs.js +18 -0
  82. package/dist/{model-selection-CHnojCCK.js → model-selection-DuNLFQPR.js} +43 -43
  83. package/dist/{models-D9X4EUlY.js → models-5VXwJBU2.js} +2 -2
  84. package/dist/{models-cli-LGp-Tok9.js → models-cli-Br56IHfy.js} +3 -3
  85. package/dist/{models-cli-C1PLBYF7.js → models-cli-CrR1RN3j.js} +2 -2
  86. package/dist/{npm-resolution-BUvQm-e-.js → npm-resolution-CKtyq4FH.js} +1 -1
  87. package/dist/{npm-resolution-Dtkh26DG.js → npm-resolution-CPk7dS7F.js} +1 -1
  88. package/dist/{onboard-DDD6GX8E.js → onboard-DUnBamC0.js} +2 -2
  89. package/dist/{onboard-channels-9My16AOy.js → onboard-channels-D45grihx.js} +1 -1
  90. package/dist/{onboard-channels-Bm_NXV3z.js → onboard-channels-_kVo3Apf.js} +1 -1
  91. package/dist/{onboard-B0padonr.js → onboard-lFwpCpC3.js} +2 -2
  92. package/dist/{onboarding-dES4q9RV.js → onboarding-CyCSQ__q.js} +3 -3
  93. package/dist/{onboarding-o-id7p0-.js → onboarding-EEd_g8Zg.js} +3 -3
  94. package/dist/{onboarding.finalize-dpgNgUt5.js → onboarding.finalize-CbMq7C4K.js} +5 -5
  95. package/dist/{onboarding.finalize-BFtOLT7n.js → onboarding.finalize-Cs1ukjFN.js} +6 -6
  96. package/dist/{outbound-qTioiTJg.js → outbound-C9svt6RH.js} +6 -6
  97. package/dist/{outbound-attachment-rlW7G5df.js → outbound-attachment-DwupUxYF.js} +2 -2
  98. package/dist/{path-alias-guards-Cpsiv2KL.js → path-alias-guards-DORgbZ1w.js} +1 -1
  99. package/dist/{paths-CSdAWKDO.js → paths-DA5srn0U.js} +5 -5
  100. package/dist/{paths-CXClY8zC.js → paths-DSd911Oe.js} +4 -4
  101. package/dist/{pi-embedded-BpHQIzjg.js → pi-embedded-BN8fghaF.js} +137 -4
  102. package/dist/{pi-embedded-B_4NAHxA.js → pi-embedded-BiC4tIJ8.js} +300 -167
  103. package/dist/{pi-embedded-helpers-DQ7IaeOi.js → pi-embedded-helpers-Di58J7Eh.js} +52 -52
  104. package/dist/{pi-model-discovery-o-WX5w2t.js → pi-model-discovery-V-InbjOM.js} +7 -7
  105. package/dist/pi-model-discovery-runtime--t6tAlar.js +11 -0
  106. package/dist/{pi-tools.before-tool-call.runtime-B_LUttg1.js → pi-tools.before-tool-call.runtime-Bpk4qTgV.js} +9 -9
  107. package/dist/{plugin-registry-CCeUDvxY.js → plugin-registry-CXm125Uz.js} +1 -1
  108. package/dist/{plugin-registry-CCkpP8-I.js → plugin-registry-D3PnPE1D.js} +1 -1
  109. package/dist/plugin-sdk/{accounts-0kF5cxkn.js → accounts-C5PAuCTj.js} +2 -2
  110. package/dist/plugin-sdk/{accounts-u0-JAHzj.js → accounts-DC5cbH9r.js} +2 -2
  111. package/dist/plugin-sdk/{accounts-xZOA23tQ.js → accounts-DncG0Hx9.js} +3 -3
  112. package/dist/plugin-sdk/{active-listener-C5xPUSTb.js → active-listener-Bd3HH2km.js} +2 -2
  113. package/dist/plugin-sdk/agents/agent-tier.d.ts +33 -0
  114. package/dist/plugin-sdk/{api-key-rotation-DyjMI2n3.js → api-key-rotation-BAZ0GD26.js} +2 -2
  115. package/dist/plugin-sdk/{audio-preflight-C0q7lu6y.js → audio-preflight-tpVm-t9O.js} +26 -26
  116. package/dist/plugin-sdk/{audio-transcription-runner-Ced47O1H.js → audio-transcription-runner-DSScb434.js} +11 -11
  117. package/dist/plugin-sdk/{audit-membership-runtime-Xl20kCBe.js → audit-membership-runtime-DHQDvH4u.js} +2 -2
  118. package/dist/plugin-sdk/{channel-activity-CNffKOEQ.js → channel-activity-cYEaofTH.js} +3 -3
  119. package/dist/plugin-sdk/{channel-web-BQE2gJ5U.js → channel-web-CbeCrQ4C.js} +18 -18
  120. package/dist/plugin-sdk/{channel-web-BtNgAS1G.js → channel-web-CqiSEc52.js} +1 -1
  121. package/dist/plugin-sdk/{chrome-DJQWo149.js → chrome-DB2h0uN0.js} +6 -6
  122. package/dist/plugin-sdk/{commands-registry-_kBPE22q.js → commands-registry-DGZ1oFXJ.js} +4 -4
  123. package/dist/plugin-sdk/{common-J8vIST9Q.js → common-D5lLWoCW.js} +2 -2
  124. package/dist/plugin-sdk/compat.js +2 -2
  125. package/dist/plugin-sdk/{config-CnZ1TlEw.js → config-Bt-c7PWF.js} +7 -7
  126. package/dist/plugin-sdk/{deliver-Xh6voz9H.js → deliver-MvrkIeKJ.js} +10 -10
  127. package/dist/plugin-sdk/deliver-runtime-i50kjcNM.js +32 -0
  128. package/dist/plugin-sdk/deps-send-discord.runtime-hOYq9ov0.js +23 -0
  129. package/dist/plugin-sdk/deps-send-imessage.runtime-D5n9DXyL.js +22 -0
  130. package/dist/plugin-sdk/deps-send-signal.runtime-CwEaRyJU.js +21 -0
  131. package/dist/plugin-sdk/deps-send-slack.runtime-DOZeLIaC.js +19 -0
  132. package/dist/plugin-sdk/deps-send-telegram.runtime-BW1hSPKh.js +24 -0
  133. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-V0Jfat5S.js → deps-send-whatsapp.runtime-DvxhnHR_.js} +3 -3
  134. package/dist/plugin-sdk/deps-send-whatsapp.runtime-JKmTtCFM.js +57 -0
  135. package/dist/plugin-sdk/{diagnostic-DKsyROPi.js → diagnostic-B6F3BtCX.js} +2 -2
  136. package/dist/{errors-DfgAh2Ml.js → plugin-sdk/errors-9oVz7reJ.js} +1 -1
  137. package/dist/plugin-sdk/{fetch-guard-BBAT8G-1.js → fetch-guard-cfPCfkrw.js} +2 -2
  138. package/dist/plugin-sdk/{fs-safe-DqCO1D4C.js → fs-safe-DFbwq9CS.js} +3 -3
  139. package/dist/plugin-sdk/{image-4ay2cw7G.js → image-FK5xhY5u.js} +6 -6
  140. package/dist/plugin-sdk/{image-ops-G8KoEfY8.js → image-ops-BSYgrL7E.js} +2 -2
  141. package/dist/plugin-sdk/image-runtime-B95EPFpg.js +25 -0
  142. package/dist/plugin-sdk/index.js +2 -2
  143. package/dist/plugin-sdk/{ir-DXj1KGnL.js → ir-CWmryq5f.js} +7 -7
  144. package/dist/plugin-sdk/{local-roots-ovKHgVSP.js → local-roots-U25IdeDH.js} +4 -4
  145. package/dist/plugin-sdk/{logger-DIb2cGHp.js → logger-Bg4vIUJn.js} +2 -2
  146. package/dist/plugin-sdk/{login-Cgtm70by.js → login-8qzl2H7G.js} +4 -4
  147. package/dist/plugin-sdk/{login-qr-BrixqhMx.js → login-qr-kalCTJEw.js} +5 -5
  148. package/dist/plugin-sdk/{manager-PEQ_cPYF.js → manager-ijYHktIt.js} +8 -8
  149. package/dist/plugin-sdk/manager-runtime--JrLQE03.js +15 -0
  150. package/dist/plugin-sdk/mattermost.js +3 -3
  151. package/dist/plugin-sdk/nextcloud-talk.js +2 -2
  152. package/dist/plugin-sdk/{outbound-BK75h9CQ.js → outbound-BIVf0aPq.js} +5 -5
  153. package/dist/plugin-sdk/{outbound-attachment-BI1QngTS.js → outbound-attachment-F5tzeNUD.js} +2 -2
  154. package/dist/plugin-sdk/{path-alias-guards-TnxupPQC.js → path-alias-guards-DA0MhfkG.js} +1 -1
  155. package/dist/plugin-sdk/{paths-B7_75Pdr.js → paths-CP67O8eN.js} +1 -1
  156. package/dist/plugin-sdk/{pi-embedded-helpers-BioULNev.js → pi-embedded-helpers-CxMnPQ37.js} +16 -16
  157. package/dist/plugin-sdk/{pi-model-discovery-BMmAbnil.js → pi-model-discovery-8OL77kCh.js} +1 -1
  158. package/dist/plugin-sdk/pi-model-discovery-runtime-DGRFpUfd.js +8 -0
  159. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-rdRqZ9lk.js → pi-tools.before-tool-call.runtime-B7FW36KX.js} +4 -4
  160. package/dist/plugin-sdk/{plugins-BqKpJkqt.js → plugins-D3mrhffi.js} +4 -4
  161. package/dist/plugin-sdk/{proxy-env-C4s12rr8.js → proxy-env-CUUXO6rv.js} +1 -1
  162. package/dist/plugin-sdk/{proxy-fetch-Dt5BedH8.js → proxy-fetch-Cf3IUSDw.js} +1 -1
  163. package/dist/plugin-sdk/{pw-ai-Cb0ZDSq4.js → pw-ai-dPmKdw_w.js} +9 -9
  164. package/dist/plugin-sdk/{qmd-manager-Bei6TaFq.js → qmd-manager-Ov9ElEfG.js} +7 -7
  165. package/dist/plugin-sdk/{query-expansion-POz2za8a.js → query-expansion-CzjwW461.js} +4 -4
  166. package/dist/plugin-sdk/{redact-9WsNyb7S.js → redact-DfACyt0X.js} +1 -1
  167. package/dist/plugin-sdk/{reply-DJYA4ZNu.js → reply-BczXGzC_.js} +137 -4
  168. package/dist/plugin-sdk/{reply-DeKKmUDh.js → reply-Dfjh1YtV.js} +206 -73
  169. package/dist/plugin-sdk/{resolve-outbound-target-DL1adXpk.js → resolve-outbound-target-BeIB_jm0.js} +2 -2
  170. package/dist/plugin-sdk/{run-with-concurrency-DmTrN5JG.js → run-with-concurrency-kVooFCVo.js} +1 -1
  171. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-B6EcC22F.js +10 -0
  172. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DH8J0Ie7.js +19 -0
  173. package/dist/plugin-sdk/{send-BCVXt-3e.js → send-CgkNzAhS.js} +8 -8
  174. package/dist/plugin-sdk/{send-CAG0Or0G.js → send-CuENGOhq.js} +7 -7
  175. package/dist/plugin-sdk/{send-X6QuS7x0.js → send-D6Uh2D1D.js} +5 -5
  176. package/dist/plugin-sdk/{send-BNePC8CO.js → send-DV5kR0Hg.js} +6 -6
  177. package/dist/plugin-sdk/{send-DhGDAZnT.js → send-DtA6ngBJ.js} +13 -13
  178. package/dist/plugin-sdk/{session-CAqYQVhe.js → session-CnlZn-bR.js} +3 -3
  179. package/dist/plugin-sdk/{skill-commands-Bk-IFyNw.js → skill-commands-Ckfii7h8.js} +4 -4
  180. package/dist/plugin-sdk/{skills-C5bT9-q4.js → skills-v0WQqKTa.js} +6 -6
  181. package/dist/plugin-sdk/slash-commands.runtime-BYoxsxkX.js +13 -0
  182. package/dist/plugin-sdk/{slash-dispatch.runtime-k8xSVYOI.js → slash-dispatch.runtime-DOo1IzuY.js} +1 -1
  183. package/dist/plugin-sdk/slash-dispatch.runtime-JfFr7bNy.js +52 -0
  184. package/dist/plugin-sdk/slash-skill-commands.runtime-D0399tia.js +16 -0
  185. package/dist/plugin-sdk/{store-D3lgWnS2.js → store-C_UrNuM3.js} +2 -2
  186. package/dist/plugin-sdk/{subagent-registry-runtime-D6cTAG2k.js → subagent-registry-runtime-DLvup9ph.js} +1 -1
  187. package/dist/plugin-sdk/subagent-registry-runtime-DVl5xKOW.js +52 -0
  188. package/dist/plugin-sdk/{tables-Dmlu4_q_.js → tables-CJP05iMa.js} +1 -1
  189. package/dist/plugin-sdk/{thinking-DRNOh5Xx.js → thinking-BhP3vn1l.js} +7 -7
  190. package/dist/plugin-sdk/{tokens-CLE20fRI.js → tokens-DAL_5WHL.js} +1 -1
  191. package/dist/plugin-sdk/{tool-images-BY1gsRyE.js → tool-images-ZE5G5UM0.js} +2 -2
  192. package/dist/plugin-sdk/{web-DkbCMgLG.js → web-C2Sj2WW0.js} +2 -2
  193. package/dist/plugin-sdk/web-CNY_ky8h.js +56 -0
  194. package/dist/plugin-sdk/{whatsapp-actions-BCJYmWCB.js → whatsapp-actions-DJmx6ihj.js} +17 -17
  195. package/dist/plugin-sdk/whatsapp.js +50 -50
  196. package/dist/{plugins-AqsVZZk3.js → plugins-DvejjZnJ.js} +11 -11
  197. package/dist/{plugins-cli-DFpHU_xo.js → plugins-cli-BA_2daJe.js} +2 -2
  198. package/dist/{plugins-cli-CZCadI9y.js → plugins-cli-C0WKWrZo.js} +2 -2
  199. package/dist/{program-B4_o5EDH.js → program-D_xdLzmM.js} +7 -7
  200. package/dist/{program-context-CkfdLtpp.js → program-context-DfmCIQ91.js} +17 -17
  201. package/dist/{prompt-select-styled-C1DFrYuk.js → prompt-select-styled-ApPSadr5.js} +4 -4
  202. package/dist/{prompt-select-styled-CZJJ2rPA.js → prompt-select-styled-BsheNEnh.js} +4 -4
  203. package/dist/{provider-auth-helpers-BlYwNWkq.js → provider-auth-helpers-B5kD4Lt6.js} +1 -1
  204. package/dist/{provider-auth-helpers-C5taJG0R.js → provider-auth-helpers-DpOFkV28.js} +1 -1
  205. package/dist/{proxy-env-DXXfs2WL.js → proxy-env-D-fike7s.js} +1 -1
  206. package/dist/{proxy-fetch-C2v-Utgg.js → proxy-fetch-lH6RsRTE.js} +1 -1
  207. package/dist/{push-apns-Dkjfalec.js → push-apns-BbenjEX4.js} +1 -1
  208. package/dist/{push-apns-Bhk1_5ut.js → push-apns-Ci2sdIKf.js} +1 -1
  209. package/dist/{pw-ai-GOBxzChI.js → pw-ai-B8ymIYub.js} +14 -14
  210. package/dist/{qmd-manager-CO-shcLU.js → qmd-manager-BN0siR2Z.js} +10 -10
  211. package/dist/{query-expansion-DlQOkf-g.js → query-expansion-Dzxt6kXo.js} +6 -6
  212. package/dist/{redact-NmPEVjIo.js → redact-DvzicBMu.js} +1 -1
  213. package/dist/{register.agent-s2PqcoIS.js → register.agent-CY6R-7fn.js} +6 -6
  214. package/dist/{register.agent-DOp4lbyc.js → register.agent-Dk_5V5oA.js} +7 -7
  215. package/dist/{register.configure-DABoMBBf.js → register.configure-C8OFfGln.js} +7 -7
  216. package/dist/{register.configure-BGfourxZ.js → register.configure-DT1RLeTR.js} +7 -7
  217. package/dist/{register.maintenance-Bdr3bSAF.js → register.maintenance-CluQOq8b.js} +8 -8
  218. package/dist/{register.maintenance-DmP8sVxb.js → register.maintenance-YHXmOQzf.js} +7 -7
  219. package/dist/{register.message-DF0InVCv.js → register.message-BCTXT5yK.js} +2 -2
  220. package/dist/{register.message-gz8DaAc1.js → register.message-BuoFjRqA.js} +2 -2
  221. package/dist/{register.onboard-Do14cwDQ.js → register.onboard-BJaRMtxU.js} +2 -2
  222. package/dist/{register.onboard-auVLfmF3.js → register.onboard-C64oXnvq.js} +2 -2
  223. package/dist/{register.setup-ZyGJlYOD.js → register.setup-Dl3nk2Ui.js} +2 -2
  224. package/dist/{register.setup-B3aVuPyo.js → register.setup-Drc55K_w.js} +2 -2
  225. package/dist/{register.status-health-sessions-C-1HE5oP.js → register.status-health-sessions-BHtbPeCO.js} +3 -3
  226. package/dist/{register.status-health-sessions-vFpvdVS1.js → register.status-health-sessions-xgC_gtEM.js} +3 -3
  227. package/dist/{register.subclis-BYiAuTiK.js → register.subclis-CDMFyaKR.js} +9 -9
  228. package/dist/{reply-BaVB3YlN.js → reply-DwjHsBuj.js} +137 -4
  229. package/dist/{run-main-DW-JR8hB.js → run-main-BcA22Ipv.js} +14 -14
  230. package/dist/{run-with-concurrency-FczpX8ng.js → run-with-concurrency-BFR3ReeF.js} +4 -4
  231. package/dist/runtime-whatsapp-login.runtime-DxV9iv6l.js +13 -0
  232. package/dist/runtime-whatsapp-outbound.runtime-DQqIlwhS.js +22 -0
  233. package/dist/{send-Bx9CqcZr.js → send-4nRsZJXH.js} +7 -7
  234. package/dist/{send-D5D0ZGht.js → send-BGlcHjUD.js} +26 -26
  235. package/dist/{send-DtHQ7_6Z.js → send-BTUU1jWM.js} +8 -8
  236. package/dist/{send-B9H0BkfO.js → send-DdBbRpTP.js} +6 -6
  237. package/dist/{send-B5QEmMJ4.js → send-dTQd-IyJ.js} +5 -5
  238. package/dist/{server-node-events-rumcq7j0.js → server-node-events-Q0cT2ifj.js} +2 -2
  239. package/dist/{server-node-events-D-EmiDyc.js → server-node-events-YN5eJeHa.js} +2 -2
  240. package/dist/{session-DLTCuoUD.js → session-CnCwDJke.js} +8 -8
  241. package/dist/{skill-commands-BwTLQRR8.js → skill-commands-Cz45_nme.js} +9 -9
  242. package/dist/{skills-B9N2bqKU.js → skills-CdCS1HeL.js} +22 -22
  243. package/dist/slash-commands.runtime-CZz6v6b3.js +16 -0
  244. package/dist/{slash-dispatch.runtime-sVHNrSL1.js → slash-dispatch.runtime-BOMEVFk0.js} +1 -1
  245. package/dist/{slash-dispatch.runtime-DPRwMKXk.js → slash-dispatch.runtime-DB1QsBRc.js} +1 -1
  246. package/dist/slash-dispatch.runtime-SO7HOe8q.js +56 -0
  247. package/dist/{slash-dispatch.runtime-BeltKAMm.js → slash-dispatch.runtime-sXaUYn4v.js} +1 -1
  248. package/dist/slash-skill-commands.runtime-Bawt7j0r.js +20 -0
  249. package/dist/{status-BeSD1NDD.js → status-Bh5x6DsW.js} +2 -2
  250. package/dist/{status-DGF_ROMC.js → status-cU9cJReo.js} +2 -2
  251. package/dist/{store-CvQ41zCV.js → store-D9z0dn7D.js} +2 -2
  252. package/dist/{subagent-registry-CgUBOyi3.js → subagent-registry-CIgFD2oi.js} +137 -4
  253. package/dist/{subagent-registry-runtime-Bxc5DYZt.js → subagent-registry-runtime-232sNNT6.js} +1 -1
  254. package/dist/subagent-registry-runtime-D2rUxU5J.js +56 -0
  255. package/dist/{subagent-registry-runtime-BYpjZwjA.js → subagent-registry-runtime-D7ubAnDZ.js} +1 -1
  256. package/dist/{subagent-registry-runtime-Cx5vPpG8.js → subagent-registry-runtime-DGTjU9Lb.js} +1 -1
  257. package/dist/{subsystem-BaLYRf7D.js → subsystem-6v7sWnAD.js} +14 -14
  258. package/dist/{tables-BRYYxYs7.js → tables-BTFiZyRU.js} +1 -1
  259. package/dist/{target-errors-D0ZJUbbf.js → target-errors-DgNRx3Nr.js} +2 -2
  260. package/dist/{thinking-B-A99X3F.js → thinking-B75CXkTT.js} +7 -7
  261. package/dist/{tokens-D2XhLqIz.js → tokens-DfbMVF9y.js} +1 -1
  262. package/dist/{tool-images-Zn6jVmkX.js → tool-images-Dp5OiXeA.js} +2 -2
  263. package/dist/{update-cli-Duy8S3Bj.js → update-cli-CktBOXZF.js} +7 -7
  264. package/dist/{update-cli-BSIF-OEa.js → update-cli-DM_dUip_.js} +8 -8
  265. package/dist/{update-runner-CMpruPN8.js → update-runner-BBJZmfZ4.js} +1 -1
  266. package/dist/{update-runner-D_nDdx7d.js → update-runner-BYGPkHXG.js} +1 -1
  267. package/dist/{web-C-5RPkV9.js → web-CZhZC1EA.js} +2 -2
  268. package/dist/{web-CKY0tK0k.js → web-Chw1dtKA.js} +1 -1
  269. package/dist/{web-Bnr4YuWJ.js → web-DWRZAXj9.js} +2 -2
  270. package/dist/{web-C0xcHURK.js → web-QsxgXbNK.js} +55 -55
  271. package/dist/{whatsapp-actions-Cuy0qeQK.js → whatsapp-actions-CzqsuSGx.js} +21 -21
  272. package/dist/{workspace-TqfVSQuO.js → workspace-kVMIaBrV.js} +20 -20
  273. package/extensions/acpx/node_modules/.bin/acpx +2 -2
  274. package/extensions/diagnostics-otel/node_modules/.bin/acorn +2 -2
  275. package/extensions/diffs/node_modules/.bin/playwright-core +2 -2
  276. package/extensions/googlechat/node_modules/.bin/squidclaw +2 -2
  277. package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
  278. package/extensions/memory-core/node_modules/.bin/squidclaw +2 -2
  279. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +2 -2
  280. package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
  281. package/extensions/nostr/node_modules/.bin/tsc +2 -2
  282. package/extensions/nostr/node_modules/.bin/tsserver +2 -2
  283. package/extensions/tlon/node_modules/.bin/tlon +2 -2
  284. package/package.json +1 -1
  285. package/dist/canvas-host/a2ui/.bundle.hash +0 -1
  286. package/dist/deliver-runtime-_mBfV_4S.js +0 -36
  287. package/dist/deps-send-discord.runtime-CUTAK2hy.js +0 -26
  288. package/dist/deps-send-imessage.runtime-CQOiEIuA.js +0 -25
  289. package/dist/deps-send-signal.runtime-wN7MkzLw.js +0 -24
  290. package/dist/deps-send-slack.runtime-HEEwW4uU.js +0 -22
  291. package/dist/deps-send-telegram.runtime-DHlcnjQO.js +0 -27
  292. package/dist/deps-send-whatsapp.runtime-B7GC68Cu.js +0 -60
  293. package/dist/export-html/vendor/highlight.min.js +0 -1213
  294. package/dist/export-html/vendor/marked.min.js +0 -6
  295. package/dist/image-runtime-D11wBIC8.js +0 -29
  296. package/dist/manager-runtime-BB9lcoFR.js +0 -18
  297. package/dist/pi-model-discovery-runtime-DBkQoIJw.js +0 -11
  298. package/dist/plugin-sdk/deliver-runtime-5UVcSskg.js +0 -32
  299. package/dist/plugin-sdk/deps-send-discord.runtime-DTspXSCt.js +0 -23
  300. package/dist/plugin-sdk/deps-send-imessage.runtime-qThAwDEe.js +0 -22
  301. package/dist/plugin-sdk/deps-send-signal.runtime-DnjnVzZF.js +0 -21
  302. package/dist/plugin-sdk/deps-send-slack.runtime-CbKevLnv.js +0 -19
  303. package/dist/plugin-sdk/deps-send-telegram.runtime-C6y29O9E.js +0 -24
  304. package/dist/plugin-sdk/deps-send-whatsapp.runtime-DPZSTh1j.js +0 -57
  305. package/dist/plugin-sdk/image-runtime-CpfepTDc.js +0 -25
  306. package/dist/plugin-sdk/manager-runtime-BmgTeb5G.js +0 -15
  307. package/dist/plugin-sdk/pi-model-discovery-runtime-COnuGwZt.js +0 -8
  308. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-99sCh8RG.js +0 -10
  309. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-dTkDaXHl.js +0 -19
  310. package/dist/plugin-sdk/slash-commands.runtime-EAZKpRKq.js +0 -13
  311. package/dist/plugin-sdk/slash-dispatch.runtime-E6j8gkO2.js +0 -52
  312. package/dist/plugin-sdk/slash-skill-commands.runtime-DGd_JSWX.js +0 -16
  313. package/dist/plugin-sdk/subagent-registry-runtime-Cca50Qld.js +0 -52
  314. package/dist/plugin-sdk/web-Be4JS3z8.js +0 -56
  315. package/dist/runtime-whatsapp-login.runtime-DumUjKRz.js +0 -13
  316. package/dist/runtime-whatsapp-outbound.runtime-Cgu2MfqR.js +0 -22
  317. package/dist/slash-commands.runtime-CjBXruwG.js +0 -16
  318. package/dist/slash-dispatch.runtime-C7rHRQFg.js +0 -56
  319. package/dist/slash-skill-commands.runtime-DYK20Lxf.js +0 -20
  320. package/dist/subagent-registry-runtime-Bm5UEB8c.js +0 -56
  321. package/docs/reference/templates/IDENTITY.md +0 -29
  322. package/docs/reference/templates/USER.md +0 -23
  323. package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
  324. package/docs/zh-CN/reference/templates/USER.md +0 -30
  325. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
@@ -4,7 +4,7 @@ import chalk, { Chalk } from "chalk";
4
4
  import fs from "node:fs";
5
5
  import { Logger } from "tslog";
6
6
  import os from "node:os";
7
- import JSON5 from "json5";
7
+ import json5 from "json5";
8
8
  import util from "node:util";
9
9
 
10
10
  //#region src/infra/cli-root-options.ts
@@ -157,7 +157,7 @@ function readLoggingConfig() {
157
157
  try {
158
158
  if (!fs.existsSync(configPath)) return;
159
159
  const raw = fs.readFileSync(configPath, "utf-8");
160
- const logging = JSON5.parse(raw)?.logging;
160
+ const logging = json5.parse(raw)?.logging;
161
161
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
162
162
  return logging;
163
163
  } catch {
@@ -1,7 +1,7 @@
1
- import { Tr as formatCliCommand, n as loadConfig } from "./config-CnZ1TlEw.js";
2
- import { B as success, F as danger, I as info, j as defaultRuntime, r as logInfo } from "./logger-DIb2cGHp.js";
3
- import { i as resolveWhatsAppAccount, l as logoutWeb } from "./accounts-xZOA23tQ.js";
4
- import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-CAqYQVhe.js";
1
+ import { Tr as formatCliCommand, n as loadConfig } from "./config-Bt-c7PWF.js";
2
+ import { B as success, F as danger, I as info, j as defaultRuntime, r as logInfo } from "./logger-Bg4vIUJn.js";
3
+ import { i as resolveWhatsAppAccount, l as logoutWeb } from "./accounts-DncG0Hx9.js";
4
+ import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-CnlZn-bR.js";
5
5
  import { DisconnectReason } from "@whiskeysockets/baileys";
6
6
 
7
7
  //#region src/web/login.ts
@@ -1,10 +1,10 @@
1
- import "./run-with-concurrency-DmTrN5JG.js";
2
- import { n as loadConfig } from "./config-CnZ1TlEw.js";
3
- import { B as success, F as danger, I as info, j as defaultRuntime, r as logInfo } from "./logger-DIb2cGHp.js";
1
+ import "./run-with-concurrency-kVooFCVo.js";
2
+ import { n as loadConfig } from "./config-Bt-c7PWF.js";
3
+ import { B as success, F as danger, I as info, j as defaultRuntime, r as logInfo } from "./logger-Bg4vIUJn.js";
4
4
  import "./paths-Duwviem_.js";
5
- import { _ as webAuthExists, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId } from "./accounts-xZOA23tQ.js";
5
+ import { _ as webAuthExists, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId } from "./accounts-DncG0Hx9.js";
6
6
  import "./github-copilot-token-C0y6vp3r.js";
7
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-CAqYQVhe.js";
7
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-CnlZn-bR.js";
8
8
  import { randomUUID } from "node:crypto";
9
9
  import { DisconnectReason } from "@whiskeysockets/baileys";
10
10
  import QRCodeModule from "qrcode-terminal/vendor/QRCode/index.js";
@@ -1,13 +1,13 @@
1
- import { a as resolveAgentDir, c as resolveAgentWorkspaceDir, i as resolveAgentConfig } from "./run-with-concurrency-DmTrN5JG.js";
2
- import { Qn as isTruthyEnvValue, Vn as normalizeOptionalSecretInput, dn as resolveApiKeyForProvider, fn as resolveEnvApiKey, nr as normalizeResolvedSecretInputString, tn as retryAsync, un as requireApiKey } from "./config-CnZ1TlEw.js";
3
- import { E as truncateUtf16Safe, O as createSubsystemLogger, c as clampNumber, s as clampInt, y as resolveUserPath } from "./logger-DIb2cGHp.js";
1
+ import { a as resolveAgentDir, c as resolveAgentWorkspaceDir, i as resolveAgentConfig } from "./run-with-concurrency-kVooFCVo.js";
2
+ import { Qn as isTruthyEnvValue, Vn as normalizeOptionalSecretInput, dn as resolveApiKeyForProvider, fn as resolveEnvApiKey, nr as normalizeResolvedSecretInputString, tn as retryAsync, un as requireApiKey } from "./config-Bt-c7PWF.js";
3
+ import { E as truncateUtf16Safe, O as createSubsystemLogger, c as clampNumber, s as clampInt, y as resolveUserPath } from "./logger-Bg4vIUJn.js";
4
4
  import { c as resolveStateDir } from "./paths-Duwviem_.js";
5
- import { o as resolveSessionTranscriptsDirForAgent } from "./paths-B7_75Pdr.js";
5
+ import { o as resolveSessionTranscriptsDirForAgent } from "./paths-CP67O8eN.js";
6
6
  import { n as onSessionTranscriptUpdate } from "./transcript-events-C-Yjj9jM.js";
7
- import { r as formatErrorMessage } from "./errors-CgRPdp3o.js";
8
- import { t as fetchWithSsrFGuard } from "./fetch-guard-BBAT8G-1.js";
9
- import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-DyjMI2n3.js";
10
- import { _ as isFileMissingError, a as sessionPathForFile, c as cosineSimilarity, d as isMemoryPath, f as listMemoryFiles, g as runWithConcurrency, h as remapChunkLines, i as listSessionFilesForAgent, l as ensureDir, m as parseEmbedding, n as requireNodeSqlite, o as buildFileEntry, p as normalizeExtraMemoryPaths, r as buildSessionEntry, s as chunkMarkdown, t as extractKeywords, u as hashText, v as statRegularFile } from "./query-expansion-POz2za8a.js";
7
+ import { r as formatErrorMessage } from "./errors-9oVz7reJ.js";
8
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-cfPCfkrw.js";
9
+ import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-BAZ0GD26.js";
10
+ import { _ as isFileMissingError, a as sessionPathForFile, c as cosineSimilarity, d as isMemoryPath, f as listMemoryFiles, g as runWithConcurrency, h as remapChunkLines, i as listSessionFilesForAgent, l as ensureDir, m as parseEmbedding, n as requireNodeSqlite, o as buildFileEntry, p as normalizeExtraMemoryPaths, r as buildSessionEntry, s as chunkMarkdown, t as extractKeywords, u as hashText, v as statRegularFile } from "./query-expansion-CzjwW461.js";
11
11
  import path from "node:path";
12
12
  import fs from "node:fs";
13
13
  import os from "node:os";
@@ -0,0 +1,15 @@
1
+ import "./run-with-concurrency-kVooFCVo.js";
2
+ import "./config-Bt-c7PWF.js";
3
+ import "./logger-Bg4vIUJn.js";
4
+ import "./paths-Duwviem_.js";
5
+ import "./github-copilot-token-C0y6vp3r.js";
6
+ import "./paths-CP67O8eN.js";
7
+ import "./redact-DfACyt0X.js";
8
+ import "./errors-9oVz7reJ.js";
9
+ import "./proxy-env-CUUXO6rv.js";
10
+ import "./fetch-guard-cfPCfkrw.js";
11
+ import "./api-key-rotation-BAZ0GD26.js";
12
+ import { t as MemoryIndexManager } from "./manager-ijYHktIt.js";
13
+ import "./query-expansion-CzjwW461.js";
14
+
15
+ export { MemoryIndexManager };
@@ -5,7 +5,7 @@ import fs, { constants } from "node:fs";
5
5
  import os from "node:os";
6
6
  import chalk, { Chalk } from "chalk";
7
7
  import { Logger } from "tslog";
8
- import json5 from "json5";
8
+ import JSON5 from "json5";
9
9
  import util, { promisify } from "node:util";
10
10
  import fs$1 from "node:fs/promises";
11
11
  import process$1 from "node:process";
@@ -400,7 +400,7 @@ function readLoggingConfig() {
400
400
  try {
401
401
  if (!fs.existsSync(configPath)) return;
402
402
  const raw = fs.readFileSync(configPath, "utf-8");
403
- const logging = json5.parse(raw)?.logging;
403
+ const logging = JSON5.parse(raw)?.logging;
404
404
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
405
405
  return logging;
406
406
  } catch {
@@ -4481,7 +4481,7 @@ function resolveSquidClawManifestBlock(params) {
4481
4481
  const raw = getFrontmatterString(params.frontmatter, params.key ?? "metadata");
4482
4482
  if (!raw) return;
4483
4483
  try {
4484
- const parsed = json5.parse(raw);
4484
+ const parsed = JSON5.parse(raw);
4485
4485
  if (!parsed || typeof parsed !== "object") return;
4486
4486
  const manifestKeys = [MANIFEST_KEY, ...LEGACY_MANIFEST_KEYS];
4487
4487
  for (const key of manifestKeys) {
@@ -6,7 +6,7 @@ import fs from "node:fs";
6
6
  import os from "node:os";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import { Logger } from "tslog";
9
- import JSON5 from "json5";
9
+ import json5 from "json5";
10
10
  import { format, promisify } from "node:util";
11
11
  import fs$1 from "node:fs/promises";
12
12
  import process$1 from "node:process";
@@ -722,7 +722,7 @@ function readLoggingConfig() {
722
722
  try {
723
723
  if (!fs.existsSync(configPath)) return;
724
724
  const raw = fs.readFileSync(configPath, "utf-8");
725
- const logging = JSON5.parse(raw)?.logging;
725
+ const logging = json5.parse(raw)?.logging;
726
726
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
727
727
  return logging;
728
728
  } catch {
@@ -1,10 +1,10 @@
1
- import { n as loadConfig } from "./config-CnZ1TlEw.js";
2
- import { G as getChildLogger, O as createSubsystemLogger, T as toWhatsappJid, u as escapeRegExp } from "./logger-DIb2cGHp.js";
1
+ import { n as loadConfig } from "./config-Bt-c7PWF.js";
2
+ import { G as getChildLogger, O as createSubsystemLogger, T as toWhatsappJid, u as escapeRegExp } from "./logger-Bg4vIUJn.js";
3
3
  import { n as generateSecureUuid } from "./secure-random-D2mQUJdh.js";
4
- import { a as loadWebMedia, s as resolveMarkdownTableMode } from "./ir-DXj1KGnL.js";
4
+ import { a as loadWebMedia, s as resolveMarkdownTableMode } from "./ir-CWmryq5f.js";
5
5
  import { n as normalizePollInput } from "./polls-CuwZJ8h2.js";
6
- import { t as convertMarkdownTables } from "./tables-Dmlu4_q_.js";
7
- import { i as redactIdentifier, n as requireActiveWebListener } from "./active-listener-C5xPUSTb.js";
6
+ import { t as convertMarkdownTables } from "./tables-CJP05iMa.js";
7
+ import { i as redactIdentifier, n as requireActiveWebListener } from "./active-listener-Bd3HH2km.js";
8
8
 
9
9
  //#region src/markdown/whatsapp.ts
10
10
  /**
@@ -1,5 +1,5 @@
1
- import { i as saveMediaBuffer } from "./store-D3lgWnS2.js";
2
- import { a as loadWebMedia } from "./ir-DXj1KGnL.js";
1
+ import { i as saveMediaBuffer } from "./store-C_UrNuM3.js";
2
+ import { a as loadWebMedia } from "./ir-CWmryq5f.js";
3
3
  import { t as buildOutboundMediaLoadOptions } from "./load-options-BbCcHhSJ.js";
4
4
 
5
5
  //#region src/media/outbound-attachment.ts
@@ -1,4 +1,4 @@
1
- import { F as resolveBoundaryPath, P as BOUNDARY_PATH_ALIAS_POLICIES, R as isNotFoundPathError } from "./run-with-concurrency-DmTrN5JG.js";
1
+ import { F as resolveBoundaryPath, P as BOUNDARY_PATH_ALIAS_POLICIES, R as isNotFoundPathError } from "./run-with-concurrency-kVooFCVo.js";
2
2
  import os from "node:os";
3
3
  import fs from "node:fs/promises";
4
4
 
@@ -1,4 +1,4 @@
1
- import { $ as normalizeAgentId, K as DEFAULT_AGENT_ID } from "./run-with-concurrency-DmTrN5JG.js";
1
+ import { $ as normalizeAgentId, K as DEFAULT_AGENT_ID } from "./run-with-concurrency-kVooFCVo.js";
2
2
  import { c as resolveStateDir, d as resolveRequiredHomeDir, l as expandHomePrefix } from "./paths-Duwviem_.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs";
@@ -1,22 +1,22 @@
1
- import { $ as normalizeAgentId, I as resolvePathViaExistingAncestorSync, J as buildAgentMainSessionKey, K as DEFAULT_AGENT_ID, O as runExec, S as ensureAgentWorkspace, _ as DEFAULT_HEARTBEAT_FILENAME, b as DEFAULT_TOOLS_FILENAME, et as normalizeMainKey, f as resolveSessionAgentId, g as DEFAULT_BOOTSTRAP_FILENAME, h as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentConfig, j as openBoundaryFile, m as DEFAULT_AGENTS_FILENAME, st as normalizeOptionalAccountId, tt as resolveAgentIdFromSessionKey, v as DEFAULT_IDENTITY_FILENAME, x as DEFAULT_USER_FILENAME, y as DEFAULT_SOUL_FILENAME } from "./run-with-concurrency-DmTrN5JG.js";
2
- import { $n as parseBooleanValue, Cn as resolveSecretRefValues, Ln as resolveProcessScopedMap, On as secretRefKey, Rn as getProcessStartTime, Tr as formatCliCommand, b as parseDurationMs, ir as CHANNEL_IDS, n as loadConfig, o as writeConfigFile, rr as resolveSecretInputRef, t as createConfigIO, x as parseByteSize, y as getBlockedNetworkModeReason, zn as isPidAlive } from "./config-CnZ1TlEw.js";
3
- import { E as truncateUtf16Safe, O as createSubsystemLogger, h as normalizeE164, j as defaultRuntime, y as resolveUserPath } from "./logger-DIb2cGHp.js";
1
+ import { $ as normalizeAgentId, I as resolvePathViaExistingAncestorSync, J as buildAgentMainSessionKey, K as DEFAULT_AGENT_ID, O as runExec, S as ensureAgentWorkspace, _ as DEFAULT_HEARTBEAT_FILENAME, b as DEFAULT_TOOLS_FILENAME, et as normalizeMainKey, f as resolveSessionAgentId, g as DEFAULT_BOOTSTRAP_FILENAME, h as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentConfig, j as openBoundaryFile, m as DEFAULT_AGENTS_FILENAME, st as normalizeOptionalAccountId, tt as resolveAgentIdFromSessionKey, v as DEFAULT_IDENTITY_FILENAME, x as DEFAULT_USER_FILENAME, y as DEFAULT_SOUL_FILENAME } from "./run-with-concurrency-kVooFCVo.js";
2
+ import { $n as parseBooleanValue, Cn as resolveSecretRefValues, Ln as resolveProcessScopedMap, On as secretRefKey, Rn as getProcessStartTime, Tr as formatCliCommand, b as parseDurationMs, ir as CHANNEL_IDS, n as loadConfig, o as writeConfigFile, rr as resolveSecretInputRef, t as createConfigIO, x as parseByteSize, y as getBlockedNetworkModeReason, zn as isPidAlive } from "./config-Bt-c7PWF.js";
3
+ import { E as truncateUtf16Safe, O as createSubsystemLogger, h as normalizeE164, j as defaultRuntime, y as resolveUserPath } from "./logger-Bg4vIUJn.js";
4
4
  import { a as resolveGatewayPort, d as resolveRequiredHomeDir, n as STATE_DIR } from "./paths-Duwviem_.js";
5
- import { _ as normalizeChatType, r as normalizeChannelId } from "./plugins-BqKpJkqt.js";
6
- import { d as getChannelDock, o as normalizeThinkLevel, y as normalizeHyphenSlug } from "./thinking-DRNOh5Xx.js";
7
- import { T as normalizeMessageChannel, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, w as listDeliverableMessageChannels } from "./image-ops-G8KoEfY8.js";
8
- import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-B7_75Pdr.js";
5
+ import { _ as normalizeChatType, r as normalizeChannelId } from "./plugins-D3mrhffi.js";
6
+ import { d as getChannelDock, o as normalizeThinkLevel, y as normalizeHyphenSlug } from "./thinking-BhP3vn1l.js";
7
+ import { T as normalizeMessageChannel, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, w as listDeliverableMessageChannels } from "./image-ops-BSYgrL7E.js";
8
+ import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-CP67O8eN.js";
9
9
  import { i as writeTextAtomic, r as writeJsonAtomic } from "./json-files-DtF9ARSD.js";
10
10
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-C-Yjj9jM.js";
11
- import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_SQUIDCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_SQUIDCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveSquidClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchSquidClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopSquidClawChrome, p as snapshotAria, q as DEFAULT_SQUIDCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-DJQWo149.js";
12
- import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-C5bT9-q4.js";
13
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-TnxupPQC.js";
14
- import { n as extractErrorCode, r as formatErrorMessage } from "./errors-CgRPdp3o.js";
15
- import { n as SsrFBlockedError } from "./proxy-env-C4s12rr8.js";
16
- import { i as saveMediaBuffer, n as ensureMediaDir } from "./store-D3lgWnS2.js";
11
+ import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_SQUIDCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_SQUIDCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveSquidClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchSquidClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopSquidClawChrome, p as snapshotAria, q as DEFAULT_SQUIDCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-DB2h0uN0.js";
12
+ import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-v0WQqKTa.js";
13
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-DA0MhfkG.js";
14
+ import { n as extractErrorCode, r as formatErrorMessage } from "./errors-9oVz7reJ.js";
15
+ import { n as SsrFBlockedError } from "./proxy-env-CUUXO6rv.js";
16
+ import { i as saveMediaBuffer, n as ensureMediaDir } from "./store-C_UrNuM3.js";
17
17
  import { t as generateSecureToken } from "./secure-random-D2mQUJdh.js";
18
18
  import { n as resolveWindowsSpawnProgram, t as materializeWindowsSpawnProgram } from "./windows-spawn-DMbvk-PO.js";
19
- import { t as sanitizeContentBlocksImages } from "./tool-images-BY1gsRyE.js";
19
+ import { t as sanitizeContentBlocksImages } from "./tool-images-ZE5G5UM0.js";
20
20
  import path, { posix } from "node:path";
21
21
  import fs, { existsSync } from "node:fs";
22
22
  import os from "node:os";
@@ -3620,7 +3620,7 @@ function isModuleNotFoundError(err) {
3620
3620
  }
3621
3621
  async function loadPwAiModule(mode) {
3622
3622
  try {
3623
- return await import("./pw-ai-Cb0ZDSq4.js");
3623
+ return await import("./pw-ai-dPmKdw_w.js");
3624
3624
  } catch (err) {
3625
3625
  if (mode === "soft") return null;
3626
3626
  if (isModuleNotFoundError(err)) return null;
@@ -5986,7 +5986,7 @@ function createProfileAvailability({ opts, profile, state, getProfileState, setP
5986
5986
  //#region src/browser/server-context.reset.ts
5987
5987
  async function closePlaywrightBrowserConnection() {
5988
5988
  try {
5989
- await (await import("./pw-ai-Cb0ZDSq4.js")).closePlaywrightBrowserConnection();
5989
+ await (await import("./pw-ai-dPmKdw_w.js")).closePlaywrightBrowserConnection();
5990
5990
  } catch {}
5991
5991
  }
5992
5992
  function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, isHttpReachable, resolveSquidClawUserDataDir }) {
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Ht as normalizeProviderId, Nn as ensureAuthProfileStore } from "./config-CnZ1TlEw.js";
2
+ import { Ht as normalizeProviderId, Nn as ensureAuthProfileStore } from "./config-Bt-c7PWF.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs";
5
5
  import * as PiCodingAgent from "@mariozechner/pi-coding-agent";
@@ -0,0 +1,8 @@
1
+ import "./run-with-concurrency-kVooFCVo.js";
2
+ import "./config-Bt-c7PWF.js";
3
+ import "./logger-Bg4vIUJn.js";
4
+ import "./paths-Duwviem_.js";
5
+ import "./github-copilot-token-C0y6vp3r.js";
6
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-8OL77kCh.js";
7
+
8
+ export { discoverAuthStorage, discoverModels };
@@ -1,9 +1,9 @@
1
- import "./run-with-concurrency-DmTrN5JG.js";
2
- import "./config-CnZ1TlEw.js";
3
- import { D as isPlainObject, O as createSubsystemLogger } from "./logger-DIb2cGHp.js";
1
+ import "./run-with-concurrency-kVooFCVo.js";
2
+ import "./config-Bt-c7PWF.js";
3
+ import { D as isPlainObject, O as createSubsystemLogger } from "./logger-Bg4vIUJn.js";
4
4
  import "./paths-Duwviem_.js";
5
5
  import "./github-copilot-token-C0y6vp3r.js";
6
- import { h as getDiagnosticSessionState, s as logToolLoopAction } from "./diagnostic-DKsyROPi.js";
6
+ import { h as getDiagnosticSessionState, s as logToolLoopAction } from "./diagnostic-B6F3BtCX.js";
7
7
  import { createHash } from "node:crypto";
8
8
 
9
9
  //#region src/agents/tool-loop-detection.ts
@@ -1,7 +1,7 @@
1
- import { $ as normalizeAgentId, at as DEFAULT_ACCOUNT_ID, l as resolveDefaultAgentId, ot as normalizeAccountId, st as normalizeOptionalAccountId } from "./run-with-concurrency-DmTrN5JG.js";
2
- import { Qn as isTruthyEnvValue, ar as CHAT_CHANNEL_ORDER, cr as normalizeAnyChannelId, mr as requireActivePluginRegistry, nr as normalizeResolvedSecretInputString, pr as getActivePluginRegistryVersion, ur as normalizeChatChannelId } from "./config-CnZ1TlEw.js";
3
- import { O as createSubsystemLogger, h as normalizeE164 } from "./logger-DIb2cGHp.js";
4
- import { i as resolveWhatsAppAccount, v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-xZOA23tQ.js";
1
+ import { $ as normalizeAgentId, at as DEFAULT_ACCOUNT_ID, l as resolveDefaultAgentId, ot as normalizeAccountId, st as normalizeOptionalAccountId } from "./run-with-concurrency-kVooFCVo.js";
2
+ import { Qn as isTruthyEnvValue, ar as CHAT_CHANNEL_ORDER, cr as normalizeAnyChannelId, mr as requireActivePluginRegistry, nr as normalizeResolvedSecretInputString, pr as getActivePluginRegistryVersion, ur as normalizeChatChannelId } from "./config-Bt-c7PWF.js";
3
+ import { O as createSubsystemLogger, h as normalizeE164 } from "./logger-Bg4vIUJn.js";
4
+ import { i as resolveWhatsAppAccount, v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-DncG0Hx9.js";
5
5
  import fs from "node:fs";
6
6
  import util from "node:util";
7
7
 
@@ -1,4 +1,4 @@
1
- import { C as isBlockedSpecialUseIpv4Address, D as isLegacyIpv4Literal, E as isIpv4Address, M as parseLooseIpAddress, S as extractEmbeddedIpv4FromIpv6, T as isCanonicalDottedDecimalIPv4, j as parseCanonicalIpAddress, w as isBlockedSpecialUseIpv6Address } from "./config-CnZ1TlEw.js";
1
+ import { C as isBlockedSpecialUseIpv4Address, D as isLegacyIpv4Literal, E as isIpv4Address, M as parseLooseIpAddress, S as extractEmbeddedIpv4FromIpv6, T as isCanonicalDottedDecimalIPv4, j as parseCanonicalIpAddress, w as isBlockedSpecialUseIpv6Address } from "./config-Bt-c7PWF.js";
2
2
  import { lookup } from "node:dns";
3
3
  import { lookup as lookup$1 } from "node:dns/promises";
4
4
  import { Agent } from "undici";
@@ -1,4 +1,4 @@
1
- import { i as logWarn } from "./logger-DIb2cGHp.js";
1
+ import { i as logWarn } from "./logger-Bg4vIUJn.js";
2
2
  import { EnvHttpProxyAgent, ProxyAgent, fetch } from "undici";
3
3
 
4
4
  //#region src/infra/net/proxy-fetch.ts
@@ -1,14 +1,14 @@
1
- import "./run-with-concurrency-DmTrN5JG.js";
2
- import { Tr as formatCliCommand } from "./config-CnZ1TlEw.js";
3
- import { Y as resolvePreferredSquidClawTmpDir } from "./logger-DIb2cGHp.js";
1
+ import "./run-with-concurrency-kVooFCVo.js";
2
+ import { Tr as formatCliCommand } from "./config-Bt-c7PWF.js";
3
+ import { Y as resolvePreferredSquidClawTmpDir } from "./logger-Bg4vIUJn.js";
4
4
  import "./paths-Duwviem_.js";
5
5
  import "./github-copilot-token-C0y6vp3r.js";
6
- import { F as resolveStrictExistingPathsWithinRoot, L as DEFAULT_FILL_FIELD_TYPE, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, S as withCdpSocket, _ as withBrowserNavigationPolicy, d as formatAriaSnapshot, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, k as withNoProxyForCdpUrl, t as getChromeWebSocketUrl, v as appendCdpPath, x as getHeadersWithAuth, y as fetchJson } from "./chrome-DJQWo149.js";
7
- import "./path-alias-guards-TnxupPQC.js";
8
- import "./redact-9WsNyb7S.js";
9
- import { r as formatErrorMessage } from "./errors-CgRPdp3o.js";
10
- import { s as writeFileFromPathWithinRoot } from "./fs-safe-DqCO1D4C.js";
11
- import "./proxy-env-C4s12rr8.js";
6
+ import { F as resolveStrictExistingPathsWithinRoot, L as DEFAULT_FILL_FIELD_TYPE, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, S as withCdpSocket, _ as withBrowserNavigationPolicy, d as formatAriaSnapshot, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, k as withNoProxyForCdpUrl, t as getChromeWebSocketUrl, v as appendCdpPath, x as getHeadersWithAuth, y as fetchJson } from "./chrome-DB2h0uN0.js";
7
+ import "./path-alias-guards-DA0MhfkG.js";
8
+ import "./redact-DfACyt0X.js";
9
+ import { r as formatErrorMessage } from "./errors-9oVz7reJ.js";
10
+ import { s as writeFileFromPathWithinRoot } from "./fs-safe-DFbwq9CS.js";
11
+ import "./proxy-env-CUUXO6rv.js";
12
12
  import path from "node:path";
13
13
  import fs from "node:fs/promises";
14
14
  import crypto from "node:crypto";
@@ -1,12 +1,12 @@
1
- import { c as resolveAgentWorkspaceDir, mt as parseAgentSessionKey } from "./run-with-concurrency-DmTrN5JG.js";
2
- import { O as createSubsystemLogger } from "./logger-DIb2cGHp.js";
1
+ import { c as resolveAgentWorkspaceDir, mt as parseAgentSessionKey } from "./run-with-concurrency-kVooFCVo.js";
2
+ import { O as createSubsystemLogger } from "./logger-Bg4vIUJn.js";
3
3
  import { c as resolveStateDir } from "./paths-Duwviem_.js";
4
- import "./paths-B7_75Pdr.js";
5
- import "./path-alias-guards-TnxupPQC.js";
6
- import "./redact-9WsNyb7S.js";
7
- import { c as writeFileWithinRoot } from "./fs-safe-DqCO1D4C.js";
4
+ import "./paths-CP67O8eN.js";
5
+ import "./path-alias-guards-DA0MhfkG.js";
6
+ import "./redact-DfACyt0X.js";
7
+ import { c as writeFileWithinRoot } from "./fs-safe-DFbwq9CS.js";
8
8
  import { n as resolveWindowsSpawnProgram, t as materializeWindowsSpawnProgram } from "./windows-spawn-DMbvk-PO.js";
9
- import { _ as isFileMissingError, i as listSessionFilesForAgent, n as requireNodeSqlite, r as buildSessionEntry, t as extractKeywords, v as statRegularFile } from "./query-expansion-POz2za8a.js";
9
+ import { _ as isFileMissingError, i as listSessionFilesForAgent, n as requireNodeSqlite, r as buildSessionEntry, t as extractKeywords, v as statRegularFile } from "./query-expansion-CzjwW461.js";
10
10
  import path from "node:path";
11
11
  import os from "node:os";
12
12
  import fs from "node:fs/promises";
@@ -1,7 +1,7 @@
1
- import { t as runTasksWithConcurrency } from "./run-with-concurrency-DmTrN5JG.js";
2
- import { O as createSubsystemLogger } from "./logger-DIb2cGHp.js";
3
- import { o as resolveSessionTranscriptsDirForAgent } from "./paths-B7_75Pdr.js";
4
- import { t as redactSensitiveText } from "./redact-9WsNyb7S.js";
1
+ import { t as runTasksWithConcurrency } from "./run-with-concurrency-kVooFCVo.js";
2
+ import { O as createSubsystemLogger } from "./logger-Bg4vIUJn.js";
3
+ import { o as resolveSessionTranscriptsDirForAgent } from "./paths-CP67O8eN.js";
4
+ import { t as redactSensitiveText } from "./redact-DfACyt0X.js";
5
5
  import { createRequire } from "node:module";
6
6
  import path from "node:path";
7
7
  import fs from "node:fs";
@@ -1,4 +1,4 @@
1
- import { q as resolveNodeRequireFromMeta } from "./logger-DIb2cGHp.js";
1
+ import { q as resolveNodeRequireFromMeta } from "./logger-Bg4vIUJn.js";
2
2
 
3
3
  //#region src/security/safe-regex.ts
4
4
  const SAFE_REGEX_CACHE_MAX = 256;
@@ -23547,7 +23547,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
23547
23547
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
23548
23548
  let subagentRegistryRuntimePromise = null;
23549
23549
  function loadSubagentRegistryRuntime() {
23550
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-D6cTAG2k.js");
23550
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DLvup9ph.js");
23551
23551
  return subagentRegistryRuntimePromise;
23552
23552
  }
23553
23553
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -37634,6 +37634,112 @@ function resolveContextTokensForModel(params) {
37634
37634
  return lookupContextTokens(params.model) ?? params.fallbackContextTokens;
37635
37635
  }
37636
37636
 
37637
+ //#endregion
37638
+ //#region src/agents/agent-tier.ts
37639
+ const PAID_PROVIDERS = ["anthropic", "openai"];
37640
+ function isPaidProvider(modelRef) {
37641
+ const trimmed = modelRef.trim().toLowerCase();
37642
+ for (const provider of PAID_PROVIDERS) if (trimmed.startsWith(provider + "/") || trimmed.startsWith(provider + ":")) return {
37643
+ isPaid: true,
37644
+ provider
37645
+ };
37646
+ return {
37647
+ isPaid: false,
37648
+ provider: ""
37649
+ };
37650
+ }
37651
+ /**
37652
+ * Check if the primary provider's last interaction was a failure
37653
+ * with no successful use after it.
37654
+ */
37655
+ function isPrimaryLastKnownBroken(store, profileIds, now) {
37656
+ for (const id of profileIds) {
37657
+ const stats = store.usageStats?.[id];
37658
+ if (!stats) continue;
37659
+ if (typeof stats.disabledUntil === "number" && stats.disabledUntil > now) return true;
37660
+ if (typeof stats.cooldownUntil === "number" && stats.cooldownUntil > now && (stats.errorCount ?? 0) > 0) return true;
37661
+ const lastFailure = stats.lastFailureAt ?? 0;
37662
+ const lastSuccess = stats.lastUsed ?? 0;
37663
+ if (lastFailure > 0 && lastFailure > lastSuccess) return true;
37664
+ }
37665
+ return false;
37666
+ }
37667
+ /**
37668
+ * Resolve the fallback flag file path.
37669
+ */
37670
+ function resolveFallbackFlagPath() {
37671
+ const dir = process.env.SQUIDCLAW_DIR || path.join(process.env.HOME || "/root", ".squidclaw");
37672
+ return path.join(dir, "fallback-active.json");
37673
+ }
37674
+ /**
37675
+ * Read the fallback flag file. Returns null if not present or invalid.
37676
+ */
37677
+ function readFallbackFlag() {
37678
+ try {
37679
+ const flagPath = resolveFallbackFlagPath();
37680
+ if (!fs.existsSync(flagPath)) return null;
37681
+ const data = JSON.parse(fs.readFileSync(flagPath, "utf8"));
37682
+ if (data && data.active) return data;
37683
+ return null;
37684
+ } catch {
37685
+ return null;
37686
+ }
37687
+ }
37688
+ /**
37689
+ * Write the fallback flag file when primary model fails.
37690
+ */
37691
+ function writeFallbackFlag(data) {
37692
+ try {
37693
+ const flagPath = resolveFallbackFlagPath();
37694
+ fs.writeFileSync(flagPath, JSON.stringify({
37695
+ active: true,
37696
+ ...data,
37697
+ since: Date.now()
37698
+ }));
37699
+ } catch {}
37700
+ }
37701
+ /**
37702
+ * Clear the fallback flag file when primary model recovers.
37703
+ */
37704
+ function clearFallbackFlag() {
37705
+ try {
37706
+ const flagPath = resolveFallbackFlagPath();
37707
+ if (fs.existsSync(flagPath)) fs.unlinkSync(flagPath);
37708
+ } catch {}
37709
+ }
37710
+ /**
37711
+ * Resolve the current agent tier.
37712
+ *
37713
+ * - "super": Paid provider configured and last known working.
37714
+ * - "degraded": Paid provider configured but last attempt failed (no success since).
37715
+ * - "base": Local/free model only.
37716
+ */
37717
+ function resolveAgentTier(params) {
37718
+ const primary = resolveAgentModelPrimaryValue(params.cfg?.agents?.defaults?.model);
37719
+ if (!primary) return "base";
37720
+ const { isPaid, provider } = isPaidProvider(primary);
37721
+ if (!isPaid) return "base";
37722
+ if (!resolveEnvApiKey(provider)) return "base";
37723
+ try {
37724
+ const authStore = ensureAuthProfileStore(params.agentDir ?? resolveSquidClawAgentDir(), { allowKeychainPrompt: false });
37725
+ const profileIds = resolveAuthProfileOrder({
37726
+ cfg: params.cfg,
37727
+ store: authStore,
37728
+ provider
37729
+ });
37730
+ if (profileIds.length > 0 && isPrimaryLastKnownBroken(authStore, profileIds, Date.now())) return "degraded";
37731
+ } catch {}
37732
+ if (readFallbackFlag()) return "degraded";
37733
+ return "super";
37734
+ }
37735
+ function formatAgentTierLabel(tier) {
37736
+ switch (tier) {
37737
+ case "super": return "🟢 Super Agent";
37738
+ case "degraded": return "🟠 Basic Agent (degraded)";
37739
+ case "base": return "🟡 Basic Agent";
37740
+ }
37741
+ }
37742
+
37637
37743
  //#endregion
37638
37744
  //#region src/sessions/model-overrides.ts
37639
37745
  function applyModelOverrideToSessionEntry(params) {
@@ -37707,6 +37813,7 @@ function applyModelOverrideToSessionEntry(params) {
37707
37813
  }
37708
37814
  if (updated) {
37709
37815
  delete entry.fallbackNoticeSelectedModel;
37816
+ clearFallbackFlag();
37710
37817
  delete entry.fallbackNoticeActiveModel;
37711
37818
  delete entry.fallbackNoticeReason;
37712
37819
  entry.updatedAt = Date.now();
@@ -45481,7 +45588,7 @@ let slackSenderRuntimePromise = null;
45481
45588
  let signalSenderRuntimePromise = null;
45482
45589
  let imessageSenderRuntimePromise = null;
45483
45590
  function loadWhatsAppSenderRuntime() {
45484
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-V0Jfat5S.js");
45591
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-DvxhnHR_.js");
45485
45592
  return whatsappSenderRuntimePromise;
45486
45593
  }
45487
45594
  function loadTelegramSenderRuntime() {
@@ -57644,7 +57751,7 @@ function loadSlashCommandsRuntime() {
57644
57751
  return slashCommandsRuntimePromise;
57645
57752
  }
57646
57753
  function loadSlashDispatchRuntime() {
57647
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-k8xSVYOI.js");
57754
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-DOo1IzuY.js");
57648
57755
  return slashDispatchRuntimePromise;
57649
57756
  }
57650
57757
  function loadSlashSkillCommandsRuntime() {
@@ -59184,6 +59291,22 @@ function buildStatusMessage(args) {
59184
59291
  activeModelRef: activeModelLabel,
59185
59292
  state: entry
59186
59293
  });
59294
+ if (!fallbackState.active) {
59295
+ const flag = readFallbackFlag();
59296
+ if (flag) {
59297
+ fallbackState = {
59298
+ active: true,
59299
+ reason: flag.reason || "primary unavailable"
59300
+ };
59301
+ if (flag.activeModel) {
59302
+ const parts = flag.activeModel.split("/");
59303
+ if (parts.length === 2) {
59304
+ activeProvider = parts[0];
59305
+ activeModel = parts[1];
59306
+ }
59307
+ }
59308
+ }
59309
+ }
59187
59310
  const effectiveCostAuthMode = fallbackState.active ? activeAuthMode : selectedAuthMode ?? activeAuthMode;
59188
59311
  const showCost = effectiveCostAuthMode === "api-key" || effectiveCostAuthMode === "mixed";
59189
59312
  const costConfig = showCost ? resolveModelCostConfig({
@@ -59240,6 +59363,11 @@ function buildStatusMessage(args) {
59240
59363
  const voiceLine = formatVoiceModeLine(args.config, args.sessionEntry);
59241
59364
  return [
59242
59365
  versionLine,
59366
+ args.config ? formatAgentTierLabel((() => {
59367
+ const t = resolveAgentTier({ cfg: args.config });
59368
+ if (t === "super" && fallbackState.active) return "degraded";
59369
+ return t;
59370
+ })()) : null,
59243
59371
  args.timeLine,
59244
59372
  modelLine,
59245
59373
  fallbackLine,
@@ -66257,7 +66385,7 @@ function loadWebLoginQr() {
66257
66385
  return webLoginQrPromise;
66258
66386
  }
66259
66387
  function loadWebChannel() {
66260
- webChannelPromise ??= import("./web-DkbCMgLG.js");
66388
+ webChannelPromise ??= import("./web-C2Sj2WW0.js");
66261
66389
  return webChannelPromise;
66262
66390
  }
66263
66391
  function loadWhatsAppActions() {
@@ -96679,6 +96807,11 @@ async function runReplyAgent(params) {
96679
96807
  fallbackStateEntry.fallbackNoticeSelectedModel = fallbackTransition.nextState.selectedModel;
96680
96808
  fallbackStateEntry.fallbackNoticeActiveModel = fallbackTransition.nextState.activeModel;
96681
96809
  fallbackStateEntry.fallbackNoticeReason = fallbackTransition.nextState.reason;
96810
+ writeFallbackFlag({
96811
+ selectedModel: fallbackTransition.nextState.selectedModel,
96812
+ activeModel: fallbackTransition.nextState.activeModel,
96813
+ reason: fallbackTransition.nextState.reason
96814
+ });
96682
96815
  fallbackStateEntry.updatedAt = Date.now();
96683
96816
  activeSessionEntry = fallbackStateEntry;
96684
96817
  }