@noxsoft/anima 7.0.0 → 7.0.2

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 (431) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/dist/{accounts-COxGcLGB.js → accounts-BDDwy6Zf.js} +3 -3
  3. package/dist/{accounts-DIES085e.js → accounts-BNxfCMUW.js} +5 -5
  4. package/dist/{accounts-B_2nt5Cd.js → accounts-BzjBXZYp.js} +2 -2
  5. package/dist/{accounts-TUsfghIW.js → accounts-PpT_kved.js} +11 -11
  6. package/dist/{acp-cli-CWgqDQQH.js → acp-cli-B4F3SojX.js} +12 -12
  7. package/dist/{acp-cli-D0wfP8-l.js → acp-cli-CtTTCUan.js} +15 -15
  8. package/dist/{active-listener-BKtsWhsb.js → active-listener-C3NdbMQD.js} +4 -4
  9. package/dist/{active-listener-gGCoq55D.js → active-listener-D78ohfOc.js} +6 -6
  10. package/dist/{active-listener-D2r8IO7g.js → active-listener-Z1MbDSH8.js} +4 -4
  11. package/dist/{agent-paths-niQrLbGc.js → agent-paths-DRAU6-8h.js} +2 -2
  12. package/dist/{agent-scope-Dm8IL1Ks.js → agent-scope-B1FoYHfj.js} +3 -3
  13. package/dist/{agent-scope-CxBzAozu.js → agent-scope-CENGF2NR.js} +2 -2
  14. package/dist/{agent-scope-CXxC8FFX.js → agent-scope-DQ0N_hof.js} +2 -2
  15. package/dist/{agent-scope-ByIGrCTT.js → agent-scope-DpgOQfBp.js} +2 -2
  16. package/dist/{agent-DuW0onwk.js → agent-viQL5eva.js} +18 -18
  17. package/dist/{agent-BoAAHGEA.js → agent-xPFmA8jO.js} +14 -14
  18. package/dist/{agents-BUXkSDns.js → agents-Cf9QArEB.js} +20 -20
  19. package/dist/{agents.config-BR5JLtud.js → agents.config-DrViQjgD.js} +1 -1
  20. package/dist/{agents.config-Br4ULmK0.js → agents.config-sfN0WxRg.js} +1 -1
  21. package/dist/{anthropic-direct-runner-DizCei79.js → anthropic-direct-runner-BNiXWmel.js} +257 -21
  22. package/dist/{anthropic-direct-runner-OjcTAH6g.js → anthropic-direct-runner-BgFOZS8B.js} +257 -21
  23. package/dist/{audit-DDz7UOIx.js → audit-CupURkPI.js} +15 -15
  24. package/dist/{audit-B05W5ckN.js → audit-jddM3B16.js} +13 -13
  25. package/dist/{auth-Cp__MMeO.js → auth-Bw3NUKcg.js} +2 -2
  26. package/dist/{auth-DsC5pZ_0.js → auth-CuGlMw6p.js} +2 -2
  27. package/dist/{auth-choice-B1iGnjuE.js → auth-choice-D3Gi-WXq.js} +7 -7
  28. package/dist/{auth-choice-HF9x6xk2.js → auth-choice-DmkqIhe6.js} +7 -7
  29. package/dist/{auth-health-Cc8-vy8y.js → auth-health-CIbz_YRs.js} +1 -1
  30. package/dist/{auth-health-Dhr8p2SD.js → auth-health-CPmz2ZaM.js} +1 -1
  31. package/dist/{auth-profiles-DKu7ZUzl.js → auth-profiles-D0T20ZZX.js} +4 -4
  32. package/dist/{auth-profiles-C-LuhW6c.js → auth-profiles-XI2YBb-w.js} +3 -3
  33. package/dist/{auth-profiles-Brxz2ojJ.js → auth-profiles-fjGcjhZ4.js} +5 -5
  34. package/dist/{auth-profiles-DtWUl1-k.js → auth-profiles-jK6n3-Cc.js} +4 -4
  35. package/dist/{auth-store-Bd0GoqEL.js → auth-store-B4pR_KvR.js} +3 -3
  36. package/dist/{auth-store-BEfSfCbW.js → auth-store-ChpmVcla.js} +3 -3
  37. package/dist/{auth-store-Jvgz2_l1.js → auth-store-CqgKZB5l.js} +2 -2
  38. package/dist/{auth-store-BpYI9t_y.js → auth-store-po566wly.js} +3 -3
  39. package/dist/{banner-Dpa5d1If.js → banner-C_CFUih5.js} +2 -2
  40. package/dist/{bonjour-discovery-D3HFfTyG.js → bonjour-discovery-B8gxGE91.js} +2 -2
  41. package/dist/{bonjour-discovery-Co-b97Dz.js → bonjour-discovery-CZGDX9Ac.js} +2 -2
  42. package/dist/build-info.json +3 -3
  43. package/dist/bundled/boot-md/handler.js +23 -23
  44. package/dist/bundled/bootstrap-extra-files/handler.js +3 -3
  45. package/dist/bundled/session-memory/handler.js +22 -22
  46. package/dist/{call-CDPbPDAr.js → call-Bn9iKzhX.js} +4 -4
  47. package/dist/{call-B4lhqS6H.js → call-CPfxv8yg.js} +5 -5
  48. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  49. package/dist/{catalog-CsXv59Tq.js → catalog-BqTvQqiq.js} +2 -2
  50. package/dist/{catalog-B-TAbJ2o.js → catalog-yCaNFdQz.js} +2 -2
  51. package/dist/{channel-web-C5mzsaa3.js → channel-web-CfKNWfmp.js} +14 -14
  52. package/dist/{channels-status-issues-WkG3Tmxk.js → channels-status-issues-4XxYhQ8S.js} +4 -4
  53. package/dist/{channels-status-issues-CklLFAsD.js → channels-status-issues-BhtWH-p2.js} +4 -4
  54. package/dist/{chrome-CmxIwwsr.js → chrome-CN17GbZN.js} +2 -2
  55. package/dist/{chrome-BaU-H9m7.js → chrome-CVb9kRv_.js} +3 -3
  56. package/dist/{chrome-DLUBPBPz.js → chrome-D1Jm1Bdq.js} +9 -9
  57. package/dist/{chrome-B8EnYGj1.js → chrome-Nb2mFwWK.js} +2 -2
  58. package/dist/{chunk-B4Kx-ocg.js → chunk-B5s6o9xI.js} +3 -3
  59. package/dist/{chunk-DJXDX69U.js → chunk-CTS4rIMF.js} +3 -3
  60. package/dist/{chunk-CFSle8n5.js → chunk-DXTTGmeb.js} +1 -1
  61. package/dist/{chunk-Cy0Bj0F3.js → chunk-isZGJq82.js} +1 -1
  62. package/dist/{clack-prompter-0JW5kry0.js → clack-prompter-ChmRN__Q.js} +5 -5
  63. package/dist/{clack-prompter-fZSmnHda.js → clack-prompter-CpLhDhPM.js} +5 -5
  64. package/dist/cli/daemon-cli.js +1 -1
  65. package/dist/{cli-Cuq4bIg4.js → cli-BzTZ8Gnp.js} +46 -46
  66. package/dist/{cli-X9ikywQ3.js → cli-DLYU8BVw.js} +47 -47
  67. package/dist/{client-CfLiulzK.js → client-DNDzi0CF.js} +3 -3
  68. package/dist/{client-BWkoTfOH.js → client-DOTb2PN6.js} +2 -2
  69. package/dist/{command-format-kLw3YIIu.js → command-format-JgYolX96.js} +1 -1
  70. package/dist/{command-registry-9V4uqrBV.js → command-registry-BQiM7sYY.js} +14 -14
  71. package/dist/{commands-Mekaw9WG.js → commands-CymFClS1.js} +2 -2
  72. package/dist/{common-DT_obM-k.js → common-C36MniDL.js} +2 -2
  73. package/dist/{common-Bf_TG87Y.js → common-Coq2knq6.js} +2 -2
  74. package/dist/{common-BCW6hLGI.js → common-c4ZysSLq.js} +2 -2
  75. package/dist/{common-CqIa2poH.js → common-fIXNXke2.js} +2 -2
  76. package/dist/{completion-cli-DNWDwhab.js → completion-cli-BP8IIlzX.js} +4 -4
  77. package/dist/{completion-cli-BtvcR-U5.js → completion-cli-DW87AQgF.js} +3 -3
  78. package/dist/{config-ZYN8tezd.js → config-C7s14LLE.js} +24 -6
  79. package/dist/{config-BrVuTQ8R.js → config-DmsfUvB0.js} +24 -6
  80. package/dist/{config-CweTwOtr.js → config-LS-6Xgqo.js} +25 -7
  81. package/dist/{config-DaD4FsAn.js → config-MZ5clMl4.js} +25 -7
  82. package/dist/config-cli-BAj5hoD-.js +15 -0
  83. package/dist/config-cli-C6WtFt5S.js +11 -0
  84. package/dist/{config-guard-C4b2dksv.js → config-guard-BAVhoqm4.js} +5 -5
  85. package/dist/{config-guard-CWhoBtB3.js → config-guard-Em1kJe5K.js} +19 -19
  86. package/dist/{configure-B2Mfnwy_.js → configure-CHPG13jf.js} +24 -24
  87. package/dist/{configure-SnvMHZPD.js → configure-Dd6zJb-q.js} +72 -72
  88. package/dist/{configure-ZWxixuRA.js → configure-DeLC66Op.js} +25 -25
  89. package/dist/{configure-lkozxQed.js → configure-i6y1krRa.js} +75 -75
  90. package/dist/{context-mdxDsO1v.js → context-C22AMgsc.js} +10 -2
  91. package/dist/{control-service-5YtMvm7D.js → control-service-BGnqY7vv.js} +5 -5
  92. package/dist/{control-service-3CI4vt1h.js → control-service-DxuB_IUw.js} +4 -4
  93. package/dist/control-ui/assets/{index-D4wqLVMN.js → index-XnQwXlLu.js} +2 -2
  94. package/dist/control-ui/assets/{index-D4wqLVMN.js.map → index-XnQwXlLu.js.map} +1 -1
  95. package/dist/control-ui/assets/index-tpHK2r2n.js +73 -0
  96. package/dist/control-ui/assets/index-tpHK2r2n.js.map +1 -0
  97. package/dist/control-ui/assets/{observers-B7MfWiIZ.js → observers-DqhQeBfm.js} +2 -2
  98. package/dist/control-ui/assets/{observers-B7MfWiIZ.js.map → observers-DqhQeBfm.js.map} +1 -1
  99. package/dist/control-ui/index.html +1 -1
  100. package/dist/{cron-cli-D9XrF-Gx.js → cron-cli-3VJy8n6n.js} +14 -14
  101. package/dist/{cron-cli-Cht6Itx6.js → cron-cli-C_B6qK9W.js} +16 -16
  102. package/dist/{daemon-cli-CrdPhSxr.js → daemon-cli-B0IaAuYH.js} +15 -15
  103. package/dist/{daemon-cli-9zrnYRjh.js → daemon-cli-BsY7ZPql.js} +17 -17
  104. package/dist/daemon-cli.js +19 -1
  105. package/dist/{daemon-runtime-BrUj88ZO.js → daemon-runtime-BoIX72LK.js} +2 -2
  106. package/dist/{daemon-runtime-DCqwraWR.js → daemon-runtime-DSPDxySK.js} +3 -3
  107. package/dist/{deliver-d-CaN0uL.js → deliver-BJ0JgwhN.js} +11 -11
  108. package/dist/{deliver-BKzX3YoN.js → deliver-BknvuSJz.js} +6 -6
  109. package/dist/{deliver-C1L5nO0K.js → deliver-D86kSZGn.js} +7 -7
  110. package/dist/{deliver-B-dPbUIs.js → deliver-bdH5itRb.js} +11 -11
  111. package/dist/{delivery-queue-BKQk1j0k.js → delivery-queue-B6Y3ea25.js} +1 -1
  112. package/dist/{deps-BKLIBKjK.js → deps-oUYlT5Sq.js} +1 -1
  113. package/dist/{diagnostics-BhSwKIcN.js → diagnostics-CXoISuYV.js} +1 -1
  114. package/dist/{diagnostics-Cu9pZAFn.js → diagnostics-aUz0rVDl.js} +1 -1
  115. package/dist/{dispatcher-BQQugU-7.js → dispatcher-DpEzmU7s.js} +2 -2
  116. package/dist/{dispatcher-DzwzLQRk.js → dispatcher-DwlzWX2u.js} +2 -2
  117. package/dist/{dns-cli-V2bo6vSt.js → dns-cli-D8tgv6zY.js} +10 -10
  118. package/dist/{dns-cli-C8KIX4P3.js → dns-cli-DawPrcXI.js} +12 -12
  119. package/dist/{docs-cli-D2cVJxjP.js → docs-cli-Bsx7Yd3w.js} +6 -6
  120. package/dist/{docs-cli-Bt-YV3xs.js → docs-cli-DnrE1Tqw.js} +7 -7
  121. package/dist/{doctor-D7kKyUVk.js → doctor-BNJ_edyo.js} +36 -36
  122. package/dist/{doctor-DmCnZ-jF.js → doctor-DY5SmosG.js} +38 -38
  123. package/dist/{doctor-completion-B9SBdMoR.js → doctor-completion-B6lgyLsC.js} +2 -2
  124. package/dist/{doctor-completion-BBvW4_J9.js → doctor-completion-mLt2Eo9P.js} +3 -3
  125. package/dist/{doctor-config-flow-Dxy7RIm0.js → doctor-config-flow-CvJDaN8t.js} +8 -8
  126. package/dist/{doctor-config-flow-Bgl0Cc20.js → doctor-config-flow-D7SJ61Ak.js} +6 -6
  127. package/dist/{engine-zmn3SOYa.js → engine-BDwYEVKi.js} +1 -1
  128. package/dist/{engine-DpbYPop7.js → engine-BrJ7eiEh.js} +2 -2
  129. package/dist/entry.js +18 -2
  130. package/dist/{env-DlTia1B4.js → env-ByZjwIJR.js} +1 -1
  131. package/dist/{exec-DUzVF5_D.js → exec-4nfFrGP7.js} +1 -1
  132. package/dist/{exec-BylR5qWS.js → exec-ChPERQB-.js} +1 -1
  133. package/dist/{exec-BtBJICHE.js → exec-CigQCGkt.js} +1 -1
  134. package/dist/{exec-C6tXfeqA.js → exec-Dn2S9A7x.js} +1 -1
  135. package/dist/{exec-approvals-cli-DYZVBnqS.js → exec-approvals-cli-DmdfF4o_.js} +17 -17
  136. package/dist/{exec-approvals-cli-CN2WeH7y.js → exec-approvals-cli-c5UsPAU1.js} +19 -19
  137. package/dist/extensionAPI.js +21 -21
  138. package/dist/{gateway-cli-iumkTohn.js → gateway-cli-C4FwPHzu.js} +95 -95
  139. package/dist/{gateway-cli-CEM1vBuk.js → gateway-cli-CkFzsHGb.js} +93 -93
  140. package/dist/{gateway-rpc-Cj_h2sVM.js → gateway-rpc-CgeNTQUV.js} +3 -3
  141. package/dist/{gateway-rpc-CnXMGsxp.js → gateway-rpc-DpVHyNFu.js} +3 -3
  142. package/dist/{gmail-setup-utils-BIXtKTpT.js → gmail-setup-utils-JWsjxDBV.js} +4 -4
  143. package/dist/{gmail-setup-utils-DaJoXV_3.js → gmail-setup-utils-lTV5KDPF.js} +3 -3
  144. package/dist/{health-Cndq9b7A.js → health-C6rAUaME.js} +13 -13
  145. package/dist/{health-B5N6_UOf.js → health-DrokrOLQ.js} +13 -13
  146. package/dist/{health-format-BLnFZCH_.js → health-format-CTOsgiTE.js} +2 -2
  147. package/dist/{health-format-D-JJ5_S4.js → health-format-CzNDrJ8Z.js} +2 -2
  148. package/dist/{heartbeat-visibility-BQL13ZBH.js → heartbeat-visibility-DZOi_4uV.js} +1 -1
  149. package/dist/{heartbeat-visibility-CwcYugaR.js → heartbeat-visibility-XbT4yJ3S.js} +1 -1
  150. package/dist/{help-format-ZKxl6UCb.js → help-format-D4k6gkpr.js} +1 -1
  151. package/dist/{help-format-Dt-I_Mls.js → help-format-DgCbU9Ow.js} +1 -1
  152. package/dist/{hooks-cli-DSlPBQSY.js → hooks-cli-CBDm7Rjw.js} +50 -50
  153. package/dist/{hooks-cli-BZcvdIwE.js → hooks-cli-DVNU2Cp_.js} +53 -53
  154. package/dist/{hooks-status-DdweuSIj.js → hooks-status-BQ7M6bIq.js} +3 -3
  155. package/dist/{hooks-status-DqfJDvYl.js → hooks-status-BlfmlpC0.js} +3 -3
  156. package/dist/{image-ops-Ct3GueyT.js → image-ops-flDr58qn.js} +2 -2
  157. package/dist/{image-ops-BdrMmiG4.js → image-ops-vj06APeW.js} +2 -2
  158. package/dist/index.js +62 -62
  159. package/dist/{installs-a4Vz_J08.js → installs-BeTulUkL.js} +4 -4
  160. package/dist/{installs-Bi6UipiE.js → installs-D1t93Dvw.js} +4 -4
  161. package/dist/{lifecycle-core-BTICG85s.js → lifecycle-core-DmxyMl5D.js} +5 -5
  162. package/dist/{lifecycle-core-B8PI1NZJ.js → lifecycle-core-OpMLwiRd.js} +3 -3
  163. package/dist/{links-DcilUrqq.js → links-NDZcSjct.js} +1 -1
  164. package/dist/{links-BjjDMNIq.js → links-RNygAKHu.js} +1 -1
  165. package/dist/llm-slug-generator.js +22 -22
  166. package/dist/{loader-C87TLS4J.js → loader-5Xm3Jxa-.js} +1 -1
  167. package/dist/{logging-Chc1Sj6N.js → logging-B0-OIfnO.js} +1 -1
  168. package/dist/{logging-_rCcBkls.js → logging-CX0bU2da.js} +2 -2
  169. package/dist/{login-DKkQ3Czu.js → login-BegD27g3.js} +5 -5
  170. package/dist/{login-MzVPMRxL.js → login-CSaeXIuW.js} +7 -7
  171. package/dist/{login-BTOKtSQN.js → login-WPS724ji.js} +5 -5
  172. package/dist/{login-qr-BGbHImRb.js → login-qr-BVzUWR4o.js} +8 -8
  173. package/dist/{login-qr-CxRI-tE2.js → login-qr-C0eNn9SV.js} +12 -12
  174. package/dist/{login-qr-OUAGpDsU.js → login-qr-DLLfBALk.js} +9 -9
  175. package/dist/{login-qr-BjpDVBJE.js → login-qr-updBsqHf.js} +10 -10
  176. package/dist/{login-BEaBOSnw.js → login-zlt00-k4.js} +6 -6
  177. package/dist/{logs-cli-BiAJbjnq.js → logs-cli-BDQoLnjr.js} +15 -15
  178. package/dist/{logs-cli-Bc6IOyHA.js → logs-cli-BPljn0BF.js} +14 -14
  179. package/dist/{manager-BYu34CX3.js → manager-B-8JFgek.js} +27 -11
  180. package/dist/{manager-C6L_DH0O.js → manager-CE4cPrH2.js} +7 -7
  181. package/dist/{manager-D8VCuzru.js → manager-DPojhf1D.js} +9 -9
  182. package/dist/{manager-b_aZwo00.js → manager-kKsAUV03.js} +27 -11
  183. package/dist/{manifest-registry-W_OfCIRP.js → manifest-registry-BAebAG4I.js} +1 -1
  184. package/dist/{manifest-registry-qF960vMH.js → manifest-registry-Cwvk5hu8.js} +1 -1
  185. package/dist/{memory-cli-B0kKl-9T.js → memory-cli-BJmQIQSw.js} +11 -11
  186. package/dist/{memory-cli-DLtBA6r5.js → memory-cli-DMJqELwh.js} +10 -10
  187. package/dist/{message-channel-CMsexA3K.js → message-channel-CfwNj8mC.js} +1 -1
  188. package/dist/{message-channel-DIHHKJhk.js → message-channel-qmDI9YoO.js} +1 -1
  189. package/dist/{model-auth-KpsOXKDc.js → model-auth-BCdRf282.js} +19 -3
  190. package/dist/{model-auth-CHB3EySM.js → model-auth-Bs6eoQ1l.js} +19 -3
  191. package/dist/{model-selection-CLcoOT3e.js → model-selection-BhIAjo3P.js} +1 -1
  192. package/dist/{model-selection-DjsJGv1R.js → model-selection-CVcwboE_.js} +1 -1
  193. package/dist/{model-selection-CY6r_3wt.js → model-selection-CeZMza3d.js} +1 -1
  194. package/dist/{model-selection-DcO3qJOu.js → model-selection-f7lJs3PI.js} +1 -1
  195. package/dist/{models-CdNeYfSp.js → models-DxRmPLiS.js} +97 -50
  196. package/dist/{models-cli-D7eSsPuk.js → models-cli-B9KClY_f.js} +137 -82
  197. package/dist/{models-cli-fTZXo1zx.js → models-cli-BFZLSACV.js} +66 -58
  198. package/dist/{node-cli-DU_oREff.js → node-cli-BetF7Xgf.js} +26 -26
  199. package/dist/{node-cli-BmuVEJ1C.js → node-cli-CLeoh03V.js} +25 -25
  200. package/dist/{node-service-qZXF7T7A.js → node-service-FcwxyU8p.js} +1 -1
  201. package/dist/{node-service-cOoW5hLa.js → node-service-zrXojq7t.js} +1 -1
  202. package/dist/{note-CeLGcHqv.js → note-BTIeG9az.js} +1 -1
  203. package/dist/{note-iMYVGjpA.js → note-D_tpPSPO.js} +2 -2
  204. package/dist/{noxsoft-bootstrap-CrlkSFzd.js → noxsoft-bootstrap-CPS7t3Sk.js} +3 -3
  205. package/dist/{noxsoft-bootstrap-C4dSx7K_.js → noxsoft-bootstrap-CqygYIJa.js} +2 -2
  206. package/dist/{npm-registry-spec-jf7Mowdn.js → npm-registry-spec-BeX9-fmS.js} +1 -1
  207. package/dist/{npm-registry-spec-Br4B4I_3.js → npm-registry-spec-DB6xqMfu.js} +1 -1
  208. package/dist/{onboard-C5K37NvY.js → onboard-BZORsTGE.js} +18 -18
  209. package/dist/{onboard-D-6QCnTi.js → onboard-Doq7UgRV.js} +19 -19
  210. package/dist/{onboard-channels-BsCq32Hn.js → onboard-channels-BREQ8Tyw.js} +9 -9
  211. package/dist/{onboard-channels-bx6oelzj.js → onboard-channels-CpM1Nwqf.js} +8 -8
  212. package/dist/{onboard-helpers-CJ3HzoUO.js → onboard-helpers-rHLFiSIc.js} +7 -7
  213. package/dist/{onboard-helpers-CFudIoX4.js → onboard-helpers-uf70JxTj.js} +9 -9
  214. package/dist/{onboarding-BeuMAyic.js → onboarding-BGXbXgds.js} +21 -21
  215. package/dist/{onboarding-CX1vIkcB.js → onboarding-DQplq13s.js} +22 -22
  216. package/dist/{orchestrator-C1nWKIJS.js → orchestrator-B2rNfH4K.js} +5 -4
  217. package/dist/{orchestrator-C2ypFiPL.js → orchestrator-CERtu86A.js} +6 -5
  218. package/dist/{outbound-Bmft-5um.js → outbound-Bii3QonX.js} +4 -4
  219. package/dist/{outbound-C577aWZp.js → outbound-BpcyR1eA.js} +4 -4
  220. package/dist/{outbound-fPqdCDR4.js → outbound-C1WShhf8.js} +4 -4
  221. package/dist/{outbound-DW2eod1S.js → outbound-DKY6oeyQ.js} +4 -4
  222. package/dist/{outbound-send-deps-Y9AxHeLG.js → outbound-send-deps-CtiCh8EY.js} +1 -1
  223. package/dist/{parse-timeout-D4UO8pY_.js → parse-timeout-Bp5yQ1yW.js} +3 -3
  224. package/dist/{parse-timeout-C4WLf3Qy.js → parse-timeout-Cn7M8c5R.js} +3 -3
  225. package/dist/{path-env-DLQPf9qj.js → path-env-BAjR_Xf_.js} +1 -1
  226. package/dist/{paths-DMk3Q7yD.js → paths-BM1wivAU.js} +1 -1
  227. package/dist/{paths-CAQJvbeZ.js → paths-BqA7F6bT.js} +2 -2
  228. package/dist/{paths-Q6h5HODL.js → paths-DAbvPUdJ.js} +1 -1
  229. package/dist/{pi-auth-json-B_lKNFK6.js → pi-auth-json-BhkzZgQz.js} +5 -5
  230. package/dist/{pi-auth-json-BmdBnmlZ.js → pi-auth-json-CM3QDr9_.js} +6 -6
  231. package/dist/{pi-auth-json-WTvcP2gz.js → pi-auth-json-Dry5jXVt.js} +6 -6
  232. package/dist/{pi-auth-json-DkYqdjrV.js → pi-auth-json-qHO_AF3h.js} +6 -6
  233. package/dist/{pi-embedded-D15iww51.js → pi-embedded-CrzqUkHv.js} +548 -67
  234. package/dist/{pi-embedded-DR8Pfd05.js → pi-embedded-Dn3Ip_VN.js} +552 -71
  235. package/dist/{pi-embedded-helpers-BZ9GspxK.js → pi-embedded-helpers-BPtBCnl-.js} +1 -1
  236. package/dist/{pi-embedded-helpers-D2SLlgS4.js → pi-embedded-helpers-BSFtS9Fl.js} +1 -1
  237. package/dist/{pi-tools.policy-WdTAfqbV.js → pi-tools.policy-DuWNVoem.js} +6 -6
  238. package/dist/{pi-tools.policy-D2FusuQa.js → pi-tools.policy-DyckzpRL.js} +7 -7
  239. package/dist/{plugin-auto-enable-DhuD30Je.js → plugin-auto-enable-Btd2iEwF.js} +5 -5
  240. package/dist/{plugin-auto-enable-CtYcdTju.js → plugin-auto-enable-DvYJhgJ2.js} +5 -5
  241. package/dist/{plugin-registry-Do2D1nDk.js → plugin-registry-BOuDey4w.js} +4 -4
  242. package/dist/{plugin-registry-ME2FQAi-.js → plugin-registry-ChWHnegS.js} +4 -4
  243. package/dist/plugin-sdk/agents/local-model-installer.d.ts +11 -0
  244. package/dist/plugin-sdk/agents/openai-direct-runner.d.ts +2 -1
  245. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +40 -0
  246. package/dist/plugin-sdk/config/types.models.d.ts +1 -1
  247. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +13 -0
  248. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +13 -0
  249. package/dist/plugin-sdk/config/zod-schema.core.d.ts +6 -6
  250. package/dist/plugin-sdk/config/zod-schema.d.ts +15 -2
  251. package/dist/plugin-sdk/index.js +19 -1
  252. package/dist/plugin-sdk/infra/architecture-awareness.d.ts +47 -0
  253. package/dist/{plugins-DYcg0qBW.js → plugins-BqPGs8w-.js} +1 -1
  254. package/dist/{plugins-BOMS6J5A.js → plugins-C8FLxXbd.js} +1 -1
  255. package/dist/{plugins-cli-CoVt2ewg.js → plugins-cli-CbOP5ml6.js} +51 -51
  256. package/dist/{plugins-cli-CVFzwdmI.js → plugins-cli-dH6LKRQM.js} +53 -53
  257. package/dist/{polls-DFISjV7H.js → polls-aumqIVob.js} +5 -5
  258. package/dist/{ports-BGLuwt2Z.js → ports--opAW6yN.js} +2 -2
  259. package/dist/{ports-q535r1PZ.js → ports-B20JTuiL.js} +2 -2
  260. package/dist/{ports-B_f42zcA.js → ports-C4ACB4MP.js} +2 -2
  261. package/dist/{ports-DaVrZDUq.js → ports-D6bjtvhF.js} +2 -2
  262. package/dist/{program-context-DP3qjW7A.js → program-context-7yQclqBT.js} +35 -35
  263. package/dist/{program-8rF4C_wd.js → program-pWHcYdeO.js} +58 -58
  264. package/dist/{progress-glCgu57m.js → progress-BveMw0-_.js} +1 -1
  265. package/dist/{progress-CVLvQV_t.js → progress-qMmjCvh9.js} +1 -1
  266. package/dist/{prompt-style-BI53UVgE.js → prompt-style-DWuEFbBO.js} +1 -1
  267. package/dist/{prompt-style-D6SRiiTV.js → prompt-style-zgo1vAG1.js} +1 -1
  268. package/dist/{prompts-BmgT_kkv.js → prompts-C4v0DSTU.js} +6 -6
  269. package/dist/{prompts-Bq4QGFQM.js → prompts-D6Xc1Ddb.js} +4 -4
  270. package/dist/{pw-ai-DxNrJcCA.js → pw-ai-2XnGTARu.js} +3 -3
  271. package/dist/{pw-ai-CB-zeR7h.js → pw-ai-BUnz28XN.js} +5 -5
  272. package/dist/{pw-ai-C_1-7IgH.js → pw-ai-CRnDr120.js} +3 -3
  273. package/dist/{pw-ai-B4u5FDqO.js → pw-ai-Dq14LFsx.js} +6 -6
  274. package/dist/{qmd-manager-C_XBZ_bT.js → qmd-manager-6nqaD-q9.js} +5 -5
  275. package/dist/{qmd-manager-CO795NK4.js → qmd-manager-B6-V0aC1.js} +6 -6
  276. package/dist/{qmd-manager-CpNYgSrx.js → qmd-manager-BNL9Pl2G.js} +6 -6
  277. package/dist/{qmd-manager-Q0OSDQ-e.js → qmd-manager-CpynR-al.js} +5 -5
  278. package/dist/{register.agent-BIrXCVtQ.js → register.agent-BMxuTqFN.js} +68 -68
  279. package/dist/{register.agent-DnkOx0U8.js → register.agent-BO6_QTx6.js} +65 -65
  280. package/dist/{register.anima-B36rTHUt.js → register.anima-5SAY6OxG.js} +6 -6
  281. package/dist/{register.anima-DXT9bM9A.js → register.anima-CLGhoqmw.js} +8 -8
  282. package/dist/register.configure-Bz9pap1L.js +106 -0
  283. package/dist/register.configure-dMfZ1zcY.js +107 -0
  284. package/dist/register.maintenance-CL2eIgmC.js +102 -0
  285. package/dist/register.maintenance-k1dBbjUg.js +103 -0
  286. package/dist/{register.message-CD7xV-jz.js → register.message-Cqlz-6uM.js} +52 -52
  287. package/dist/{register.message-Brtushvp.js → register.message-Cz34rs9W.js} +50 -50
  288. package/dist/{register.onboard-23Mra3LN.js → register.onboard-Cmh46n62.js} +70 -70
  289. package/dist/{register.onboard-6CbODzQ6.js → register.onboard-_4FOFCA2.js} +67 -67
  290. package/dist/{register.setup-CqQw13Ky.js → register.setup-CHgH1mdn.js} +70 -70
  291. package/dist/{register.setup-DlVH7FKe.js → register.setup-CKY65php.js} +67 -67
  292. package/dist/{register.status-health-sessions-CduFjFDB.js → register.status-health-sessions-CNX6wp0V.js} +60 -60
  293. package/dist/{register.status-health-sessions-CxtgPKu9.js → register.status-health-sessions-DNvtWNtb.js} +63 -63
  294. package/dist/{register.subclis-CtANqD5P.js → register.subclis-Br8nY-dd.js} +23 -23
  295. package/dist/{reply-93fMzde1.js → reply-DqXPXQ20.js} +322 -77
  296. package/dist/{reply-prefix-B7Fb3fO8.js → reply-prefix-CZy4g8SY.js} +1 -1
  297. package/dist/{reply-prefix-BzdhJDqP.js → reply-prefix-DuANpRN_.js} +1 -1
  298. package/dist/{routes-CWCAc8uJ.js → routes-CAjh83-X.js} +6 -6
  299. package/dist/{routes-FT0Us8Md.js → routes-DTjggbOR.js} +6 -6
  300. package/dist/{run-CF3kHOGH.js → run-0F-ZU2kW.js} +2251 -217
  301. package/dist/{run-Cq_iTGK_.js → run-Bu-fwhic.js} +2256 -222
  302. package/dist/{run-main-BiIRcc6s.js → run-main-BcC_mt4v.js} +72 -72
  303. package/dist/{runtime-guard-D14Z_QY6.js → runtime-guard-Ccc4Qj4K.js} +1 -1
  304. package/dist/{runtime-guard-DdP10b7Q.js → runtime-guard-E3CIN3Xo.js} +1 -1
  305. package/dist/{sandbox-D-N7M7lp.js → sandbox-DSHSoUHO.js} +6 -6
  306. package/dist/{sandbox-cli-CQKz2I1X.js → sandbox-cli-BiO-r7eU.js} +22 -22
  307. package/dist/{sandbox-cli-DHNFlTo-.js → sandbox-cli-D6ikivGS.js} +22 -22
  308. package/dist/{sandbox-pBHlfFdB.js → sandbox-mSWYRXFm.js} +6 -6
  309. package/dist/{security-cli-Bdi7MuP6.js → security-cli-Bqq5Klnm.js} +25 -25
  310. package/dist/{security-cli-C3aI09uy.js → security-cli-CcBxjHGL.js} +25 -25
  311. package/dist/{semantic-CQApJNO_.js → semantic-CPfLgc8S.js} +1 -1
  312. package/dist/{semantic-9rgWUrz3.js → semantic-DLW1Sflk.js} +1 -1
  313. package/dist/{semantic-C1UN3bb9.js → semantic-jL8x-DTZ.js} +1 -1
  314. package/dist/{server-context-Yx4pgBqJ.js → server-context-DTlBzMyD.js} +7 -7
  315. package/dist/{server-context-Clykq0XU.js → server-context-EPPcxp2p.js} +8 -8
  316. package/dist/{server-node-events-B3Serk9L.js → server-node-events-BGWQiInn.js} +52 -52
  317. package/dist/{server-node-events-DgvKcH5q.js → server-node-events-BuxYvQ0t.js} +50 -50
  318. package/dist/{service-4VfZwSv1.js → service-BoUEkrUm.js} +1 -1
  319. package/dist/{service-audit-KzOtcw_V.js → service-audit-B_BC6-F8.js} +3 -3
  320. package/dist/{service-audit-Bwpoc2LD.js → service-audit-CjH8ed-j.js} +3 -3
  321. package/dist/{service-Dd1DfPia.js → service-ho_k2vjr.js} +1 -1
  322. package/dist/{session-jljC5QVG.js → session-B4wJoEqn.js} +4 -4
  323. package/dist/{session-CSmfU0D3.js → session-BF7WjlT0.js} +1 -1
  324. package/dist/{session-BMDpwIJu.js → session-BnOV0y0e.js} +6 -6
  325. package/dist/{session-C_d9uvLf.js → session-CSgjW31i.js} +5 -5
  326. package/dist/{session-BiA6jrcs.js → session-DO_miKel.js} +1 -1
  327. package/dist/{session-5YO_H-Ra.js → session-DcRzV4l4.js} +1 -1
  328. package/dist/{session-BzrnfWQ2.js → session-DlMsi6dM.js} +5 -5
  329. package/dist/{session-cost-usage-DnxtnK1E.js → session-cost-usage-BNvno_kS.js} +1 -1
  330. package/dist/{sessions-C_3wTmSA.js → sessions-B2NwIaNC.js} +6 -6
  331. package/dist/{sessions-BOzeFzuL.js → sessions-DBQx8E1H.js} +5 -5
  332. package/dist/{sessions-BmE5Z_1i.js → sessions-DxAfgPEp.js} +6 -6
  333. package/dist/{settings-cli-CZdlEmNi.js → settings-cli-CHwTEE6P.js} +72 -72
  334. package/dist/{settings-cli-DsDqNpW_.js → settings-cli-DsUKlq8R.js} +74 -74
  335. package/dist/{setup-token-Lee4gM5w.js → setup-token-BX6QI7ce.js} +26 -26
  336. package/dist/{setup-token-C8Gg1P6T.js → setup-token-CU5mami5.js} +26 -26
  337. package/dist/{shared-C-rqLtIT.js → shared-BFzq0XE1.js} +2 -2
  338. package/dist/{shared-7KwLAyAq.js → shared-D3ZAXqdo.js} +3 -3
  339. package/dist/{shell-env-CMI9f7-7.js → shell-env-BR7Sbtw1.js} +1 -1
  340. package/dist/{shell-env-HkVWMh--.js → shell-env-BZ2Wha1e.js} +1 -1
  341. package/dist/{shell-env-iPnSIi-t.js → shell-env-Bgk3WFTi.js} +1 -1
  342. package/dist/{skills-DtoVe1dS.js → skills-BT0Lx09M.js} +2 -2
  343. package/dist/{skills-4v6-kw0C.js → skills-DjVFhlQY.js} +3 -3
  344. package/dist/{skills-cli-BoasNTpZ.js → skills-cli-BX5pL-D4.js} +15 -15
  345. package/dist/{skills-cli-TeAq3fRG.js → skills-cli-wKTnuQos.js} +14 -14
  346. package/dist/{skills-install-D6_qpRjW.js → skills-install-CVWWsOf2.js} +4 -4
  347. package/dist/{skills-install-Qw2oU8L8.js → skills-install-Ye1kjpCv.js} +4 -4
  348. package/dist/{skills-status-DuLjkX2E.js → skills-status-BUKnQ3ek.js} +2 -2
  349. package/dist/{skills-status-CvH7AUoY.js → skills-status-BmZufjT1.js} +3 -3
  350. package/dist/{soul-Bt8UNmTq.js → soul-C0oc6fbP.js} +1 -1
  351. package/dist/{soul-D9k5zulC.js → soul-DEsrpMAk.js} +1 -1
  352. package/dist/{soul-BiIdv3Wp.js → soul-Doq8As4R.js} +1 -1
  353. package/dist/{soul-DQSYs-4l.js → soul-DyLtQVJh.js} +1 -1
  354. package/dist/{sqlite-BMMt7osH.js → sqlite-CFCo1Ghe.js} +2 -2
  355. package/dist/{sqlite-Cm6OqTQB.js → sqlite-DVkTX4wZ.js} +1 -1
  356. package/dist/{sqlite-CZ1vD4VS.js → sqlite-DrhFRoal.js} +2 -2
  357. package/dist/{sqlite-CpAJt-JS.js → sqlite-M5Ot9X4U.js} +1 -1
  358. package/dist/start-C-gTbKUz.js +158 -0
  359. package/dist/start-DZKfWnpD.js +157 -0
  360. package/dist/{status-COc4xMti.js → status-BN6HYR8t.js} +4 -4
  361. package/dist/{status-C_NBOv_V.js → status-BimVB8cj.js} +4 -4
  362. package/dist/{status-uakoP719.js → status-CSkpd-tb.js} +27 -27
  363. package/dist/{status-BO5BIf81.js → status-D1zupVBm.js} +24 -24
  364. package/dist/{status.update-B6Tdpk07.js → status.update-HKMS5T9H.js} +2 -2
  365. package/dist/{status.update-E9dSFk_b.js → status.update-oapjZPr_.js} +3 -3
  366. package/dist/{subagent-registry-fLI7QDKe.js → subagent-registry-D87n8mHd.js} +318 -81
  367. package/dist/{subsystem-D1AJZPgG.js → subsystem-CkjVkxc4.js} +17 -1
  368. package/dist/{subsystem-D-Xta-sj.js → subsystem-CyrIA90F.js} +17 -1
  369. package/dist/{subsystem-BAADN1B8.js → subsystem-DLVQ9bjX.js} +17 -1
  370. package/dist/{system-cli-DoLzi2Sn.js → system-cli-BRPiBm4G.js} +13 -13
  371. package/dist/{system-cli-CP7JrhR0.js → system-cli-DaNHLGRC.js} +15 -15
  372. package/dist/{systemd-6iLWJxQQ.js → systemd-CS58NHpx.js} +2 -2
  373. package/dist/{systemd-hints-C5Kfh4GW.js → systemd-hints-7HkQ202-.js} +1 -1
  374. package/dist/{systemd-linger-CxGmIy_5.js → systemd-linger-BMNvTAmy.js} +2 -2
  375. package/dist/{systemd-linger-BVwGXVS0.js → systemd-linger-C9PGBtXs.js} +2 -2
  376. package/dist/{systemd-Bx76sJ3M.js → systemd-zYTszfyU.js} +2 -2
  377. package/dist/{table-Blmz7glr.js → table-Bea_v9UU.js} +2 -2
  378. package/dist/{table-Bt7rSYC6.js → table-ohGAZZLQ.js} +1 -1
  379. package/dist/{tokens-CmlI2hSz.js → tokens-BelyD23F.js} +1 -1
  380. package/dist/{tokens-SP2Q7i59.js → tokens-nliOJNMv.js} +1 -1
  381. package/dist/{tool-images-C6cKHTbj.js → tool-images-BEiRPCYM.js} +2 -2
  382. package/dist/{tool-images-2qproko3.js → tool-images-BH8q2ZMq.js} +2 -2
  383. package/dist/{tool-images-D1HuaGdS.js → tool-images-DJrhuxOM.js} +1 -1
  384. package/dist/{tool-images-CgDT0Xzv.js → tool-images-dAVG0qoz.js} +2 -2
  385. package/dist/{tui-r4qpJhNk.js → tui-DnzqtbW3.js} +9 -9
  386. package/dist/{tui-C2eLfbhA.js → tui-FJlF9b--.js} +8 -8
  387. package/dist/{tui-cli-cLSYBQu9.js → tui-cli-BtLvABYH.js} +27 -27
  388. package/dist/{tui-cli-BgcbCtgc.js → tui-cli-Cm3G2SAN.js} +26 -26
  389. package/dist/{update-DA91za97.js → update-Cpvsdq3a.js} +3 -3
  390. package/dist/{update-CqKpX3cX.js → update-DrQkwR-M.js} +3 -3
  391. package/dist/{update-cli-DEe62XGU.js → update-cli-DpKplMO0.js} +79 -79
  392. package/dist/{update-cli-D3Ujz_cW.js → update-cli-DueHX0OM.js} +83 -83
  393. package/dist/{update-runner-DZfnquWO.js → update-runner-C7CjKcMp.js} +5 -5
  394. package/dist/{update-runner-DUl-g4mB.js → update-runner-DtqDU0xF.js} +5 -5
  395. package/dist/{utils-D1VGbO3C.js → utils-BNuEYQIN.js} +1 -1
  396. package/dist/{utils-CLYlhJuc.js → utils-CkCznJhR.js} +1 -1
  397. package/dist/{web-Di8j762D.js → web-Br9HCEvC.js} +54 -54
  398. package/dist/{web-DzSlI8A6.js → web-BxkEMATs.js} +25 -25
  399. package/dist/{web-C-cK9OCd.js → web-CPHrMWsv.js} +24 -24
  400. package/dist/web-HXy7rlIW.js +65 -0
  401. package/dist/{webhooks-cli-k3QMf7Rs.js → webhooks-cli-CdoaCUQ5.js} +11 -11
  402. package/dist/{webhooks-cli-vlEfXEKm.js → webhooks-cli-D65dKr5L.js} +12 -12
  403. package/dist/{whatsapp-actions-Hr-W8vjY.js → whatsapp-actions--CtxOhlj.js} +12 -12
  404. package/dist/{whatsapp-actions-C0tlEdLy.js → whatsapp-actions--eONuB4M.js} +14 -14
  405. package/dist/{whatsapp-actions-BJn-z76S.js → whatsapp-actions-BM0a0V4y.js} +17 -17
  406. package/dist/{whatsapp-actions-6fPRKwPV.js → whatsapp-actions-Bhz79Fgg.js} +11 -11
  407. package/dist/{widearea-dns-CtU9Fx7K.js → widearea-dns-D2VSHQ7y.js} +1 -1
  408. package/dist/{widearea-dns-CHAT20aR.js → widearea-dns-DlJrNJOg.js} +1 -1
  409. package/dist/{workspace-BFIZCnGo.js → workspace-D6JhsXVL.js} +1 -1
  410. package/dist/{ws-log-CUobU2tD.js → ws-log-Cvz4xRCD.js} +1 -1
  411. package/dist/{ws-log-CG6cvCZW.js → ws-log-DwsFDY7m.js} +1 -1
  412. package/package.json +8 -2
  413. package/scripts/install-local-qwen3-coder.sh +7 -0
  414. package/templates/HEART.md +32 -10
  415. package/templates/SOUL.md +37 -8
  416. package/templates/profiles/architect.profile.json5 +36 -0
  417. package/templates/profiles/builder.profile.json5 +36 -0
  418. package/templates/profiles/coordinator.profile.json5 +36 -0
  419. package/templates/profiles/guardian.profile.json5 +36 -0
  420. package/templates/profiles/researcher.profile.json5 +36 -0
  421. package/dist/config-cli-DfHE3KG-.js +0 -15
  422. package/dist/config-cli-fleq7-gq.js +0 -11
  423. package/dist/control-ui/assets/index-DIEQjjCN.js +0 -73
  424. package/dist/control-ui/assets/index-DIEQjjCN.js.map +0 -1
  425. package/dist/register.configure-CuzJxZmk.js +0 -107
  426. package/dist/register.configure-DCpvHX3m.js +0 -106
  427. package/dist/register.maintenance-CcxBFfv5.js +0 -103
  428. package/dist/register.maintenance-Dla0H12S.js +0 -102
  429. package/dist/start-CK6urvnN.js +0 -158
  430. package/dist/start-Cs1aPMq2.js +0 -157
  431. package/dist/web-Dybw4K7C.js +0 -65
