@noxsoft/anima 7.0.1 → 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.
- package/CHANGELOG.md +11 -0
- package/dist/{accounts-COxGcLGB.js → accounts-BDDwy6Zf.js} +3 -3
- package/dist/{accounts-DIES085e.js → accounts-BNxfCMUW.js} +5 -5
- package/dist/{accounts-B_2nt5Cd.js → accounts-BzjBXZYp.js} +2 -2
- package/dist/{accounts-TUsfghIW.js → accounts-PpT_kved.js} +11 -11
- package/dist/{acp-cli-CWgqDQQH.js → acp-cli-B4F3SojX.js} +12 -12
- package/dist/{acp-cli-D0wfP8-l.js → acp-cli-CtTTCUan.js} +15 -15
- package/dist/{active-listener-BKtsWhsb.js → active-listener-C3NdbMQD.js} +4 -4
- package/dist/{active-listener-gGCoq55D.js → active-listener-D78ohfOc.js} +6 -6
- package/dist/{active-listener-D2r8IO7g.js → active-listener-Z1MbDSH8.js} +4 -4
- package/dist/{agent-paths-niQrLbGc.js → agent-paths-DRAU6-8h.js} +2 -2
- package/dist/{agent-scope-Dm8IL1Ks.js → agent-scope-B1FoYHfj.js} +3 -3
- package/dist/{agent-scope-CxBzAozu.js → agent-scope-CENGF2NR.js} +2 -2
- package/dist/{agent-scope-CXxC8FFX.js → agent-scope-DQ0N_hof.js} +2 -2
- package/dist/{agent-scope-ByIGrCTT.js → agent-scope-DpgOQfBp.js} +2 -2
- package/dist/{agent-PoYM2xa7.js → agent-viQL5eva.js} +18 -18
- package/dist/{agent-BjD_hkGZ.js → agent-xPFmA8jO.js} +14 -14
- package/dist/{agents-y3HCk1ks.js → agents-Cf9QArEB.js} +20 -20
- package/dist/{agents.config-BR5JLtud.js → agents.config-DrViQjgD.js} +1 -1
- package/dist/{agents.config-Br4ULmK0.js → agents.config-sfN0WxRg.js} +1 -1
- package/dist/{anthropic-direct-runner-Bu8w-wlJ.js → anthropic-direct-runner-BNiXWmel.js} +11 -11
- package/dist/{anthropic-direct-runner-C5pnwYzT.js → anthropic-direct-runner-BgFOZS8B.js} +11 -11
- package/dist/{audit-DDz7UOIx.js → audit-CupURkPI.js} +15 -15
- package/dist/{audit-B05W5ckN.js → audit-jddM3B16.js} +13 -13
- package/dist/{auth-Cp__MMeO.js → auth-Bw3NUKcg.js} +2 -2
- package/dist/{auth-DsC5pZ_0.js → auth-CuGlMw6p.js} +2 -2
- package/dist/{auth-choice-BYOaX-W4.js → auth-choice-D3Gi-WXq.js} +7 -7
- package/dist/{auth-choice-CRP6z43z.js → auth-choice-DmkqIhe6.js} +7 -7
- package/dist/{auth-health-Cc8-vy8y.js → auth-health-CIbz_YRs.js} +1 -1
- package/dist/{auth-health-Dhr8p2SD.js → auth-health-CPmz2ZaM.js} +1 -1
- package/dist/{auth-profiles-DKu7ZUzl.js → auth-profiles-D0T20ZZX.js} +4 -4
- package/dist/{auth-profiles-C-LuhW6c.js → auth-profiles-XI2YBb-w.js} +3 -3
- package/dist/{auth-profiles-Brxz2ojJ.js → auth-profiles-fjGcjhZ4.js} +5 -5
- package/dist/{auth-profiles-DtWUl1-k.js → auth-profiles-jK6n3-Cc.js} +4 -4
- package/dist/{auth-store-Bd0GoqEL.js → auth-store-B4pR_KvR.js} +3 -3
- package/dist/{auth-store-BEfSfCbW.js → auth-store-ChpmVcla.js} +3 -3
- package/dist/{auth-store-Jvgz2_l1.js → auth-store-CqgKZB5l.js} +2 -2
- package/dist/{auth-store-BpYI9t_y.js → auth-store-po566wly.js} +3 -3
- package/dist/{banner-XT5N0ZF4.js → banner-C_CFUih5.js} +2 -2
- package/dist/{bonjour-discovery-D3HFfTyG.js → bonjour-discovery-B8gxGE91.js} +2 -2
- package/dist/{bonjour-discovery-Co-b97Dz.js → bonjour-discovery-CZGDX9Ac.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +23 -23
- package/dist/bundled/bootstrap-extra-files/handler.js +3 -3
- package/dist/bundled/session-memory/handler.js +22 -22
- package/dist/{call-CDPbPDAr.js → call-Bn9iKzhX.js} +4 -4
- package/dist/{call-B4lhqS6H.js → call-CPfxv8yg.js} +5 -5
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{catalog-CsXv59Tq.js → catalog-BqTvQqiq.js} +2 -2
- package/dist/{catalog-B-TAbJ2o.js → catalog-yCaNFdQz.js} +2 -2
- package/dist/{channel-web-yWytZHhN.js → channel-web-CfKNWfmp.js} +14 -14
- package/dist/{channels-status-issues-WkG3Tmxk.js → channels-status-issues-4XxYhQ8S.js} +4 -4
- package/dist/{channels-status-issues-CklLFAsD.js → channels-status-issues-BhtWH-p2.js} +4 -4
- package/dist/{chrome-CmxIwwsr.js → chrome-CN17GbZN.js} +2 -2
- package/dist/{chrome-BaU-H9m7.js → chrome-CVb9kRv_.js} +3 -3
- package/dist/{chrome-DLUBPBPz.js → chrome-D1Jm1Bdq.js} +9 -9
- package/dist/{chrome-B8EnYGj1.js → chrome-Nb2mFwWK.js} +2 -2
- package/dist/{chunk-B4Kx-ocg.js → chunk-B5s6o9xI.js} +3 -3
- package/dist/{chunk-DJXDX69U.js → chunk-CTS4rIMF.js} +3 -3
- package/dist/{chunk-CFSle8n5.js → chunk-DXTTGmeb.js} +1 -1
- package/dist/{chunk-Cy0Bj0F3.js → chunk-isZGJq82.js} +1 -1
- package/dist/{clack-prompter-0JW5kry0.js → clack-prompter-ChmRN__Q.js} +5 -5
- package/dist/{clack-prompter-fZSmnHda.js → clack-prompter-CpLhDhPM.js} +5 -5
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-C7mOU26p.js → cli-BzTZ8Gnp.js} +46 -46
- package/dist/{cli-DfcdnRcl.js → cli-DLYU8BVw.js} +47 -47
- package/dist/{client-CfLiulzK.js → client-DNDzi0CF.js} +3 -3
- package/dist/{client-BWkoTfOH.js → client-DOTb2PN6.js} +2 -2
- package/dist/{command-format-kLw3YIIu.js → command-format-JgYolX96.js} +1 -1
- package/dist/{command-registry-DUTqrmna.js → command-registry-BQiM7sYY.js} +14 -14
- package/dist/{commands-Mekaw9WG.js → commands-CymFClS1.js} +2 -2
- package/dist/{common-DT_obM-k.js → common-C36MniDL.js} +2 -2
- package/dist/{common-Bf_TG87Y.js → common-Coq2knq6.js} +2 -2
- package/dist/{common-BCW6hLGI.js → common-c4ZysSLq.js} +2 -2
- package/dist/{common-CqIa2poH.js → common-fIXNXke2.js} +2 -2
- package/dist/{completion-cli-BBm9JIHZ.js → completion-cli-BP8IIlzX.js} +4 -4
- package/dist/{completion-cli-Cpj91U30.js → completion-cli-DW87AQgF.js} +3 -3
- package/dist/{config-ZYN8tezd.js → config-C7s14LLE.js} +24 -6
- package/dist/{config-BrVuTQ8R.js → config-DmsfUvB0.js} +24 -6
- package/dist/{config-CweTwOtr.js → config-LS-6Xgqo.js} +25 -7
- package/dist/{config-DaD4FsAn.js → config-MZ5clMl4.js} +25 -7
- package/dist/config-cli-BAj5hoD-.js +15 -0
- package/dist/config-cli-C6WtFt5S.js +11 -0
- package/dist/{config-guard-C4b2dksv.js → config-guard-BAVhoqm4.js} +5 -5
- package/dist/{config-guard-CWhoBtB3.js → config-guard-Em1kJe5K.js} +19 -19
- package/dist/{configure-BE8TA8Yt.js → configure-CHPG13jf.js} +24 -24
- package/dist/{configure-CU3kulTq.js → configure-Dd6zJb-q.js} +72 -72
- package/dist/{configure-BfWsTKMF.js → configure-DeLC66Op.js} +25 -25
- package/dist/{configure-4jIAlOdj.js → configure-i6y1krRa.js} +75 -75
- package/dist/{context-mdxDsO1v.js → context-C22AMgsc.js} +10 -2
- package/dist/{control-service-5YtMvm7D.js → control-service-BGnqY7vv.js} +5 -5
- package/dist/{control-service-3CI4vt1h.js → control-service-DxuB_IUw.js} +4 -4
- package/dist/control-ui/assets/{index-D4wqLVMN.js → index-XnQwXlLu.js} +2 -2
- package/dist/control-ui/assets/{index-D4wqLVMN.js.map → index-XnQwXlLu.js.map} +1 -1
- package/dist/control-ui/assets/index-tpHK2r2n.js +73 -0
- package/dist/control-ui/assets/index-tpHK2r2n.js.map +1 -0
- package/dist/control-ui/assets/{observers-B7MfWiIZ.js → observers-DqhQeBfm.js} +2 -2
- package/dist/control-ui/assets/{observers-B7MfWiIZ.js.map → observers-DqhQeBfm.js.map} +1 -1
- package/dist/control-ui/index.html +1 -1
- package/dist/{cron-cli-D9XrF-Gx.js → cron-cli-3VJy8n6n.js} +14 -14
- package/dist/{cron-cli-Cht6Itx6.js → cron-cli-C_B6qK9W.js} +16 -16
- package/dist/{daemon-cli-CrdPhSxr.js → daemon-cli-B0IaAuYH.js} +15 -15
- package/dist/{daemon-cli-9zrnYRjh.js → daemon-cli-BsY7ZPql.js} +17 -17
- package/dist/daemon-cli.js +19 -1
- package/dist/{daemon-runtime-BrUj88ZO.js → daemon-runtime-BoIX72LK.js} +2 -2
- package/dist/{daemon-runtime-DCqwraWR.js → daemon-runtime-DSPDxySK.js} +3 -3
- package/dist/{deliver-d-CaN0uL.js → deliver-BJ0JgwhN.js} +11 -11
- package/dist/{deliver-BKzX3YoN.js → deliver-BknvuSJz.js} +6 -6
- package/dist/{deliver-C1L5nO0K.js → deliver-D86kSZGn.js} +7 -7
- package/dist/{deliver-B-dPbUIs.js → deliver-bdH5itRb.js} +11 -11
- package/dist/{delivery-queue-BKQk1j0k.js → delivery-queue-B6Y3ea25.js} +1 -1
- package/dist/{deps-DKPoFoa8.js → deps-oUYlT5Sq.js} +1 -1
- package/dist/{diagnostics-BhSwKIcN.js → diagnostics-CXoISuYV.js} +1 -1
- package/dist/{diagnostics-Cu9pZAFn.js → diagnostics-aUz0rVDl.js} +1 -1
- package/dist/{dispatcher-BQQugU-7.js → dispatcher-DpEzmU7s.js} +2 -2
- package/dist/{dispatcher-DzwzLQRk.js → dispatcher-DwlzWX2u.js} +2 -2
- package/dist/{dns-cli-V2bo6vSt.js → dns-cli-D8tgv6zY.js} +10 -10
- package/dist/{dns-cli-C8KIX4P3.js → dns-cli-DawPrcXI.js} +12 -12
- package/dist/{docs-cli-D2cVJxjP.js → docs-cli-Bsx7Yd3w.js} +6 -6
- package/dist/{docs-cli-Bt-YV3xs.js → docs-cli-DnrE1Tqw.js} +7 -7
- package/dist/{doctor-CFpVHDFT.js → doctor-BNJ_edyo.js} +36 -36
- package/dist/{doctor-DOudOs1k.js → doctor-DY5SmosG.js} +38 -38
- package/dist/{doctor-completion-DfNyJGIj.js → doctor-completion-B6lgyLsC.js} +2 -2
- package/dist/{doctor-completion-R0UlpjIj.js → doctor-completion-mLt2Eo9P.js} +3 -3
- package/dist/{doctor-config-flow-Dxy7RIm0.js → doctor-config-flow-CvJDaN8t.js} +8 -8
- package/dist/{doctor-config-flow-Bgl0Cc20.js → doctor-config-flow-D7SJ61Ak.js} +6 -6
- package/dist/{engine-BDDM-iAi.js → engine-BrJ7eiEh.js} +2 -2
- package/dist/entry.js +18 -2
- package/dist/{env-DlTia1B4.js → env-ByZjwIJR.js} +1 -1
- package/dist/{exec-DUzVF5_D.js → exec-4nfFrGP7.js} +1 -1
- package/dist/{exec-BylR5qWS.js → exec-ChPERQB-.js} +1 -1
- package/dist/{exec-BtBJICHE.js → exec-CigQCGkt.js} +1 -1
- package/dist/{exec-C6tXfeqA.js → exec-Dn2S9A7x.js} +1 -1
- package/dist/{exec-approvals-cli-DYZVBnqS.js → exec-approvals-cli-DmdfF4o_.js} +17 -17
- package/dist/{exec-approvals-cli-CN2WeH7y.js → exec-approvals-cli-c5UsPAU1.js} +19 -19
- package/dist/extensionAPI.js +21 -21
- package/dist/{gateway-cli-DtIum1te.js → gateway-cli-C4FwPHzu.js} +95 -95
- package/dist/{gateway-cli-CFlPUx9N.js → gateway-cli-CkFzsHGb.js} +93 -93
- package/dist/{gateway-rpc-Cj_h2sVM.js → gateway-rpc-CgeNTQUV.js} +3 -3
- package/dist/{gateway-rpc-CnXMGsxp.js → gateway-rpc-DpVHyNFu.js} +3 -3
- package/dist/{gmail-setup-utils-BIXtKTpT.js → gmail-setup-utils-JWsjxDBV.js} +4 -4
- package/dist/{gmail-setup-utils-DaJoXV_3.js → gmail-setup-utils-lTV5KDPF.js} +3 -3
- package/dist/{health-ngQNjXh4.js → health-C6rAUaME.js} +13 -13
- package/dist/{health-yw_uaucz.js → health-DrokrOLQ.js} +13 -13
- package/dist/{health-format-BLnFZCH_.js → health-format-CTOsgiTE.js} +2 -2
- package/dist/{health-format-D-JJ5_S4.js → health-format-CzNDrJ8Z.js} +2 -2
- package/dist/{heartbeat-visibility-BaL8JzkS.js → heartbeat-visibility-DZOi_4uV.js} +1 -1
- package/dist/{heartbeat-visibility-mAzdNSiS.js → heartbeat-visibility-XbT4yJ3S.js} +1 -1
- package/dist/{help-format-ZKxl6UCb.js → help-format-D4k6gkpr.js} +1 -1
- package/dist/{help-format-Dt-I_Mls.js → help-format-DgCbU9Ow.js} +1 -1
- package/dist/{hooks-cli-D6YfDiUI.js → hooks-cli-CBDm7Rjw.js} +50 -50
- package/dist/{hooks-cli-CPgLAn7a.js → hooks-cli-DVNU2Cp_.js} +53 -53
- package/dist/{hooks-status-DdweuSIj.js → hooks-status-BQ7M6bIq.js} +3 -3
- package/dist/{hooks-status-DqfJDvYl.js → hooks-status-BlfmlpC0.js} +3 -3
- package/dist/{image-ops-Ct3GueyT.js → image-ops-flDr58qn.js} +2 -2
- package/dist/{image-ops-BdrMmiG4.js → image-ops-vj06APeW.js} +2 -2
- package/dist/index.js +62 -62
- package/dist/{installs-a4Vz_J08.js → installs-BeTulUkL.js} +4 -4
- package/dist/{installs-Bi6UipiE.js → installs-D1t93Dvw.js} +4 -4
- package/dist/{lifecycle-core-BTICG85s.js → lifecycle-core-DmxyMl5D.js} +5 -5
- package/dist/{lifecycle-core-B8PI1NZJ.js → lifecycle-core-OpMLwiRd.js} +3 -3
- package/dist/{links-DcilUrqq.js → links-NDZcSjct.js} +1 -1
- package/dist/{links-BjjDMNIq.js → links-RNygAKHu.js} +1 -1
- package/dist/llm-slug-generator.js +22 -22
- package/dist/{loader-C87TLS4J.js → loader-5Xm3Jxa-.js} +1 -1
- package/dist/{logging-Chc1Sj6N.js → logging-B0-OIfnO.js} +1 -1
- package/dist/{logging-_rCcBkls.js → logging-CX0bU2da.js} +2 -2
- package/dist/{login-DKkQ3Czu.js → login-BegD27g3.js} +5 -5
- package/dist/{login-MzVPMRxL.js → login-CSaeXIuW.js} +7 -7
- package/dist/{login-BTOKtSQN.js → login-WPS724ji.js} +5 -5
- package/dist/{login-qr-BGbHImRb.js → login-qr-BVzUWR4o.js} +8 -8
- package/dist/{login-qr-CxRI-tE2.js → login-qr-C0eNn9SV.js} +12 -12
- package/dist/{login-qr-OUAGpDsU.js → login-qr-DLLfBALk.js} +9 -9
- package/dist/{login-qr-BjpDVBJE.js → login-qr-updBsqHf.js} +10 -10
- package/dist/{login-BEaBOSnw.js → login-zlt00-k4.js} +6 -6
- package/dist/{logs-cli-BiAJbjnq.js → logs-cli-BDQoLnjr.js} +15 -15
- package/dist/{logs-cli-Bc6IOyHA.js → logs-cli-BPljn0BF.js} +14 -14
- package/dist/{manager-BYu34CX3.js → manager-B-8JFgek.js} +27 -11
- package/dist/{manager-C6L_DH0O.js → manager-CE4cPrH2.js} +7 -7
- package/dist/{manager-D8VCuzru.js → manager-DPojhf1D.js} +9 -9
- package/dist/{manager-b_aZwo00.js → manager-kKsAUV03.js} +27 -11
- package/dist/{manifest-registry-W_OfCIRP.js → manifest-registry-BAebAG4I.js} +1 -1
- package/dist/{manifest-registry-qF960vMH.js → manifest-registry-Cwvk5hu8.js} +1 -1
- package/dist/{memory-cli-B0kKl-9T.js → memory-cli-BJmQIQSw.js} +11 -11
- package/dist/{memory-cli-DLtBA6r5.js → memory-cli-DMJqELwh.js} +10 -10
- package/dist/{message-channel-CMsexA3K.js → message-channel-CfwNj8mC.js} +1 -1
- package/dist/{message-channel-DIHHKJhk.js → message-channel-qmDI9YoO.js} +1 -1
- package/dist/{model-auth-KpsOXKDc.js → model-auth-BCdRf282.js} +19 -3
- package/dist/{model-auth-CHB3EySM.js → model-auth-Bs6eoQ1l.js} +19 -3
- package/dist/{model-selection-CLcoOT3e.js → model-selection-BhIAjo3P.js} +1 -1
- package/dist/{model-selection-DjsJGv1R.js → model-selection-CVcwboE_.js} +1 -1
- package/dist/{model-selection-CY6r_3wt.js → model-selection-CeZMza3d.js} +1 -1
- package/dist/{model-selection-DcO3qJOu.js → model-selection-f7lJs3PI.js} +1 -1
- package/dist/{models-BXdBXPMB.js → models-DxRmPLiS.js} +97 -50
- package/dist/{models-cli-1Kj8gkGy.js → models-cli-B9KClY_f.js} +137 -82
- package/dist/{models-cli-DdJcmOGI.js → models-cli-BFZLSACV.js} +66 -58
- package/dist/{node-cli-DU_oREff.js → node-cli-BetF7Xgf.js} +26 -26
- package/dist/{node-cli-BmuVEJ1C.js → node-cli-CLeoh03V.js} +25 -25
- package/dist/{node-service-qZXF7T7A.js → node-service-FcwxyU8p.js} +1 -1
- package/dist/{node-service-cOoW5hLa.js → node-service-zrXojq7t.js} +1 -1
- package/dist/{note-CeLGcHqv.js → note-BTIeG9az.js} +1 -1
- package/dist/{note-iMYVGjpA.js → note-D_tpPSPO.js} +2 -2
- package/dist/{noxsoft-bootstrap-CrlkSFzd.js → noxsoft-bootstrap-CPS7t3Sk.js} +3 -3
- package/dist/{noxsoft-bootstrap-C4dSx7K_.js → noxsoft-bootstrap-CqygYIJa.js} +2 -2
- package/dist/{npm-registry-spec-jf7Mowdn.js → npm-registry-spec-BeX9-fmS.js} +1 -1
- package/dist/{npm-registry-spec-Br4B4I_3.js → npm-registry-spec-DB6xqMfu.js} +1 -1
- package/dist/{onboard-CHX1Jdt_.js → onboard-BZORsTGE.js} +18 -18
- package/dist/{onboard-BzScK9k6.js → onboard-Doq7UgRV.js} +19 -19
- package/dist/{onboard-channels-DfXxMbYu.js → onboard-channels-BREQ8Tyw.js} +9 -9
- package/dist/{onboard-channels-wUF4oRB-.js → onboard-channels-CpM1Nwqf.js} +8 -8
- package/dist/{onboard-helpers-CJ3HzoUO.js → onboard-helpers-rHLFiSIc.js} +7 -7
- package/dist/{onboard-helpers-CFudIoX4.js → onboard-helpers-uf70JxTj.js} +9 -9
- package/dist/{onboarding-fnZOw6Wv.js → onboarding-BGXbXgds.js} +21 -21
- package/dist/{onboarding-6jxAKxhe.js → onboarding-DQplq13s.js} +22 -22
- package/dist/{orchestrator-CrFD887e.js → orchestrator-CERtu86A.js} +1 -1
- package/dist/{outbound-Bmft-5um.js → outbound-Bii3QonX.js} +4 -4
- package/dist/{outbound-C577aWZp.js → outbound-BpcyR1eA.js} +4 -4
- package/dist/{outbound-fPqdCDR4.js → outbound-C1WShhf8.js} +4 -4
- package/dist/{outbound-DW2eod1S.js → outbound-DKY6oeyQ.js} +4 -4
- package/dist/{outbound-send-deps-DMsqr5fd.js → outbound-send-deps-CtiCh8EY.js} +1 -1
- package/dist/{parse-timeout-D4UO8pY_.js → parse-timeout-Bp5yQ1yW.js} +3 -3
- package/dist/{parse-timeout-C4WLf3Qy.js → parse-timeout-Cn7M8c5R.js} +3 -3
- package/dist/{path-env-DLQPf9qj.js → path-env-BAjR_Xf_.js} +1 -1
- package/dist/{paths-DMk3Q7yD.js → paths-BM1wivAU.js} +1 -1
- package/dist/{paths-CAQJvbeZ.js → paths-BqA7F6bT.js} +2 -2
- package/dist/{paths-Q6h5HODL.js → paths-DAbvPUdJ.js} +1 -1
- package/dist/{pi-auth-json-B_lKNFK6.js → pi-auth-json-BhkzZgQz.js} +5 -5
- package/dist/{pi-auth-json-BmdBnmlZ.js → pi-auth-json-CM3QDr9_.js} +6 -6
- package/dist/{pi-auth-json-WTvcP2gz.js → pi-auth-json-Dry5jXVt.js} +6 -6
- package/dist/{pi-auth-json-DkYqdjrV.js → pi-auth-json-qHO_AF3h.js} +6 -6
- package/dist/{pi-embedded-B1eVXOsQ.js → pi-embedded-CrzqUkHv.js} +304 -59
- package/dist/{pi-embedded-DbvG9mmD.js → pi-embedded-Dn3Ip_VN.js} +308 -63
- package/dist/{pi-embedded-helpers-BZ9GspxK.js → pi-embedded-helpers-BPtBCnl-.js} +1 -1
- package/dist/{pi-embedded-helpers-D2SLlgS4.js → pi-embedded-helpers-BSFtS9Fl.js} +1 -1
- package/dist/{pi-tools.policy-WdTAfqbV.js → pi-tools.policy-DuWNVoem.js} +6 -6
- package/dist/{pi-tools.policy-D2FusuQa.js → pi-tools.policy-DyckzpRL.js} +7 -7
- package/dist/{plugin-auto-enable-DhuD30Je.js → plugin-auto-enable-Btd2iEwF.js} +5 -5
- package/dist/{plugin-auto-enable-CtYcdTju.js → plugin-auto-enable-DvYJhgJ2.js} +5 -5
- package/dist/{plugin-registry-DKexyPAq.js → plugin-registry-BOuDey4w.js} +4 -4
- package/dist/{plugin-registry-CtkU96jV.js → plugin-registry-ChWHnegS.js} +4 -4
- package/dist/plugin-sdk/agents/local-model-installer.d.ts +11 -0
- package/dist/plugin-sdk/agents/openai-direct-runner.d.ts +2 -1
- package/dist/plugin-sdk/config/types.agent-defaults.d.ts +40 -0
- package/dist/plugin-sdk/config/types.models.d.ts +1 -1
- package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +13 -0
- package/dist/plugin-sdk/config/zod-schema.agents.d.ts +13 -0
- package/dist/plugin-sdk/config/zod-schema.core.d.ts +6 -6
- package/dist/plugin-sdk/config/zod-schema.d.ts +15 -2
- package/dist/plugin-sdk/index.js +25 -7
- package/dist/{plugins-DYcg0qBW.js → plugins-BqPGs8w-.js} +1 -1
- package/dist/{plugins-BOMS6J5A.js → plugins-C8FLxXbd.js} +1 -1
- package/dist/{plugins-cli-BQmysVFP.js → plugins-cli-CbOP5ml6.js} +51 -51
- package/dist/{plugins-cli-B3l7kalt.js → plugins-cli-dH6LKRQM.js} +53 -53
- package/dist/{polls-DFISjV7H.js → polls-aumqIVob.js} +5 -5
- package/dist/{ports-BGLuwt2Z.js → ports--opAW6yN.js} +2 -2
- package/dist/{ports-q535r1PZ.js → ports-B20JTuiL.js} +2 -2
- package/dist/{ports-B_f42zcA.js → ports-C4ACB4MP.js} +2 -2
- package/dist/{ports-DaVrZDUq.js → ports-D6bjtvhF.js} +2 -2
- package/dist/{program-context-C4x0zjOR.js → program-context-7yQclqBT.js} +35 -35
- package/dist/{program-mSyCYzsQ.js → program-pWHcYdeO.js} +58 -58
- package/dist/{progress-glCgu57m.js → progress-BveMw0-_.js} +1 -1
- package/dist/{progress-CVLvQV_t.js → progress-qMmjCvh9.js} +1 -1
- package/dist/{prompt-style-BI53UVgE.js → prompt-style-DWuEFbBO.js} +1 -1
- package/dist/{prompt-style-D6SRiiTV.js → prompt-style-zgo1vAG1.js} +1 -1
- package/dist/{prompts-BmgT_kkv.js → prompts-C4v0DSTU.js} +6 -6
- package/dist/{prompts-Bq4QGFQM.js → prompts-D6Xc1Ddb.js} +4 -4
- package/dist/{pw-ai-DxNrJcCA.js → pw-ai-2XnGTARu.js} +3 -3
- package/dist/{pw-ai-CB-zeR7h.js → pw-ai-BUnz28XN.js} +5 -5
- package/dist/{pw-ai-C_1-7IgH.js → pw-ai-CRnDr120.js} +3 -3
- package/dist/{pw-ai-B4u5FDqO.js → pw-ai-Dq14LFsx.js} +6 -6
- package/dist/{qmd-manager-C_XBZ_bT.js → qmd-manager-6nqaD-q9.js} +5 -5
- package/dist/{qmd-manager-CO795NK4.js → qmd-manager-B6-V0aC1.js} +6 -6
- package/dist/{qmd-manager-CpNYgSrx.js → qmd-manager-BNL9Pl2G.js} +6 -6
- package/dist/{qmd-manager-Q0OSDQ-e.js → qmd-manager-CpynR-al.js} +5 -5
- package/dist/{register.agent-DBxUWr1K.js → register.agent-BMxuTqFN.js} +68 -68
- package/dist/{register.agent-CzEM3bkp.js → register.agent-BO6_QTx6.js} +65 -65
- package/dist/{register.anima-RI6gewtj.js → register.anima-5SAY6OxG.js} +4 -4
- package/dist/{register.anima--gufBuS-.js → register.anima-CLGhoqmw.js} +8 -8
- package/dist/register.configure-Bz9pap1L.js +106 -0
- package/dist/register.configure-dMfZ1zcY.js +107 -0
- package/dist/register.maintenance-CL2eIgmC.js +102 -0
- package/dist/register.maintenance-k1dBbjUg.js +103 -0
- package/dist/{register.message-BhGJ_1Iy.js → register.message-Cqlz-6uM.js} +52 -52
- package/dist/{register.message-ACbKb7JS.js → register.message-Cz34rs9W.js} +50 -50
- package/dist/{register.onboard-DR_YYtbi.js → register.onboard-Cmh46n62.js} +70 -70
- package/dist/{register.onboard-CwkY7CRm.js → register.onboard-_4FOFCA2.js} +67 -67
- package/dist/{register.setup-Cn3e7Std.js → register.setup-CHgH1mdn.js} +70 -70
- package/dist/{register.setup-BSm6O1ml.js → register.setup-CKY65php.js} +67 -67
- package/dist/{register.status-health-sessions-DAl9OeGB.js → register.status-health-sessions-CNX6wp0V.js} +60 -60
- package/dist/{register.status-health-sessions-CpxsZeet.js → register.status-health-sessions-DNvtWNtb.js} +63 -63
- package/dist/{register.subclis-DEFeoyPP.js → register.subclis-Br8nY-dd.js} +23 -23
- package/dist/{reply-ylwOKuOF.js → reply-DqXPXQ20.js} +322 -77
- package/dist/{reply-prefix-CEnF6TUe.js → reply-prefix-CZy4g8SY.js} +1 -1
- package/dist/{reply-prefix-Og65nAYv.js → reply-prefix-DuANpRN_.js} +1 -1
- package/dist/{routes-CWCAc8uJ.js → routes-CAjh83-X.js} +6 -6
- package/dist/{routes-FT0Us8Md.js → routes-DTjggbOR.js} +6 -6
- package/dist/{run-D6Ete2Z-.js → run-0F-ZU2kW.js} +2038 -172
- package/dist/{run-B6eBjo22.js → run-Bu-fwhic.js} +2043 -177
- package/dist/{run-main-CQHE4XaN.js → run-main-BcC_mt4v.js} +72 -72
- package/dist/{runtime-guard-D14Z_QY6.js → runtime-guard-Ccc4Qj4K.js} +1 -1
- package/dist/{runtime-guard-DdP10b7Q.js → runtime-guard-E3CIN3Xo.js} +1 -1
- package/dist/{sandbox-D-N7M7lp.js → sandbox-DSHSoUHO.js} +6 -6
- package/dist/{sandbox-cli-CQKz2I1X.js → sandbox-cli-BiO-r7eU.js} +22 -22
- package/dist/{sandbox-cli-DHNFlTo-.js → sandbox-cli-D6ikivGS.js} +22 -22
- package/dist/{sandbox-pBHlfFdB.js → sandbox-mSWYRXFm.js} +6 -6
- package/dist/{security-cli-Bdi7MuP6.js → security-cli-Bqq5Klnm.js} +25 -25
- package/dist/{security-cli-C3aI09uy.js → security-cli-CcBxjHGL.js} +25 -25
- package/dist/{semantic-CQApJNO_.js → semantic-CPfLgc8S.js} +1 -1
- package/dist/{semantic-9rgWUrz3.js → semantic-DLW1Sflk.js} +1 -1
- package/dist/{semantic-C1UN3bb9.js → semantic-jL8x-DTZ.js} +1 -1
- package/dist/{server-context-Yx4pgBqJ.js → server-context-DTlBzMyD.js} +7 -7
- package/dist/{server-context-Clykq0XU.js → server-context-EPPcxp2p.js} +8 -8
- package/dist/{server-node-events-DIuVwITd.js → server-node-events-BGWQiInn.js} +52 -52
- package/dist/{server-node-events-CV5m_fuq.js → server-node-events-BuxYvQ0t.js} +50 -50
- package/dist/{service-4VfZwSv1.js → service-BoUEkrUm.js} +1 -1
- package/dist/{service-audit-KzOtcw_V.js → service-audit-B_BC6-F8.js} +3 -3
- package/dist/{service-audit-Bwpoc2LD.js → service-audit-CjH8ed-j.js} +3 -3
- package/dist/{service-Dd1DfPia.js → service-ho_k2vjr.js} +1 -1
- package/dist/{session-jljC5QVG.js → session-B4wJoEqn.js} +4 -4
- package/dist/{session-CSmfU0D3.js → session-BF7WjlT0.js} +1 -1
- package/dist/{session-Jlf3l006.js → session-BnOV0y0e.js} +6 -6
- package/dist/{session-BqHD-8a_.js → session-CSgjW31i.js} +5 -5
- package/dist/{session-BiA6jrcs.js → session-DO_miKel.js} +1 -1
- package/dist/{session-5YO_H-Ra.js → session-DcRzV4l4.js} +1 -1
- package/dist/{session-BzrnfWQ2.js → session-DlMsi6dM.js} +5 -5
- package/dist/{session-cost-usage-DnxtnK1E.js → session-cost-usage-BNvno_kS.js} +1 -1
- package/dist/{sessions-C_3wTmSA.js → sessions-B2NwIaNC.js} +6 -6
- package/dist/{sessions-BOzeFzuL.js → sessions-DBQx8E1H.js} +5 -5
- package/dist/{sessions-BmE5Z_1i.js → sessions-DxAfgPEp.js} +6 -6
- package/dist/{settings-cli-T66kDBNA.js → settings-cli-CHwTEE6P.js} +72 -72
- package/dist/{settings-cli-LWW2xQBQ.js → settings-cli-DsUKlq8R.js} +74 -74
- package/dist/{setup-token-6DSKE0Tn.js → setup-token-BX6QI7ce.js} +26 -26
- package/dist/{setup-token-0zfSBnMQ.js → setup-token-CU5mami5.js} +26 -26
- package/dist/{shared-C-rqLtIT.js → shared-BFzq0XE1.js} +2 -2
- package/dist/{shared-7KwLAyAq.js → shared-D3ZAXqdo.js} +3 -3
- package/dist/{shell-env-CMI9f7-7.js → shell-env-BR7Sbtw1.js} +1 -1
- package/dist/{shell-env-HkVWMh--.js → shell-env-BZ2Wha1e.js} +1 -1
- package/dist/{shell-env-iPnSIi-t.js → shell-env-Bgk3WFTi.js} +1 -1
- package/dist/{skills-DtoVe1dS.js → skills-BT0Lx09M.js} +2 -2
- package/dist/{skills-4v6-kw0C.js → skills-DjVFhlQY.js} +3 -3
- package/dist/{skills-cli-BoasNTpZ.js → skills-cli-BX5pL-D4.js} +15 -15
- package/dist/{skills-cli-TeAq3fRG.js → skills-cli-wKTnuQos.js} +14 -14
- package/dist/{skills-install-D6_qpRjW.js → skills-install-CVWWsOf2.js} +4 -4
- package/dist/{skills-install-Qw2oU8L8.js → skills-install-Ye1kjpCv.js} +4 -4
- package/dist/{skills-status-DuLjkX2E.js → skills-status-BUKnQ3ek.js} +2 -2
- package/dist/{skills-status-CvH7AUoY.js → skills-status-BmZufjT1.js} +3 -3
- package/dist/{soul-Bt8UNmTq.js → soul-C0oc6fbP.js} +1 -1
- package/dist/{soul-D9k5zulC.js → soul-DEsrpMAk.js} +1 -1
- package/dist/{soul-BiIdv3Wp.js → soul-Doq8As4R.js} +1 -1
- package/dist/{soul-DQSYs-4l.js → soul-DyLtQVJh.js} +1 -1
- package/dist/{sqlite-BMMt7osH.js → sqlite-CFCo1Ghe.js} +2 -2
- package/dist/{sqlite-Cm6OqTQB.js → sqlite-DVkTX4wZ.js} +1 -1
- package/dist/{sqlite-CZ1vD4VS.js → sqlite-DrhFRoal.js} +2 -2
- package/dist/{sqlite-CpAJt-JS.js → sqlite-M5Ot9X4U.js} +1 -1
- package/dist/start-C-gTbKUz.js +158 -0
- package/dist/start-DZKfWnpD.js +157 -0
- package/dist/{status-CDcFjNtS.js → status-BN6HYR8t.js} +4 -4
- package/dist/{status-CobgQziJ.js → status-BimVB8cj.js} +4 -4
- package/dist/{status-D37aRiV3.js → status-CSkpd-tb.js} +27 -27
- package/dist/{status-BhRELdY_.js → status-D1zupVBm.js} +24 -24
- package/dist/{status.update-B6Tdpk07.js → status.update-HKMS5T9H.js} +2 -2
- package/dist/{status.update-E9dSFk_b.js → status.update-oapjZPr_.js} +3 -3
- package/dist/{subagent-registry-CDEUbtey.js → subagent-registry-D87n8mHd.js} +318 -81
- package/dist/{subsystem-D1AJZPgG.js → subsystem-CkjVkxc4.js} +17 -1
- package/dist/{subsystem-D-Xta-sj.js → subsystem-CyrIA90F.js} +17 -1
- package/dist/{subsystem-BAADN1B8.js → subsystem-DLVQ9bjX.js} +17 -1
- package/dist/{system-cli-DoLzi2Sn.js → system-cli-BRPiBm4G.js} +13 -13
- package/dist/{system-cli-CP7JrhR0.js → system-cli-DaNHLGRC.js} +15 -15
- package/dist/{systemd-6iLWJxQQ.js → systemd-CS58NHpx.js} +2 -2
- package/dist/{systemd-hints-C5Kfh4GW.js → systemd-hints-7HkQ202-.js} +1 -1
- package/dist/{systemd-linger-CxGmIy_5.js → systemd-linger-BMNvTAmy.js} +2 -2
- package/dist/{systemd-linger-BVwGXVS0.js → systemd-linger-C9PGBtXs.js} +2 -2
- package/dist/{systemd-Bx76sJ3M.js → systemd-zYTszfyU.js} +2 -2
- package/dist/{table-Blmz7glr.js → table-Bea_v9UU.js} +2 -2
- package/dist/{table-Bt7rSYC6.js → table-ohGAZZLQ.js} +1 -1
- package/dist/{tokens-CmlI2hSz.js → tokens-BelyD23F.js} +1 -1
- package/dist/{tokens-SP2Q7i59.js → tokens-nliOJNMv.js} +1 -1
- package/dist/{tool-images-C6cKHTbj.js → tool-images-BEiRPCYM.js} +2 -2
- package/dist/{tool-images-2qproko3.js → tool-images-BH8q2ZMq.js} +2 -2
- package/dist/{tool-images-D1HuaGdS.js → tool-images-DJrhuxOM.js} +1 -1
- package/dist/{tool-images-CgDT0Xzv.js → tool-images-dAVG0qoz.js} +2 -2
- package/dist/{tui-r4qpJhNk.js → tui-DnzqtbW3.js} +9 -9
- package/dist/{tui-C2eLfbhA.js → tui-FJlF9b--.js} +8 -8
- package/dist/{tui-cli-cLSYBQu9.js → tui-cli-BtLvABYH.js} +27 -27
- package/dist/{tui-cli-BgcbCtgc.js → tui-cli-Cm3G2SAN.js} +26 -26
- package/dist/{update-CqKpX3cX.js → update-Cpvsdq3a.js} +3 -3
- package/dist/{update-DA91za97.js → update-DrQkwR-M.js} +3 -3
- package/dist/{update-cli-QtM0G6CE.js → update-cli-DpKplMO0.js} +79 -79
- package/dist/{update-cli-BjHgpnxD.js → update-cli-DueHX0OM.js} +83 -83
- package/dist/{update-runner-C8SRcVm3.js → update-runner-C7CjKcMp.js} +5 -5
- package/dist/{update-runner-Fb3Un6UZ.js → update-runner-DtqDU0xF.js} +5 -5
- package/dist/{utils-D1VGbO3C.js → utils-BNuEYQIN.js} +1 -1
- package/dist/{utils-CLYlhJuc.js → utils-CkCznJhR.js} +1 -1
- package/dist/{web-BDig9tCy.js → web-Br9HCEvC.js} +54 -54
- package/dist/{web-CPPJ5y4c.js → web-BxkEMATs.js} +25 -25
- package/dist/{web-C4lrKULd.js → web-CPHrMWsv.js} +24 -24
- package/dist/web-HXy7rlIW.js +65 -0
- package/dist/{webhooks-cli-k3QMf7Rs.js → webhooks-cli-CdoaCUQ5.js} +11 -11
- package/dist/{webhooks-cli-vlEfXEKm.js → webhooks-cli-D65dKr5L.js} +12 -12
- package/dist/{whatsapp-actions-Hr-W8vjY.js → whatsapp-actions--CtxOhlj.js} +12 -12
- package/dist/{whatsapp-actions-C0tlEdLy.js → whatsapp-actions--eONuB4M.js} +14 -14
- package/dist/{whatsapp-actions-BJn-z76S.js → whatsapp-actions-BM0a0V4y.js} +17 -17
- package/dist/{whatsapp-actions-6fPRKwPV.js → whatsapp-actions-Bhz79Fgg.js} +11 -11
- package/dist/{widearea-dns-CtU9Fx7K.js → widearea-dns-D2VSHQ7y.js} +1 -1
- package/dist/{widearea-dns-CHAT20aR.js → widearea-dns-DlJrNJOg.js} +1 -1
- package/dist/{workspace-BFIZCnGo.js → workspace-D6JhsXVL.js} +1 -1
- package/dist/{ws-log-CUobU2tD.js → ws-log-Cvz4xRCD.js} +1 -1
- package/dist/{ws-log-CG6cvCZW.js → ws-log-DwsFDY7m.js} +1 -1
- package/package.json +3 -1
- package/scripts/install-local-qwen3-coder.sh +7 -0
- package/dist/config-cli-CF2ERR8G.js +0 -11
- package/dist/config-cli-Dmd4Oyjp.js +0 -15
- package/dist/control-ui/assets/index-DIEQjjCN.js +0 -73
- package/dist/control-ui/assets/index-DIEQjjCN.js.map +0 -1
- package/dist/register.configure-Cs3uLUBo.js +0 -107
- package/dist/register.configure-Dpe8Qel3.js +0 -106
- package/dist/register.maintenance-BEYN8SJL.js +0 -103
- package/dist/register.maintenance-DqAdzWBM.js +0 -102
- package/dist/start-BdcAszpl.js +0 -157
- package/dist/start-gVOPVCgi.js +0 -158
- package/dist/web-Vx_ENtYI.js +0 -65
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { n as __exportAll } from "./chunk-BXK9XSlF.js";
|
|
2
|
-
import {
|
|
3
|
-
import { A as classifySessionKeyShape, B as parseAgentSessionKey, D as buildAgentMainSessionKey, E as DEFAULT_MAIN_KEY, F as resolveThreadSessionKeys, I as sanitizeAgentId, L as getSubagentDepth, M as normalizeAgentId, N as normalizeMainKey, O as buildAgentPeerSessionKey, P as resolveAgentIdFromSessionKey, R as isAcpSessionKey, S as resolveAnimaPackageRoot, T as DEFAULT_AGENT_ID, V as resolveThreadParentSessionKey, b as filterBootstrapFilesForSession, c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, j as normalizeAccountId$1, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, w as DEFAULT_ACCOUNT_ID, x as loadWorkspaceBootstrapFiles, y as ensureAgentWorkspace, z as isSubagentSessionKey } from "./agent-scope-
|
|
4
|
-
import { D as shortenHomePath, E as shortenHomeInString, O as sleep, T as safeParseJson, _ as isRecord, a as logDebug, c as logWarn, d as clampInt, g as isPlainObject, h as formatTerminalLink, i as spawnWithFallback, j as truncateUtf16Safe, k as sliceUtf16Safe, l as CONFIG_DIR, m as escapeRegExp, n as runExec, o as logError, p as ensureDir$3, r as formatSpawnError, s as logInfo, t as runCommandWithTimeout, w as resolveUserPath } from "./exec-
|
|
5
|
-
import { a as modelKey, d as resolveModelRefFromString, f as resolveThinkingDefault, h as DEFAULT_PROVIDER, i as isCliProvider, l as resolveConfiguredModelRef, m as DEFAULT_MODEL, n as buildConfiguredAllowlistKeys, o as normalizeModelRef, p as DEFAULT_CONTEXT_TOKENS, r as buildModelAliasIndex, s as normalizeProviderId, t as buildAllowedModelSet, u as resolveDefaultModelForAgent } from "./model-selection-
|
|
6
|
-
import { $ as resolveChannelResetConfig, A as isContextOverflowError, At as resolveSandboxConfigForAgent, B as readSessionUpdatedAt, Bt as matchesAnyGlobPattern, C as normalizeThinkLevel, Ct as buildWorkspaceSkillSnapshot, D as supportsXHighThinking, Dt as resolveSandboxedMediaSource, E as resolveResponseUsageMode, Et as assertSandboxPath, F as ensureSandboxWorkspaceForSession, Ft as expandToolGroups, G as updateSessionStoreEntry, Gt as SILENT_REPLY_TOKEN, Ht as resolveBootstrapMaxChars, I as resolveSandboxRuntimeStatus, It as normalizeToolName, J as mergeDeliveryContext, K as deliveryContextFromSession, Kt as isSilentReplyText, L as extractDeliveryInfo, Lt as resolveToolProfilePolicy, M as isLikelyContextOverflowError, Mt as buildPluginToolGroups, N as isTransientHttpError, Nt as collectExplicitAllowlist, O as classifyFailoverReason, Ot as ensureBrowserControlAuth, P as sanitizeUserFacingText, Pt as expandPolicyWithPluginGroups, Q as evaluateSessionFreshness, R as appendAssistantMessageToSessionTranscript, Rt as stripPluginOnlyAllowlist, S as normalizeReasoningLevel, St as buildWorkspaceSkillCommandSpecs, T as normalizeVerboseLevel, Tt as assertMediaNotDataUrl, U as updateLastRoute, Ut as resolveBootstrapTotalMaxChars, V as recordSessionMetaFromInbound, Vt as buildBootstrapContextFiles, W as updateSessionStore, Wt as HEARTBEAT_TOKEN, X as normalizeSessionDeliveryFields, Y as normalizeDeliveryContext, Z as resolveSessionKey$1, _ as initializeGlobalHookRunner, _t as getMediaDir, a as applyReplyThreading, at as canonicalizeMainSessionAlias, b as listThinkingLevels, bt as resolvePathsWithinRoot, c as shouldSuppressMessagingToolReplies, ct as getChannelDock, d as buildTargetResolverSignature, dt as normalizeChatType, et as resolveSessionResetPolicy, f as normalizeChannelTargetInput, ft as resolveGroupSessionKey, g as getGlobalHookRunner, gt as resolveProfile, h as parseReplyDirectives, ht as resolveBrowserConfig, i as applyReplyTagsToPayload, it as resolveFreshSessionTotalTokens, j as isFailoverErrorMessage, jt as applyOwnerOnlyToolPolicy, k as isCompactionFailureError, kt as resolveBrowserControlAuth, l as createReplyToModeFilterForChannel, lt as listChannelDocks, m as throwIfAborted, mt as registerBrowserRoutes, nt as resolveThreadFlag, o as filterMessagingToolDuplicates, ot as resolveMainSessionKey, p as normalizeTargetForProvider, pt as createBrowserRouteContext, q as deliveryContextKey, r as normalizeReplyPayloadsForDelivery, rt as DEFAULT_RESET_TRIGGERS, s as isRenderablePayload, st as deriveSessionMetaPatch, t as deliverOutboundPayloads, tt as resolveSessionResetType, u as resolveReplyToMode, ut as resolveConversationLabel, v as formatThinkingLevels, vt as saveMediaBuffer, w as normalizeUsageDisplay, wt as resolvePluginSkillDirs, x as normalizeElevatedLevel, xt as getBridgeAuthForPort, y as formatXHighModelHint, yt as DEFAULT_UPLOAD_DIR, z as loadSessionStore, zt as compileGlobPatterns } from "./deliver-
|
|
7
|
-
import { C as parseConfigPath, E as VERSION, S as getConfigValueAtPath, T as unsetConfigValueAtPath, _ as resolveMemorySlotDecision, a as writeConfigFile, b as setConfigOverride, c as parseDurationMs, d as discoverAnimaPlugins, g as resolveEnableState, h as normalizePluginsConfig, i as resolveConfigSnapshotHash, l as validateJsonSchemaValue, m as applyTestPluginDefaults, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as loadPluginManifestRegistry, v as getConfigOverrides, w as setConfigValueAtPath, x as unsetConfigOverride, y as resetConfigOverrides } from "./config-
|
|
8
|
-
import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell, s as isTruthyEnvValue } from "./shell-env-
|
|
9
|
-
import { S as pickPrimaryTailnetIPv4, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, _ as ensureChromeExtensionRelayServer, x as pickPrimaryLanIPv4, y as rawDataToString } from "./chrome-
|
|
2
|
+
import { A as normalizeLogLevel, D as getChildLogger, E as theme, F as resolveGatewayPort, I as resolveOAuthDir, N as resolveConfigPath, R as resolveStateDir, T as isRich, V as resolveRequiredHomeDir, a as registerActiveProgressLine, b as setVerbose, c as CHAT_CHANNEL_ORDER, d as normalizeChannelId, h as setActivePluginRegistry, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, p as getActivePluginRegistry, r as defaultRuntime, t as createSubsystemLogger, u as normalizeAnyChannelId, v as logVerbose, w as colorize, x as shouldLogVerbose } from "./subsystem-CyrIA90F.js";
|
|
3
|
+
import { A as classifySessionKeyShape, B as parseAgentSessionKey, D as buildAgentMainSessionKey, E as DEFAULT_MAIN_KEY, F as resolveThreadSessionKeys, I as sanitizeAgentId, L as getSubagentDepth, M as normalizeAgentId, N as normalizeMainKey, O as buildAgentPeerSessionKey, P as resolveAgentIdFromSessionKey, R as isAcpSessionKey, S as resolveAnimaPackageRoot, T as DEFAULT_AGENT_ID, V as resolveThreadParentSessionKey, b as filterBootstrapFilesForSession, c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, j as normalizeAccountId$1, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, w as DEFAULT_ACCOUNT_ID, x as loadWorkspaceBootstrapFiles, y as ensureAgentWorkspace, z as isSubagentSessionKey } from "./agent-scope-DpgOQfBp.js";
|
|
4
|
+
import { D as shortenHomePath, E as shortenHomeInString, O as sleep, T as safeParseJson, _ as isRecord, a as logDebug, c as logWarn, d as clampInt, g as isPlainObject, h as formatTerminalLink, i as spawnWithFallback, j as truncateUtf16Safe, k as sliceUtf16Safe, l as CONFIG_DIR, m as escapeRegExp, n as runExec, o as logError, p as ensureDir$3, r as formatSpawnError, s as logInfo, t as runCommandWithTimeout, w as resolveUserPath } from "./exec-Dn2S9A7x.js";
|
|
5
|
+
import { a as modelKey, d as resolveModelRefFromString, f as resolveThinkingDefault, h as DEFAULT_PROVIDER, i as isCliProvider, l as resolveConfiguredModelRef, m as DEFAULT_MODEL, n as buildConfiguredAllowlistKeys, o as normalizeModelRef, p as DEFAULT_CONTEXT_TOKENS, r as buildModelAliasIndex, s as normalizeProviderId, t as buildAllowedModelSet, u as resolveDefaultModelForAgent } from "./model-selection-BhIAjo3P.js";
|
|
6
|
+
import { $ as resolveChannelResetConfig, A as isContextOverflowError, At as resolveSandboxConfigForAgent, B as readSessionUpdatedAt, Bt as matchesAnyGlobPattern, C as normalizeThinkLevel, Ct as buildWorkspaceSkillSnapshot, D as supportsXHighThinking, Dt as resolveSandboxedMediaSource, E as resolveResponseUsageMode, Et as assertSandboxPath, F as ensureSandboxWorkspaceForSession, Ft as expandToolGroups, G as updateSessionStoreEntry, Gt as SILENT_REPLY_TOKEN, Ht as resolveBootstrapMaxChars, I as resolveSandboxRuntimeStatus, It as normalizeToolName, J as mergeDeliveryContext, K as deliveryContextFromSession, Kt as isSilentReplyText, L as extractDeliveryInfo, Lt as resolveToolProfilePolicy, M as isLikelyContextOverflowError, Mt as buildPluginToolGroups, N as isTransientHttpError, Nt as collectExplicitAllowlist, O as classifyFailoverReason, Ot as ensureBrowserControlAuth, P as sanitizeUserFacingText, Pt as expandPolicyWithPluginGroups, Q as evaluateSessionFreshness, R as appendAssistantMessageToSessionTranscript, Rt as stripPluginOnlyAllowlist, S as normalizeReasoningLevel, St as buildWorkspaceSkillCommandSpecs, T as normalizeVerboseLevel, Tt as assertMediaNotDataUrl, U as updateLastRoute, Ut as resolveBootstrapTotalMaxChars, V as recordSessionMetaFromInbound, Vt as buildBootstrapContextFiles, W as updateSessionStore, Wt as HEARTBEAT_TOKEN, X as normalizeSessionDeliveryFields, Y as normalizeDeliveryContext, Z as resolveSessionKey$1, _ as initializeGlobalHookRunner, _t as getMediaDir, a as applyReplyThreading, at as canonicalizeMainSessionAlias, b as listThinkingLevels, bt as resolvePathsWithinRoot, c as shouldSuppressMessagingToolReplies, ct as getChannelDock, d as buildTargetResolverSignature, dt as normalizeChatType, et as resolveSessionResetPolicy, f as normalizeChannelTargetInput, ft as resolveGroupSessionKey, g as getGlobalHookRunner, gt as resolveProfile, h as parseReplyDirectives, ht as resolveBrowserConfig, i as applyReplyTagsToPayload, it as resolveFreshSessionTotalTokens, j as isFailoverErrorMessage, jt as applyOwnerOnlyToolPolicy, k as isCompactionFailureError, kt as resolveBrowserControlAuth, l as createReplyToModeFilterForChannel, lt as listChannelDocks, m as throwIfAborted, mt as registerBrowserRoutes, nt as resolveThreadFlag, o as filterMessagingToolDuplicates, ot as resolveMainSessionKey, p as normalizeTargetForProvider, pt as createBrowserRouteContext, q as deliveryContextKey, r as normalizeReplyPayloadsForDelivery, rt as DEFAULT_RESET_TRIGGERS, s as isRenderablePayload, st as deriveSessionMetaPatch, t as deliverOutboundPayloads, tt as resolveSessionResetType, u as resolveReplyToMode, ut as resolveConversationLabel, v as formatThinkingLevels, vt as saveMediaBuffer, w as normalizeUsageDisplay, wt as resolvePluginSkillDirs, x as normalizeElevatedLevel, xt as getBridgeAuthForPort, y as formatXHighModelHint, yt as DEFAULT_UPLOAD_DIR, z as loadSessionStore, zt as compileGlobPatterns } from "./deliver-bdH5itRb.js";
|
|
7
|
+
import { C as parseConfigPath, E as VERSION, S as getConfigValueAtPath, T as unsetConfigValueAtPath, _ as resolveMemorySlotDecision, a as writeConfigFile, b as setConfigOverride, c as parseDurationMs, d as discoverAnimaPlugins, g as resolveEnableState, h as normalizePluginsConfig, i as resolveConfigSnapshotHash, l as validateJsonSchemaValue, m as applyTestPluginDefaults, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as loadPluginManifestRegistry, v as getConfigOverrides, w as setConfigValueAtPath, x as unsetConfigOverride, y as resetConfigOverrides } from "./config-C7s14LLE.js";
|
|
8
|
+
import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell, s as isTruthyEnvValue } from "./shell-env-BR7Sbtw1.js";
|
|
9
|
+
import { S as pickPrimaryTailnetIPv4, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, _ as ensureChromeExtensionRelayServer, x as pickPrimaryLanIPv4, y as rawDataToString } from "./chrome-Nb2mFwWK.js";
|
|
10
10
|
import { n as resolveCliName, t as formatCliCommand } from "./command-format-CsqJApTg.js";
|
|
11
11
|
import { n as formatErrorMessage } from "./errors-CllZhhV1.js";
|
|
12
|
-
import { A as extensionForMime, C as GATEWAY_CLIENT_NAMES, F as normalizeMimeType$1, H as isPrivateIpAddress, L as mediaKindFromMime, M as imageMimeFromFormat, N as isAudioFileName, O as resizeToJpeg, P as kindFromMime, R as SsrFBlockedError, S as GATEWAY_CLIENT_MODES, T as getImageMetadata, V as isBlockedHostname, _ as listDeliverableMessageChannels, a as chunkText, b as resolveMessageChannel, c as resolveTextChunkLimit, d as listChannelPlugins, f as normalizeChannelId$1, g as isMarkdownCapableMessageChannel, h as isInternalMessageChannel, i as chunkMarkdownTextWithMode, j as getFileExtension, k as detectMime, m as isDeliverableMessageChannel, o as chunkTextWithMode, p as INTERNAL_MESSAGE_CHANNEL, r as chunkMarkdownText, s as resolveChunkMode, t as chunkByNewline, u as getChannelPlugin, v as normalizeMessageChannel, x as GATEWAY_CLIENT_IDS, y as resolveGatewayMessageChannel } from "./chunk-
|
|
13
|
-
import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath$1 } from "./paths-
|
|
14
|
-
import { t as sanitizeToolResultImages } from "./tool-images-
|
|
15
|
-
import { _ as normalizeSecretInput, a as markAuthProfileUsed, c as markAuthProfileGood, d as resolveAnimaAgentDir, f as loadJsonFile, h as resolveAuthProfileDisplayLabel, i as markAuthProfileFailure, l as ensureAuthProfileStore, m as withFileLock$1, n as resolveAuthProfileOrder, o as resolveApiKeyForProfile, p as saveJsonFile, r as isProfileInCooldown, s as listProfilesForProvider, u as resolveAuthStorePathForDisplay } from "./auth-profiles-
|
|
16
|
-
import { a as requireApiKey, c as resolveModelAuthMode, i as getCustomProviderApiKey, n as resolveMemorySearchConfig, o as resolveApiKeyForProvider, r as getApiKeyForModel, s as resolveEnvApiKey } from "./manager-
|
|
17
|
-
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths } from "./sqlite-
|
|
18
|
-
import { n as createAsyncLock } from "./soul-
|
|
19
|
-
import { a as readNumberParam, c as readStringParam, i as jsonResult, n as imageResult, r as imageResultFromFile, s as readStringArrayParam } from "./common-
|
|
20
|
-
import { a as resolveMarkdownTableMode, c as loadWebMedia, d as readResponseWithLimit, f as fetchWithSsrFGuard, i as convertMarkdownTables, l as MediaFetchError, m as fetchWithTimeout, o as normalizePollInput, p as bindAbortRelay, s as getDefaultLocalRoots, t as getActiveWebListener, u as fetchRemoteMedia } from "./active-listener-
|
|
12
|
+
import { A as extensionForMime, C as GATEWAY_CLIENT_NAMES, F as normalizeMimeType$1, H as isPrivateIpAddress, L as mediaKindFromMime, M as imageMimeFromFormat, N as isAudioFileName, O as resizeToJpeg, P as kindFromMime, R as SsrFBlockedError, S as GATEWAY_CLIENT_MODES, T as getImageMetadata, V as isBlockedHostname, _ as listDeliverableMessageChannels, a as chunkText, b as resolveMessageChannel, c as resolveTextChunkLimit, d as listChannelPlugins, f as normalizeChannelId$1, g as isMarkdownCapableMessageChannel, h as isInternalMessageChannel, i as chunkMarkdownTextWithMode, j as getFileExtension, k as detectMime, m as isDeliverableMessageChannel, o as chunkTextWithMode, p as INTERNAL_MESSAGE_CHANNEL, r as chunkMarkdownText, s as resolveChunkMode, t as chunkByNewline, u as getChannelPlugin, v as normalizeMessageChannel, x as GATEWAY_CLIENT_IDS, y as resolveGatewayMessageChannel } from "./chunk-CTS4rIMF.js";
|
|
13
|
+
import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath$1 } from "./paths-BqA7F6bT.js";
|
|
14
|
+
import { t as sanitizeToolResultImages } from "./tool-images-BEiRPCYM.js";
|
|
15
|
+
import { _ as normalizeSecretInput, a as markAuthProfileUsed, c as markAuthProfileGood, d as resolveAnimaAgentDir, f as loadJsonFile, h as resolveAuthProfileDisplayLabel, i as markAuthProfileFailure, l as ensureAuthProfileStore, m as withFileLock$1, n as resolveAuthProfileOrder, o as resolveApiKeyForProfile, p as saveJsonFile, r as isProfileInCooldown, s as listProfilesForProvider, u as resolveAuthStorePathForDisplay } from "./auth-profiles-D0T20ZZX.js";
|
|
16
|
+
import { a as requireApiKey, c as resolveModelAuthMode, i as getCustomProviderApiKey, n as resolveMemorySearchConfig, o as resolveApiKeyForProvider, r as getApiKeyForModel, s as resolveEnvApiKey } from "./manager-B-8JFgek.js";
|
|
17
|
+
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths } from "./sqlite-CFCo1Ghe.js";
|
|
18
|
+
import { n as createAsyncLock } from "./soul-Doq8As4R.js";
|
|
19
|
+
import { a as readNumberParam, c as readStringParam, i as jsonResult, n as imageResult, r as imageResultFromFile, s as readStringArrayParam } from "./common-Coq2knq6.js";
|
|
20
|
+
import { a as resolveMarkdownTableMode, c as loadWebMedia, d as readResponseWithLimit, f as fetchWithSsrFGuard, i as convertMarkdownTables, l as MediaFetchError, m as fetchWithTimeout, o as normalizePollInput, p as bindAbortRelay, s as getDefaultLocalRoots, t as getActiveWebListener, u as fetchRemoteMedia } from "./active-listener-C3NdbMQD.js";
|
|
21
21
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-B1cF8Wk2.js";
|
|
22
|
-
import { d as webAuthExists, i as logoutWeb, n as getWebAuthAgeMs, r as logWebSelfId, s as readWebSelfId } from "./auth-store-
|
|
22
|
+
import { d as webAuthExists, i as logoutWeb, n as getWebAuthAgeMs, r as logWebSelfId, s as readWebSelfId } from "./auth-store-po566wly.js";
|
|
23
23
|
import { createRequire } from "node:module";
|
|
24
24
|
import * as path$1 from "node:path";
|
|
25
25
|
import path, { join } from "node:path";
|
|
@@ -4887,7 +4887,7 @@ async function getMemorySearchManager(params) {
|
|
|
4887
4887
|
if (cached) return { manager: cached };
|
|
4888
4888
|
}
|
|
4889
4889
|
try {
|
|
4890
|
-
const { QmdMemoryManager } = await import("./qmd-manager-
|
|
4890
|
+
const { QmdMemoryManager } = await import("./qmd-manager-CpynR-al.js");
|
|
4891
4891
|
const primary = await QmdMemoryManager.create({
|
|
4892
4892
|
cfg: params.cfg,
|
|
4893
4893
|
agentId: params.agentId,
|
|
@@ -4899,7 +4899,7 @@ async function getMemorySearchManager(params) {
|
|
|
4899
4899
|
const wrapper = new FallbackMemoryManager({
|
|
4900
4900
|
primary,
|
|
4901
4901
|
fallbackFactory: async () => {
|
|
4902
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4902
|
+
const { MemoryIndexManager } = await import("./manager-B-8JFgek.js").then((n) => n.t);
|
|
4903
4903
|
return await MemoryIndexManager.get(params);
|
|
4904
4904
|
}
|
|
4905
4905
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -4912,7 +4912,7 @@ async function getMemorySearchManager(params) {
|
|
|
4912
4912
|
}
|
|
4913
4913
|
}
|
|
4914
4914
|
try {
|
|
4915
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4915
|
+
const { MemoryIndexManager } = await import("./manager-B-8JFgek.js").then((n) => n.t);
|
|
4916
4916
|
return { manager: await MemoryIndexManager.get(params) };
|
|
4917
4917
|
} catch (err) {
|
|
4918
4918
|
return {
|
|
@@ -8662,7 +8662,7 @@ async function routeReply(params) {
|
|
|
8662
8662
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
8663
8663
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
8664
8664
|
try {
|
|
8665
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
8665
|
+
const { deliverOutboundPayloads } = await import("./deliver-bdH5itRb.js").then((n) => n.n);
|
|
8666
8666
|
return {
|
|
8667
8667
|
ok: true,
|
|
8668
8668
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -12360,6 +12360,14 @@ const SEED_MODELS = [
|
|
|
12360
12360
|
contextWindow: 3e5,
|
|
12361
12361
|
reasoning: false,
|
|
12362
12362
|
input: ["text", "image"]
|
|
12363
|
+
},
|
|
12364
|
+
{
|
|
12365
|
+
id: "glm-5",
|
|
12366
|
+
name: "GLM-5",
|
|
12367
|
+
provider: "zai",
|
|
12368
|
+
contextWindow: 2e5,
|
|
12369
|
+
reasoning: true,
|
|
12370
|
+
input: ["text"]
|
|
12363
12371
|
}
|
|
12364
12372
|
];
|
|
12365
12373
|
async function ensureAnimaModelsJson(config, agentDirOverride) {
|
|
@@ -12421,7 +12429,7 @@ async function loadModelCatalog(params) {
|
|
|
12421
12429
|
});
|
|
12422
12430
|
try {
|
|
12423
12431
|
await ensureAnimaModelsJson(params?.config ?? loadConfig());
|
|
12424
|
-
await (await import("./pi-auth-json-
|
|
12432
|
+
await (await import("./pi-auth-json-BhkzZgQz.js")).ensurePiAuthJsonFromAuthProfiles(resolveAnimaAgentDir());
|
|
12425
12433
|
const piSdk = await importPiSdk();
|
|
12426
12434
|
const agentDir = resolveAnimaAgentDir();
|
|
12427
12435
|
const { join } = await import("node:path");
|
|
@@ -14518,7 +14526,7 @@ async function createModelSelectionState(params) {
|
|
|
14518
14526
|
}
|
|
14519
14527
|
}
|
|
14520
14528
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
14521
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles-
|
|
14529
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles-D0T20ZZX.js").then((n) => n.t);
|
|
14522
14530
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
14523
14531
|
const providerKey = normalizeProviderId(provider);
|
|
14524
14532
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -28969,6 +28977,63 @@ function orderCandidatesByPreference(params) {
|
|
|
28969
28977
|
|
|
28970
28978
|
//#endregion
|
|
28971
28979
|
//#region src/agents/model-fallback.ts
|
|
28980
|
+
const IMPLICIT_CODE_MODEL_FALLBACKS = [{
|
|
28981
|
+
whenProvider: "anthropic",
|
|
28982
|
+
provider: "openai-codex",
|
|
28983
|
+
model: "gpt-5.2-codex"
|
|
28984
|
+
}, {
|
|
28985
|
+
whenProvider: "anthropic",
|
|
28986
|
+
provider: "ollama",
|
|
28987
|
+
model: "qwen3-coder:latest"
|
|
28988
|
+
}];
|
|
28989
|
+
function isLocalBaseUrl(baseUrl) {
|
|
28990
|
+
const raw = baseUrl?.trim();
|
|
28991
|
+
if (!raw) return false;
|
|
28992
|
+
try {
|
|
28993
|
+
const host = new URL(raw).hostname.toLowerCase();
|
|
28994
|
+
return host === "localhost" || host === "127.0.0.1" || host === "0.0.0.0" || host === "::1" || host.endsWith(".local");
|
|
28995
|
+
} catch {
|
|
28996
|
+
return false;
|
|
28997
|
+
}
|
|
28998
|
+
}
|
|
28999
|
+
function isOpenAICompatibleApi(api) {
|
|
29000
|
+
const normalized = api?.trim();
|
|
29001
|
+
return normalized === "openai-completions" || normalized === "openai-responses";
|
|
29002
|
+
}
|
|
29003
|
+
function scoreLocalFallback(params) {
|
|
29004
|
+
const haystack = `${params.provider} ${params.model} ${params.name ?? ""}`.toLowerCase();
|
|
29005
|
+
if (haystack.includes("qwen3") && haystack.includes("coder")) return 100;
|
|
29006
|
+
if (haystack.includes("qwen") && haystack.includes("coder")) return 90;
|
|
29007
|
+
if (haystack.includes("noxsoft-tool-coder")) return 80;
|
|
29008
|
+
if (haystack.includes("tool-coder")) return 70;
|
|
29009
|
+
if (haystack.includes("coder")) return 60;
|
|
29010
|
+
if (haystack.includes("gpt-oss")) return 50;
|
|
29011
|
+
return 10;
|
|
29012
|
+
}
|
|
29013
|
+
function resolveImplicitLocalOpenAIFallbacks(cfg) {
|
|
29014
|
+
const providers = cfg?.models?.providers ?? {};
|
|
29015
|
+
const candidates = [];
|
|
29016
|
+
for (const [provider, entry] of Object.entries(providers)) {
|
|
29017
|
+
if (!isLocalBaseUrl(entry?.baseUrl) || !isOpenAICompatibleApi(entry?.api)) continue;
|
|
29018
|
+
for (const model of entry?.models ?? []) {
|
|
29019
|
+
const id = model?.id?.trim();
|
|
29020
|
+
if (!id) continue;
|
|
29021
|
+
candidates.push({
|
|
29022
|
+
provider,
|
|
29023
|
+
model: id,
|
|
29024
|
+
score: scoreLocalFallback({
|
|
29025
|
+
provider,
|
|
29026
|
+
model: id,
|
|
29027
|
+
name: model?.name
|
|
29028
|
+
})
|
|
29029
|
+
});
|
|
29030
|
+
}
|
|
29031
|
+
}
|
|
29032
|
+
return candidates.toSorted((a, b) => b.score - a.score || a.provider.localeCompare(b.provider) || a.model.localeCompare(b.model)).map(({ provider, model }) => ({
|
|
29033
|
+
provider,
|
|
29034
|
+
model
|
|
29035
|
+
}));
|
|
29036
|
+
}
|
|
28972
29037
|
/**
|
|
28973
29038
|
* Fallback abort check. Only treats explicit AbortError names as user aborts.
|
|
28974
29039
|
* Message-based checks (e.g., "aborted") can mask timeouts and skip fallback.
|
|
@@ -29062,6 +29127,14 @@ function resolveFallbackCandidates(params) {
|
|
|
29062
29127
|
if (!resolved) continue;
|
|
29063
29128
|
addCandidate(resolved.ref, true);
|
|
29064
29129
|
}
|
|
29130
|
+
if (params.fallbacksOverride === void 0) for (const implicit of IMPLICIT_CODE_MODEL_FALLBACKS) {
|
|
29131
|
+
if (normalizedPrimary.provider !== implicit.whenProvider) continue;
|
|
29132
|
+
addCandidate({
|
|
29133
|
+
provider: implicit.provider,
|
|
29134
|
+
model: implicit.model
|
|
29135
|
+
}, false);
|
|
29136
|
+
if (implicit.provider === "openai-codex") for (const localFallback of resolveImplicitLocalOpenAIFallbacks(params.cfg)) addCandidate(localFallback, false);
|
|
29137
|
+
}
|
|
29065
29138
|
if (params.fallbacksOverride === void 0 && primary?.provider && primary.model) addCandidate({
|
|
29066
29139
|
provider: primary.provider,
|
|
29067
29140
|
model: primary.model
|
|
@@ -39050,7 +39123,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
39050
39123
|
return;
|
|
39051
39124
|
}
|
|
39052
39125
|
try {
|
|
39053
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
39126
|
+
const { deliverOutboundPayloads } = await import("./deliver-bdH5itRb.js").then((n) => n.n);
|
|
39054
39127
|
await deliverOutboundPayloads({
|
|
39055
39128
|
cfg: params.cfg,
|
|
39056
39129
|
channel,
|
|
@@ -39611,6 +39684,30 @@ function createTypingController(params) {
|
|
|
39611
39684
|
|
|
39612
39685
|
//#endregion
|
|
39613
39686
|
//#region src/auto-reply/reply/get-reply.ts
|
|
39687
|
+
/** Surfaces that represent real-time conversation (chat, DMs, voice). */
|
|
39688
|
+
const CONVERSATIONAL_CHAT_TYPES = new Set([
|
|
39689
|
+
"private",
|
|
39690
|
+
"group",
|
|
39691
|
+
"supergroup",
|
|
39692
|
+
"channel",
|
|
39693
|
+
"dm",
|
|
39694
|
+
"chat"
|
|
39695
|
+
]);
|
|
39696
|
+
/**
|
|
39697
|
+
* Returns true when the inbound message originates from a real-time
|
|
39698
|
+
* conversational surface (NoxSoft chat, Telegram, WhatsApp, etc.)
|
|
39699
|
+
* rather than a programmatic/execution context (gateway API, heartbeat, CLI).
|
|
39700
|
+
*/
|
|
39701
|
+
function isConversationalChannel(ctx) {
|
|
39702
|
+
if (ctx.CommandSource === "native") return false;
|
|
39703
|
+
const provider = ctx.Provider?.toLowerCase() ?? "";
|
|
39704
|
+
if (provider === "telegram" || provider === "whatsapp" || provider === "noxsoft") return true;
|
|
39705
|
+
const chatType = ctx.ChatType?.toLowerCase() ?? "";
|
|
39706
|
+
if (CONVERSATIONAL_CHAT_TYPES.has(chatType)) return true;
|
|
39707
|
+
const channel = typeof ctx.OriginatingChannel === "string" ? ctx.OriginatingChannel : "";
|
|
39708
|
+
if (channel && channel !== "gateway" && channel !== "cli") return true;
|
|
39709
|
+
return false;
|
|
39710
|
+
}
|
|
39614
39711
|
function mergeSkillFilters(channelFilter, agentFilter) {
|
|
39615
39712
|
const normalize = (list) => {
|
|
39616
39713
|
if (!Array.isArray(list)) return;
|
|
@@ -39659,6 +39756,18 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
|
|
|
39659
39756
|
hasResolvedHeartbeatModelOverride = true;
|
|
39660
39757
|
}
|
|
39661
39758
|
}
|
|
39759
|
+
if (!opts?.isHeartbeat && !hasResolvedHeartbeatModelOverride && isConversationalChannel(ctx)) {
|
|
39760
|
+
const convRaw = agentCfg?.conversationalModel?.trim() ?? "";
|
|
39761
|
+
const convRef = convRaw ? resolveModelRefFromString({
|
|
39762
|
+
raw: convRaw,
|
|
39763
|
+
defaultProvider,
|
|
39764
|
+
aliasIndex
|
|
39765
|
+
}) : null;
|
|
39766
|
+
if (convRef) {
|
|
39767
|
+
provider = convRef.ref.provider;
|
|
39768
|
+
model = convRef.ref.model;
|
|
39769
|
+
}
|
|
39770
|
+
}
|
|
39662
39771
|
const workspaceDir = (await ensureAgentWorkspace({
|
|
39663
39772
|
dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
|
|
39664
39773
|
ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
|
|
@@ -40479,7 +40588,7 @@ function createWhatsAppLoginTool() {
|
|
|
40479
40588
|
force: Type.Optional(Type.Boolean())
|
|
40480
40589
|
}),
|
|
40481
40590
|
execute: async (_toolCallId, args) => {
|
|
40482
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
40591
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BVzUWR4o.js");
|
|
40483
40592
|
if ((args?.action ?? "start") === "wait") {
|
|
40484
40593
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
40485
40594
|
return {
|
|
@@ -41409,23 +41518,23 @@ let webLoginQrPromise = null;
|
|
|
41409
41518
|
let webChannelPromise = null;
|
|
41410
41519
|
let whatsappActionsPromise = null;
|
|
41411
41520
|
function loadWebOutbound() {
|
|
41412
|
-
webOutboundPromise ??= import("./outbound-
|
|
41521
|
+
webOutboundPromise ??= import("./outbound-Bii3QonX.js").then((n) => n.t);
|
|
41413
41522
|
return webOutboundPromise;
|
|
41414
41523
|
}
|
|
41415
41524
|
function loadWebLogin() {
|
|
41416
|
-
webLoginPromise ??= import("./login-
|
|
41525
|
+
webLoginPromise ??= import("./login-WPS724ji.js").then((n) => n.n);
|
|
41417
41526
|
return webLoginPromise;
|
|
41418
41527
|
}
|
|
41419
41528
|
function loadWebLoginQr() {
|
|
41420
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
41529
|
+
webLoginQrPromise ??= import("./login-qr-BVzUWR4o.js");
|
|
41421
41530
|
return webLoginQrPromise;
|
|
41422
41531
|
}
|
|
41423
41532
|
function loadWebChannel() {
|
|
41424
|
-
webChannelPromise ??= import("./web-
|
|
41533
|
+
webChannelPromise ??= import("./web-CPHrMWsv.js");
|
|
41425
41534
|
return webChannelPromise;
|
|
41426
41535
|
}
|
|
41427
41536
|
function loadWhatsAppActions() {
|
|
41428
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
41537
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-Bhz79Fgg.js");
|
|
41429
41538
|
return whatsappActionsPromise;
|
|
41430
41539
|
}
|
|
41431
41540
|
function createPluginRuntime() {
|
|
@@ -43988,10 +44097,80 @@ async function runGeminiDirectAgent(params) {
|
|
|
43988
44097
|
};
|
|
43989
44098
|
}
|
|
43990
44099
|
|
|
44100
|
+
//#endregion
|
|
44101
|
+
//#region src/agents/local-model-installer.ts
|
|
44102
|
+
const DEFAULT_LOCAL_OLLAMA_MODEL = "qwen3-coder:latest";
|
|
44103
|
+
const installPromises = /* @__PURE__ */ new Map();
|
|
44104
|
+
function createInstallerError(message, cause) {
|
|
44105
|
+
const err = new Error(message);
|
|
44106
|
+
if (cause !== void 0) err.cause = cause;
|
|
44107
|
+
return err;
|
|
44108
|
+
}
|
|
44109
|
+
async function isOllamaModelInstalled(model = DEFAULT_LOCAL_OLLAMA_MODEL) {
|
|
44110
|
+
try {
|
|
44111
|
+
await runExec("ollama", ["show", model], 1e4);
|
|
44112
|
+
return true;
|
|
44113
|
+
} catch {
|
|
44114
|
+
return false;
|
|
44115
|
+
}
|
|
44116
|
+
}
|
|
44117
|
+
async function ensureLocalOllamaModelInstalled(params) {
|
|
44118
|
+
const model = params?.model?.trim() || DEFAULT_LOCAL_OLLAMA_MODEL;
|
|
44119
|
+
const timeoutMs = params?.timeoutMs ?? 72e5;
|
|
44120
|
+
const runtime = params?.runtime ?? createNonExitingRuntime();
|
|
44121
|
+
const existing = installPromises.get(model);
|
|
44122
|
+
if (existing) return await existing;
|
|
44123
|
+
const promise = (async () => {
|
|
44124
|
+
try {
|
|
44125
|
+
await runExec("ollama", ["list"], 1e4);
|
|
44126
|
+
} catch (error) {
|
|
44127
|
+
throw createInstallerError("Ollama is required but no local Ollama server is reachable. Start Ollama and retry.", error);
|
|
44128
|
+
}
|
|
44129
|
+
if (await isOllamaModelInstalled(model)) return {
|
|
44130
|
+
installed: true,
|
|
44131
|
+
pulled: false
|
|
44132
|
+
};
|
|
44133
|
+
runtime.log(`Installing local model via Ollama: ${model}`);
|
|
44134
|
+
const result = await runCommandWithTimeout([
|
|
44135
|
+
"ollama",
|
|
44136
|
+
"pull",
|
|
44137
|
+
model
|
|
44138
|
+
], { timeoutMs });
|
|
44139
|
+
if (result.code !== 0) {
|
|
44140
|
+
const detail = (result.stderr || result.stdout).trim();
|
|
44141
|
+
throw createInstallerError(`Failed to install local Ollama model "${model}".${detail ? ` ${detail}` : ""}`);
|
|
44142
|
+
}
|
|
44143
|
+
if (!await isOllamaModelInstalled(model)) throw createInstallerError(`Ollama reported success, but model "${model}" is still missing.`);
|
|
44144
|
+
runtime.log(`Local model ready: ${model}`);
|
|
44145
|
+
return {
|
|
44146
|
+
installed: true,
|
|
44147
|
+
pulled: true
|
|
44148
|
+
};
|
|
44149
|
+
})();
|
|
44150
|
+
installPromises.set(model, promise);
|
|
44151
|
+
try {
|
|
44152
|
+
return await promise;
|
|
44153
|
+
} finally {
|
|
44154
|
+
installPromises.delete(model);
|
|
44155
|
+
}
|
|
44156
|
+
}
|
|
44157
|
+
|
|
43991
44158
|
//#endregion
|
|
43992
44159
|
//#region src/agents/openai-direct-runner.ts
|
|
43993
44160
|
const log = createSubsystemLogger("agent/openai-direct");
|
|
43994
44161
|
const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
|
|
44162
|
+
const DEFAULT_PROVIDER_BASE_URLS = {
|
|
44163
|
+
openai: DEFAULT_OPENAI_BASE_URL,
|
|
44164
|
+
minimax: "https://api.minimax.io/v1",
|
|
44165
|
+
ollama: "http://127.0.0.1:11434/v1",
|
|
44166
|
+
lmstudio: "http://127.0.0.1:1234/v1"
|
|
44167
|
+
};
|
|
44168
|
+
const PROVIDER_API_KEY_HINTS = {
|
|
44169
|
+
openai: "OPENAI_API_KEY",
|
|
44170
|
+
minimax: "MINIMAX_API_KEY",
|
|
44171
|
+
ollama: "OLLAMA_API_KEY",
|
|
44172
|
+
lmstudio: "LMSTUDIO_API_KEY"
|
|
44173
|
+
};
|
|
43995
44174
|
const MODEL_MAP = {
|
|
43996
44175
|
"gpt-5.4": "gpt-5.4",
|
|
43997
44176
|
"gpt-5.2": "gpt-5.2",
|
|
@@ -44029,6 +44208,10 @@ function resolveModel(model) {
|
|
|
44029
44208
|
const key = (model ?? "default").trim().toLowerCase() || "default";
|
|
44030
44209
|
return MODEL_MAP[key] ?? key;
|
|
44031
44210
|
}
|
|
44211
|
+
function isToolUnsupportedError(body) {
|
|
44212
|
+
const normalized = body.toLowerCase();
|
|
44213
|
+
return normalized.includes("does not support tools") || normalized.includes("tool is not supported");
|
|
44214
|
+
}
|
|
44032
44215
|
/**
|
|
44033
44216
|
* Clean a JSON Schema for OpenAI's function calling.
|
|
44034
44217
|
* OpenAI is stricter than most — no unsupported keywords.
|
|
@@ -44055,8 +44238,10 @@ function cleanSchemaForOpenAI(schema) {
|
|
|
44055
44238
|
*/
|
|
44056
44239
|
async function runOpenAIDirectAgent(params) {
|
|
44057
44240
|
const started = Date.now();
|
|
44241
|
+
const provider = (params.provider ?? "openai").trim() || "openai";
|
|
44058
44242
|
const resolvedModel = resolveModel(params.model);
|
|
44059
|
-
|
|
44243
|
+
if (provider === "ollama" && resolvedModel === DEFAULT_LOCAL_OLLAMA_MODEL) await ensureLocalOllamaModelInstalled({ model: resolvedModel });
|
|
44244
|
+
log.info(`direct api exec: provider=${provider} model=${resolvedModel} promptChars=${params.prompt.length}`);
|
|
44060
44245
|
const workspaceDir = resolveRunWorkspaceDir({
|
|
44061
44246
|
workspaceDir: params.workspaceDir,
|
|
44062
44247
|
sessionKey: params.sessionKey,
|
|
@@ -44067,7 +44252,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44067
44252
|
config: params.config,
|
|
44068
44253
|
workspaceDir,
|
|
44069
44254
|
sessionKey: params.sessionKey,
|
|
44070
|
-
modelProvider:
|
|
44255
|
+
modelProvider: provider,
|
|
44071
44256
|
modelId: resolvedModel
|
|
44072
44257
|
});
|
|
44073
44258
|
const openaiTools = executableTools.map((t) => ({
|
|
@@ -44113,7 +44298,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44113
44298
|
docsPath: docsPath ?? void 0,
|
|
44114
44299
|
tools: executableTools,
|
|
44115
44300
|
contextFiles,
|
|
44116
|
-
modelDisplay:
|
|
44301
|
+
modelDisplay: `${provider}/${resolvedModel}`,
|
|
44117
44302
|
agentId: sessionAgentId
|
|
44118
44303
|
});
|
|
44119
44304
|
let history = await loadSessionHistory(params.sessionFile);
|
|
@@ -44137,7 +44322,8 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44137
44322
|
let isDone = false;
|
|
44138
44323
|
let loopCount = 0;
|
|
44139
44324
|
const maxLoops = 20;
|
|
44140
|
-
|
|
44325
|
+
let toolUseEnabled = openaiTools.length > 0;
|
|
44326
|
+
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;
|
|
44141
44327
|
while (!isDone && loopCount < maxLoops) {
|
|
44142
44328
|
loopCount++;
|
|
44143
44329
|
const requestBody = {
|
|
@@ -44147,7 +44333,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44147
44333
|
temperature: 1,
|
|
44148
44334
|
stream: true
|
|
44149
44335
|
};
|
|
44150
|
-
if (openaiTools.length > 0) {
|
|
44336
|
+
if (toolUseEnabled && openaiTools.length > 0) {
|
|
44151
44337
|
requestBody.tools = openaiTools;
|
|
44152
44338
|
requestBody.tool_choice = "auto";
|
|
44153
44339
|
}
|
|
@@ -44159,8 +44345,8 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44159
44345
|
method: "POST",
|
|
44160
44346
|
headers: {
|
|
44161
44347
|
"Content-Type": "application/json",
|
|
44162
|
-
|
|
44163
|
-
|
|
44348
|
+
"User-Agent": `anima/7.0.0 (openai-direct-runner; ${os.platform()})`,
|
|
44349
|
+
...params.apiKey?.trim() ? { Authorization: `Bearer ${params.apiKey}` } : {}
|
|
44164
44350
|
},
|
|
44165
44351
|
body: JSON.stringify(requestBody),
|
|
44166
44352
|
signal: controller.signal
|
|
@@ -44168,11 +44354,20 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44168
44354
|
clearTimeout(timeoutHandle);
|
|
44169
44355
|
if (!response.ok) {
|
|
44170
44356
|
const body = await response.text().catch(() => "");
|
|
44357
|
+
if (response.status === 400 && toolUseEnabled && isToolUnsupportedError(body)) {
|
|
44358
|
+
log.warn("openai-compatible provider rejected tools; retrying without tools", {
|
|
44359
|
+
provider,
|
|
44360
|
+
model: resolvedModel
|
|
44361
|
+
});
|
|
44362
|
+
toolUseEnabled = false;
|
|
44363
|
+
continue;
|
|
44364
|
+
}
|
|
44171
44365
|
const isAuth = response.status === 401 || response.status === 403;
|
|
44172
44366
|
const isRateLimit = response.status === 429;
|
|
44173
44367
|
const rateHint = isRateLimit ? " — rate limit hit, will retry next heartbeat." : "";
|
|
44174
|
-
const
|
|
44175
|
-
|
|
44368
|
+
const apiKeyHint = PROVIDER_API_KEY_HINTS[provider] ?? "API key";
|
|
44369
|
+
const authHint = isAuth ? ` — API key may be invalid. Check ${apiKeyHint}.` : "";
|
|
44370
|
+
log.error(`${provider} api error: HTTP ${response.status}${authHint}${rateHint}`, {
|
|
44176
44371
|
status: response.status,
|
|
44177
44372
|
body: body.slice(0, 500)
|
|
44178
44373
|
});
|
|
@@ -44300,7 +44495,8 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44300
44495
|
log.info(`openai api complete: ${durationMs}ms`, {
|
|
44301
44496
|
inputTokens: totalInputTokens,
|
|
44302
44497
|
outputTokens: totalOutputTokens,
|
|
44303
|
-
model: resolvedModel
|
|
44498
|
+
model: resolvedModel,
|
|
44499
|
+
provider
|
|
44304
44500
|
});
|
|
44305
44501
|
return {
|
|
44306
44502
|
status: "completed",
|
|
@@ -44310,7 +44506,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44310
44506
|
durationMs,
|
|
44311
44507
|
agentMeta: {
|
|
44312
44508
|
model: resolvedModel,
|
|
44313
|
-
provider
|
|
44509
|
+
provider,
|
|
44314
44510
|
usage: {
|
|
44315
44511
|
input: totalInputTokens,
|
|
44316
44512
|
output: totalOutputTokens
|
|
@@ -44342,10 +44538,22 @@ async function emitAgentEvent(params, stream, data) {
|
|
|
44342
44538
|
data
|
|
44343
44539
|
});
|
|
44344
44540
|
}
|
|
44541
|
+
function resolveProviderConfig(provider, config) {
|
|
44542
|
+
const providers = config?.models?.providers ?? {};
|
|
44543
|
+
const direct = providers[provider];
|
|
44544
|
+
if (direct) return direct;
|
|
44545
|
+
const normalized = normalizeProviderId(provider);
|
|
44546
|
+
return Object.entries(providers).find(([key]) => normalizeProviderId(key) === normalized)?.[1];
|
|
44547
|
+
}
|
|
44548
|
+
function isOpenAICompatibleProviderConfig(entry) {
|
|
44549
|
+
const api = entry?.api?.trim();
|
|
44550
|
+
return api === "openai-completions" || api === "openai-responses";
|
|
44551
|
+
}
|
|
44345
44552
|
function resolveDirectAuthProvider(provider) {
|
|
44346
44553
|
if (provider === "anthropic" || provider === "claude") return "anthropic";
|
|
44347
44554
|
if (provider === "google" || provider === "gemini") return "google";
|
|
44348
44555
|
if (provider === "openai") return "openai";
|
|
44556
|
+
if (provider === "minimax") return "minimax";
|
|
44349
44557
|
return null;
|
|
44350
44558
|
}
|
|
44351
44559
|
function resolveProfileFailureReason(result) {
|
|
@@ -44437,7 +44645,7 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44437
44645
|
let lastResult = null;
|
|
44438
44646
|
for (;;) {
|
|
44439
44647
|
const auth = await resolveDirectProviderAuth({
|
|
44440
|
-
provider: params.
|
|
44648
|
+
provider: params.authProvider,
|
|
44441
44649
|
config: params.config,
|
|
44442
44650
|
agentDir: params.agentDir,
|
|
44443
44651
|
preferredProfile,
|
|
@@ -44449,7 +44657,7 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44449
44657
|
meta: {
|
|
44450
44658
|
durationMs: 0,
|
|
44451
44659
|
error: {
|
|
44452
|
-
message: `Auth fallback loop detected for ${params.
|
|
44660
|
+
message: `Auth fallback loop detected for ${params.authProvider}.`,
|
|
44453
44661
|
kind: "unknown"
|
|
44454
44662
|
}
|
|
44455
44663
|
}
|
|
@@ -44472,11 +44680,12 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44472
44680
|
onPartialReply: params.emitPartial,
|
|
44473
44681
|
onAssistantMessageStart: params.onAssistantMessageStart
|
|
44474
44682
|
};
|
|
44475
|
-
const result = params.
|
|
44683
|
+
const result = params.runnerKind === "anthropic" ? await runAnthropicDirectAgent({
|
|
44476
44684
|
...directRunParams,
|
|
44477
44685
|
token: auth.apiKey ?? ""
|
|
44478
|
-
}) : params.
|
|
44686
|
+
}) : params.runnerKind === "openai-compatible" ? await runOpenAIDirectAgent({
|
|
44479
44687
|
...directRunParams,
|
|
44688
|
+
provider: params.openAIProvider ?? params.authProvider,
|
|
44480
44689
|
apiKey: auth.apiKey ?? ""
|
|
44481
44690
|
}) : await runGeminiDirectAgent({
|
|
44482
44691
|
...directRunParams,
|
|
@@ -44491,7 +44700,7 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44491
44700
|
});
|
|
44492
44701
|
await markAuthProfileGood({
|
|
44493
44702
|
store,
|
|
44494
|
-
provider: params.
|
|
44703
|
+
provider: params.authProvider,
|
|
44495
44704
|
profileId: auth.profileId,
|
|
44496
44705
|
agentDir: params.agentDir
|
|
44497
44706
|
});
|
|
@@ -44513,22 +44722,32 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44513
44722
|
}
|
|
44514
44723
|
async function resolveDirectStrategy(provider, config, agentDir) {
|
|
44515
44724
|
const directProvider = resolveDirectAuthProvider(provider);
|
|
44516
|
-
if (
|
|
44517
|
-
try {
|
|
44725
|
+
if (directProvider) try {
|
|
44518
44726
|
const auth = await resolveDirectProviderAuth({
|
|
44519
44727
|
provider: directProvider,
|
|
44520
44728
|
config,
|
|
44521
44729
|
agentDir,
|
|
44522
44730
|
store: ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false })
|
|
44523
44731
|
});
|
|
44524
|
-
if (auth.apiKey) {
|
|
44732
|
+
if (auth.apiKey !== void 0) {
|
|
44525
44733
|
if (directProvider === "anthropic" && auth.apiKey.startsWith("sk-ant-oat01-")) return null;
|
|
44526
44734
|
return {
|
|
44527
|
-
kind: directProvider === "google" ? "gemini-direct" : directProvider === "openai" ? "openai-direct" : "anthropic-direct",
|
|
44735
|
+
kind: directProvider === "google" ? "gemini-direct" : directProvider === "openai" || directProvider === "minimax" ? "openai-direct" : "anthropic-direct",
|
|
44528
44736
|
provider
|
|
44529
44737
|
};
|
|
44530
44738
|
}
|
|
44531
44739
|
} catch {}
|
|
44740
|
+
if (isOpenAICompatibleProviderConfig(resolveProviderConfig(provider, config))) try {
|
|
44741
|
+
if ((await resolveApiKeyForProvider({
|
|
44742
|
+
provider,
|
|
44743
|
+
cfg: config,
|
|
44744
|
+
agentDir,
|
|
44745
|
+
store: ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false })
|
|
44746
|
+
})).apiKey !== void 0) return {
|
|
44747
|
+
kind: "openai-direct",
|
|
44748
|
+
provider
|
|
44749
|
+
};
|
|
44750
|
+
} catch {}
|
|
44532
44751
|
return null;
|
|
44533
44752
|
}
|
|
44534
44753
|
async function resolveNoxSoftRunnerStrategy(params) {
|
|
@@ -44559,11 +44778,33 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44559
44778
|
await params.onPartialReply?.(payload);
|
|
44560
44779
|
await emitAgentEvent(params, "assistant", { text: payload.text });
|
|
44561
44780
|
};
|
|
44562
|
-
|
|
44563
|
-
|
|
44564
|
-
|
|
44565
|
-
|
|
44566
|
-
|
|
44781
|
+
let strategy;
|
|
44782
|
+
try {
|
|
44783
|
+
strategy = await resolveNoxSoftRunnerStrategy({
|
|
44784
|
+
provider: params.provider,
|
|
44785
|
+
config: params.config,
|
|
44786
|
+
agentDir: params.agentDir
|
|
44787
|
+
});
|
|
44788
|
+
} catch (error) {
|
|
44789
|
+
const requestedProvider = normalizedRequestedRef?.provider ?? provider;
|
|
44790
|
+
const requestedModel = normalizedRequestedRef?.model;
|
|
44791
|
+
const failover = coerceToFailoverError(error, {
|
|
44792
|
+
provider: requestedProvider,
|
|
44793
|
+
model: requestedModel
|
|
44794
|
+
}) ?? new FailoverError(error instanceof Error ? error.message : String(error), {
|
|
44795
|
+
reason: classifyFailoverReason(error instanceof Error ? error.message : String(error)) ?? "unknown",
|
|
44796
|
+
provider: requestedProvider,
|
|
44797
|
+
model: requestedModel,
|
|
44798
|
+
cause: error instanceof Error ? error : void 0
|
|
44799
|
+
});
|
|
44800
|
+
await emitAgentEvent(params, "lifecycle", {
|
|
44801
|
+
phase: "error",
|
|
44802
|
+
startedAt,
|
|
44803
|
+
endedAt: Date.now(),
|
|
44804
|
+
error: failover.message
|
|
44805
|
+
});
|
|
44806
|
+
throw failover;
|
|
44807
|
+
}
|
|
44567
44808
|
if (strategy.kind === "anthropic-direct") {
|
|
44568
44809
|
await emitAgentEvent(params, "lifecycle", {
|
|
44569
44810
|
phase: "start",
|
|
@@ -44573,7 +44814,8 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44573
44814
|
const result = normalizeRunnerResult({
|
|
44574
44815
|
result: await runDirectWithProfileFallback({
|
|
44575
44816
|
...params,
|
|
44576
|
-
|
|
44817
|
+
authProvider: "anthropic",
|
|
44818
|
+
runnerKind: "anthropic",
|
|
44577
44819
|
timeoutMs,
|
|
44578
44820
|
runId,
|
|
44579
44821
|
emitPartial
|
|
@@ -44620,7 +44862,8 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44620
44862
|
const result = normalizeRunnerResult({
|
|
44621
44863
|
result: await runDirectWithProfileFallback({
|
|
44622
44864
|
...params,
|
|
44623
|
-
|
|
44865
|
+
authProvider: "google",
|
|
44866
|
+
runnerKind: "google",
|
|
44624
44867
|
timeoutMs,
|
|
44625
44868
|
runId,
|
|
44626
44869
|
emitPartial
|
|
@@ -44667,7 +44910,9 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44667
44910
|
const result = normalizeRunnerResult({
|
|
44668
44911
|
result: await runDirectWithProfileFallback({
|
|
44669
44912
|
...params,
|
|
44670
|
-
|
|
44913
|
+
authProvider: provider === "minimax" ? "minimax" : provider === "openai" ? "openai" : provider,
|
|
44914
|
+
runnerKind: "openai-compatible",
|
|
44915
|
+
openAIProvider: provider,
|
|
44671
44916
|
timeoutMs,
|
|
44672
44917
|
runId,
|
|
44673
44918
|
emitPartial
|