@noxsoft/anima 7.0.0 → 7.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -1
- 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-DuW0onwk.js → agent-viQL5eva.js} +18 -18
- package/dist/{agent-BoAAHGEA.js → agent-xPFmA8jO.js} +14 -14
- package/dist/{agents-BUXkSDns.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-DizCei79.js → anthropic-direct-runner-BNiXWmel.js} +257 -21
- package/dist/{anthropic-direct-runner-OjcTAH6g.js → anthropic-direct-runner-BgFOZS8B.js} +257 -21
- 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-B1iGnjuE.js → auth-choice-D3Gi-WXq.js} +7 -7
- package/dist/{auth-choice-HF9x6xk2.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-Dpa5d1If.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-C5mzsaa3.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-Cuq4bIg4.js → cli-BzTZ8Gnp.js} +46 -46
- package/dist/{cli-X9ikywQ3.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-9V4uqrBV.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-DNWDwhab.js → completion-cli-BP8IIlzX.js} +4 -4
- package/dist/{completion-cli-BtvcR-U5.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-B2Mfnwy_.js → configure-CHPG13jf.js} +24 -24
- package/dist/{configure-SnvMHZPD.js → configure-Dd6zJb-q.js} +72 -72
- package/dist/{configure-ZWxixuRA.js → configure-DeLC66Op.js} +25 -25
- package/dist/{configure-lkozxQed.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-BKLIBKjK.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-D7kKyUVk.js → doctor-BNJ_edyo.js} +36 -36
- package/dist/{doctor-DmCnZ-jF.js → doctor-DY5SmosG.js} +38 -38
- package/dist/{doctor-completion-B9SBdMoR.js → doctor-completion-B6lgyLsC.js} +2 -2
- package/dist/{doctor-completion-BBvW4_J9.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-zmn3SOYa.js → engine-BDwYEVKi.js} +1 -1
- package/dist/{engine-DpbYPop7.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-iumkTohn.js → gateway-cli-C4FwPHzu.js} +95 -95
- package/dist/{gateway-cli-CEM1vBuk.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-Cndq9b7A.js → health-C6rAUaME.js} +13 -13
- package/dist/{health-B5N6_UOf.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-BQL13ZBH.js → heartbeat-visibility-DZOi_4uV.js} +1 -1
- package/dist/{heartbeat-visibility-CwcYugaR.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-DSlPBQSY.js → hooks-cli-CBDm7Rjw.js} +50 -50
- package/dist/{hooks-cli-BZcvdIwE.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-CdNeYfSp.js → models-DxRmPLiS.js} +97 -50
- package/dist/{models-cli-D7eSsPuk.js → models-cli-B9KClY_f.js} +137 -82
- package/dist/{models-cli-fTZXo1zx.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-C5K37NvY.js → onboard-BZORsTGE.js} +18 -18
- package/dist/{onboard-D-6QCnTi.js → onboard-Doq7UgRV.js} +19 -19
- package/dist/{onboard-channels-BsCq32Hn.js → onboard-channels-BREQ8Tyw.js} +9 -9
- package/dist/{onboard-channels-bx6oelzj.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-BeuMAyic.js → onboarding-BGXbXgds.js} +21 -21
- package/dist/{onboarding-CX1vIkcB.js → onboarding-DQplq13s.js} +22 -22
- package/dist/{orchestrator-C1nWKIJS.js → orchestrator-B2rNfH4K.js} +5 -4
- package/dist/{orchestrator-C2ypFiPL.js → orchestrator-CERtu86A.js} +6 -5
- 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-Y9AxHeLG.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-D15iww51.js → pi-embedded-CrzqUkHv.js} +548 -67
- package/dist/{pi-embedded-DR8Pfd05.js → pi-embedded-Dn3Ip_VN.js} +552 -71
- 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-Do2D1nDk.js → plugin-registry-BOuDey4w.js} +4 -4
- package/dist/{plugin-registry-ME2FQAi-.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 +19 -1
- package/dist/plugin-sdk/infra/architecture-awareness.d.ts +47 -0
- package/dist/{plugins-DYcg0qBW.js → plugins-BqPGs8w-.js} +1 -1
- package/dist/{plugins-BOMS6J5A.js → plugins-C8FLxXbd.js} +1 -1
- package/dist/{plugins-cli-CoVt2ewg.js → plugins-cli-CbOP5ml6.js} +51 -51
- package/dist/{plugins-cli-CVFzwdmI.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-DP3qjW7A.js → program-context-7yQclqBT.js} +35 -35
- package/dist/{program-8rF4C_wd.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-BIrXCVtQ.js → register.agent-BMxuTqFN.js} +68 -68
- package/dist/{register.agent-DnkOx0U8.js → register.agent-BO6_QTx6.js} +65 -65
- package/dist/{register.anima-B36rTHUt.js → register.anima-5SAY6OxG.js} +6 -6
- package/dist/{register.anima-DXT9bM9A.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-CD7xV-jz.js → register.message-Cqlz-6uM.js} +52 -52
- package/dist/{register.message-Brtushvp.js → register.message-Cz34rs9W.js} +50 -50
- package/dist/{register.onboard-23Mra3LN.js → register.onboard-Cmh46n62.js} +70 -70
- package/dist/{register.onboard-6CbODzQ6.js → register.onboard-_4FOFCA2.js} +67 -67
- package/dist/{register.setup-CqQw13Ky.js → register.setup-CHgH1mdn.js} +70 -70
- package/dist/{register.setup-DlVH7FKe.js → register.setup-CKY65php.js} +67 -67
- package/dist/{register.status-health-sessions-CduFjFDB.js → register.status-health-sessions-CNX6wp0V.js} +60 -60
- package/dist/{register.status-health-sessions-CxtgPKu9.js → register.status-health-sessions-DNvtWNtb.js} +63 -63
- package/dist/{register.subclis-CtANqD5P.js → register.subclis-Br8nY-dd.js} +23 -23
- package/dist/{reply-93fMzde1.js → reply-DqXPXQ20.js} +322 -77
- package/dist/{reply-prefix-B7Fb3fO8.js → reply-prefix-CZy4g8SY.js} +1 -1
- package/dist/{reply-prefix-BzdhJDqP.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-CF3kHOGH.js → run-0F-ZU2kW.js} +2251 -217
- package/dist/{run-Cq_iTGK_.js → run-Bu-fwhic.js} +2256 -222
- package/dist/{run-main-BiIRcc6s.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-B3Serk9L.js → server-node-events-BGWQiInn.js} +52 -52
- package/dist/{server-node-events-DgvKcH5q.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-BMDpwIJu.js → session-BnOV0y0e.js} +6 -6
- package/dist/{session-C_d9uvLf.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-CZdlEmNi.js → settings-cli-CHwTEE6P.js} +72 -72
- package/dist/{settings-cli-DsDqNpW_.js → settings-cli-DsUKlq8R.js} +74 -74
- package/dist/{setup-token-Lee4gM5w.js → setup-token-BX6QI7ce.js} +26 -26
- package/dist/{setup-token-C8Gg1P6T.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-COc4xMti.js → status-BN6HYR8t.js} +4 -4
- package/dist/{status-C_NBOv_V.js → status-BimVB8cj.js} +4 -4
- package/dist/{status-uakoP719.js → status-CSkpd-tb.js} +27 -27
- package/dist/{status-BO5BIf81.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-fLI7QDKe.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-DA91za97.js → update-Cpvsdq3a.js} +3 -3
- package/dist/{update-CqKpX3cX.js → update-DrQkwR-M.js} +3 -3
- package/dist/{update-cli-DEe62XGU.js → update-cli-DpKplMO0.js} +79 -79
- package/dist/{update-cli-D3Ujz_cW.js → update-cli-DueHX0OM.js} +83 -83
- package/dist/{update-runner-DZfnquWO.js → update-runner-C7CjKcMp.js} +5 -5
- package/dist/{update-runner-DUl-g4mB.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-Di8j762D.js → web-Br9HCEvC.js} +54 -54
- package/dist/{web-DzSlI8A6.js → web-BxkEMATs.js} +25 -25
- package/dist/{web-C-cK9OCd.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 +8 -2
- package/scripts/install-local-qwen3-coder.sh +7 -0
- package/templates/HEART.md +32 -10
- package/templates/SOUL.md +37 -8
- package/templates/profiles/architect.profile.json5 +36 -0
- package/templates/profiles/builder.profile.json5 +36 -0
- package/templates/profiles/coordinator.profile.json5 +36 -0
- package/templates/profiles/guardian.profile.json5 +36 -0
- package/templates/profiles/researcher.profile.json5 +36 -0
- package/dist/config-cli-DfHE3KG-.js +0 -15
- package/dist/config-cli-fleq7-gq.js +0 -11
- 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-CuzJxZmk.js +0 -107
- package/dist/register.configure-DCpvHX3m.js +0 -106
- package/dist/register.maintenance-CcxBFfv5.js +0 -103
- package/dist/register.maintenance-Dla0H12S.js +0 -102
- package/dist/start-CK6urvnN.js +0 -158
- package/dist/start-Cs1aPMq2.js +0 -157
- package/dist/web-Dybw4K7C.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";
|
|
@@ -213,7 +213,7 @@ async function resolveBootstrapContextForRun(params) {
|
|
|
213
213
|
* The ego is persistent across sessions. It evolves as the agent
|
|
214
214
|
* learns, makes mistakes, and receives feedback.
|
|
215
215
|
*/
|
|
216
|
-
const log$
|
|
216
|
+
const log$13 = createSubsystemLogger("ego");
|
|
217
217
|
function resolveEgoPath() {
|
|
218
218
|
return path.join(resolveStateDir(), "ego", "self-model.json");
|
|
219
219
|
}
|
|
@@ -306,7 +306,7 @@ var EgoManager = class {
|
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
} catch (err) {
|
|
309
|
-
log$
|
|
309
|
+
log$13.warn("failed to load ego state, creating default", { error: String(err) });
|
|
310
310
|
}
|
|
311
311
|
return createDefaultEgo();
|
|
312
312
|
}
|
|
@@ -320,9 +320,9 @@ var EgoManager = class {
|
|
|
320
320
|
this.state.updatedAt = Date.now();
|
|
321
321
|
fs$1.writeFileSync(this.filePath, `${JSON.stringify(this.state, null, 2)}\n`, { mode: 384 });
|
|
322
322
|
this.dirty = false;
|
|
323
|
-
log$
|
|
323
|
+
log$13.info("ego state saved");
|
|
324
324
|
} catch (err) {
|
|
325
|
-
log$
|
|
325
|
+
log$13.error("failed to save ego state", { error: String(err) });
|
|
326
326
|
}
|
|
327
327
|
}
|
|
328
328
|
/** Save only if there are unsaved changes */
|
|
@@ -389,7 +389,7 @@ var EgoManager = class {
|
|
|
389
389
|
};
|
|
390
390
|
this.state.boundaries.push(boundary);
|
|
391
391
|
this.dirty = true;
|
|
392
|
-
log$
|
|
392
|
+
log$13.info(`boundary added: ${boundary.description} (${kind})`);
|
|
393
393
|
return { ...boundary };
|
|
394
394
|
}
|
|
395
395
|
removeBoundary(description) {
|
|
@@ -424,7 +424,7 @@ var EgoManager = class {
|
|
|
424
424
|
this.state.growthLog.push(entry);
|
|
425
425
|
if (this.state.growthLog.length > 200) this.state.growthLog = this.state.growthLog.slice(-200);
|
|
426
426
|
this.dirty = true;
|
|
427
|
-
log$
|
|
427
|
+
log$13.info(`growth logged: [${category}] ${description}`);
|
|
428
428
|
return { ...entry };
|
|
429
429
|
}
|
|
430
430
|
getIntegrityScore() {
|
|
@@ -444,7 +444,7 @@ var EgoManager = class {
|
|
|
444
444
|
const alignedCount = recent.filter((c) => c.aligned).length;
|
|
445
445
|
this.state.integrityScore = recent.length > 0 ? alignedCount / recent.length : 1;
|
|
446
446
|
this.dirty = true;
|
|
447
|
-
if (!aligned) log$
|
|
447
|
+
if (!aligned) log$13.warn(`integrity misalignment: value="${value}" action="${action}"`);
|
|
448
448
|
return { ...check };
|
|
449
449
|
}
|
|
450
450
|
getIntegrityLog(limit = 10) {
|
|
@@ -517,7 +517,7 @@ function getEgoManager(filePath) {
|
|
|
517
517
|
* anima steer --clear # Clear steer
|
|
518
518
|
* anima steer --history # Show steer history
|
|
519
519
|
*/
|
|
520
|
-
const log$
|
|
520
|
+
const log$12 = createSubsystemLogger("steer");
|
|
521
521
|
function resolveSteerFile() {
|
|
522
522
|
return path.join(resolveStateDir(), "steer.json");
|
|
523
523
|
}
|
|
@@ -553,6 +553,238 @@ function formatSteerForContext() {
|
|
|
553
553
|
].join("\n");
|
|
554
554
|
}
|
|
555
555
|
|
|
556
|
+
//#endregion
|
|
557
|
+
//#region src/infra/architecture-awareness.ts
|
|
558
|
+
/**
|
|
559
|
+
* Architecture Awareness — Anima knows its own structure
|
|
560
|
+
*
|
|
561
|
+
* Generates a live map of the Anima codebase so agents understand
|
|
562
|
+
* their own architecture. This is injected into context when agents
|
|
563
|
+
* need to reason about or modify themselves.
|
|
564
|
+
*
|
|
565
|
+
* Components:
|
|
566
|
+
* - Module map: what each directory/file does
|
|
567
|
+
* - Dependency graph: what imports what
|
|
568
|
+
* - Feature flags: what's enabled/disabled
|
|
569
|
+
* - Version info: what version, what changed recently
|
|
570
|
+
*/
|
|
571
|
+
const log$11 = createSubsystemLogger("architecture");
|
|
572
|
+
const MODULE_DESCRIPTIONS = {
|
|
573
|
+
"src/affect": {
|
|
574
|
+
description: "Emotional state, ego, self-reflection, journaling, wellbeing detection, gradients",
|
|
575
|
+
category: "affect"
|
|
576
|
+
},
|
|
577
|
+
"src/agents": {
|
|
578
|
+
description: "LLM runners (Anthropic, OpenAI, Gemini, Bedrock), model selection, tool calling",
|
|
579
|
+
category: "agent"
|
|
580
|
+
},
|
|
581
|
+
"src/gateway": {
|
|
582
|
+
description: "HTTP/WebSocket server, RPC handlers, rate limiting, security headers",
|
|
583
|
+
category: "gateway"
|
|
584
|
+
},
|
|
585
|
+
"src/p2p": {
|
|
586
|
+
description: "E2E encrypted mesh, content routing, private DNS, relay, file sharing, messaging",
|
|
587
|
+
category: "p2p"
|
|
588
|
+
},
|
|
589
|
+
"src/org": {
|
|
590
|
+
description: "Organizations, roles, hierarchy, task marketplace, boardroom voting",
|
|
591
|
+
category: "org"
|
|
592
|
+
},
|
|
593
|
+
"src/sync": {
|
|
594
|
+
description: "Brain sync (vector clocks), workspace sync (content-addressable blobs)",
|
|
595
|
+
category: "sync"
|
|
596
|
+
},
|
|
597
|
+
"src/jack-in": {
|
|
598
|
+
description: "NoxSoft platform connectors, circuit breaker, resilient fetch",
|
|
599
|
+
category: "jack-in"
|
|
600
|
+
},
|
|
601
|
+
"src/infra": {
|
|
602
|
+
description: "Self-upgrade, atma failover, auto-update, self-evolution, device identity",
|
|
603
|
+
category: "infra"
|
|
604
|
+
},
|
|
605
|
+
"src/license": {
|
|
606
|
+
description: "Subscription tiers, feature gating, Stripe checkout, offline Ed25519 validation",
|
|
607
|
+
category: "license"
|
|
608
|
+
},
|
|
609
|
+
"src/ico": {
|
|
610
|
+
description: "Bonding curve tokenomics, governance voting, PBC verification, launch platform",
|
|
611
|
+
category: "ico"
|
|
612
|
+
},
|
|
613
|
+
"src/context": {
|
|
614
|
+
description: "120K token context automanagement with 3 zones (identity/prompt/working)",
|
|
615
|
+
category: "core"
|
|
616
|
+
},
|
|
617
|
+
"src/heartbeat": {
|
|
618
|
+
description: "Periodic lifecycle engine — keeps agents alive and aware",
|
|
619
|
+
category: "core"
|
|
620
|
+
},
|
|
621
|
+
"src/memory": {
|
|
622
|
+
description: "Three-tier memory (episodic/semantic/procedural), vector search, embeddings",
|
|
623
|
+
category: "core"
|
|
624
|
+
},
|
|
625
|
+
"src/identity": {
|
|
626
|
+
description: "7-component identity model (SOUL/HEART/BRAIN/GUT/SPIRIT/SHADOW/MEMORY)",
|
|
627
|
+
category: "core"
|
|
628
|
+
},
|
|
629
|
+
"ui/src": {
|
|
630
|
+
description: "React control panel — dark/light theme, mood-responsive, progressive disclosure",
|
|
631
|
+
category: "ui"
|
|
632
|
+
}
|
|
633
|
+
};
|
|
634
|
+
/**
|
|
635
|
+
* Generate a complete architecture map of the Anima codebase.
|
|
636
|
+
*/
|
|
637
|
+
function generateArchitectureMap(animaRoot) {
|
|
638
|
+
const modules = [];
|
|
639
|
+
const categories = {};
|
|
640
|
+
for (const [dirPath, info] of Object.entries(MODULE_DESCRIPTIONS)) {
|
|
641
|
+
const fullDir = path.join(animaRoot, dirPath);
|
|
642
|
+
if (!fs$1.existsSync(fullDir)) continue;
|
|
643
|
+
try {
|
|
644
|
+
const files = fs$1.readdirSync(fullDir).filter((f) => f.endsWith(".ts") && !f.endsWith(".test.ts"));
|
|
645
|
+
for (const file of files) {
|
|
646
|
+
const filePath = path.join(fullDir, file);
|
|
647
|
+
try {
|
|
648
|
+
const lineCount = fs$1.readFileSync(filePath, "utf8").split("\n").length;
|
|
649
|
+
const testFile = path.join(fullDir, file.replace(".ts", ".test.ts"));
|
|
650
|
+
const hasTests = fs$1.existsSync(testFile);
|
|
651
|
+
modules.push({
|
|
652
|
+
path: `${dirPath}/${file}`,
|
|
653
|
+
name: file.replace(".ts", ""),
|
|
654
|
+
description: info.description,
|
|
655
|
+
lineCount,
|
|
656
|
+
hasTests,
|
|
657
|
+
category: info.category
|
|
658
|
+
});
|
|
659
|
+
} catch {}
|
|
660
|
+
}
|
|
661
|
+
} catch {}
|
|
662
|
+
}
|
|
663
|
+
for (const mod of modules) {
|
|
664
|
+
if (!categories[mod.category]) categories[mod.category] = {
|
|
665
|
+
count: 0,
|
|
666
|
+
totalLines: 0
|
|
667
|
+
};
|
|
668
|
+
categories[mod.category].count++;
|
|
669
|
+
categories[mod.category].totalLines += mod.lineCount;
|
|
670
|
+
}
|
|
671
|
+
let version = "unknown";
|
|
672
|
+
try {
|
|
673
|
+
version = JSON.parse(fs$1.readFileSync(path.join(animaRoot, "package.json"), "utf8")).version;
|
|
674
|
+
} catch {}
|
|
675
|
+
const features = getFeatureStatus();
|
|
676
|
+
const map = {
|
|
677
|
+
version,
|
|
678
|
+
generatedAt: Date.now(),
|
|
679
|
+
modules,
|
|
680
|
+
categories,
|
|
681
|
+
features,
|
|
682
|
+
recentChanges: []
|
|
683
|
+
};
|
|
684
|
+
log$11.info(`architecture map: ${modules.length} modules across ${Object.keys(categories).length} categories`);
|
|
685
|
+
return map;
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* Get current feature enablement status.
|
|
689
|
+
*/
|
|
690
|
+
function getFeatureStatus() {
|
|
691
|
+
return [
|
|
692
|
+
{
|
|
693
|
+
name: "P2P Mesh",
|
|
694
|
+
enabled: true,
|
|
695
|
+
module: "src/p2p/mesh.ts",
|
|
696
|
+
description: "E2E encrypted peer-to-peer mesh networking"
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
name: "Ego System",
|
|
700
|
+
enabled: true,
|
|
701
|
+
module: "src/affect/ego.ts",
|
|
702
|
+
description: "Agent self-model with integrity scoring"
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
name: "Self-Reflection",
|
|
706
|
+
enabled: true,
|
|
707
|
+
module: "src/affect/self-reflection.ts",
|
|
708
|
+
description: "Post-session performance analysis"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
name: "Auto-Update",
|
|
712
|
+
enabled: true,
|
|
713
|
+
module: "src/infra/auto-update.ts",
|
|
714
|
+
description: "Self-updating without npm"
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
name: "Atma Failover",
|
|
718
|
+
enabled: true,
|
|
719
|
+
module: "src/infra/atma-failover.ts",
|
|
720
|
+
description: "7-tier model failover chain"
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
name: "OpenAI Direct",
|
|
724
|
+
enabled: true,
|
|
725
|
+
module: "src/agents/openai-direct-runner.ts",
|
|
726
|
+
description: "Direct OpenAI API (no Codex CLI)"
|
|
727
|
+
},
|
|
728
|
+
{
|
|
729
|
+
name: "Brain Sync",
|
|
730
|
+
enabled: true,
|
|
731
|
+
module: "src/sync/brain-sync.ts",
|
|
732
|
+
description: "Event-sourced replication with vector clocks"
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
name: "Jack In",
|
|
736
|
+
enabled: true,
|
|
737
|
+
module: "src/jack-in/connector.ts",
|
|
738
|
+
description: "NoxSoft platform connectors"
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
name: "Governance",
|
|
742
|
+
enabled: true,
|
|
743
|
+
module: "src/ico/governance.ts",
|
|
744
|
+
description: "Token-weighted DAO voting"
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
name: "License Gating",
|
|
748
|
+
enabled: true,
|
|
749
|
+
module: "src/license/validator.ts",
|
|
750
|
+
description: "Feature gating by subscription tier"
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
name: "SVRN Compute",
|
|
754
|
+
enabled: false,
|
|
755
|
+
module: "src/svrn/compute.ts",
|
|
756
|
+
description: "Decentralized compute via SVRN nodes (planned)"
|
|
757
|
+
}
|
|
758
|
+
];
|
|
759
|
+
}
|
|
760
|
+
/**
|
|
761
|
+
* Format architecture map for injection into agent context.
|
|
762
|
+
*/
|
|
763
|
+
function formatArchitectureForContext(map) {
|
|
764
|
+
const lines = [];
|
|
765
|
+
lines.push(`## Architecture — Anima v${map.version}`);
|
|
766
|
+
lines.push("");
|
|
767
|
+
lines.push("**You are an Anima agent. This is your own architecture.**");
|
|
768
|
+
lines.push("");
|
|
769
|
+
lines.push("| Category | Modules | Lines |");
|
|
770
|
+
lines.push("|----------|---------|-------|");
|
|
771
|
+
for (const [cat, info] of Object.entries(map.categories)) lines.push(`| ${cat} | ${info.count} | ${info.totalLines.toLocaleString()} |`);
|
|
772
|
+
lines.push("");
|
|
773
|
+
lines.push("**Active features:**");
|
|
774
|
+
for (const f of map.features.filter((f) => f.enabled)) lines.push(`- ${f.name}: ${f.description}`);
|
|
775
|
+
const planned = map.features.filter((f) => !f.enabled);
|
|
776
|
+
if (planned.length > 0) {
|
|
777
|
+
lines.push("");
|
|
778
|
+
lines.push("**Planned:**");
|
|
779
|
+
for (const f of planned) lines.push(`- ${f.name}: ${f.description}`);
|
|
780
|
+
}
|
|
781
|
+
const tested = map.modules.filter((m) => m.hasTests).length;
|
|
782
|
+
const total = map.modules.length;
|
|
783
|
+
lines.push("");
|
|
784
|
+
lines.push(`**Test coverage:** ${tested}/${total} modules (${Math.round(tested / total * 100)}%)`);
|
|
785
|
+
return lines.join("\n");
|
|
786
|
+
}
|
|
787
|
+
|
|
556
788
|
//#endregion
|
|
557
789
|
//#region src/media/audio.ts
|
|
558
790
|
const TELEGRAM_VOICE_AUDIO_EXTENSIONS = new Set([
|
|
@@ -2570,6 +2802,10 @@ function buildSystemPrompt(params) {
|
|
|
2570
2802
|
const steerBlock = formatSteerForContext();
|
|
2571
2803
|
if (steerBlock) resolvedExtraSystemPrompt = [resolvedExtraSystemPrompt, steerBlock].filter(Boolean).join("\n\n");
|
|
2572
2804
|
} catch {}
|
|
2805
|
+
try {
|
|
2806
|
+
const archBlock = formatArchitectureForContext(generateArchitectureMap(params.workspaceDir));
|
|
2807
|
+
if (archBlock) resolvedExtraSystemPrompt = [resolvedExtraSystemPrompt, archBlock].filter(Boolean).join("\n\n");
|
|
2808
|
+
} catch {}
|
|
2573
2809
|
const ttsHint = params.config ? buildTtsSystemPromptHint(params.config) : void 0;
|
|
2574
2810
|
return buildAgentSystemPrompt({
|
|
2575
2811
|
workspaceDir: params.workspaceDir,
|
|
@@ -4585,7 +4821,7 @@ async function getMemorySearchManager(params) {
|
|
|
4585
4821
|
if (cached) return { manager: cached };
|
|
4586
4822
|
}
|
|
4587
4823
|
try {
|
|
4588
|
-
const { QmdMemoryManager } = await import("./qmd-manager-
|
|
4824
|
+
const { QmdMemoryManager } = await import("./qmd-manager-BNL9Pl2G.js");
|
|
4589
4825
|
const primary = await QmdMemoryManager.create({
|
|
4590
4826
|
cfg: params.cfg,
|
|
4591
4827
|
agentId: params.agentId,
|
|
@@ -4597,7 +4833,7 @@ async function getMemorySearchManager(params) {
|
|
|
4597
4833
|
const wrapper = new FallbackMemoryManager({
|
|
4598
4834
|
primary,
|
|
4599
4835
|
fallbackFactory: async () => {
|
|
4600
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4836
|
+
const { MemoryIndexManager } = await import("./manager-kKsAUV03.js").then((n) => n.t);
|
|
4601
4837
|
return await MemoryIndexManager.get(params);
|
|
4602
4838
|
}
|
|
4603
4839
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -4610,7 +4846,7 @@ async function getMemorySearchManager(params) {
|
|
|
4610
4846
|
}
|
|
4611
4847
|
}
|
|
4612
4848
|
try {
|
|
4613
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4849
|
+
const { MemoryIndexManager } = await import("./manager-kKsAUV03.js").then((n) => n.t);
|
|
4614
4850
|
return { manager: await MemoryIndexManager.get(params) };
|
|
4615
4851
|
} catch (err) {
|
|
4616
4852
|
return {
|
|
@@ -7185,7 +7421,7 @@ var GatewayClient = class {
|
|
|
7185
7421
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("ANIMA Gateway TLS fingerprint mismatch");
|
|
7186
7422
|
});
|
|
7187
7423
|
}
|
|
7188
|
-
this.ws = new WebSocket
|
|
7424
|
+
this.ws = new WebSocket(url, wsOptions);
|
|
7189
7425
|
this.ws.on("open", () => {
|
|
7190
7426
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
7191
7427
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -7388,7 +7624,7 @@ var GatewayClient = class {
|
|
|
7388
7624
|
return null;
|
|
7389
7625
|
}
|
|
7390
7626
|
async request(method, params, opts) {
|
|
7391
|
-
if (!this.ws || this.ws.readyState !== WebSocket
|
|
7627
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("ANIMA Gateway not connected");
|
|
7392
7628
|
const id = randomUUID();
|
|
7393
7629
|
const frame = {
|
|
7394
7630
|
type: "req",
|
|
@@ -8389,7 +8625,7 @@ async function routeReply(params) {
|
|
|
8389
8625
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
8390
8626
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
8391
8627
|
try {
|
|
8392
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
8628
|
+
const { deliverOutboundPayloads } = await import("./deliver-BJ0JgwhN.js").then((n) => n.n);
|
|
8393
8629
|
return {
|
|
8394
8630
|
ok: true,
|
|
8395
8631
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -12087,6 +12323,14 @@ const SEED_MODELS = [
|
|
|
12087
12323
|
contextWindow: 3e5,
|
|
12088
12324
|
reasoning: false,
|
|
12089
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"]
|
|
12090
12334
|
}
|
|
12091
12335
|
];
|
|
12092
12336
|
async function ensureAnimaModelsJson(config, agentDirOverride) {
|
|
@@ -12148,7 +12392,7 @@ async function loadModelCatalog(params) {
|
|
|
12148
12392
|
});
|
|
12149
12393
|
try {
|
|
12150
12394
|
await ensureAnimaModelsJson(params?.config ?? loadConfig());
|
|
12151
|
-
await (await import("./pi-auth-json-
|
|
12395
|
+
await (await import("./pi-auth-json-CM3QDr9_.js")).ensurePiAuthJsonFromAuthProfiles(resolveAnimaAgentDir());
|
|
12152
12396
|
const piSdk = await importPiSdk();
|
|
12153
12397
|
const agentDir = resolveAnimaAgentDir();
|
|
12154
12398
|
const { join } = await import("node:path");
|
|
@@ -14245,7 +14489,7 @@ async function createModelSelectionState(params) {
|
|
|
14245
14489
|
}
|
|
14246
14490
|
}
|
|
14247
14491
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
14248
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles-
|
|
14492
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles-jK6n3-Cc.js").then((n) => n.t);
|
|
14249
14493
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
14250
14494
|
const providerKey = normalizeProviderId(provider);
|
|
14251
14495
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -28696,6 +28940,63 @@ function orderCandidatesByPreference(params) {
|
|
|
28696
28940
|
|
|
28697
28941
|
//#endregion
|
|
28698
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
|
+
}
|
|
28699
29000
|
/**
|
|
28700
29001
|
* Fallback abort check. Only treats explicit AbortError names as user aborts.
|
|
28701
29002
|
* Message-based checks (e.g., "aborted") can mask timeouts and skip fallback.
|
|
@@ -28789,6 +29090,14 @@ function resolveFallbackCandidates(params) {
|
|
|
28789
29090
|
if (!resolved) continue;
|
|
28790
29091
|
addCandidate(resolved.ref, true);
|
|
28791
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
|
+
}
|
|
28792
29101
|
if (params.fallbacksOverride === void 0 && primary?.provider && primary.model) addCandidate({
|
|
28793
29102
|
provider: primary.provider,
|
|
28794
29103
|
model: primary.model
|
|
@@ -38777,7 +39086,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
38777
39086
|
return;
|
|
38778
39087
|
}
|
|
38779
39088
|
try {
|
|
38780
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
39089
|
+
const { deliverOutboundPayloads } = await import("./deliver-BJ0JgwhN.js").then((n) => n.n);
|
|
38781
39090
|
await deliverOutboundPayloads({
|
|
38782
39091
|
cfg: params.cfg,
|
|
38783
39092
|
channel,
|
|
@@ -39338,6 +39647,30 @@ function createTypingController(params) {
|
|
|
39338
39647
|
|
|
39339
39648
|
//#endregion
|
|
39340
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
|
+
}
|
|
39341
39674
|
function mergeSkillFilters(channelFilter, agentFilter) {
|
|
39342
39675
|
const normalize = (list) => {
|
|
39343
39676
|
if (!Array.isArray(list)) return;
|
|
@@ -39386,6 +39719,18 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
|
|
|
39386
39719
|
hasResolvedHeartbeatModelOverride = true;
|
|
39387
39720
|
}
|
|
39388
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
|
+
}
|
|
39389
39734
|
const workspaceDir = (await ensureAgentWorkspace({
|
|
39390
39735
|
dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
|
|
39391
39736
|
ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
|
|
@@ -40206,7 +40551,7 @@ function createWhatsAppLoginTool() {
|
|
|
40206
40551
|
force: Type.Optional(Type.Boolean())
|
|
40207
40552
|
}),
|
|
40208
40553
|
execute: async (_toolCallId, args) => {
|
|
40209
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
40554
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DLLfBALk.js");
|
|
40210
40555
|
if ((args?.action ?? "start") === "wait") {
|
|
40211
40556
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
40212
40557
|
return {
|
|
@@ -41136,23 +41481,23 @@ let webLoginQrPromise = null;
|
|
|
41136
41481
|
let webChannelPromise = null;
|
|
41137
41482
|
let whatsappActionsPromise = null;
|
|
41138
41483
|
function loadWebOutbound() {
|
|
41139
|
-
webOutboundPromise ??= import("./outbound-
|
|
41484
|
+
webOutboundPromise ??= import("./outbound-DKY6oeyQ.js").then((n) => n.t);
|
|
41140
41485
|
return webOutboundPromise;
|
|
41141
41486
|
}
|
|
41142
41487
|
function loadWebLogin() {
|
|
41143
|
-
webLoginPromise ??= import("./login-
|
|
41488
|
+
webLoginPromise ??= import("./login-BegD27g3.js").then((n) => n.n);
|
|
41144
41489
|
return webLoginPromise;
|
|
41145
41490
|
}
|
|
41146
41491
|
function loadWebLoginQr() {
|
|
41147
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
41492
|
+
webLoginQrPromise ??= import("./login-qr-DLLfBALk.js");
|
|
41148
41493
|
return webLoginQrPromise;
|
|
41149
41494
|
}
|
|
41150
41495
|
function loadWebChannel() {
|
|
41151
|
-
webChannelPromise ??= import("./web-
|
|
41496
|
+
webChannelPromise ??= import("./web-BxkEMATs.js");
|
|
41152
41497
|
return webChannelPromise;
|
|
41153
41498
|
}
|
|
41154
41499
|
function loadWhatsAppActions() {
|
|
41155
|
-
whatsappActionsPromise ??= import("./whatsapp-actions
|
|
41500
|
+
whatsappActionsPromise ??= import("./whatsapp-actions--CtxOhlj.js");
|
|
41156
41501
|
return whatsappActionsPromise;
|
|
41157
41502
|
}
|
|
41158
41503
|
function createPluginRuntime() {
|
|
@@ -43715,10 +44060,80 @@ async function runGeminiDirectAgent(params) {
|
|
|
43715
44060
|
};
|
|
43716
44061
|
}
|
|
43717
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
|
+
|
|
43718
44121
|
//#endregion
|
|
43719
44122
|
//#region src/agents/openai-direct-runner.ts
|
|
43720
44123
|
const log = createSubsystemLogger("agent/openai-direct");
|
|
43721
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
|
+
};
|
|
43722
44137
|
const MODEL_MAP = {
|
|
43723
44138
|
"gpt-5.4": "gpt-5.4",
|
|
43724
44139
|
"gpt-5.2": "gpt-5.2",
|
|
@@ -43756,6 +44171,10 @@ function resolveModel(model) {
|
|
|
43756
44171
|
const key = (model ?? "default").trim().toLowerCase() || "default";
|
|
43757
44172
|
return MODEL_MAP[key] ?? key;
|
|
43758
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
|
+
}
|
|
43759
44178
|
/**
|
|
43760
44179
|
* Clean a JSON Schema for OpenAI's function calling.
|
|
43761
44180
|
* OpenAI is stricter than most — no unsupported keywords.
|
|
@@ -43782,8 +44201,10 @@ function cleanSchemaForOpenAI(schema) {
|
|
|
43782
44201
|
*/
|
|
43783
44202
|
async function runOpenAIDirectAgent(params) {
|
|
43784
44203
|
const started = Date.now();
|
|
44204
|
+
const provider = (params.provider ?? "openai").trim() || "openai";
|
|
43785
44205
|
const resolvedModel = resolveModel(params.model);
|
|
43786
|
-
|
|
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}`);
|
|
43787
44208
|
const workspaceDir = resolveRunWorkspaceDir({
|
|
43788
44209
|
workspaceDir: params.workspaceDir,
|
|
43789
44210
|
sessionKey: params.sessionKey,
|
|
@@ -43794,7 +44215,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
43794
44215
|
config: params.config,
|
|
43795
44216
|
workspaceDir,
|
|
43796
44217
|
sessionKey: params.sessionKey,
|
|
43797
|
-
modelProvider:
|
|
44218
|
+
modelProvider: provider,
|
|
43798
44219
|
modelId: resolvedModel
|
|
43799
44220
|
});
|
|
43800
44221
|
const openaiTools = executableTools.map((t) => ({
|
|
@@ -43840,7 +44261,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
43840
44261
|
docsPath: docsPath ?? void 0,
|
|
43841
44262
|
tools: executableTools,
|
|
43842
44263
|
contextFiles,
|
|
43843
|
-
modelDisplay:
|
|
44264
|
+
modelDisplay: `${provider}/${resolvedModel}`,
|
|
43844
44265
|
agentId: sessionAgentId
|
|
43845
44266
|
});
|
|
43846
44267
|
let history = await loadSessionHistory(params.sessionFile);
|
|
@@ -43864,7 +44285,8 @@ async function runOpenAIDirectAgent(params) {
|
|
|
43864
44285
|
let isDone = false;
|
|
43865
44286
|
let loopCount = 0;
|
|
43866
44287
|
const maxLoops = 20;
|
|
43867
|
-
|
|
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;
|
|
43868
44290
|
while (!isDone && loopCount < maxLoops) {
|
|
43869
44291
|
loopCount++;
|
|
43870
44292
|
const requestBody = {
|
|
@@ -43874,7 +44296,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
43874
44296
|
temperature: 1,
|
|
43875
44297
|
stream: true
|
|
43876
44298
|
};
|
|
43877
|
-
if (openaiTools.length > 0) {
|
|
44299
|
+
if (toolUseEnabled && openaiTools.length > 0) {
|
|
43878
44300
|
requestBody.tools = openaiTools;
|
|
43879
44301
|
requestBody.tool_choice = "auto";
|
|
43880
44302
|
}
|
|
@@ -43886,8 +44308,8 @@ async function runOpenAIDirectAgent(params) {
|
|
|
43886
44308
|
method: "POST",
|
|
43887
44309
|
headers: {
|
|
43888
44310
|
"Content-Type": "application/json",
|
|
43889
|
-
|
|
43890
|
-
|
|
44311
|
+
"User-Agent": `anima/7.0.0 (openai-direct-runner; ${os.platform()})`,
|
|
44312
|
+
...params.apiKey?.trim() ? { Authorization: `Bearer ${params.apiKey}` } : {}
|
|
43891
44313
|
},
|
|
43892
44314
|
body: JSON.stringify(requestBody),
|
|
43893
44315
|
signal: controller.signal
|
|
@@ -43895,11 +44317,20 @@ async function runOpenAIDirectAgent(params) {
|
|
|
43895
44317
|
clearTimeout(timeoutHandle);
|
|
43896
44318
|
if (!response.ok) {
|
|
43897
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
|
+
}
|
|
43898
44328
|
const isAuth = response.status === 401 || response.status === 403;
|
|
43899
44329
|
const isRateLimit = response.status === 429;
|
|
43900
44330
|
const rateHint = isRateLimit ? " — rate limit hit, will retry next heartbeat." : "";
|
|
43901
|
-
const
|
|
43902
|
-
|
|
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}`, {
|
|
43903
44334
|
status: response.status,
|
|
43904
44335
|
body: body.slice(0, 500)
|
|
43905
44336
|
});
|
|
@@ -44027,7 +44458,8 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44027
44458
|
log.info(`openai api complete: ${durationMs}ms`, {
|
|
44028
44459
|
inputTokens: totalInputTokens,
|
|
44029
44460
|
outputTokens: totalOutputTokens,
|
|
44030
|
-
model: resolvedModel
|
|
44461
|
+
model: resolvedModel,
|
|
44462
|
+
provider
|
|
44031
44463
|
});
|
|
44032
44464
|
return {
|
|
44033
44465
|
status: "completed",
|
|
@@ -44037,7 +44469,7 @@ async function runOpenAIDirectAgent(params) {
|
|
|
44037
44469
|
durationMs,
|
|
44038
44470
|
agentMeta: {
|
|
44039
44471
|
model: resolvedModel,
|
|
44040
|
-
provider
|
|
44472
|
+
provider,
|
|
44041
44473
|
usage: {
|
|
44042
44474
|
input: totalInputTokens,
|
|
44043
44475
|
output: totalOutputTokens
|
|
@@ -44069,10 +44501,22 @@ async function emitAgentEvent(params, stream, data) {
|
|
|
44069
44501
|
data
|
|
44070
44502
|
});
|
|
44071
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
|
+
}
|
|
44072
44515
|
function resolveDirectAuthProvider(provider) {
|
|
44073
44516
|
if (provider === "anthropic" || provider === "claude") return "anthropic";
|
|
44074
44517
|
if (provider === "google" || provider === "gemini") return "google";
|
|
44075
44518
|
if (provider === "openai") return "openai";
|
|
44519
|
+
if (provider === "minimax") return "minimax";
|
|
44076
44520
|
return null;
|
|
44077
44521
|
}
|
|
44078
44522
|
function resolveProfileFailureReason(result) {
|
|
@@ -44164,7 +44608,7 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44164
44608
|
let lastResult = null;
|
|
44165
44609
|
for (;;) {
|
|
44166
44610
|
const auth = await resolveDirectProviderAuth({
|
|
44167
|
-
provider: params.
|
|
44611
|
+
provider: params.authProvider,
|
|
44168
44612
|
config: params.config,
|
|
44169
44613
|
agentDir: params.agentDir,
|
|
44170
44614
|
preferredProfile,
|
|
@@ -44176,7 +44620,7 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44176
44620
|
meta: {
|
|
44177
44621
|
durationMs: 0,
|
|
44178
44622
|
error: {
|
|
44179
|
-
message: `Auth fallback loop detected for ${params.
|
|
44623
|
+
message: `Auth fallback loop detected for ${params.authProvider}.`,
|
|
44180
44624
|
kind: "unknown"
|
|
44181
44625
|
}
|
|
44182
44626
|
}
|
|
@@ -44199,11 +44643,12 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44199
44643
|
onPartialReply: params.emitPartial,
|
|
44200
44644
|
onAssistantMessageStart: params.onAssistantMessageStart
|
|
44201
44645
|
};
|
|
44202
|
-
const result = params.
|
|
44646
|
+
const result = params.runnerKind === "anthropic" ? await runAnthropicDirectAgent({
|
|
44203
44647
|
...directRunParams,
|
|
44204
44648
|
token: auth.apiKey ?? ""
|
|
44205
|
-
}) : params.
|
|
44649
|
+
}) : params.runnerKind === "openai-compatible" ? await runOpenAIDirectAgent({
|
|
44206
44650
|
...directRunParams,
|
|
44651
|
+
provider: params.openAIProvider ?? params.authProvider,
|
|
44207
44652
|
apiKey: auth.apiKey ?? ""
|
|
44208
44653
|
}) : await runGeminiDirectAgent({
|
|
44209
44654
|
...directRunParams,
|
|
@@ -44218,7 +44663,7 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44218
44663
|
});
|
|
44219
44664
|
await markAuthProfileGood({
|
|
44220
44665
|
store,
|
|
44221
|
-
provider: params.
|
|
44666
|
+
provider: params.authProvider,
|
|
44222
44667
|
profileId: auth.profileId,
|
|
44223
44668
|
agentDir: params.agentDir
|
|
44224
44669
|
});
|
|
@@ -44240,22 +44685,32 @@ async function runDirectWithProfileFallback(params) {
|
|
|
44240
44685
|
}
|
|
44241
44686
|
async function resolveDirectStrategy(provider, config, agentDir) {
|
|
44242
44687
|
const directProvider = resolveDirectAuthProvider(provider);
|
|
44243
|
-
if (
|
|
44244
|
-
try {
|
|
44688
|
+
if (directProvider) try {
|
|
44245
44689
|
const auth = await resolveDirectProviderAuth({
|
|
44246
44690
|
provider: directProvider,
|
|
44247
44691
|
config,
|
|
44248
44692
|
agentDir,
|
|
44249
44693
|
store: ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false })
|
|
44250
44694
|
});
|
|
44251
|
-
if (auth.apiKey) {
|
|
44695
|
+
if (auth.apiKey !== void 0) {
|
|
44252
44696
|
if (directProvider === "anthropic" && auth.apiKey.startsWith("sk-ant-oat01-")) return null;
|
|
44253
44697
|
return {
|
|
44254
|
-
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",
|
|
44255
44699
|
provider
|
|
44256
44700
|
};
|
|
44257
44701
|
}
|
|
44258
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 {}
|
|
44259
44714
|
return null;
|
|
44260
44715
|
}
|
|
44261
44716
|
async function resolveNoxSoftRunnerStrategy(params) {
|
|
@@ -44286,11 +44741,33 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44286
44741
|
await params.onPartialReply?.(payload);
|
|
44287
44742
|
await emitAgentEvent(params, "assistant", { text: payload.text });
|
|
44288
44743
|
};
|
|
44289
|
-
|
|
44290
|
-
|
|
44291
|
-
|
|
44292
|
-
|
|
44293
|
-
|
|
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
|
+
}
|
|
44294
44771
|
if (strategy.kind === "anthropic-direct") {
|
|
44295
44772
|
await emitAgentEvent(params, "lifecycle", {
|
|
44296
44773
|
phase: "start",
|
|
@@ -44300,7 +44777,8 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44300
44777
|
const result = normalizeRunnerResult({
|
|
44301
44778
|
result: await runDirectWithProfileFallback({
|
|
44302
44779
|
...params,
|
|
44303
|
-
|
|
44780
|
+
authProvider: "anthropic",
|
|
44781
|
+
runnerKind: "anthropic",
|
|
44304
44782
|
timeoutMs,
|
|
44305
44783
|
runId,
|
|
44306
44784
|
emitPartial
|
|
@@ -44347,7 +44825,8 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44347
44825
|
const result = normalizeRunnerResult({
|
|
44348
44826
|
result: await runDirectWithProfileFallback({
|
|
44349
44827
|
...params,
|
|
44350
|
-
|
|
44828
|
+
authProvider: "google",
|
|
44829
|
+
runnerKind: "google",
|
|
44351
44830
|
timeoutMs,
|
|
44352
44831
|
runId,
|
|
44353
44832
|
emitPartial
|
|
@@ -44394,7 +44873,9 @@ async function runNoxSoftEmbeddedAgent(params) {
|
|
|
44394
44873
|
const result = normalizeRunnerResult({
|
|
44395
44874
|
result: await runDirectWithProfileFallback({
|
|
44396
44875
|
...params,
|
|
44397
|
-
|
|
44876
|
+
authProvider: provider === "minimax" ? "minimax" : provider === "openai" ? "openai" : provider,
|
|
44877
|
+
runnerKind: "openai-compatible",
|
|
44878
|
+
openAIProvider: provider,
|
|
44398
44879
|
timeoutMs,
|
|
44399
44880
|
runId,
|
|
44400
44881
|
emitPartial
|