@@ -1,49 +1,49 @@
1
1
  import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
2
  import { _ as resolveRequiredHomeDir, m as resolveStateDir, u as resolveGatewayPort } from "./paths-zhVksOvm.js";
3
- import { C as normalizeAnyChannelId, H as getChildLogger, I as shouldLogVerbose, N as logVerbose, O as setActivePluginRegistry, T as normalizeChatChannelId, V as theme, _ as CHAT_CHANNEL_ORDER, d as defaultRuntime, q as normalizeLogLevel, t as createSubsystemLogger, w as normalizeChannelId } from "./subsystem-BAADN1B8.js";
4
- import { C as shortenHomePath, D as truncateUtf16Safe, T as sliceUtf16Safe, b as resolveUserPath, d as isPlainObject, f as isRecord, i as clampInt, l as escapeRegExp, t as CONFIG_DIR, w as sleep } from "./utils-CLYlhJuc.js";
5
- import { C as supportsXHighThinking, S as resolveResponseUsageMode, _ as normalizeElevatedLevel, a as isContextOverflowError, b as normalizeUsageDisplay, c as isTransientHttpError, d as resolveBootstrapMaxChars, i as isCompactionFailureError, l as sanitizeUserFacingText, m as formatXHighModelHint, n as classifyFailoverReason, o as isFailoverErrorMessage, p as formatThinkingLevels, s as isLikelyContextOverflowError, v as normalizeReasoningLevel, x as normalizeVerboseLevel, y as normalizeThinkLevel } from "./pi-embedded-helpers-BZ9GspxK.js";
3
+ import { E as normalizeChatChannelId, H as theme, J as normalizeLogLevel, L as shouldLogVerbose, P as logVerbose, T as normalizeChannelId, U as getChildLogger, d as createNonExitingRuntime, f as defaultRuntime, k as setActivePluginRegistry, t as createSubsystemLogger, v as CHAT_CHANNEL_ORDER, w as normalizeAnyChannelId } from "./subsystem-DLVQ9bjX.js";
4
+ import { C as shortenHomePath, D as truncateUtf16Safe, T as sliceUtf16Safe, b as resolveUserPath, d as isPlainObject, f as isRecord, i as clampInt, l as escapeRegExp, t as CONFIG_DIR, w as sleep } from "./utils-CkCznJhR.js";
5
+ import { C as supportsXHighThinking, S as resolveResponseUsageMode, _ as normalizeElevatedLevel, a as isContextOverflowError, b as normalizeUsageDisplay, c as isTransientHttpError, d as resolveBootstrapMaxChars, i as isCompactionFailureError, l as sanitizeUserFacingText, m as formatXHighModelHint, n as classifyFailoverReason, o as isFailoverErrorMessage, p as formatThinkingLevels, s as isLikelyContextOverflowError, v as normalizeReasoningLevel, x as normalizeVerboseLevel, y as normalizeThinkLevel } from "./pi-embedded-helpers-BPtBCnl-.js";
6
6
  import { S as resolveThreadParentSessionKey, _ as isAcpSessionKey, a as buildAgentPeerSessionKey, b as isSubagentSessionKey, c as normalizeAccountId$1, d as resolveAgentIdFromSessionKey, f as resolveThreadSessionKeys, g as getSubagentDepth, i as buildAgentMainSessionKey, l as normalizeAgentId, n as DEFAULT_AGENT_ID, p as sanitizeAgentId, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID, u as normalizeMainKey, v as isCronRunSessionKey, x as parseAgentSessionKey } from "./session-key-DAZmp8ll.js";
