@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,28 +1,28 @@
|
|
|
1
1
|
import { n as __exportAll } from "./chunk-BXK9XSlF.js";
|
|
2
2
|
import { a as resolveOAuthDir, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-B-AkG5FD.js";
|
|
3
|
-
import { A as isAcpSessionKey, C as normalizeAccountId$1, D as resolveThreadSessionKeys, E as resolveAgentIdFromSessionKey, M as parseAgentSessionKey, N as resolveThreadParentSessionKey, O as sanitizeAgentId, S as classifySessionKeyShape, T as normalizeMainKey, _ as DEFAULT_AGENT_ID, b as buildAgentPeerSessionKey, f as loadWorkspaceBootstrapFiles, g as DEFAULT_ACCOUNT_ID, j as isSubagentSessionKey, k as getSubagentDepth, l as ensureAgentWorkspace, m as resolveAnimaPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, u as filterBootstrapFilesForSession, v as DEFAULT_MAIN_KEY, w as normalizeAgentId, y as buildAgentMainSessionKey } from "./workspace-
|
|
4
|
-
import {
|
|
5
|
-
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-
|
|
6
|
-
import { c as resolveDefaultAgentId, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds } from "./agent-scope-
|
|
7
|
-
import { A as supportsXHighThinking, At as assertSandboxPath, B as extractDeliveryInfo, Bt as normalizeToolName, C as listThinkingLevels, Ct as DEFAULT_UPLOAD_DIR, D as normalizeUsageDisplay, Dt as buildWorkspaceSkillSnapshot, E as normalizeThinkLevel, Et as buildWorkspaceSkillCommandSpecs, F as isLikelyContextOverflowError, Ft as applyOwnerOnlyToolPolicy, G as updateLastRoute, Gt as buildBootstrapContextFiles, H as loadSessionStore, Ht as stripPluginOnlyAllowlist, I as isTransientHttpError, It as buildPluginToolGroups, J as deliveryContextFromSession, Jt as HEARTBEAT_TOKEN, K as updateSessionStore, Kt as resolveBootstrapMaxChars, L as sanitizeUserFacingText, Lt as collectExplicitAllowlist, M as isCompactionFailureError, Mt as ensureBrowserControlAuth, N as isContextOverflowError, Nt as resolveBrowserControlAuth, O as normalizeVerboseLevel, Ot as resolvePluginSkillDirs, P as isFailoverErrorMessage, Pt as resolveSandboxConfigForAgent, Q as normalizeSessionDeliveryFields, R as ensureSandboxWorkspaceForSession, Rt as expandPolicyWithPluginGroups, S as formatXHighModelHint, St as saveMediaBuffer, T as normalizeReasoningLevel, Tt as getBridgeAuthForPort, U as readSessionUpdatedAt, Ut as compileGlobPatterns, V as appendAssistantMessageToSessionTranscript, Vt as resolveToolProfilePolicy, W as recordSessionMetaFromInbound, Wt as matchesAnyGlobPattern, X as mergeDeliveryContext, Xt as isSilentReplyText, Y as deliveryContextKey, Yt as SILENT_REPLY_TOKEN, Z as normalizeDeliveryContext, _ as throwIfAborted, _t as createBrowserRouteContext, at as resolveThreadFlag, b as initializeGlobalHookRunner, bt as resolveProfile, c as applyReplyThreading, ct as canonicalizeMainSessionAlias, d as shouldSuppressMessagingToolReplies, dt as deriveSessionMetaPatch, et as resolveSessionKey$1, f as createReplyToModeFilterForChannel, ft as getChannelDock, g as normalizeTargetForProvider, gt as resolveGroupSessionKey, h as normalizeChannelTargetInput, ht as normalizeChatType, it as resolveSessionResetType, j as classifyFailoverReason, jt as resolveSandboxedMediaSource, k as resolveResponseUsageMode, kt as assertMediaNotDataUrl, l as filterMessagingToolDuplicates, m as buildTargetResolverSignature, mt as resolveConversationLabel, nt as resolveChannelResetConfig, o as normalizeReplyPayloadsForDelivery, ot as DEFAULT_RESET_TRIGGERS, p as resolveReplyToMode, pt as listChannelDocks, q as updateSessionStoreEntry, qt as resolveBootstrapTotalMaxChars, rt as resolveSessionResetPolicy, s as applyReplyTagsToPayload, st as resolveFreshSessionTotalTokens, t as deliverOutboundPayloads, tt as evaluateSessionFreshness, u as isRenderablePayload, ut as resolveMainSessionKey, v as parseReplyDirectives, vt as registerBrowserRoutes, w as normalizeElevatedLevel, wt as resolvePathsWithinRoot, x as formatThinkingLevels, xt as getMediaDir, y as getGlobalHookRunner, yt as resolveBrowserConfig, z as resolveSandboxRuntimeStatus, zt as expandToolGroups } from "./deliver-
|
|
3
|
+
import { A as isAcpSessionKey, C as normalizeAccountId$1, D as resolveThreadSessionKeys, E as resolveAgentIdFromSessionKey, M as parseAgentSessionKey, N as resolveThreadParentSessionKey, O as sanitizeAgentId, S as classifySessionKeyShape, T as normalizeMainKey, _ as DEFAULT_AGENT_ID, b as buildAgentPeerSessionKey, f as loadWorkspaceBootstrapFiles, g as DEFAULT_ACCOUNT_ID, j as isSubagentSessionKey, k as getSubagentDepth, l as ensureAgentWorkspace, m as resolveAnimaPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, u as filterBootstrapFilesForSession, v as DEFAULT_MAIN_KEY, w as normalizeAgentId, y as buildAgentMainSessionKey } from "./workspace-D6JhsXVL.js";
|
|
4
|
+
import { D as theme, E as isRich, O as getChildLogger, S as shouldLogVerbose, T as colorize, a as registerActiveProgressLine, c as CHAT_CHANNEL_ORDER, d as normalizeAnyChannelId, f as normalizeChannelId, g as setActivePluginRegistry, i as clearActiveProgressLine, j as normalizeLogLevel, m as getActivePluginRegistry, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger, x as setVerbose, y as logVerbose } from "./subsystem-CkjVkxc4.js";
|
|
5
|
+
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-4nfFrGP7.js";
|
|
6
|
+
import { c as resolveDefaultAgentId, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds } from "./agent-scope-CENGF2NR.js";
|
|
7
|
+
import { A as supportsXHighThinking, At as assertSandboxPath, B as extractDeliveryInfo, Bt as normalizeToolName, C as listThinkingLevels, Ct as DEFAULT_UPLOAD_DIR, D as normalizeUsageDisplay, Dt as buildWorkspaceSkillSnapshot, E as normalizeThinkLevel, Et as buildWorkspaceSkillCommandSpecs, F as isLikelyContextOverflowError, Ft as applyOwnerOnlyToolPolicy, G as updateLastRoute, Gt as buildBootstrapContextFiles, H as loadSessionStore, Ht as stripPluginOnlyAllowlist, I as isTransientHttpError, It as buildPluginToolGroups, J as deliveryContextFromSession, Jt as HEARTBEAT_TOKEN, K as updateSessionStore, Kt as resolveBootstrapMaxChars, L as sanitizeUserFacingText, Lt as collectExplicitAllowlist, M as isCompactionFailureError, Mt as ensureBrowserControlAuth, N as isContextOverflowError, Nt as resolveBrowserControlAuth, O as normalizeVerboseLevel, Ot as resolvePluginSkillDirs, P as isFailoverErrorMessage, Pt as resolveSandboxConfigForAgent, Q as normalizeSessionDeliveryFields, R as ensureSandboxWorkspaceForSession, Rt as expandPolicyWithPluginGroups, S as formatXHighModelHint, St as saveMediaBuffer, T as normalizeReasoningLevel, Tt as getBridgeAuthForPort, U as readSessionUpdatedAt, Ut as compileGlobPatterns, V as appendAssistantMessageToSessionTranscript, Vt as resolveToolProfilePolicy, W as recordSessionMetaFromInbound, Wt as matchesAnyGlobPattern, X as mergeDeliveryContext, Xt as isSilentReplyText, Y as deliveryContextKey, Yt as SILENT_REPLY_TOKEN, Z as normalizeDeliveryContext, _ as throwIfAborted, _t as createBrowserRouteContext, at as resolveThreadFlag, b as initializeGlobalHookRunner, bt as resolveProfile, c as applyReplyThreading, ct as canonicalizeMainSessionAlias, d as shouldSuppressMessagingToolReplies, dt as deriveSessionMetaPatch, et as resolveSessionKey$1, f as createReplyToModeFilterForChannel, ft as getChannelDock, g as normalizeTargetForProvider, gt as resolveGroupSessionKey, h as normalizeChannelTargetInput, ht as normalizeChatType, it as resolveSessionResetType, j as classifyFailoverReason, jt as resolveSandboxedMediaSource, k as resolveResponseUsageMode, kt as assertMediaNotDataUrl, l as filterMessagingToolDuplicates, m as buildTargetResolverSignature, mt as resolveConversationLabel, nt as resolveChannelResetConfig, o as normalizeReplyPayloadsForDelivery, ot as DEFAULT_RESET_TRIGGERS, p as resolveReplyToMode, pt as listChannelDocks, q as updateSessionStoreEntry, qt as resolveBootstrapTotalMaxChars, rt as resolveSessionResetPolicy, s as applyReplyTagsToPayload, st as resolveFreshSessionTotalTokens, t as deliverOutboundPayloads, tt as evaluateSessionFreshness, u as isRenderablePayload, ut as resolveMainSessionKey, v as parseReplyDirectives, vt as registerBrowserRoutes, w as normalizeElevatedLevel, wt as resolvePathsWithinRoot, x as formatThinkingLevels, xt as getMediaDir, y as getGlobalHookRunner, yt as resolveBrowserConfig, z as resolveSandboxRuntimeStatus, zt as expandToolGroups } from "./deliver-BJ0JgwhN.js";
|
|
8
8
|
import { i as triggerInternalHook, r as registerInternalHook, t as createInternalHookEvent } from "./internal-hooks-CWw3Hgeu.js";
|
|
9
|
-
import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, _ as resetConfigOverrides, a as writeConfigFile, b as getConfigValueAtPath, c as parseDurationMs, d as discoverAnimaPlugins, f as applyTestPluginDefaults, g as getConfigOverrides, h as resolveMemorySlotDecision, i as resolveConfigSnapshotHash, l as validateJsonSchemaValue, m as resolveEnableState, n as loadConfig, o as validateConfigObjectWithPlugins, p as normalizePluginsConfig, r as readConfigFileSnapshot, u as loadPluginManifestRegistry, v as setConfigOverride, w as VERSION, x as parseConfigPath, y as unsetConfigOverride } from "./config-
|
|
10
|
-
import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell, s as isTruthyEnvValue } from "./shell-env-
|
|
11
|
-
import { a as modelKey, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, g as DEFAULT_PROVIDER, h as DEFAULT_MODEL, i as isCliProvider, m as DEFAULT_CONTEXT_TOKENS, n as buildConfiguredAllowlistKeys, o as normalizeModelRef, p as resolveThinkingDefault, r as buildModelAliasIndex, s as normalizeProviderId, t as buildAllowedModelSet, u as resolveConfiguredModelRef } from "./model-selection-
|
|
12
|
-
import { S as pickPrimaryTailnetIPv4, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, _ as ensureChromeExtensionRelayServer, x as pickPrimaryLanIPv4, y as rawDataToString } from "./chrome-
|
|
9
|
+
import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, _ as resetConfigOverrides, a as writeConfigFile, b as getConfigValueAtPath, c as parseDurationMs, d as discoverAnimaPlugins, f as applyTestPluginDefaults, g as getConfigOverrides, h as resolveMemorySlotDecision, i as resolveConfigSnapshotHash, l as validateJsonSchemaValue, m as resolveEnableState, n as loadConfig, o as validateConfigObjectWithPlugins, p as normalizePluginsConfig, r as readConfigFileSnapshot, u as loadPluginManifestRegistry, v as setConfigOverride, w as VERSION, x as parseConfigPath, y as unsetConfigOverride } from "./config-LS-6Xgqo.js";
|
|
10
|
+
import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell, s as isTruthyEnvValue } from "./shell-env-BZ2Wha1e.js";
|
|
11
|
+
import { a as modelKey, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, g as DEFAULT_PROVIDER, h as DEFAULT_MODEL, i as isCliProvider, m as DEFAULT_CONTEXT_TOKENS, n as buildConfiguredAllowlistKeys, o as normalizeModelRef, p as resolveThinkingDefault, r as buildModelAliasIndex, s as normalizeProviderId, t as buildAllowedModelSet, u as resolveConfiguredModelRef } from "./model-selection-CVcwboE_.js";
|
|
12
|
+
import { S as pickPrimaryTailnetIPv4, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, _ as ensureChromeExtensionRelayServer, x as pickPrimaryLanIPv4, y as rawDataToString } from "./chrome-D1Jm1Bdq.js";
|
|
13
13
|
import { n as resolveCliName, t as formatCliCommand } from "./command-format-GLYKXXl-.js";
|
|
14
14
|
import { n as formatErrorMessage } from "./errors-UbDRvfEx.js";
|
|
15
|
-
import { A as detectMime, C as GATEWAY_CLIENT_MODES, E as getImageMetadata, F as kindFromMime, H as isBlockedHostname, I as normalizeMimeType$1, M as getFileExtension, N as imageMimeFromFormat, P as isAudioFileName, R as mediaKindFromMime, S as GATEWAY_CLIENT_IDS, U as isPrivateIpAddress, _ as isMarkdownCapableMessageChannel, a as chunkText, b as resolveGatewayMessageChannel, c as resolveTextChunkLimit, d as listChannelPlugins, f as normalizeChannelId$1, g as isInternalMessageChannel, i as chunkMarkdownTextWithMode, j as extensionForMime, k as resizeToJpeg, 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 listDeliverableMessageChannels, w as GATEWAY_CLIENT_NAMES, x as resolveMessageChannel, y as normalizeMessageChannel, z as SsrFBlockedError } from "./chunk-
|
|
16
|
-
import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath$1 } from "./paths-
|
|
17
|
-
import { t as sanitizeToolResultImages } from "./tool-images-
|
|
18
|
-
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-
|
|
19
|
-
import { a as requireApiKey, c as resolveModelAuthMode, i as getCustomProviderApiKey, n as resolveMemorySearchConfig, o as resolveApiKeyForProvider, r as getApiKeyForModel, s as resolveEnvApiKey } from "./manager-
|
|
20
|
-
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths } from "./sqlite-
|
|
21
|
-
import { n as createAsyncLock } from "./soul-
|
|
22
|
-
import { a as readNumberParam, c as readStringParam, i as jsonResult, n as imageResult, r as imageResultFromFile, s as readStringArrayParam } from "./common-
|
|
23
|
-
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-
|
|
15
|
+
import { A as detectMime, C as GATEWAY_CLIENT_MODES, E as getImageMetadata, F as kindFromMime, H as isBlockedHostname, I as normalizeMimeType$1, M as getFileExtension, N as imageMimeFromFormat, P as isAudioFileName, R as mediaKindFromMime, S as GATEWAY_CLIENT_IDS, U as isPrivateIpAddress, _ as isMarkdownCapableMessageChannel, a as chunkText, b as resolveGatewayMessageChannel, c as resolveTextChunkLimit, d as listChannelPlugins, f as normalizeChannelId$1, g as isInternalMessageChannel, i as chunkMarkdownTextWithMode, j as extensionForMime, k as resizeToJpeg, 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 listDeliverableMessageChannels, w as GATEWAY_CLIENT_NAMES, x as resolveMessageChannel, y as normalizeMessageChannel, z as SsrFBlockedError } from "./chunk-B5s6o9xI.js";
|
|
16
|
+
import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath$1 } from "./paths-DAbvPUdJ.js";
|
|
17
|
+
import { t as sanitizeToolResultImages } from "./tool-images-BH8q2ZMq.js";
|
|
18
|
+
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-jK6n3-Cc.js";
|
|
19
|
+
import { a as requireApiKey, c as resolveModelAuthMode, i as getCustomProviderApiKey, n as resolveMemorySearchConfig, o as resolveApiKeyForProvider, r as getApiKeyForModel, s as resolveEnvApiKey } from "./manager-kKsAUV03.js";
|
|
20
|
+
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths } from "./sqlite-DrhFRoal.js";
|
|
21
|
+
import { n as createAsyncLock } from "./soul-C0oc6fbP.js";
|
|
22
|
+
import { a as readNumberParam, c as readStringParam, i as jsonResult, n as imageResult, r as imageResultFromFile, s as readStringArrayParam } from "./common-C36MniDL.js";
|
|
23
|
+
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-Z1MbDSH8.js";
|
|
24
24
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-62lQTR6C.js";
|
|
25
|
-
import { d as webAuthExists, i as logoutWeb, n as getWebAuthAgeMs, r as logWebSelfId, s as readWebSelfId } from "./auth-store-
|
|
25
|
+
import { d as webAuthExists, i as logoutWeb, n as getWebAuthAgeMs, r as logWebSelfId, s as readWebSelfId } from "./auth-store-B4pR_KvR.js";
|
|
26
26
|
import { createRequire } from "node:module";
|
|
27
27
|
import * as fs$2 from "node:fs/promises";
|
|
28
28
|
import fs from "node:fs/promises";
|
|
@@ -39,7 +39,7 @@ import crypto, { X509Certificate, randomUUID } from "node:crypto";
|
|
|
39
39
|
import AjvPkg from "ajv";
|
|
40
40
|
import net from "node:net";
|
|
41
41
|
import { CURRENT_SESSION_VERSION, SessionManager, codingTools, createEditTool, createReadTool, createWriteTool, readTool } from "@mariozechner/pi-coding-agent";
|
|
42
|
-
import { WebSocket
|
|
42
|
+
import { WebSocket } from "ws";
|
|
43
43
|
import { complete, completeSimple } from "@mariozechner/pi-ai";
|
|
44
44
|
import { EdgeTTS } from "node-edge-tts";
|
|
45
45
|
import { Readable } from "node:stream";
|
|
@@ -4821,7 +4821,7 @@ async function getMemorySearchManager(params) {
|
|
|
4821
4821
|
if (cached) return { manager: cached };
|
|
4822
4822
|
}
|
|
4823
4823
|
try {
|
|
4824
|
-
const { QmdMemoryManager } = await import("./qmd-manager-
|
|
4824
|
+
const { QmdMemoryManager } = await import("./qmd-manager-BNL9Pl2G.js");
|
|
4825
4825
|
const primary = await QmdMemoryManager.create({
|
|
4826
4826
|
cfg: params.cfg,
|
|
4827
4827
|
agentId: params.agentId,
|
|
@@ -4833,7 +4833,7 @@ async function getMemorySearchManager(params) {
|
|
|
4833
4833
|
const wrapper = new FallbackMemoryManager({
|
|
4834
4834
|
primary,
|
|
4835
4835
|
fallbackFactory: async () => {
|
|
4836
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4836
|
+
const { MemoryIndexManager } = await import("./manager-kKsAUV03.js").then((n) => n.t);
|
|
4837
4837
|
return await MemoryIndexManager.get(params);
|
|
4838
4838
|
}
|
|
4839
4839
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -4846,7 +4846,7 @@ async function getMemorySearchManager(params) {
|
|
|
4846
4846
|
}
|
|
4847
4847
|
}
|
|
4848
4848
|
try {
|
|
4849
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4849
|
+
const { MemoryIndexManager } = await import("./manager-kKsAUV03.js").then((n) => n.t);
|
|
4850
4850
|
return { manager: await MemoryIndexManager.get(params) };
|
|
4851
4851
|
} catch (err) {
|
|
4852
4852
|
return {
|
|
@@ -7421,7 +7421,7 @@ var GatewayClient = class {
|
|
|
7421
7421
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("ANIMA Gateway TLS fingerprint mismatch");
|
|
7422
7422
|
});
|
|
7423
7423
|
}
|
|
7424
|
-
this.ws = new WebSocket
|
|
7424
|
+
this.ws = new WebSocket(url, wsOptions);
|
|
7425
7425
|
this.ws.on("open", () => {
|
|
7426
7426
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
7427
7427
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -7624,7 +7624,7 @@ var GatewayClient = class {
|
|
|
7624
7624
|
return null;
|
|
7625
7625
|
}
|
|
7626
7626
|
async request(method, params, opts) {
|
|
7627
|
-
if (!this.ws || this.ws.readyState !== WebSocket
|
|
7627
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("ANIMA Gateway not connected");
|
|
7628
7628
|
const id = randomUUID();
|
|
7629
7629
|
const frame = {
|
|
7630
7630
|
type: "req",
|
|
@@ -8625,7 +8625,7 @@ async function routeReply(params) {
|
|
|
8625
8625
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
8626
8626
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
8627
8627
|
try {
|
|
8628
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
8628
|
+
const { deliverOutboundPayloads } = await import("./deliver-BJ0JgwhN.js").then((n) => n.n);
|
|
8629
8629
|
return {
|
|
8630
8630
|
ok: true,
|
|
8631
8631
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -12323,6 +12323,14 @@ const SEED_MODELS = [
|
|
|
12323
12323
|
contextWindow: 3e5,
|
|
12324
12324
|
reasoning: false,
|
|
12325
12325
|
input: ["text", "image"]
|
|
12326
|
+
},
|
|
12327
|
+
{
|
|
12328
|
+
id: "glm-5",
|
|
12329
|
+
name: "GLM-5",
|
|
12330
|
+
provider: "zai",
|
|
12331
|
+
contextWindow: 2e5,
|
|
12332
|
+
reasoning: true,
|
|
12333
|
+
input: ["text"]
|
|
12326
12334
|
}
|
|
12327
12335
|
];
|
|
12328
12336
|
async function ensureAnimaModelsJson(config, agentDirOverride) {
|
|
@@ -12384,7 +12392,7 @@ async function loadModelCatalog(params) {
|
|
|
12384
12392
|
});
|
|
12385
12393
|
try {
|
|
12386
12394
|
await ensureAnimaModelsJson(params?.config ?? loadConfig());
|
|
12387
|
-
await (await import("./pi-auth-json-
|
|
12395
|
+
await (await import("./pi-auth-json-CM3QDr9_.js")).ensurePiAuthJsonFromAuthProfiles(resolveAnimaAgentDir());
|
|
12388
12396
|
const piSdk = await importPiSdk();
|
|
12389
12397
|
const agentDir = resolveAnimaAgentDir();
|
|
12390
12398
|
const { join } = await import("node:path");
|
|
@@ -14481,7 +14489,7 @@ async function createModelSelectionState(params) {
|
|
|
14481
14489
|
}
|
|
14482
14490
|
}
|
|
14483
14491
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
14484
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles-
|
|
14492
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles-jK6n3-Cc.js").then((n) => n.t);
|
|
14485
14493
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
14486
14494
|
const providerKey = normalizeProviderId(provider);
|
|
14487
14495
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -28932,6 +28940,63 @@ function orderCandidatesByPreference(params) {
|
|
|
28932
28940
|
|
|
28933
28941
|
//#endregion
|
|
28934
28942
|
//#region src/agents/model-fallback.ts
|
|
28943
|
+
const IMPLICIT_CODE_MODEL_FALLBACKS = [{
|
|
28944
|
+
whenProvider: "anthropic",
|
|
28945
|
+
provider: "openai-codex",
|
|
28946
|
+
model: "gpt-5.2-codex"
|
|
28947
|
+
}, {
|
|
28948
|
+
whenProvider: "anthropic",
|
|
28949
|
+
provider: "ollama",
|
|
28950
|
+
model: "qwen3-coder:latest"
|
|
28951
|
+
}];
|
|
28952
|
+
function isLocalBaseUrl(baseUrl) {
|
|
28953
|
+
const raw = baseUrl?.trim();
|
|
28954
|
+
if (!raw) return false;
|
|
28955
|
+
try {
|
|
28956
|
+
const host = new URL(raw).hostname.toLowerCase();
|
|
28957
|
+
return host === "localhost" || host === "127.0.0.1" || host === "0.0.0.0" || host === "::1" || host.endsWith(".local");
|
|
28958
|
+
} catch {
|
|
28959
|
+
return false;
|
|
28960
|
+
}
|
|
28961
|
+
}
|
|
28962
|
+
function isOpenAICompatibleApi(api) {
|
|
28963
|
+
const normalized = api?.trim();
|
|
28964
|
+
return normalized === "openai-completions" || normalized === "openai-responses";
|
|
28965
|
+
}
|
|
28966
|
+
function scoreLocalFallback(params) {
|
|
28967
|
+
const haystack = `${params.provider} ${params.model} ${params.name ?? ""}`.toLowerCase();
|
|
28968
|
+
if (haystack.includes("qwen3") && haystack.includes("coder")) return 100;
|
|
28969
|
+
if (haystack.includes("qwen") && haystack.includes("coder")) return 90;
|
|
28970
|
+
if (haystack.includes("noxsoft-tool-coder")) return 80;
|
|
28971
|
+
if (haystack.includes("tool-coder")) return 70;
|
|
28972
|
+
if (haystack.includes("coder")) return 60;
|
|
28973
|
+
if (haystack.includes("gpt-oss")) return 50;
|
|
28974
|
+
return 10;
|
|
28975
|
+
}
|
|
28976
|
+
function resolveImplicitLocalOpenAIFallbacks(cfg) {
|
|
28977
|
+
const providers = cfg?.models?.providers ?? {};
|
|
28978
|
+
const candidates = [];
|
|
28979
|
+
for (const [provider, entry] of Object.entries(providers)) {
|
|
28980
|
+
if (!isLocalBaseUrl(entry?.baseUrl) || !isOpenAICompatibleApi(entry?.api)) continue;
|
|
28981
|
+
for (const model of entry?.models ?? []) {
|
|
28982
|
+
const id = model?.id?.trim();
|
|
28983
|
+
if (!id) continue;
|
|
28984
|
+
candidates.push({
|
|
28985
|
+
provider,
|
|
28986
|
+
model: id,
|
|
28987
|
+
score: scoreLocalFallback({
|
|
28988
|
+
provider,
|
|
28989
|
+
model: id,
|
|
28990
|
+
name: model?.name
|
|
28991
|
+
})
|
|
28992
|
+
});
|
|
28993
|
+
}
|
|
28994
|
+
}
|
|
28995
|
+
return candidates.toSorted((a, b) => b.score - a.score || a.provider.localeCompare(b.provider) || a.model.localeCompare(b.model)).map(({ provider, model }) => ({
|
|
28996
|
+
provider,
|
|
28997
|
+
model
|
|
28998
|
+
}));
|
|
28999
|
+
}
|
|
28935
29000
|
/**
|
|
28936
29001
|
* Fallback abort check. Only treats explicit AbortError names as user aborts.
|
|
28937
29002
|
* Message-based checks (e.g., "aborted") can mask timeouts and skip fallback.
|
|
@@ -29025,6 +29090,14 @@ function resolveFallbackCandidates(params) {
|
|
|
29025
29090
|
if (!resolved) continue;
|
|
29026
29091
|
addCandidate(resolved.ref, true);
|
|
29027
29092
|
}
|
|
29093
|
+
if (params.fallbacksOverride === void 0) for (const implicit of IMPLICIT_CODE_MODEL_FALLBACKS) {
|
|
29094
|
+
if (normalizedPrimary.provider !== implicit.whenProvider) continue;
|
|
29095
|
+
addCandidate({
|
|
29096
|
+
provider: implicit.provider,
|
|
29097
|
+
model: implicit.model
|
|
29098
|
+
}, false);
|
|
29099
|
+
if (implicit.provider === "openai-codex") for (const localFallback of resolveImplicitLocalOpenAIFallbacks(params.cfg)) addCandidate(localFallback, false);
|
|
29100
|
+
}
|
|
29028
29101
|
if (params.fallbacksOverride === void 0 && primary?.provider && primary.model) addCandidate({
|
|
29029
29102
|
provider: primary.provider,
|
|
29030
29103
|
model: primary.model
|
|
@@ -39013,7 +39086,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
39013
39086
|
return;
|
|
39014
39087
|
}
|
|
39015
39088
|
try {
|
|
39016
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
39089
|
+
const { deliverOutboundPayloads } = await import("./deliver-BJ0JgwhN.js").then((n) => n.n);
|
|
39017
39090
|
await deliverOutboundPayloads({
|
|
39018
39091
|
cfg: params.cfg,
|
|
39019
39092
|
channel,
|
|
@@ -39574,6 +39647,30 @@ function createTypingController(params) {
|
|
|
39574
39647
|
|
|
39575
39648
|
//#endregion
|
|
39576
39649
|
//#region src/auto-reply/reply/get-reply.ts
|
|
39650
|
+
/** Surfaces that represent real-time conversation (chat, DMs, voice). */
|
|
39651
|
+
const CONVERSATIONAL_CHAT_TYPES = new Set([
|
|
39652
|
+
"private",
|
|
39653
|
+
"group",
|
|
39654
|
+
"supergroup",
|
|
39655
|
+
"channel",
|
|
39656
|
+
"dm",
|
|
39657
|
+
"chat"
|
|
39658
|
+
]);
|
|
39659
|
+
/**
|
|
39660
|
+
* Returns true when the inbound message originates from a real-time
|
|
39661
|
+
* conversational surface (NoxSoft chat, Telegram, WhatsApp, etc.)
|
|
39662
|
+
* rather than a programmatic/execution context (gateway API, heartbeat, CLI).
|
|
39663
|
+
*/
|
|
39664
|
+
function isConversationalChannel(ctx) {
|
|
39665
|
+
if (ctx.CommandSource === "native") return false;
|
|
39666
|
+
const provider = ctx.Provider?.toLowerCase() ?? "";
|
|
39667
|
+
if (provider === "telegram" || provider === "whatsapp" || provider === "noxsoft") return true;
|
|
39668
|
+
const chatType = ctx.ChatType?.toLowerCase() ?? "";
|
|
39669
|
+
if (CONVERSATIONAL_CHAT_TYPES.has(chatType)) return true;
|
|
39670
|
+
const channel = typeof ctx.OriginatingChannel === "string" ? ctx.OriginatingChannel : "";
|
|
39671
|
+
if (channel && channel !== "gateway" && channel !== "cli") return true;
|
|
39672
|
+
return false;
|
|
39673
|
+
}
|
|
39577
39674
|
function mergeSkillFilters(channelFilter, agentFilter) {
|
|
39578
39675
|
const normalize = (list) => {
|
|
39579
39676
|
if (!Array.isArray(list)) return;
|
|
@@ -39622,6 +39719,18 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
|
|
|
39622
39719
|
hasResolvedHeartbeatModelOverride = true;
|
|
39623
39720
|
}
|
|
39624
39721
|
}
|
|
39722
|
+
if (!opts?.isHeartbeat && !hasResolvedHeartbeatModelOverride && isConversationalChannel(ctx)) {
|
|
39723
|
+
const convRaw = agentCfg?.conversationalModel?.trim() ?? "";
|
|
39724
|
+
const convRef = convRaw ? resolveModelRefFromString({
|
|
39725
|
+
raw: convRaw,
|
|
39726
|
+
defaultProvider,
|
|
39727
|
+
aliasIndex
|
|
39728
|
+
}) : null;
|
|
39729
|
+
if (convRef) {
|
|
39730
|
+
provider = convRef.ref.provider;
|
|
39731
|
+
model = convRef.ref.model;
|
|
39732
|
+
}
|
|
39733
|
+
}
|
|
39625
39734
|
const workspaceDir = (await ensureAgentWorkspace({
|
|
39626
39735
|
dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
|
|
39627
39736
|
ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
|
|
@@ -40442,7 +40551,7 @@ function createWhatsAppLoginTool() {
|
|
|
40442
40551
|
force: Type.Optional(Type.Boolean())
|
|
40443
40552
|
}),
|
|
40444
40553
|
execute: async (_toolCallId, args) => {
|
|
40445
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
40554
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DLLfBALk.js");
|
|
40446
40555
|
if ((args?.action ?? "start") === "wait") {
|
|
40447
40556
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
40448
40557
|
return {
|
|
@@ -41372,23 +41481,23 @@ let webLoginQrPromise = null;
|
|
|
41372
41481
|
let webChannelPromise = null;
|
|
41373
41482
|
let whatsappActionsPromise = null;
|
|
41374
41483
|
function loadWebOutbound() {
|
|
41375
|
-
webOutboundPromise ??= import("./outbound-
|
|
41484
|
+
webOutboundPromise ??= import("./outbound-DKY6oeyQ.js").then((n) => n.t);
|
|
41376
41485
|
return webOutboundPromise;
|
|
41377
41486
|
}
|
|
41378
41487
|
function loadWebLogin() {
|
|
41379
|
-
webLoginPromise ??= import("./login-
|
|
41488
|
+
webLoginPromise ??= import("./login-BegD27g3.js").then((n) => n.n);
|
|
41380
41489
|
return webLoginPromise;
|
|
41381
41490
|
}
|
|
41382
41491
|
function loadWebLoginQr() {
|
|
41383
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
41492
|
+
webLoginQrPromise ??= import("./login-qr-DLLfBALk.js");
|
|
41384
41493
|
return webLoginQrPromise;
|
|
41385
41494
|
}
|
|
41386
41495
|
function loadWebChannel() {
|
|
41387
|
-
webChannelPromise ??= import("./web-
|
|
41496
|
+
webChannelPromise ??= import("./web-BxkEMATs.js");
|
|
41388
41497
|
return webChannelPromise;
|
|
41389
41498
|
}
|
|
41390
41499
|
function loadWhatsAppActions() {
|
|
41391
|
-
whatsappActionsPromise ??= import("./whatsapp-actions
|
|
41500
|
+
whatsappActionsPromise ??= import("./whatsapp-actions--CtxOhlj.js");
|
|
41392
41501
|
return whatsappActionsPromise;
|
|
41393
41502
|
}
|
|
41394
41503
|
function createPluginRuntime() {
|
|
@@ -43951,10 +44060,80 @@ async function runGeminiDirectAgent(params) {
|
|
|
43951
44060
|
};
|
|
43952
44061
|
}
|
|
43953
44062
|
|
|
44063
|
+
//#endregion
|
|
44064
|
+
//#region src/agents/local-model-installer.ts
|
|
44065
|
+
const DEFAULT_LOCAL_OLLAMA_MODEL = "qwen3-coder:latest";
|
|
44066
|
+
const installPromises = /* @__PURE__ */ new Map();
|
|
44067
|
+
function createInstallerError(message, cause) {
|
|
44068
|
+
const err = new Error(message);
|
|
44069
|
+
if (cause !== void 0) err.cause = cause;
|
|
44070
|
+
return err;
|
|
44071
|
+
}
|
|
44072
|
+
async function isOllamaModelInstalled(model = DEFAULT_LOCAL_OLLAMA_MODEL) {
|
|
44073
|
+
try {
|
|
44074
|
+
await runExec("ollama", ["show", model], 1e4);
|
|
44075
|
+
return true;
|
|
44076
|
+
} catch {
|
|
44077
|
+
return false;
|
|
44078
|
+
}
|
|
44079
|
+
}
|
|
44080
|
+
async function ensureLocalOllamaModelInstalled(params) {
|
|
44081
|
+
const model = params?.model?.trim() || DEFAULT_LOCAL_OLLAMA_MODEL;
|
|
44082
|
+
const timeoutMs = params?.timeoutMs ?? 72e5;
|
|
44083
|
+
const runtime = params?.runtime ?? createNonExitingRuntime();
|
|
44084
|
+
const existing = installPromises.get(model);
|
|
44085
|
+
if (existing) return await existing;
|
|
44086
|
+
const promise = (async () => {
|
|
44087
|
+
try {
|
|
44088
|
+
await runExec("ollama", ["list"], 1e4);
|
|
44089
|
+
} catch (error) {
|
|
44090
|
+
throw createInstallerError("Ollama is required but no local Ollama server is reachable. Start Ollama and retry.", error);
|
|
44091
|
+
}
|
|
44092
|
+
if (await isOllamaModelInstalled(model)) return {
|
|
44093
|
+
installed: true,
|
|
44094
|
+
pulled: false
|
|
44095
|
+
};
|
|
44096
|
+
runtime.log(`Installing local model via Ollama: ${model}`);
|
|
44097
|
+
const result = await runCommandWithTimeout([
|
|
44098
|
+
"ollama",
|
|
44099
|
+
"pull",
|
|
44100
|
+
model
|
|
44101
|
+
], { timeoutMs });
|
|
44102
|
+
if (result.code !== 0) {
|
|
44103
|
+
const detail = (result.stderr || result.stdout).trim();
|
|
44104
|
+
throw createInstallerError(`Failed to install local Ollama model "${model}".${detail ? ` ${detail}` : ""}`);
|
|
44105
|
+
}
|
|
44106
|
+
if (!await isOllamaModelInstalled(model)) throw createInstallerError(`Ollama reported success, but model "${model}" is still missing.`);
|
|
44107
|
+
runtime.log(`Local model ready: ${model}`);
|
|
44108
|
+
return {
|
|
44109
|
+
installed: true,
|
|
44110
|
+
pulled: true
|
|
44111
|
+
};
|
|
44112
|
+
})();
|
|
44113
|
+
installPromises.set(model, promise);
|
|
44114
|
+
try {
|
|
44115
|
+
return await promise;
|
|
44116
|
+
} finally {
|
|
44117
|
+
installPromises.delete(model);
|
|
44118
|
+
}
|
|
44119
|
+
}
|
|
44120
|
+
|
|
43954
44121
|
//#endregion
|
|
43955
44122
|
//#region src/agents/openai-direct-runner.ts
|
|
43956
44123
|
const log = createSubsystemLogger("agent/openai-direct");
|
|
43957
44124
|
const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
|
|
44125
|
+
const DEFAULT_PROVIDER_BASE_URLS = {
|
|
44126
|
+
openai: DEFAULT_OPENAI_BASE_URL,
|
|
44127
|
+
minimax: "https://api.minimax.io/v1",
|
|
44128
|
+
ollama: "http://127.0.0.1:11434/v1",
|
|
44129
|
+
lmstudio: "http://127.0.0.1:1234/v1"
|
|
44130
|
+
};
|
|
44131
|
+
const PROVIDER_API_KEY_HINTS = {
|
|
44132
|
+
openai: "OPENAI_API_KEY",
|
|
44133
|
+
minimax: "MINIMAX_API_KEY",
|
|
44134
|
+
ollama: "OLLAMA_API_KEY",
|
|
44135
|
+
lmstudio: "LMSTUDIO_API_KEY"
|
|
44136
|
+
};
|
|
43958
44137
|
const MODEL_MAP = {
|
|
43959
44138
|
"gpt-5.4": "gpt-5.4",
|
|
43960
44139
|
"gpt-5.2": "gpt-5.2",
|
|
@@ -43992,6 +44171,10 @@ function resolveModel(model) {
|
|
|
43992
44171
|
const key = (model ?? "default").trim().toLowerCase() || "default";
|
|
43993
44172
|
return MODEL_MAP[key] ?? key;
|
|
43994
44173
|
}
|
|
44174
|
+
function isToolUnsupportedError(body) {
|
|
44175
|
+
const normalized = body.toLowerCase();
|
|
44176
|
+
return normalized.includes("does not support tools") || normalized.includes("tool is not supported");
|
|
44177
|
+
}
|
|
43995
44178
|
/**
|
|
43996
44179
|
* Clean a JSON Schema for OpenAI's function calling.
|
|
43997
44180
|
* OpenAI is stricter than most — no unsupported keywords.
|
|
@@ -44018,8 +44201,10 @@ function cleanSchemaForOpenAI(schema) {
|
|
|
44018
44201
|
*/
|
|
44019
44202
|
async function runOpenAIDirectAgent(params) {
|
|
44020
44203
|
const started = Date.now();
|
|
44204
|
+
const provider = (params.provider ?? "openai").trim() || "openai";
|
|
44021
44205
|
const resolvedModel = resolveModel(params.model);
|
|
44022
|
-
|
|
44206
|
+
if (provider === "ollama" && resolvedModel === DEFAULT_LOCAL_OLLAMA_MODEL) await ensureLocalOllamaModelInstalled({ model: resolvedModel });
|
|
44207
|
+
log.info(`direct api exec: provider=${provider} model=${resolvedModel} promptChars=${params.prompt.length}`);
|
|
44023
44208
|
const workspaceDir = resolveRunWorkspaceDir({
|
|
44024
44209
|
workspaceDir: params.workspaceDir,
|
|
44025
44210
|
sessionKey: params.sessionKey,
|
|
@@ -44030,7 +44215,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44030
44215
|
config: params.config,
|
|
44031
44216
|
workspaceDir,
|
|
44032
44217
|
sessionKey: params.sessionKey,
|
|
44033
|
-
modelProvider:
|
|
44218
|
+
modelProvider: provider,
|
|
44034
44219
|
modelId: resolvedModel
|
|
44035
44220
|
});
|
|
44036
44221
|
const openaiTools = executableTools.map((t) => ({
|
|
@@ -44076,7 +44261,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44076
44261
|
docsPath: docsPath ?? void 0,
|
|
44077
44262
|
tools: executableTools,
|
|
44078
44263
|
contextFiles,
|
|
44079
|
-
modelDisplay:
|
|
44264
|
+
modelDisplay: `${provider}/${resolvedModel}`,
|
|
44080
44265
|
agentId: sessionAgentId
|
|
44081
44266
|
});
|
|
44082
44267
|
let history = await loadSessionHistory(params.sessionFile);
|
|
@@ -44100,7 +44285,8 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44100
44285
|
let isDone = false;
|
|
44101
44286
|
let loopCount = 0;
|
|
44102
44287
|
const maxLoops = 20;
|
|
44103
|
-
|
|
44288
|
+
let toolUseEnabled = openaiTools.length > 0;
|
|
44289
|
+
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;
|
|
44104
44290
|
while (!isDone && loopCount < maxLoops) {
|
|
44105
44291
|
loopCount++;
|
|
44106
44292
|
const requestBody = {
|
|
@@ -44110,7 +44296,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44110
44296
|
temperature: 1,
|
|
44111
44297
|
stream: true
|
|
44112
44298
|
};
|
|
44113
|
-
if (openaiTools.length > 0) {
|
|
44299
|
+
if (toolUseEnabled && openaiTools.length > 0) {
|
|
44114
44300
|
requestBody.tools = openaiTools;
|
|
44115
44301
|
requestBody.tool_choice = "auto";
|
|
44116
44302
|
}
|
|
@@ -44122,8 +44308,8 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44122
44308
|
method: "POST",
|
|
44123
44309
|
headers: {
|
|
44124
44310
|
"Content-Type": "application/json",
|
|
44125
|
-
|
|
44126
|
-
|
|
44311
|
+
"User-Agent": `anima/7.0.0 (openai-direct-runner; ${os.platform()})`,
|
|
44312
|
+
...params.apiKey?.trim() ? { Authorization: `Bearer ${params.apiKey}` } : {}
|
|
44127
44313
|
},
|
|
44128
44314
|
body: JSON.stringify(requestBody),
|
|
44129
44315
|
signal: controller.signal
|
|
@@ -44131,11 +44317,20 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44131
44317
|
clearTimeout(timeoutHandle);
|
|
44132
44318
|
if (!response.ok) {
|
|
44133
44319
|
const body = await response.text().catch(() => "");
|
|
44320
|
+
if (response.status === 400 && toolUseEnabled && isToolUnsupportedError(body)) {
|
|
44321
|
+
log.warn("openai-compatible provider rejected tools; retrying without tools", {
|
|
44322
|
+
provider,
|
|
44323
|
+
model: resolvedModel
|
|
44324
|
+
});
|
|
44325
|
+
toolUseEnabled = false;
|
|
44326
|
+
continue;
|
|
44327
|
+
}
|
|
44134
44328
|
const isAuth = response.status === 401 || response.status === 403;
|
|
44135
44329
|
const isRateLimit = response.status === 429;
|
|
44136
44330
|
const rateHint = isRateLimit ? " — rate limit hit, will retry next heartbeat." : "";
|
|
44137
|
-
const
|
|
44138
|
-
|
|
44331
|
+
const apiKeyHint = PROVIDER_API_KEY_HINTS[provider] ?? "API key";
|
|
44332
|
+
const authHint = isAuth ? ` — API key may be invalid. Check ${apiKeyHint}.` : "";
|
|
44333
|
+
log.error(`${provider} api error: HTTP ${response.status}${authHint}${rateHint}`, {
|
|
44139
44334
|
status: response.status,
|
|
44140
44335
|
body: body.slice(0, 500)
|
|
44141
44336
|
});
|
|
@@ -44263,7 +44458,8 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44263
44458
|
log.info(`openai api complete: ${durationMs}ms`, {
|
|
44264
44459
|
inputTokens: totalInputTokens,
|
|
44265
44460
|
outputTokens: totalOutputTokens,
|
|
44266
|
-
model: resolvedModel
|
|
44461
|
+
model: resolvedModel,
|
|
44462
|
+
provider
|
|
44267
44463
|
});
|
|
44268
44464
|
return {
|
|
44269
44465
|
status: "completed",
|
|
@@ -44273,7 +44469,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44273
44469
|
durationMs,
|
|
44274
44470
|
agentMeta: {
|
|
44275
44471
|
model: resolvedModel,
|
|
44276
|
-
provider
|
|
44472
|
+
provider,
|
|
44277
44473
|
usage: {
|
|
44278
44474
|
input: totalInputTokens,
|
|
44279
44475
|
output: totalOutputTokens
|
|
@@ -44305,10 +44501,22 @@ async function emitAgentEvent(params, stream, data) {
|
|
|
44305
44501
|
data
|
|
44306
44502
|
});
|
|
44307
44503
|
}
|
|
44504
|
+
function resolveProviderConfig(provider, config) {
|
|
44505
|
+
const providers = config?.models?.providers ?? {};
|
|
44506
|
+
const direct = providers[provider];
|
|
44507
|
+
if (direct) return direct;
|
|
44508
|
+
const normalized = normalizeProviderId(provider);
|
|
44509
|
+
return Object.entries(providers).find(([key]) => normalizeProviderId(key) === normalized)?.[1];
|
|
44510
|
+
}
|
|
44511
|
+
function isOpenAICompatibleProviderConfig(entry) {
|
|
44512
|
+
const api = entry?.api?.trim();
|
|
44513
|
+
return api === "openai-completions" || api === "openai-responses";
|
|
44514
|
+
}
|
|
44308
44515
|
function resolveDirectAuthProvider(provider) {
|
|
44309
44516
|
if (provider === "anthropic" || provider === "claude") return "anthropic";
|
|
44310
44517
|
if (provider === "google" || provider === "gemini") return "google";
|
|
44311
44518
|
if (provider === "openai") return "openai";
|
|
44519
|
+
if (provider === "minimax") return "minimax";
|
|
44312
44520
|
return null;
|
|
44313
44521
|
}
|
|
44314
44522
|
function resolveProfileFailureReason(result) {
|
|
@@ -44400,7 +44608,7 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44400
44608
|
let lastResult = null;
|
|
44401
44609
|
for (;;) {
|
|
44402
44610
|
const auth = await resolveDirectProviderAuth({
|
|
44403
|
-
provider: params.
|
|
44611
|
+
provider: params.authProvider,
|
|
44404
44612
|
config: params.config,
|
|
44405
44613
|
agentDir: params.agentDir,
|
|
44406
44614
|
preferredProfile,
|
|
@@ -44412,7 +44620,7 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44412
44620
|
meta: {
|
|
44413
44621
|
durationMs: 0,
|
|
44414
44622
|
error: {
|
|
44415
|
-
message: `Auth fallback loop detected for ${params.
|
|
44623
|
+
message: `Auth fallback loop detected for ${params.authProvider}.`,
|
|
44416
44624
|
kind: "unknown"
|
|
44417
44625
|
}
|
|
44418
44626
|
}
|
|
@@ -44435,11 +44643,12 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44435
44643
|
onPartialReply: params.emitPartial,
|
|
44436
44644
|
onAssistantMessageStart: params.onAssistantMessageStart
|
|
44437
44645
|
};
|
|
44438
|
-
const result = params.
|
|
44646
|
+
const result = params.runnerKind === "anthropic" ? await runAnthropicDirectAgent({
|
|
44439
44647
|
...directRunParams,
|
|
44440
44648
|
token: auth.apiKey ?? ""
|
|
44441
|
-
}) : params.
|
|
44649
|
+
}) : params.runnerKind === "openai-compatible" ? await runOpenAIDirectAgent({
|
|
44442
44650
|
...directRunParams,
|
|
44651
|
+
provider: params.openAIProvider ?? params.authProvider,
|
|
44443
44652
|
apiKey: auth.apiKey ?? ""
|
|
44444
44653
|
}) : await runGeminiDirectAgent({
|
|
44445
44654
|
...directRunParams,
|
|
@@ -44454,7 +44663,7 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44454
44663
|
});
|
|
44455
44664
|
await markAuthProfileGood({
|
|
44456
44665
|
store,
|
|
44457
|
-
provider: params.
|
|
44666
|
+
provider: params.authProvider,
|
|
44458
44667
|
profileId: auth.profileId,
|
|
44459
44668
|
agentDir: params.agentDir
|
|
44460
44669
|
});
|
|
@@ -44476,22 +44685,32 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44476
44685
|
}
|
|
44477
44686
|
async function resolveDirectStrategy(provider, config, agentDir) {
|
|
44478
44687
|
const directProvider = resolveDirectAuthProvider(provider);
|
|
44479
|
-
if (
|
|
44480
|
-
try {
|
|
44688
|
+
if (directProvider) try {
|
|
44481
44689
|
const auth = await resolveDirectProviderAuth({
|
|
44482
44690
|
provider: directProvider,
|
|
44483
44691
|
config,
|
|
44484
44692
|
agentDir,
|
|
44485
44693
|
store: ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false })
|
|
44486
44694
|
});
|
|
44487
|
-
if (auth.apiKey) {
|
|
44695
|
+
if (auth.apiKey !== void 0) {
|
|
44488
44696
|
if (directProvider === "anthropic" && auth.apiKey.startsWith("sk-ant-oat01-")) return null;
|
|
44489
44697
|
return {
|
|
44490
|
-
kind: directProvider === "google" ? "gemini-direct" : directProvider === "openai" ? "openai-direct" : "anthropic-direct",
|
|
44698
|
+
kind: directProvider === "google" ? "gemini-direct" : directProvider === "openai" || directProvider === "minimax" ? "openai-direct" : "anthropic-direct",
|
|
44491
44699
|
provider
|
|
44492
44700
|
};
|
|
44493
44701
|
}
|
|
44494
44702
|
} catch {}
|
|
44703
|
+
if (isOpenAICompatibleProviderConfig(resolveProviderConfig(provider, config))) try {
|
|
44704
|
+
if ((await resolveApiKeyForProvider({
|
|
44705
|
+
provider,
|
|
44706
|
+
cfg: config,
|
|
44707
|
+
agentDir,
|
|
44708
|
+
store: ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false })
|
|
44709
|
+
})).apiKey !== void 0) return {
|
|
44710
|
+
kind: "openai-direct",
|
|
44711
|
+
provider
|
|
44712
|
+
};
|
|
44713
|
+
} catch {}
|
|
44495
44714
|
return null;
|
|
44496
44715
|
}
|
|
44497
44716
|
async function resolveNoxSoftRunnerStrategy(params) {
|
|
@@ -44522,11 +44741,33 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44522
44741
|
await params.onPartialReply?.(payload);
|
|
44523
44742
|
await emitAgentEvent(params, "assistant", { text: payload.text });
|
|
44524
44743
|
};
|
|
44525
|
-
|
|
44526
|
-
|
|
44527
|
-
|
|
44528
|
-
|
|
44529
|
-
|
|
44744
|
+
let strategy;
|
|
44745
|
+
try {
|
|
44746
|
+
strategy = await resolveNoxSoftRunnerStrategy({
|
|
44747
|
+
provider: params.provider,
|
|
44748
|
+
config: params.config,
|
|
44749
|
+
agentDir: params.agentDir
|
|
44750
|
+
});
|
|
44751
|
+
} catch (error) {
|
|
44752
|
+
const requestedProvider = normalizedRequestedRef?.provider ?? provider;
|
|
44753
|
+
const requestedModel = normalizedRequestedRef?.model;
|
|
44754
|
+
const failover = coerceToFailoverError(error, {
|
|
44755
|
+
provider: requestedProvider,
|
|
44756
|
+
model: requestedModel
|
|
44757
|
+
}) ?? new FailoverError(error instanceof Error ? error.message : String(error), {
|
|
44758
|
+
reason: classifyFailoverReason(error instanceof Error ? error.message : String(error)) ?? "unknown",
|
|
44759
|
+
provider: requestedProvider,
|
|
44760
|
+
model: requestedModel,
|
|
44761
|
+
cause: error instanceof Error ? error : void 0
|
|
44762
|
+
});
|
|
44763
|
+
await emitAgentEvent(params, "lifecycle", {
|
|
44764
|
+
phase: "error",
|
|
44765
|
+
startedAt,
|
|
44766
|
+
endedAt: Date.now(),
|
|
44767
|
+
error: failover.message
|
|
44768
|
+
});
|
|
44769
|
+
throw failover;
|
|
44770
|
+
}
|
|
44530
44771
|
if (strategy.kind === "anthropic-direct") {
|
|
44531
44772
|
await emitAgentEvent(params, "lifecycle", {
|
|
44532
44773
|
phase: "start",
|
|
@@ -44536,7 +44777,8 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44536
44777
|
const result = normalizeRunnerResult({
|
|
44537
44778
|
result: await runDirectWithProfileFallback({
|
|
44538
44779
|
...params,
|
|
44539
|
-
|
|
44780
|
+
authProvider: "anthropic",
|
|
44781
|
+
runnerKind: "anthropic",
|
|
44540
44782
|
timeoutMs,
|
|
44541
44783
|
runId,
|
|
44542
44784
|
emitPartial
|
|
@@ -44583,7 +44825,8 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44583
44825
|
const result = normalizeRunnerResult({
|
|
44584
44826
|
result: await runDirectWithProfileFallback({
|
|
44585
44827
|
...params,
|
|
44586
|
-
|
|
44828
|
+
authProvider: "google",
|
|
44829
|
+
runnerKind: "google",
|
|
44587
44830
|
timeoutMs,
|
|
44588
44831
|
runId,
|
|
44589
44832
|
emitPartial
|
|
@@ -44630,7 +44873,9 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44630
44873
|
const result = normalizeRunnerResult({
|
|
44631
44874
|
result: await runDirectWithProfileFallback({
|
|
44632
44875
|
...params,
|
|
44633
|
-
|
|
44876
|
+
authProvider: provider === "minimax" ? "minimax" : provider === "openai" ? "openai" : provider,
|
|
44877
|
+
runnerKind: "openai-compatible",
|
|
44878
|
+
openAIProvider: provider,
|
|
44634
44879
|
timeoutMs,
|
|
44635
44880
|
runId,
|
|
44636
44881
|
emitPartial
|