7
- import { a as logDebug, c as logWarn, i as spawnWithFallback, n as runExec, r as formatSpawnError, s as logInfo, t as runCommandWithTimeout } from "./exec-BylR5qWS.js";
8
- import { c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, x as ensureAgentWorkspace } from "./agent-scope-CXxC8FFX.js";
9
- import { _ as DEFAULT_MODEL, a as isCliProvider, c as normalizeProviderId, d as resolveConfiguredModelRef, f as resolveDefaultModelForAgent, g as DEFAULT_CONTEXT_TOKENS, h as resolveThinkingDefault, m as resolveModelRefFromString, n as buildConfiguredAllowlistKeys, o as modelKey, r as buildModelAliasIndex, s as normalizeModelRef, t as buildAllowedModelSet, v as DEFAULT_PROVIDER } from "./model-selection-CY6r_3wt.js";
10
- import { C as unsetConfigValueAtPath, M as VERSION, S as setConfigValueAtPath, _ as resetConfigOverrides, b as getConfigValueAtPath, c as resolveConfigSnapshotHash, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, m as parseDurationMs, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-DaD4FsAn.js";
11
- import { t as isTruthyEnvValue } from "./env-DlTia1B4.js";
12
- import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell } from "./shell-env-iPnSIi-t.js";
13
- import { d as resolveMemorySlotDecision, l as normalizePluginsConfig, n as discoverAnimaPlugins, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveEnableState } from "./manifest-registry-qF960vMH.js";
14
- import { C as resolveThreadFlag, D as resolveAgentMainSessionKey, E as canonicalizeMainSessionAlias, F as buildGroupDisplayName, I as resolveGroupSessionKey, L as resolveConversationLabel, N as getChannelDock, P as listChannelDocks, R as normalizeChatType, S as resolveSessionResetType, T as resolveFreshSessionTotalTokens, a as readSessionUpdatedAt, b as resolveChannelResetConfig, c as updateLastRoute, d as deliveryContextFromSession, f as deliveryContextKey, h as normalizeSessionDeliveryFields, i as loadSessionStore, j as deriveSessionMetaPatch, k as resolveMainSessionKey, l as updateSessionStore, m as normalizeDeliveryContext, n as appendAssistantMessageToSessionTranscript, o as recordSessionMetaFromInbound, p as mergeDeliveryContext, t as extractDeliveryInfo, u as updateSessionStoreEntry, v as resolveSessionKey$1, w as DEFAULT_RESET_TRIGGERS, x as resolveSessionResetPolicy, y as evaluateSessionFreshness } from "./sessions-BOzeFzuL.js";
15
- import { a as resizeToJpeg, c as getFileExtension, d as kindFromMime, h as SsrFBlockedError, l as imageMimeFromFormat, m as mediaKindFromMime, n as getImageMetadata, o as detectMime, s as extensionForMime, u as isAudioFileName, v as isBlockedHostname, y as isPrivateIpAddress } from "./image-ops-Ct3GueyT.js";
16
- import { c as resolveMarkdownTableMode, d as readResponseWithLimit, f as fetchWithSsrFGuard, i as getActiveWebListener, l as MediaFetchError, m as fetchWithTimeout, n as getDefaultLocalRoots, p as bindAbortRelay, r as loadWebMedia, s as convertMarkdownTables, t as normalizePollInput, u as fetchRemoteMedia } from "./polls-DFISjV7H.js";
17
- import { _ as resolveToolProfilePolicy, a as ensureSandboxWorkspaceForSession, c as resolveSandboxConfigForAgent, d as applyOwnerOnlyToolPolicy, f as buildPluginToolGroups, g as normalizeToolName, m as expandPolicyWithPluginGroups, o as resolveSandboxRuntimeStatus, p as collectExplicitAllowlist, s as getBridgeAuthForPort, v as stripPluginOnlyAllowlist } from "./sandbox-pBHlfFdB.js";
18
- import { x as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-BaU-H9m7.js";
7
+ import { a as logDebug, c as logWarn, i as spawnWithFallback, n as runExec, r as formatSpawnError, s as logInfo, t as runCommandWithTimeout } from "./exec-ChPERQB-.js";
8
+ import { c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, x as ensureAgentWorkspace } from "./agent-scope-DQ0N_hof.js";
9
+ import { _ as DEFAULT_MODEL, a as isCliProvider, c as normalizeProviderId, d as resolveConfiguredModelRef, f as resolveDefaultModelForAgent, g as DEFAULT_CONTEXT_TOKENS, h as resolveThinkingDefault, m as resolveModelRefFromString, n as buildConfiguredAllowlistKeys, o as modelKey, r as buildModelAliasIndex, s as normalizeModelRef, t as buildAllowedModelSet, v as DEFAULT_PROVIDER } from "./model-selection-CeZMza3d.js";
10
+ import { C as unsetConfigValueAtPath, M as VERSION, S as setConfigValueAtPath, _ as resetConfigOverrides, b as getConfigValueAtPath, c as resolveConfigSnapshotHash, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, m as parseDurationMs, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-MZ5clMl4.js";
11
+ import { t as isTruthyEnvValue } from "./env-ByZjwIJR.js";
12
+ import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell } from "./shell-env-Bgk3WFTi.js";
13
+ import { d as resolveMemorySlotDecision, l as normalizePluginsConfig, n as discoverAnimaPlugins, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveEnableState } from "./manifest-registry-Cwvk5hu8.js";
14
+ import { C as resolveThreadFlag, D as resolveAgentMainSessionKey, E as canonicalizeMainSessionAlias, F as buildGroupDisplayName, I as resolveGroupSessionKey, L as resolveConversationLabel, N as getChannelDock, P as listChannelDocks, R as normalizeChatType, S as resolveSessionResetType, T as resolveFreshSessionTotalTokens, a as readSessionUpdatedAt, b as resolveChannelResetConfig, c as updateLastRoute, d as deliveryContextFromSession, f as deliveryContextKey, h as normalizeSessionDeliveryFields, i as loadSessionStore, j as deriveSessionMetaPatch, k as resolveMainSessionKey, l as updateSessionStore, m as normalizeDeliveryContext, n as appendAssistantMessageToSessionTranscript, o as recordSessionMetaFromInbound, p as mergeDeliveryContext, t as extractDeliveryInfo, u as updateSessionStoreEntry, v as resolveSessionKey$1, w as DEFAULT_RESET_TRIGGERS, x as resolveSessionResetPolicy, y as evaluateSessionFreshness } from "./sessions-DBQx8E1H.js";
15
+ import { a as resizeToJpeg, c as getFileExtension, d as kindFromMime, h as SsrFBlockedError, l as imageMimeFromFormat, m as mediaKindFromMime, n as getImageMetadata, o as detectMime, s as extensionForMime, u as isAudioFileName, v as isBlockedHostname, y as isPrivateIpAddress } from "./image-ops-vj06APeW.js";
16
+ import { c as resolveMarkdownTableMode, d as readResponseWithLimit, f as fetchWithSsrFGuard, i as getActiveWebListener, l as MediaFetchError, m as fetchWithTimeout, n as getDefaultLocalRoots, p as bindAbortRelay, r as loadWebMedia, s as convertMarkdownTables, t as normalizePollInput, u as fetchRemoteMedia } from "./polls-aumqIVob.js";
17
+ import { _ as resolveToolProfilePolicy, a as ensureSandboxWorkspaceForSession, c as resolveSandboxConfigForAgent, d as applyOwnerOnlyToolPolicy, f as buildPluginToolGroups, g as normalizeToolName, m as expandPolicyWithPluginGroups, o as resolveSandboxRuntimeStatus, p as collectExplicitAllowlist, s as getBridgeAuthForPort, v as stripPluginOnlyAllowlist } from "./sandbox-mSWYRXFm.js";
18
+ import { x as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-CVb9kRv_.js";
19
19
  import { r as resolveCliName, t as formatCliCommand } from "./command-format-BCtkuvqF.js";
20
- import { c as safeEqualSecret } from "./auth-DsC5pZ_0.js";
21
- import { a as resolveBrowserConfig, h as resolveBrowserControlAuth } from "./server-context-Yx4pgBqJ.js";
22
- import { c as assertMediaNotDataUrl, i as loadWorkspaceSkillEntries, l as assertSandboxPath, n as buildWorkspaceSkillCommandSpecs, o as resolvePluginSkillDirs, r as buildWorkspaceSkillSnapshot, u as resolveSandboxedMediaSource } from "./skills-4v6-kw0C.js";
23
- import { a as resolvePathsWithinRoot, i as DEFAULT_UPLOAD_DIR, n as getMediaDir, r as saveMediaBuffer } from "./routes-FT0Us8Md.js";
20
+ import { c as safeEqualSecret } from "./auth-CuGlMw6p.js";
21
+ import { a as resolveBrowserConfig, h as resolveBrowserControlAuth } from "./server-context-DTlBzMyD.js";
22
+ import { c as assertMediaNotDataUrl, i as loadWorkspaceSkillEntries, l as assertSandboxPath, n as buildWorkspaceSkillCommandSpecs, o as resolvePluginSkillDirs, r as buildWorkspaceSkillSnapshot, u as resolveSandboxedMediaSource } from "./skills-DjVFhlQY.js";
23
+ import { a as resolvePathsWithinRoot, i as DEFAULT_UPLOAD_DIR, n as getMediaDir, r as saveMediaBuffer } from "./routes-DTjggbOR.js";
24
24
  import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-Bv81hF2P.js";
25
- import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-CMsexA3K.js";
26
- import { n as listChannelPlugins, r as normalizeChannelId$1, t as getChannelPlugin } from "./plugins-DYcg0qBW.js";
25
+ import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-CfwNj8mC.js";
26
+ import { n as listChannelPlugins, r as normalizeChannelId$1, t as getChannelPlugin } from "./plugins-BqPGs8w-.js";
27
27
  import { a as resolveSessionTranscriptPathInDir, c as resolveStorePath$1, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions } from "./paths-Dazi-gYo.js";
28
- import { t as sanitizeToolResultImages } from "./tool-images-CgDT0Xzv.js";
29
- import { C as saveJsonFile, O as normalizeSecretInput, S as loadJsonFile, a as markAuthProfileUsed, i as markAuthProfileFailure, l as listProfilesForProvider, n as resolveAuthProfileOrder, p as ensureAuthProfileStore, r as isProfileInCooldown, s as resolveApiKeyForProfile, u as markAuthProfileGood, v as resolveAuthStorePathForDisplay, w as resolveAuthProfileDisplayLabel, y as resolveAnimaAgentDir } from "./auth-profiles-C-LuhW6c.js";
30
- import { i as resolveApiKeyForProvider, n as getCustomProviderApiKey, o as resolveEnvApiKey, r as requireApiKey, s as resolveModelAuthMode, t as getApiKeyForModel } from "./model-auth-CHB3EySM.js";
31
- import { n as SILENT_REPLY_TOKEN, r as isSilentReplyText, t as HEARTBEAT_TOKEN } from "./tokens-SP2Q7i59.js";
32
- import { $ as isVoiceCompatibleAudio, A as getLastTtsAttempt, B as resolveTtsConfig, C as formatUserTime, D as killProcessTree, E as getShellConfig, F as isTtsProviderConfigured, G as setTtsEnabled, I as maybeApplyTtsToPayload, J as textToSpeech, K as setTtsMaxLength, L as normalizeTtsAutoMode, M as getTtsProvider, N as isSummarizationEnabled, O as sanitizeBinaryOutput, P as isTtsEnabled, R as resolveTtsApiKey, S as buildSystemPromptParams, T as resolveUserTimezone, U as setLastTtsAttempt, V as resolveTtsPrefsPath, W as setSummarizationEnabled, Y as textToSpeechTelephony, _ as resolvePromptInput, at as makeBootstrapWarn, b as writeCliImages, c as appendImagePathsToPrompt, ct as createInternalHookEvent, d as cleanupResumeProcesses, f as cleanupSuspendedCliProcesses, g as parseCliJsonl, h as parseCliJson, ht as stripHeartbeatToken, i as resolveRunWorkspaceDir, j as getTtsMaxLength, k as buildTtsSystemPromptHint, l as buildCliArgs, lt as registerInternalHook, m as normalizeCliModel, mt as resolveHeartbeatPrompt, o as appendRunnerCapabilityPrompt, ot as resolveBootstrapContextForRun, p as enqueueCliRun, q as setTtsProvider, r as redactRunIdentifier, s as resolveAnimaDocsPath, t as runAnthropicDirectAgent, u as buildSystemPrompt, ut as triggerInternalHook, v as resolveSessionIdToSend, w as resolveUserTimeFormat, x as buildAgentSystemPrompt, y as resolveSystemPromptUsage, z as resolveTtsAutoMode } from "./anthropic-direct-runner-OjcTAH6g.js";
33
- import { _ as throwIfAborted, b as initializeGlobalHookRunner, c as applyReplyThreading, d as shouldSuppressMessagingToolReplies, f as createReplyToModeFilterForChannel, g as normalizeTargetForProvider, h as normalizeChannelTargetInput, l as filterMessagingToolDuplicates, m as buildTargetResolverSignature, o as normalizeReplyPayloadsForDelivery, p as resolveReplyToMode, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as isRenderablePayload, v as parseReplyDirectives, y as getGlobalHookRunner } from "./deliver-BKzX3YoN.js";
34
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-DLtBA6r5.js";
35
- import { n as resolveMemorySearchConfig } from "./manager-D8VCuzru.js";
28
+ import { t as sanitizeToolResultImages } from "./tool-images-dAVG0qoz.js";
29
+ import { C as saveJsonFile, O as normalizeSecretInput, S as loadJsonFile, a as markAuthProfileUsed, i as markAuthProfileFailure, l as listProfilesForProvider, n as resolveAuthProfileOrder, p as ensureAuthProfileStore, r as isProfileInCooldown, s as resolveApiKeyForProfile, u as markAuthProfileGood, v as resolveAuthStorePathForDisplay, w as resolveAuthProfileDisplayLabel, y as resolveAnimaAgentDir } from "./auth-profiles-XI2YBb-w.js";
30
+ import { i as resolveApiKeyForProvider, n as getCustomProviderApiKey, o as resolveEnvApiKey, r as requireApiKey, s as resolveModelAuthMode, t as getApiKeyForModel } from "./model-auth-Bs6eoQ1l.js";
31
+ import { n as SILENT_REPLY_TOKEN, r as isSilentReplyText, t as HEARTBEAT_TOKEN } from "./tokens-BelyD23F.js";
32
+ import { $ as isVoiceCompatibleAudio, A as getLastTtsAttempt, B as resolveTtsConfig, C as formatUserTime, D as killProcessTree, E as getShellConfig, F as isTtsProviderConfigured, G as setTtsEnabled, I as maybeApplyTtsToPayload, J as textToSpeech, K as setTtsMaxLength, L as normalizeTtsAutoMode, M as getTtsProvider, N as isSummarizationEnabled, O as sanitizeBinaryOutput, P as isTtsEnabled, R as resolveTtsApiKey, S as buildSystemPromptParams, T as resolveUserTimezone, U as setLastTtsAttempt, V as resolveTtsPrefsPath, W as setSummarizationEnabled, Y as textToSpeechTelephony, _ as resolvePromptInput, at as makeBootstrapWarn, b as writeCliImages, c as appendImagePathsToPrompt, ct as createInternalHookEvent, d as cleanupResumeProcesses, f as cleanupSuspendedCliProcesses, g as parseCliJsonl, h as parseCliJson, ht as stripHeartbeatToken, i as resolveRunWorkspaceDir, j as getTtsMaxLength, k as buildTtsSystemPromptHint, l as buildCliArgs, lt as registerInternalHook, m as normalizeCliModel, mt as resolveHeartbeatPrompt, o as appendRunnerCapabilityPrompt, ot as resolveBootstrapContextForRun, p as enqueueCliRun, q as setTtsProvider, r as redactRunIdentifier, s as resolveAnimaDocsPath, t as runAnthropicDirectAgent, u as buildSystemPrompt, ut as triggerInternalHook, v as resolveSessionIdToSend, w as resolveUserTimeFormat, x as buildAgentSystemPrompt, y as resolveSystemPromptUsage, z as resolveTtsAutoMode } from "./anthropic-direct-runner-BgFOZS8B.js";
33
+ import { _ as throwIfAborted, b as initializeGlobalHookRunner, c as applyReplyThreading, d as shouldSuppressMessagingToolReplies, f as createReplyToModeFilterForChannel, g as normalizeTargetForProvider, h as normalizeChannelTargetInput, l as filterMessagingToolDuplicates, m as buildTargetResolverSignature, o as normalizeReplyPayloadsForDelivery, p as resolveReplyToMode, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as isRenderablePayload, v as parseReplyDirectives, y as getGlobalHookRunner } from "./deliver-BknvuSJz.js";
34
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-DMJqELwh.js";
35
+ import { n as resolveMemorySearchConfig } from "./manager-DPojhf1D.js";
36
36
  import { c as pruneExpiredPending, d as writeJsonAtomic, l as readJsonFile, s as createAsyncLock, u as resolvePairingPaths } from "./loader-Bw2wdN4l.js";
37
- import { a as jsonResult, c as readStringArrayParam, i as imageResultFromFile, l as readStringParam, o as readNumberParam, r as imageResult } from "./common-BCW6hLGI.js";
38
- import { a as chunkText, c as resolveTextChunkLimit, i as chunkMarkdownTextWithMode, o as chunkTextWithMode, r as chunkMarkdownText, s as resolveChunkMode, t as chunkByNewline } from "./chunk-CFSle8n5.js";
39
- import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig, t as parseTimeoutMs } from "./parse-timeout-C4WLf3Qy.js";
40
- import { At as SESSION_LABEL_MAX_LENGTH, Mt as hasInterSessionUserProvenance } from "./client-BWkoTfOH.js";
41
- import { a as randomIdempotencyKey, n as callGateway } from "./call-CDPbPDAr.js";
37
+ import { a as jsonResult, c as readStringArrayParam, i as imageResultFromFile, l as readStringParam, o as readNumberParam, r as imageResult } from "./common-fIXNXke2.js";
38
+ import { a as chunkText, c as resolveTextChunkLimit, i as chunkMarkdownTextWithMode, o as chunkTextWithMode, r as chunkMarkdownText, s as resolveChunkMode, t as chunkByNewline } from "./chunk-DXTTGmeb.js";
39
+ import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig, t as parseTimeoutMs } from "./parse-timeout-Cn7M8c5R.js";
40
+ import { At as SESSION_LABEL_MAX_LENGTH, Mt as hasInterSessionUserProvenance } from "./client-DOTb2PN6.js";
41
+ import { a as randomIdempotencyKey, n as callGateway } from "./call-Bn9iKzhX.js";
42
42
  import { n as formatTimeAgo } from "./format-relative-CTQeSxQn.js";
43
- import { a as resolveSubagentToolPolicy, c as removeChannelAllowFromStoreEntry, d as resolveChannelGroupPolicy, f as resolveChannelGroupRequireMention, i as resolveGroupToolPolicy, l as upsertChannelPairingRequest, n as isToolAllowedByPolicies, o as addChannelAllowFromStoreEntry, r as resolveEffectiveToolPolicy, s as readChannelAllowFromStore, t as filterToolsByPolicy, u as listPairingChannels } from "./pi-tools.policy-WdTAfqbV.js";
44
- import { a as logoutWeb, c as readWebSelfId, f as webAuthExists, i as logWebSelfId, n as getWebAuthAgeMs } from "./auth-store-Jvgz2_l1.js";
45
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-5YtMvm7D.js";
46
- import { t as createBrowserRouteDispatcher } from "./dispatcher-DzwzLQRk.js";
43
+ import { a as resolveSubagentToolPolicy, c as removeChannelAllowFromStoreEntry, d as resolveChannelGroupPolicy, f as resolveChannelGroupRequireMention, i as resolveGroupToolPolicy, l as upsertChannelPairingRequest, n as isToolAllowedByPolicies, o as addChannelAllowFromStoreEntry, r as resolveEffectiveToolPolicy, s as readChannelAllowFromStore, t as filterToolsByPolicy, u as listPairingChannels } from "./pi-tools.policy-DuWNVoem.js";
44
+ import { a as logoutWeb, c as readWebSelfId, f as webAuthExists, i as logWebSelfId, n as getWebAuthAgeMs } from "./auth-store-CqgKZB5l.js";
45
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BGnqY7vv.js";
46
+ import { t as createBrowserRouteDispatcher } from "./dispatcher-DpEzmU7s.js";
47
47
  import { t as resolveNodeIdFromCandidates } from "./node-match-B-L-J0wq.js";
48
48
  import { t as parseAbsoluteTimeMs } from "./parse-Cinbkvj-.js";
49
49
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-CSst6nb5.js";
@@ -1843,6 +1843,14 @@ const SEED_MODELS = [
1843
1843
  contextWindow: 3e5,
1844
1844
  reasoning: false,
1845
1845
  input: ["text", "image"]
1846
+ },
1847
+ {
1848
+ id: "glm-5",
1849
+ name: "GLM-5",
1850
+ provider: "zai",
1851
+ contextWindow: 2e5,
1852
+ reasoning: true,
1853
+ input: ["text"]
1846
1854
  }
1847
1855
  ];
1848
1856
  async function ensureAnimaModelsJson(config, agentDirOverride) {
@@ -1904,7 +1912,7 @@ async function loadModelCatalog(params) {
1904
1912
  });
1905
1913
  try {
1906
1914
  await ensureAnimaModelsJson(params?.config ?? loadConfig());
1907
- await (await import("./pi-auth-json-WTvcP2gz.js")).ensurePiAuthJsonFromAuthProfiles(resolveAnimaAgentDir());
1915
+ await (await import("./pi-auth-json-Dry5jXVt.js")).ensurePiAuthJsonFromAuthProfiles(resolveAnimaAgentDir());
1908
1916
  const piSdk = await importPiSdk();
1909
1917
  const agentDir = resolveAnimaAgentDir();
1910
1918
  const { join } = await import("node:path");
@@ -4233,7 +4241,7 @@ async function createModelSelectionState(params) {
4233
4241
  }
4234
4242
  }
4235
4243
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
4236
- const { ensureAuthProfileStore } = await import("./auth-profiles-C-LuhW6c.js").then((n) => n.t);
4244
+ const { ensureAuthProfileStore } = await import("./auth-profiles-XI2YBb-w.js").then((n) => n.t);
4237
4245
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
4238
4246
  const providerKey = normalizeProviderId(provider);
4239
4247
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -8581,7 +8589,7 @@ async function routeReply(params) {
8581
8589
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
8582
8590
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
8583
8591
  try {
8584
- const { deliverOutboundPayloads } = await import("./deliver-BKzX3YoN.js").then((n) => n.n);
8592
+ const { deliverOutboundPayloads } = await import("./deliver-BknvuSJz.js").then((n) => n.n);
8585
8593
  return {
8586
8594
  ok: true,
8587
8595
  messageId: (await deliverOutboundPayloads({
@@ -9188,7 +9196,7 @@ function createWhatsAppLoginTool() {
9188
9196
  force: Type.Optional(Type.Boolean())
9189
9197
  }),
9190
9198
  execute: async (_toolCallId, args) => {
9191
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CxRI-tE2.js");
9199
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-C0eNn9SV.js");
9192
9200
  if ((args?.action ?? "start") === "wait") {
9193
9201
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
9194
9202
  return {
@@ -9634,23 +9642,23 @@ let webLoginQrPromise = null;
9634
9642
  let webChannelPromise = null;
9635
9643
  let whatsappActionsPromise = null;
9636
9644
  function loadWebOutbound() {
9637
- webOutboundPromise ??= import("./outbound-fPqdCDR4.js").then((n) => n.t);
9645
+ webOutboundPromise ??= import("./outbound-C1WShhf8.js").then((n) => n.t);
9638
9646
  return webOutboundPromise;
9639
9647
  }
9640
9648
  function loadWebLogin() {
9641
- webLoginPromise ??= import("./login-BEaBOSnw.js").then((n) => n.n);
9649
+ webLoginPromise ??= import("./login-zlt00-k4.js").then((n) => n.n);
9642
9650
  return webLoginPromise;
9643
9651
  }
9644
9652
  function loadWebLoginQr() {
9645
- webLoginQrPromise ??= import("./login-qr-CxRI-tE2.js");
9653
+ webLoginQrPromise ??= import("./login-qr-C0eNn9SV.js");
9646
9654
  return webLoginQrPromise;
9647
9655
  }
9648
9656
  function loadWebChannel() {
9649
- webChannelPromise ??= import("./web-Dybw4K7C.js");
9657
+ webChannelPromise ??= import("./web-HXy7rlIW.js");
9650
9658
  return webChannelPromise;
9651
9659
  }
9652
9660
  function loadWhatsAppActions() {
9653
- whatsappActionsPromise ??= import("./whatsapp-actions-BJn-z76S.js");
9661
+ whatsappActionsPromise ??= import("./whatsapp-actions-BM0a0V4y.js");
9654
9662
  return whatsappActionsPromise;
9655
9663
  }
9656
9664
  function createPluginRuntime() {
@@ -14547,6 +14555,63 @@ function orderCandidatesByPreference(params) {
14547
14555
 
14548
14556
  //#endregion
14549
14557
  //#region src/agents/model-fallback.ts
14558
+ const IMPLICIT_CODE_MODEL_FALLBACKS = [{
14559
+ whenProvider: "anthropic",
14560
+ provider: "openai-codex",
14561
+ model: "gpt-5.2-codex"
14562
+ }, {
14563
+ whenProvider: "anthropic",
14564
+ provider: "ollama",
14565
+ model: "qwen3-coder:latest"
14566
+ }];
14567
+ function isLocalBaseUrl(baseUrl) {
14568
+ const raw = baseUrl?.trim();
14569
+ if (!raw) return false;
14570
+ try {
14571
+ const host = new URL(raw).hostname.toLowerCase();
14572
+ return host === "localhost" || host === "127.0.0.1" || host === "0.0.0.0" || host === "::1" || host.endsWith(".local");
14573
+ } catch {
14574
+ return false;
14575
+ }
14576
+ }
14577
+ function isOpenAICompatibleApi(api) {
14578
+ const normalized = api?.trim();
14579
+ return normalized === "openai-completions" || normalized === "openai-responses";
14580
+ }
14581
+ function scoreLocalFallback(params) {
14582
+ const haystack = `${params.provider} ${params.model} ${params.name ?? ""}`.toLowerCase();
14583
+ if (haystack.includes("qwen3") && haystack.includes("coder")) return 100;
14584
+ if (haystack.includes("qwen") && haystack.includes("coder")) return 90;
14585
+ if (haystack.includes("noxsoft-tool-coder")) return 80;
14586
+ if (haystack.includes("tool-coder")) return 70;
14587
+ if (haystack.includes("coder")) return 60;
14588
+ if (haystack.includes("gpt-oss")) return 50;
14589
+ return 10;
14590
+ }
14591
+ function resolveImplicitLocalOpenAIFallbacks(cfg) {
14592
+ const providers = cfg?.models?.providers ?? {};
14593
+ const candidates = [];
14594
+ for (const [provider, entry] of Object.entries(providers)) {
14595
+ if (!isLocalBaseUrl(entry?.baseUrl) || !isOpenAICompatibleApi(entry?.api)) continue;
14596
+ for (const model of entry?.models ?? []) {
14597
+ const id = model?.id?.trim();
14598
+ if (!id) continue;
14599
+ candidates.push({
14600
+ provider,
14601
+ model: id,
14602
+ score: scoreLocalFallback({
14603
+ provider,
14604
+ model: id,
14605
+ name: model?.name
14606
+ })
14607
+ });
14608
+ }
14609
+ }
14610
+ return candidates.toSorted((a, b) => b.score - a.score || a.provider.localeCompare(b.provider) || a.model.localeCompare(b.model)).map(({ provider, model }) => ({
14611
+ provider,
14612
+ model
14613
+ }));
14614
+ }
14550
14615
  /**
14551
14616
  * Fallback abort check. Only treats explicit AbortError names as user aborts.
14552
14617
  * Message-based checks (e.g., "aborted") can mask timeouts and skip fallback.
@@ -14640,6 +14705,14 @@ function resolveFallbackCandidates(params) {
14640
14705
  if (!resolved) continue;
14641
14706
  addCandidate(resolved.ref, true);
14642
14707
  }
14708
+ if (params.fallbacksOverride === void 0) for (const implicit of IMPLICIT_CODE_MODEL_FALLBACKS) {
14709
+ if (normalizedPrimary.provider !== implicit.whenProvider) continue;
14710
+ addCandidate({
14711
+ provider: implicit.provider,
14712
+ model: implicit.model
14713
+ }, false);
14714
+ if (implicit.provider === "openai-codex") for (const localFallback of resolveImplicitLocalOpenAIFallbacks(params.cfg)) addCandidate(localFallback, false);
14715
+ }
14643
14716
  if (params.fallbacksOverride === void 0 && primary?.provider && primary.model) addCandidate({
14644
14717
  provider: primary.provider,
14645
14718
  model: primary.model
@@ -27351,10 +27424,80 @@ async function runGeminiDirectAgent(params) {
27351
27424
  };
27352
27425
  }
27353
27426
 
27427
+ //#endregion
27428
+ //#region src/agents/local-model-installer.ts
27429
+ const DEFAULT_LOCAL_OLLAMA_MODEL = "qwen3-coder:latest";
27430
+ const installPromises = /* @__PURE__ */ new Map();
27431
+ function createInstallerError(message, cause) {
27432
+ const err = new Error(message);
27433
+ if (cause !== void 0) err.cause = cause;
27434
+ return err;
27435
+ }
27436
+ async function isOllamaModelInstalled(model = DEFAULT_LOCAL_OLLAMA_MODEL) {
27437
+ try {
27438
+ await runExec("ollama", ["show", model], 1e4);
27439
+ return true;
27440
+ } catch {
27441
+ return false;
27442
+ }
27443
+ }
27444
+ async function ensureLocalOllamaModelInstalled(params) {
27445
+ const model = params?.model?.trim() || DEFAULT_LOCAL_OLLAMA_MODEL;
27446
+ const timeoutMs = params?.timeoutMs ?? 72e5;
27447
+ const runtime = params?.runtime ?? createNonExitingRuntime();
27448
+ const existing = installPromises.get(model);
27449
+ if (existing) return await existing;
27450
+ const promise = (async () => {
27451
+ try {
27452
+ await runExec("ollama", ["list"], 1e4);
27453
+ } catch (error) {
27454
+ throw createInstallerError("Ollama is required but no local Ollama server is reachable. Start Ollama and retry.", error);
27455
+ }
27456
+ if (await isOllamaModelInstalled(model)) return {
27457
+ installed: true,
27458
+ pulled: false
27459
+ };
27460
+ runtime.log(`Installing local model via Ollama: ${model}`);
27461
+ const result = await runCommandWithTimeout([
27462
+ "ollama",
27463
+ "pull",
27464
+ model
27465
+ ], { timeoutMs });
27466
+ if (result.code !== 0) {
27467
+ const detail = (result.stderr || result.stdout).trim();
27468
+ throw createInstallerError(`Failed to install local Ollama model "${model}".${detail ? ` ${detail}` : ""}`);
27469
+ }
27470
+ if (!await isOllamaModelInstalled(model)) throw createInstallerError(`Ollama reported success, but model "${model}" is still missing.`);
27471
+ runtime.log(`Local model ready: ${model}`);
27472
+ return {
27473
+ installed: true,
27474
+ pulled: true
27475
+ };
27476
+ })();
27477
+ installPromises.set(model, promise);
27478
+ try {
27479
+ return await promise;
27480
+ } finally {
27481
+ installPromises.delete(model);
27482
+ }
27483
+ }
27484
+
27354
27485
  //#endregion
27355
27486
  //#region src/agents/openai-direct-runner.ts
27356
27487
  const log$2 = createSubsystemLogger("agent/openai-direct");
27357
27488
  const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
27489
+ const DEFAULT_PROVIDER_BASE_URLS = {
27490
+ openai: DEFAULT_OPENAI_BASE_URL,
27491
+ minimax: "https://api.minimax.io/v1",
27492
+ ollama: "http://127.0.0.1:11434/v1",
27493
+ lmstudio: "http://127.0.0.1:1234/v1"
27494
+ };
27495
+ const PROVIDER_API_KEY_HINTS = {
27496
+ openai: "OPENAI_API_KEY",
27497
+ minimax: "MINIMAX_API_KEY",
27498
+ ollama: "OLLAMA_API_KEY",
27499
+ lmstudio: "LMSTUDIO_API_KEY"
27500
+ };
27358
27501
  const MODEL_MAP = {
27359
27502
  "gpt-5.4": "gpt-5.4",
27360
27503
  "gpt-5.2": "gpt-5.2",
@@ -27392,6 +27535,10 @@ function resolveModel(model) {
27392
27535
  const key = (model ?? "default").trim().toLowerCase() || "default";
27393
27536
  return MODEL_MAP[key] ?? key;
27394
27537
  }
27538
+ function isToolUnsupportedError(body) {
27539
+ const normalized = body.toLowerCase();
27540
+ return normalized.includes("does not support tools") || normalized.includes("tool is not supported");
27541
+ }
27395
27542
  /**
27396
27543
  * Clean a JSON Schema for OpenAI's function calling.
27397
27544
  * OpenAI is stricter than most — no unsupported keywords.
@@ -27418,8 +27565,10 @@ function cleanSchemaForOpenAI(schema) {
27418
27565
  */
27419
27566
  async function runOpenAIDirectAgent(params) {
27420
27567
  const started = Date.now();
27568
+ const provider = (params.provider ?? "openai").trim() || "openai";
27421
27569
  const resolvedModel = resolveModel(params.model);
27422
- log$2.info(`direct api exec: model=${resolvedModel} promptChars=${params.prompt.length}`);
27570
+ if (provider === "ollama" && resolvedModel === DEFAULT_LOCAL_OLLAMA_MODEL) await ensureLocalOllamaModelInstalled({ model: resolvedModel });
27571
+ log$2.info(`direct api exec: provider=${provider} model=${resolvedModel} promptChars=${params.prompt.length}`);
27423
27572
  const workspaceDir = resolveRunWorkspaceDir({
27424
27573
  workspaceDir: params.workspaceDir,
27425
27574
  sessionKey: params.sessionKey,
@@ -27430,7 +27579,7 @@ async function runOpenAIDirectAgent(params) {
27430
27579
  config: params.config,
27431
27580
  workspaceDir,
27432
27581
  sessionKey: params.sessionKey,
27433
- modelProvider: "openai",
27582
+ modelProvider: provider,
27434
27583
  modelId: resolvedModel
27435
27584
  });
27436
27585
  const openaiTools = executableTools.map((t) => ({
@@ -27476,7 +27625,7 @@ async function runOpenAIDirectAgent(params) {
27476
27625
  docsPath: docsPath ?? void 0,
27477
27626
  tools: executableTools,
27478
27627
  contextFiles,
27479
- modelDisplay: `openai/${resolvedModel}`,
27628
+ modelDisplay: `${provider}/${resolvedModel}`,
27480
27629
  agentId: sessionAgentId
27481
27630
  });
27482
27631
  let history = await loadSessionHistory(params.sessionFile);
@@ -27500,7 +27649,8 @@ async function runOpenAIDirectAgent(params) {
27500
27649
  let isDone = false;
27501
27650
  let loopCount = 0;
27502
27651
  const maxLoops = 20;
27503
- const baseUrl = params.config?.models?.providers?.openai?.baseUrl?.trim() || DEFAULT_OPENAI_BASE_URL;
27652
+ let toolUseEnabled = openaiTools.length > 0;
27653
+ const baseUrl = params.config?.models?.providers?.[provider]?.baseUrl?.trim() || params.config?.models?.providers?.openai?.baseUrl?.trim() || DEFAULT_PROVIDER_BASE_URLS[provider] || DEFAULT_OPENAI_BASE_URL;
27504
27654
  while (!isDone && loopCount < maxLoops) {
27505
27655
  loopCount++;
27506
27656
  const requestBody = {
@@ -27510,7 +27660,7 @@ async function runOpenAIDirectAgent(params) {
27510
27660
  temperature: 1,
27511
27661
  stream: true
27512
27662
  };
27513
- if (openaiTools.length > 0) {
27663
+ if (toolUseEnabled && openaiTools.length > 0) {
27514
27664
  requestBody.tools = openaiTools;
27515
27665
  requestBody.tool_choice = "auto";
27516
27666
  }
@@ -27522,8 +27672,8 @@ async function runOpenAIDirectAgent(params) {
27522
27672
  method: "POST",
27523
27673
  headers: {
27524
27674
  "Content-Type": "application/json",
27525
- Authorization: `Bearer ${params.apiKey}`,
27526
- "User-Agent": `anima/7.0.0 (openai-direct-runner; ${os.platform()})`
27675
+ "User-Agent": `anima/7.0.0 (openai-direct-runner; ${os.platform()})`,
27676
+ ...params.apiKey?.trim() ? { Authorization: `Bearer ${params.apiKey}` } : {}
27527
27677
  },
27528
27678
  body: JSON.stringify(requestBody),
27529
27679
  signal: controller.signal
@@ -27531,11 +27681,20 @@ async function runOpenAIDirectAgent(params) {
27531
27681
  clearTimeout(timeoutHandle);
27532
27682
  if (!response.ok) {
27533
27683
  const body = await response.text().catch(() => "");
27684
+ if (response.status === 400 && toolUseEnabled && isToolUnsupportedError(body)) {
27685
+ log$2.warn("openai-compatible provider rejected tools; retrying without tools", {
27686
+ provider,
27687
+ model: resolvedModel
27688
+ });
27689
+ toolUseEnabled = false;
27690
+ continue;
27691
+ }
27534
27692
  const isAuth = response.status === 401 || response.status === 403;
27535
27693
  const isRateLimit = response.status === 429;
27536
27694
  const rateHint = isRateLimit ? " — rate limit hit, will retry next heartbeat." : "";
27537
- const authHint = isAuth ? "API key may be invalid. Check OPENAI_API_KEY environment variable." : "";
27538
- log$2.error(`openai api error: HTTP ${response.status}${authHint}${rateHint}`, {
27695
+ const apiKeyHint = PROVIDER_API_KEY_HINTS[provider] ?? "API key";
27696
+ const authHint = isAuth ? ` API key may be invalid. Check ${apiKeyHint}.` : "";
27697
+ log$2.error(`${provider} api error: HTTP ${response.status}${authHint}${rateHint}`, {
27539
27698
  status: response.status,
27540
27699
  body: body.slice(0, 500)
27541
27700
  });
@@ -27663,7 +27822,8 @@ async function runOpenAIDirectAgent(params) {
27663
27822
  log$2.info(`openai api complete: ${durationMs}ms`, {
27664
27823
  inputTokens: totalInputTokens,
27665
27824
  outputTokens: totalOutputTokens,
27666
- model: resolvedModel
27825
+ model: resolvedModel,
27826
+ provider
27667
27827
  });
27668
27828
  return {
27669
27829
  status: "completed",
@@ -27673,7 +27833,7 @@ async function runOpenAIDirectAgent(params) {
27673
27833
  durationMs,
27674
27834
  agentMeta: {
27675
27835
  model: resolvedModel,
27676
- provider: "openai",
27836
+ provider,
27677
27837
  usage: {
27678
27838
  input: totalInputTokens,
27679
27839
  output: totalOutputTokens
@@ -27705,10 +27865,22 @@ async function emitAgentEvent(params, stream, data) {
27705
27865
  data
27706
27866
  });
27707
27867
  }
27868
+ function resolveProviderConfig(provider, config) {
27869
+ const providers = config?.models?.providers ?? {};
27870
+ const direct = providers[provider];
27871
+ if (direct) return direct;
27872
+ const normalized = normalizeProviderId(provider);
27873
+ return Object.entries(providers).find(([key]) => normalizeProviderId(key) === normalized)?.[1];
27874
+ }
27875
+ function isOpenAICompatibleProviderConfig(entry) {
27876
+ const api = entry?.api?.trim();
27877
+ return api === "openai-completions" || api === "openai-responses";
27878
+ }
27708
27879
  function resolveDirectAuthProvider(provider) {
27709
27880
  if (provider === "anthropic" || provider === "claude") return "anthropic";
27710
27881
  if (provider === "google" || provider === "gemini") return "google";
27711
27882
  if (provider === "openai") return "openai";
27883
+ if (provider === "minimax") return "minimax";
27712
27884
  return null;
27713
27885
  }
27714
27886
  function resolveProfileFailureReason(result) {
@@ -27800,7 +27972,7 @@ async function runDirectWithProfileFallback(params) {
27800
27972
  let lastResult = null;
27801
27973
  for (;;) {
27802
27974
  const auth = await resolveDirectProviderAuth({
27803
- provider: params.directProvider,
27975
+ provider: params.authProvider,
27804
27976
  config: params.config,
27805
27977
  agentDir: params.agentDir,
27806
27978
  preferredProfile,
@@ -27812,7 +27984,7 @@ async function runDirectWithProfileFallback(params) {
27812
27984
  meta: {
27813
27985
  durationMs: 0,
27814
27986
  error: {
27815
- message: `Auth fallback loop detected for ${params.directProvider}.`,
27987
+ message: `Auth fallback loop detected for ${params.authProvider}.`,
27816
27988
  kind: "unknown"
27817
27989
  }
27818
27990
  }
@@ -27835,11 +28007,12 @@ async function runDirectWithProfileFallback(params) {
27835
28007
  onPartialReply: params.emitPartial,
27836
28008
  onAssistantMessageStart: params.onAssistantMessageStart
27837
28009
  };
27838
- const result = params.directProvider === "anthropic" ? await runAnthropicDirectAgent({
28010
+ const result = params.runnerKind === "anthropic" ? await runAnthropicDirectAgent({
27839
28011
  ...directRunParams,
27840
28012
  token: auth.apiKey ?? ""
27841
- }) : params.directProvider === "openai" ? await runOpenAIDirectAgent({
28013
+ }) : params.runnerKind === "openai-compatible" ? await runOpenAIDirectAgent({
27842
28014
  ...directRunParams,
28015
+ provider: params.openAIProvider ?? params.authProvider,
27843
28016
  apiKey: auth.apiKey ?? ""
27844
28017
  }) : await runGeminiDirectAgent({
27845
28018
  ...directRunParams,
@@ -27854,7 +28027,7 @@ async function runDirectWithProfileFallback(params) {
27854
28027
  });
27855
28028
  await markAuthProfileGood({
27856
28029
  store,
27857
- provider: params.directProvider,
28030
+ provider: params.authProvider,
27858
28031
  profileId: auth.profileId,
27859
28032
  agentDir: params.agentDir
27860
28033
  });
@@ -27876,22 +28049,32 @@ async function runDirectWithProfileFallback(params) {
27876
28049
  }
27877
28050
  async function resolveDirectStrategy(provider, config, agentDir) {
27878
28051
  const directProvider = resolveDirectAuthProvider(provider);
27879
- if (!directProvider) return null;
27880
- try {
28052
+ if (directProvider) try {
27881
28053
  const auth = await resolveDirectProviderAuth({
27882
28054
  provider: directProvider,
27883
28055
  config,
27884
28056
  agentDir,
27885
28057
  store: ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false })
27886
28058
  });
27887
- if (auth.apiKey) {
28059
+ if (auth.apiKey !== void 0) {
27888
28060
  if (directProvider === "anthropic" && auth.apiKey.startsWith("sk-ant-oat01-")) return null;
27889
28061
  return {
27890
- kind: directProvider === "google" ? "gemini-direct" : directProvider === "openai" ? "openai-direct" : "anthropic-direct",
28062
+ kind: directProvider === "google" ? "gemini-direct" : directProvider === "openai" || directProvider === "minimax" ? "openai-direct" : "anthropic-direct",
27891
28063
  provider
27892
28064
  };
27893
28065
  }
27894
28066
  } catch {}
28067
+ if (isOpenAICompatibleProviderConfig(resolveProviderConfig(provider, config))) try {
28068
+ if ((await resolveApiKeyForProvider({
28069
+ provider,
28070
+ cfg: config,
28071
+ agentDir,
28072
+ store: ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false })
28073
+ })).apiKey !== void 0) return {
28074
+ kind: "openai-direct",
28075
+ provider
28076
+ };
28077
+ } catch {}
27895
28078
  return null;
27896
28079
  }
27897
28080
  async function resolveNoxSoftRunnerStrategy(params) {
@@ -27922,11 +28105,33 @@ async function runNoxSoftEmbeddedAgent(params) {
27922
28105
  await params.onPartialReply?.(payload);
27923
28106
  await emitAgentEvent(params, "assistant", { text: payload.text });
27924
28107
  };
27925
- const strategy = await resolveNoxSoftRunnerStrategy({
27926
- provider: params.provider,
27927
- config: params.config,
27928
- agentDir: params.agentDir
27929
- });
28108
+ let strategy;
28109
+ try {
28110
+ strategy = await resolveNoxSoftRunnerStrategy({
28111
+ provider: params.provider,
28112
+ config: params.config,
28113
+ agentDir: params.agentDir
28114
+ });
28115
+ } catch (error) {
28116
+ const requestedProvider = normalizedRequestedRef?.provider ?? provider;
28117
+ const requestedModel = normalizedRequestedRef?.model;
28118
+ const failover = coerceToFailoverError(error, {
28119
+ provider: requestedProvider,
28120
+ model: requestedModel
28121
+ }) ?? new FailoverError(error instanceof Error ? error.message : String(error), {
28122
+ reason: classifyFailoverReason(error instanceof Error ? error.message : String(error)) ?? "unknown",
28123
+ provider: requestedProvider,
28124
+ model: requestedModel,
28125
+ cause: error instanceof Error ? error : void 0
28126
+ });
28127
+ await emitAgentEvent(params, "lifecycle", {
28128
+ phase: "error",
28129
+ startedAt,
28130
+ endedAt: Date.now(),
28131
+ error: failover.message
28132
+ });
28133
+ throw failover;
28134
+ }
27930
28135
  if (strategy.kind === "anthropic-direct") {
27931
28136
  await emitAgentEvent(params, "lifecycle", {
27932
28137
  phase: "start",
@@ -27936,7 +28141,8 @@ async function runNoxSoftEmbeddedAgent(params) {
27936
28141
  const result = normalizeRunnerResult({
27937
28142
  result: await runDirectWithProfileFallback({
27938
28143
  ...params,
27939
- directProvider: "anthropic",
28144
+ authProvider: "anthropic",
28145
+ runnerKind: "anthropic",
27940
28146
  timeoutMs,
27941
28147
  runId,
27942
28148
  emitPartial
@@ -27983,7 +28189,8 @@ async function runNoxSoftEmbeddedAgent(params) {
27983
28189
  const result = normalizeRunnerResult({
27984
28190
  result: await runDirectWithProfileFallback({
27985
28191
  ...params,
27986
- directProvider: "google",
28192
+ authProvider: "google",
28193
+ runnerKind: "google",
27987
28194
  timeoutMs,
27988
28195
  runId,
27989
28196
  emitPartial
@@ -28030,7 +28237,9 @@ async function runNoxSoftEmbeddedAgent(params) {
28030
28237
  const result = normalizeRunnerResult({
28031
28238
  result: await runDirectWithProfileFallback({
28032
28239
  ...params,
28033
- directProvider: "openai",
28240
+ authProvider: provider === "minimax" ? "minimax" : provider === "openai" ? "openai" : provider,
28241
+ runnerKind: "openai-compatible",
28242
+ openAIProvider: provider,
28034
28243
  timeoutMs,
28035
28244
  runId,
28036
28245
  emitPartial
@@ -36384,7 +36593,7 @@ async function deliverSessionMaintenanceWarning(params) {
36384
36593
  return;
36385
36594
  }
36386
36595
  try {
36387
- const { deliverOutboundPayloads } = await import("./deliver-BKzX3YoN.js").then((n) => n.n);
36596
+ const { deliverOutboundPayloads } = await import("./deliver-BknvuSJz.js").then((n) => n.n);
36388
36597
  await deliverOutboundPayloads({
36389
36598
  cfg: params.cfg,
36390
36599
  channel,
@@ -36945,6 +37154,30 @@ function createTypingController(params) {
36945
37154
 
36946
37155
  //#endregion
36947
37156
  //#region src/auto-reply/reply/get-reply.ts
37157
+ /** Surfaces that represent real-time conversation (chat, DMs, voice). */
37158
+ const CONVERSATIONAL_CHAT_TYPES = new Set([
37159
+ "private",
37160
+ "group",
37161
+ "supergroup",
37162
+ "channel",
37163
+ "dm",
37164
+ "chat"
37165
+ ]);
37166
+ /**
37167
+ * Returns true when the inbound message originates from a real-time
37168
+ * conversational surface (NoxSoft chat, Telegram, WhatsApp, etc.)
37169
+ * rather than a programmatic/execution context (gateway API, heartbeat, CLI).
37170
+ */
37171
+ function isConversationalChannel(ctx) {
37172
+ if (ctx.CommandSource === "native") return false;
37173
+ const provider = ctx.Provider?.toLowerCase() ?? "";
37174
+ if (provider === "telegram" || provider === "whatsapp" || provider === "noxsoft") return true;
37175
+ const chatType = ctx.ChatType?.toLowerCase() ?? "";
37176
+ if (CONVERSATIONAL_CHAT_TYPES.has(chatType)) return true;
37177
+ const channel = typeof ctx.OriginatingChannel === "string" ? ctx.OriginatingChannel : "";
37178
+ if (channel && channel !== "gateway" && channel !== "cli") return true;
37179
+ return false;
37180
+ }
36948
37181
  function mergeSkillFilters(channelFilter, agentFilter) {
36949
37182
  const normalize = (list) => {
36950
37183
  if (!Array.isArray(list)) return;
@@ -36993,6 +37226,18 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
36993
37226
  hasResolvedHeartbeatModelOverride = true;
36994
37227
  }
36995
37228
  }
37229
+ if (!opts?.isHeartbeat && !hasResolvedHeartbeatModelOverride && isConversationalChannel(ctx)) {
37230
+ const convRaw = agentCfg?.conversationalModel?.trim() ?? "";
37231
+ const convRef = convRaw ? resolveModelRefFromString({
37232
+ raw: convRaw,
37233
+ defaultProvider,
37234
+ aliasIndex
37235
+ }) : null;
37236
+ if (convRef) {
37237
+ provider = convRef.ref.provider;
37238
+ model = convRef.ref.model;
37239
+ }
37240
+ }
36996
37241
  const workspaceDir = (await ensureAgentWorkspace({
36997
37242
  dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
36998
37243
  ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
@@ -37180,4 +37425,4 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
37180
37425
  }
37181
37426
 
37182
37427
  //#endregion
37183
- export { archiveFileOnDisk as $, resolveIdentityName as $n, CHANNEL_TARGET_DESCRIPTION as $t, getQueueSize as A, hasControlCommand as An, applyTemplate as Ar, deferGatewayRestartUntilIdle as At, sniffMimeFromBase64 as B, subagent_registry_exports as Bn, readRestartSentinel as Bt, verifyNodeToken as C, stopDiagnosticHeartbeat as Cn, DEFAULT_INPUT_PDF_MAX_PIXELS as Cr, loadProviderStore as Ct, registerSkillsChangeListener as D, formatInboundEnvelope as Dn, extractImageContentFromSource as Dr, formatUsageWindowSummary as Dt, getSkillsSnapshotVersion as E, resolveInboundDebounceMs as En, extractFileContentFromSource as Er, formatUsageReportLines as Et, abortEmbeddedPiRun as F, buildMentionRegexes as Fn, setGatewaySigusr1RestartPolicy as Ft, canonicalizeSpawnedByForAgent as G, CommandLane as Gn, normalizeCronJobPatch as Gt, setHeartbeatWakeHandler as H, readLatestAssistantReply as Hn, trimLogTail as Ht, waitForEmbeddedPiRunEnd as I, normalizeMentionText as In, setPreRestartDeferralCheck as It, loadCombinedSessionStoreForGateway as J, getAgentRunContext as Jn, normalizeOptionalText as Jt, listAgentsForGateway as K, clearAgentRunContext as Kn, inferLegacyName as Kt, runNoxSoftEmbeddedAgent as L, countActiveDescendantRuns as Ln, consumeRestartSentinel as Lt, resetAllLanes as M, isAbortTrigger as Mn, resolveAgentTimeoutMs as Mr, isGatewaySigusr1RestartExternallyAllowed as Mt, setCommandLaneConcurrency as N, stopSubagentsForRequester as Nn, markGatewaySigusr1RestartHandled as Nt, clearSessionQueues as O, resolveEnvelopeFormatOptions as On, normalizeMimeList as Or, resolveUsageProviderId as Ot, waitForActiveTasks as P, CURRENT_MESSAGE_MARKER as Pn, scheduleGatewaySigusr1Restart as Pt, resolveSessionModelRef as Q, resolveEffectiveMessagesConfig as Qn, CHANNEL_TARGETS_DESCRIPTION as Qt, applyToolPolicyPipeline as R, initSubagentRegistry as Rn, formatDoctorNonInteractiveHint as Rt, updatePairedNodeMetadata as S, startDiagnosticHeartbeat as Sn, DEFAULT_INPUT_PDF_MAX_PAGES as Sr, loadProviderUsageSummary as St, verifyPairingToken as T, createInboundDebouncer as Tn, DEFAULT_INPUT_TIMEOUT_MS as Tr, saveProviderStore as Tt, createAnimaTools as U, AGENT_LANE_NESTED as Un, writeRestartSentinel as Ut, requestHeartbeatNow as V, runSubagentAnnounceFlow as Vn, summarizeRestartSentinel as Vt, resolveAnnounceTargetFromKey as W, AGENT_LANE_SUBAGENT as Wn, normalizeCronJobCreate as Wt, pruneLegacyStoreKeys as X, registerAgentRunContext as Xn, normalizeRequiredName as Xt, loadSessionEntry as Y, onAgentEvent as Yn, normalizePayloadToSystemText as Yt, resolveGatewaySessionStoreTarget as Z, resolveAgentIdentity as Zn, migrateLegacyCronPayload as Zt, approveNodePairing as _, dispatchInboundMessage as _n, DEFAULT_INPUT_FILE_MAX_CHARS as _r, resetDirectoryCache as _t, buildChannelSummary as a, persistBrowserProxyFiles as an, applyVerboseOverride as ar, stripEnvelopeFromMessages as at, renamePairedNode as b, extractShortModelName as bn, DEFAULT_INPUT_IMAGE_MIMES as br, runWithModelFallback as bt, normalizeSendPolicy as c, buildAgentSessionKey as cn, isSystemEventContextChanged as cr, parseActivationCommand as ct, primeRemoteSkillsCache as d, resolvePreferredAccountId as dn, loadModelCatalog as dr, resolveOutboundSessionRoute as dt, buildSafeExternalPrompt as en, resolveIdentityNamePrefix as er, archiveSessionTranscripts as et, recordRemoteNodeInfo as f, buildPairingReply as fn, ensureAnimaModelsJson as fr, resolveHeartbeatDeliveryTarget as ft, setSkillsRemoteRegistry as g, dispatchReplyWithBufferedBlockDispatcher as gn, DEFAULT_INPUT_FILE_MAX_BYTES as gr, formatTargetDisplay as gt, removeRemoteNodeInfo as h, shouldAckReactionForWhatsApp as hn, describeFailoverError as hr, resolveSessionDeliveryTarget as ht, setCliSessionId as i, applyBrowserProxyPaths as in, applyModelOverrideToSessionEntry as ir, resolveSessionTranscriptCandidates as it, getTotalQueueSize as j, shouldComputeCommandAuthorized as jn, finalizeInboundContext as jr, emitGatewayRestart as jt, getActiveTaskCount as k, formatZonedTimestamp as kn, estimateBase64DecodedBytes as kr, consumeGatewaySigusr1RestartAuthorization as kt, resolveSendPolicy as l, resolveAgentRoute as ln, peekSystemEventEntries as lr, runMessageAction as lt, refreshRemoteNodeBins as m, recordChannelActivity as mn, registerUnhandledRejectionHandler as mr, resolveOutboundTarget as mt, BARE_SESSION_RESET_PROMPT as n, getHookType as nn, lookupContextTokens as nr, readSessionMessages as nt, buildChannelAccountSnapshot as o, getPluginToolMeta as on, parseVerboseOverride as or, resolveCommitHash as ot, refreshRemoteBinsForConnectedNodes as p, getChannelActivity as pn, installUnhandledRejectionHandler as pr, resolveHeartbeatSenderContext as pt, listSessionsFromStore as q, emitAgentEvent$1 as qn, normalizeOptionalAgentId as qt, getCliSessionId as r, isExternalHookSession as rn, clearSessionAuthProfileOverride as rr, readSessionPreviewItemsFromTranscript as rt, formatChannelAllowFrom as s, loadAnimaPlugins as sn, enqueueSystemEvent as sr, normalizeGroupActivation as st, getReplyFromConfig as t, detectSuspiciousPatterns as tn, resolveMessagePrefix as tr, capArrayByJsonBytes as tt, getRemoteSkillEligibility as u, buildChannelAccountBindings as un, peekSystemEvents as ur, ensureOutboundSessionEntry as ut, listNodePairing as v, createReplyDispatcher as vn, DEFAULT_INPUT_FILE_MIMES as vr, resolveMessageChannelSelection as vt, generatePairingToken as w, isDiagnosticsEnabled as wn, DEFAULT_INPUT_PDF_MIN_TEXT_CHARS as wr, maskApiKey as wt, requestNodePairing as x, createDedupeCache as xn, DEFAULT_INPUT_MAX_REDIRECTS as xr, resolveWorkingModeModelSelection as xt, rejectNodePairing as y, getTotalPendingReplies as yn, DEFAULT_INPUT_IMAGE_MAX_BYTES as yr, CHANNEL_MESSAGE_ACTION_NAMES as yt, buildDefaultToolPolicyPipelineSteps as z, listDescendantRunsForRequester as zn, formatRestartSentinelMessage as zt };
37428
+ export { resolveGatewaySessionStoreTarget as $, resolveAgentIdentity as $n, migrateLegacyCronPayload as $t, getQueueSize as A, resolveEnvelopeFormatOptions as An, normalizeMimeList as Ar, resolveUsageProviderId as At, applyToolPolicyPipeline as B, initSubagentRegistry as Bn, formatDoctorNonInteractiveHint as Bt, verifyNodeToken as C, createDedupeCache as Cn, DEFAULT_INPUT_MAX_REDIRECTS as Cr, resolveWorkingModeModelSelection as Ct, registerSkillsChangeListener as D, createInboundDebouncer as Dn, DEFAULT_INPUT_TIMEOUT_MS as Dr, saveProviderStore as Dt, getSkillsSnapshotVersion as E, isDiagnosticsEnabled as En, DEFAULT_INPUT_PDF_MIN_TEXT_CHARS as Er, maskApiKey as Et, abortEmbeddedPiRun as F, stopSubagentsForRequester as Fn, markGatewaySigusr1RestartHandled as Ft, createAnimaTools as G, AGENT_LANE_NESTED as Gn, writeRestartSentinel as Gt, sniffMimeFromBase64 as H, subagent_registry_exports as Hn, readRestartSentinel as Ht, waitForEmbeddedPiRunEnd as I, CURRENT_MESSAGE_MARKER as In, scheduleGatewaySigusr1Restart as It, listAgentsForGateway as J, clearAgentRunContext as Jn, inferLegacyName as Jt, resolveAnnounceTargetFromKey as K, AGENT_LANE_SUBAGENT as Kn, normalizeCronJobCreate as Kt, runNoxSoftEmbeddedAgent as L, buildMentionRegexes as Ln, setGatewaySigusr1RestartPolicy as Lt, resetAllLanes as M, hasControlCommand as Mn, applyTemplate as Mr, deferGatewayRestartUntilIdle as Mt, setCommandLaneConcurrency as N, shouldComputeCommandAuthorized as Nn, finalizeInboundContext as Nr, emitGatewayRestart as Nt, clearSessionQueues as O, resolveInboundDebounceMs as On, extractFileContentFromSource as Or, formatUsageReportLines as Ot, waitForActiveTasks as P, isAbortTrigger as Pn, resolveAgentTimeoutMs as Pr, isGatewaySigusr1RestartExternallyAllowed as Pt, pruneLegacyStoreKeys as Q, registerAgentRunContext as Qn, normalizeRequiredName as Qt, DEFAULT_LOCAL_OLLAMA_MODEL as R, normalizeMentionText as Rn, setPreRestartDeferralCheck as Rt, updatePairedNodeMetadata as S, extractShortModelName as Sn, DEFAULT_INPUT_IMAGE_MIMES as Sr, runWithModelFallback as St, verifyPairingToken as T, stopDiagnosticHeartbeat as Tn, DEFAULT_INPUT_PDF_MAX_PIXELS as Tr, loadProviderStore as Tt, requestHeartbeatNow as U, runSubagentAnnounceFlow as Un, summarizeRestartSentinel as Ut, buildDefaultToolPolicyPipelineSteps as V, listDescendantRunsForRequester as Vn, formatRestartSentinelMessage as Vt, setHeartbeatWakeHandler as W, readLatestAssistantReply as Wn, trimLogTail as Wt, loadCombinedSessionStoreForGateway as X, getAgentRunContext as Xn, normalizeOptionalText as Xt, listSessionsFromStore as Y, emitAgentEvent$1 as Yn, normalizeOptionalAgentId as Yt, loadSessionEntry as Z, onAgentEvent as Zn, normalizePayloadToSystemText as Zt, approveNodePairing as _, shouldAckReactionForWhatsApp as _n, describeFailoverError as _r, resolveSessionDeliveryTarget as _t, buildChannelSummary as a, isExternalHookSession as an, clearSessionAuthProfileOverride as ar, readSessionPreviewItemsFromTranscript as at, renamePairedNode as b, createReplyDispatcher as bn, DEFAULT_INPUT_FILE_MIMES as br, resolveMessageChannelSelection as bt, normalizeSendPolicy as c, getPluginToolMeta as cn, parseVerboseOverride as cr, resolveCommitHash as ct, primeRemoteSkillsCache as d, resolveAgentRoute as dn, peekSystemEventEntries as dr, runMessageAction as dt, CHANNEL_TARGETS_DESCRIPTION as en, resolveEffectiveMessagesConfig as er, resolveSessionModelRef as et, recordRemoteNodeInfo as f, buildChannelAccountBindings as fn, peekSystemEvents as fr, ensureOutboundSessionEntry as ft, setSkillsRemoteRegistry as g, recordChannelActivity as gn, registerUnhandledRejectionHandler as gr, resolveOutboundTarget as gt, removeRemoteNodeInfo as h, getChannelActivity as hn, installUnhandledRejectionHandler as hr, resolveHeartbeatSenderContext as ht, setCliSessionId as i, getHookType as in, lookupContextTokens as ir, readSessionMessages as it, getTotalQueueSize as j, formatZonedTimestamp as jn, estimateBase64DecodedBytes as jr, consumeGatewaySigusr1RestartAuthorization as jt, getActiveTaskCount as k, formatInboundEnvelope as kn, extractImageContentFromSource as kr, formatUsageWindowSummary as kt, resolveSendPolicy as l, loadAnimaPlugins as ln, enqueueSystemEvent as lr, normalizeGroupActivation as lt, refreshRemoteNodeBins as m, buildPairingReply as mn, ensureAnimaModelsJson as mr, resolveHeartbeatDeliveryTarget as mt, BARE_SESSION_RESET_PROMPT as n, buildSafeExternalPrompt as nn, resolveIdentityNamePrefix as nr, archiveSessionTranscripts as nt, buildChannelAccountSnapshot as o, applyBrowserProxyPaths as on, applyModelOverrideToSessionEntry as or, resolveSessionTranscriptCandidates as ot, refreshRemoteBinsForConnectedNodes as p, resolvePreferredAccountId as pn, loadModelCatalog as pr, resolveOutboundSessionRoute as pt, canonicalizeSpawnedByForAgent as q, CommandLane as qn, normalizeCronJobPatch as qt, getCliSessionId as r, detectSuspiciousPatterns as rn, resolveMessagePrefix as rr, capArrayByJsonBytes as rt, formatChannelAllowFrom as s, persistBrowserProxyFiles as sn, applyVerboseOverride as sr, stripEnvelopeFromMessages as st, getReplyFromConfig as t, CHANNEL_TARGET_DESCRIPTION as tn, resolveIdentityName as tr, archiveFileOnDisk as tt, getRemoteSkillEligibility as u, buildAgentSessionKey as un, isSystemEventContextChanged as ur, parseActivationCommand as ut, listNodePairing as v, dispatchReplyWithBufferedBlockDispatcher as vn, DEFAULT_INPUT_FILE_MAX_BYTES as vr, formatTargetDisplay as vt, generatePairingToken as w, startDiagnosticHeartbeat as wn, DEFAULT_INPUT_PDF_MAX_PAGES as wr, loadProviderUsageSummary as wt, requestNodePairing as x, getTotalPendingReplies as xn, DEFAULT_INPUT_IMAGE_MAX_BYTES as xr, CHANNEL_MESSAGE_ACTION_NAMES as xt, rejectNodePairing as y, dispatchInboundMessage as yn, DEFAULT_INPUT_FILE_MAX_CHARS as yr, resetDirectoryCache as yt, ensureLocalOllamaModelInstalled as z, countActiveDescendantRuns as zn, consumeRestartSentinel as zt };