@noxsoft/anima 5.1.2 → 6.0.0
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 +40 -0
- package/README.md +2 -2
- package/dist/{APEv2Parser-DV7AH14P.js → APEv2Parser-Dvsbp_2R.js} +3 -3
- package/dist/{AbstractID3Parser-C3RlCr-Y.js → AbstractID3Parser-IB9gxozg.js} +5 -5
- package/dist/{AiffParser-DaFyNU8n.js → AiffParser-R2IhrBzL.js} +4 -4
- package/dist/{AsfParser-CDCRfCXr.js → AsfParser-DJEueUMg.js} +4 -4
- package/dist/{DsdiffParser-BX31LICZ.js → DsdiffParser-DXLYn9tT.js} +4 -4
- package/dist/{DsfParser-C3JBjE-C.js → DsfParser-D2--NF0i.js} +5 -5
- package/dist/{FlacParser-DY4m-7v1.js → FlacParser-8cDAjrth.js} +5 -5
- package/dist/{ID3v1Parser-DL9AGlNt.js → ID3v1Parser-B494XuP9.js} +3 -3
- package/dist/{ID3v2Parser-Mr8o-5GJ.js → ID3v2Parser-DlxcNqv5.js} +4 -4
- package/dist/{ID3v2Token-DQqGh8AB.js → ID3v2Token-CSLSVrSQ.js} +2 -2
- package/dist/{MP4Parser-DkunlEqI.js → MP4Parser-COql2J-w.js} +6 -6
- package/dist/{MatroskaParser-IKjHx0h7.js → MatroskaParser-bNP5wC2F.js} +3 -3
- package/dist/{MpegParser-EecSeRWJ.js → MpegParser-C1gjfYqq.js} +4 -4
- package/dist/{MusepackParser-CkfsAeuE.js → MusepackParser-DBdYf7kV.js} +5 -5
- package/dist/{OggParser-z3QlSd8U.js → OggParser-CxajqbK3.js} +5 -5
- package/dist/{Util-DDVY6AaC.js → Util-BRZxoY1Q.js} +1 -1
- package/dist/{WavPackParser-PimUUBRx.js → WavPackParser-CtH9QFia.js} +4 -4
- package/dist/{WaveParser-B539YtoQ.js → WaveParser-yufLki1G.js} +5 -5
- package/dist/{accounts-CL0JV_xk.js → accounts-B_2nt5Cd.js} +2 -2
- package/dist/{accounts-CYEa4ttU.js → accounts-COxGcLGB.js} +1 -1
- package/dist/{accounts-Bj5MvaDs.js → accounts-DIES085e.js} +11 -11
- package/dist/{accounts-DZsqyow2.js → accounts-TUsfghIW.js} +38 -38
- package/dist/{acp-cli-ynoZZhYQ.js → acp-cli-CWgqDQQH.js} +6 -6
- package/dist/{acp-cli-BFAoKBvs.js → acp-cli-D0wfP8-l.js} +16 -16
- package/dist/{active-listener-BWPgtTZp.js → active-listener-BKtsWhsb.js} +4 -4
- package/dist/{active-listener-GJR3nLhX.js → active-listener-D2r8IO7g.js} +5 -5
- package/dist/{agent-DUAarfNl.js → agent-CnS0SRpT.js} +93 -236
- package/dist/{agent-CaaEZsXl.js → agent-VRQM14Xp.js} +98 -229
- package/dist/{agent-scope-C9CiVcmh.js → agent-scope-ByIGrCTT.js} +2 -2
- package/dist/{agent-scope-D3HZp64M.js → agent-scope-CXxC8FFX.js} +2 -2
- package/dist/{agent-scope-BZ8hjIt_.js → agent-scope-CxBzAozu.js} +3 -3
- package/dist/{agents-t54YcbvK.js → agents-CvMRplDx.js} +15 -13
- package/dist/{agents.config-J7iEgdW_.js → agents.config-BR5JLtud.js} +1 -1
- package/dist/{anthropic-direct-runner-B12V2Q5H.js → anthropic-direct-runner-BeYCnvZ8.js} +37 -15
- package/dist/{anthropic-direct-runner-CzQb7QkD.js → anthropic-direct-runner-C2Kwju-r.js} +29 -7
- package/dist/{audit-ByHmjh-G.js → audit-B05W5ckN.js} +23 -34
- package/dist/{audit-HJOpXfgY.js → audit-DDz7UOIx.js} +18 -15
- package/dist/{auth-DXrALxdm.js → auth-DsC5pZ_0.js} +2 -2
- package/dist/{prompts-CneQ6SeF.js → auth-choice-DY1saszS.js} +12 -107
- package/dist/{auth-choice-DPWnLV_w.js → auth-choice-Dc5TAJwT.js} +10 -9
- package/dist/{auth-health-DmrnGklu.js → auth-health-Cc8-vy8y.js} +1 -1
- package/dist/auth-health-Dhr8p2SD.js +149 -0
- package/dist/{auth-profiles-BF5x9Ej0.js → auth-profiles-Brxz2ojJ.js} +193 -42
- package/dist/{auth-profiles-DjCH4kWT.js → auth-profiles-C-LuhW6c.js} +195 -44
- package/dist/{auth-profiles-PJVsRqf4.js → auth-profiles-DKu7ZUzl.js} +189 -29
- package/dist/{auth-profiles-eZzmaeR3.js → auth-profiles-DtWUl1-k.js} +198 -38
- package/dist/{auth-store-CnRrUELz.js → auth-store-Bd0GoqEL.js} +13 -13
- package/dist/{auth-store-KnWGteIV.js → auth-store-BpYI9t_y.js} +3 -3
- package/dist/{auth-store-DjcQlyze.js → auth-store-Jvgz2_l1.js} +2 -2
- package/dist/{banner-D9JyV5SF.js → banner-DAMtSjUF.js} +1 -1
- package/dist/{bonjour-discovery-QsoaZ8Pr.js → bonjour-discovery-Co-b97Dz.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +222 -151
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +24 -24
- package/dist/{call-DHZ76BNg.js → call-B4lhqS6H.js} +3 -3
- package/dist/{call-DQjoz63V.js → call-CDPbPDAr.js} +4 -4
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{catalog-AZNRamJ4.js → catalog-CsXv59Tq.js} +2 -2
- package/dist/{channel-web-CQIbtfme.js → channel-web-B8mzTSaY.js} +15 -15
- package/dist/{channels-status-issues-DdjvFHx9.js → channels-status-issues-WkG3Tmxk.js} +4 -4
- package/dist/{chrome-HTuFjVWW.js → chrome-B8EnYGj1.js} +9 -9
- package/dist/{chrome-BNggURXT.js → chrome-BaU-H9m7.js} +3 -3
- package/dist/{chrome-Cfak4A3i.js → chrome-DLUBPBPz.js} +12 -12
- package/dist/{chunk-CyT-_QsQ.js → chunk-B4Kx-ocg.js} +11 -9
- package/dist/{chunk-Dffz_QIs.js → chunk-CFSle8n5.js} +1 -1
- package/dist/{chunk-D3vyM2EQ.js → chunk-Cy0Bj0F3.js} +1 -1
- package/dist/{chunk-DFqo_u5A.js → chunk-DJXDX69U.js} +11 -9
- package/dist/{clack-prompter-QbDK4ABC.js → clack-prompter-0JW5kry0.js} +3 -3
- package/dist/{clack-prompter-rXuqdPbx.js → clack-prompter-fZSmnHda.js} +5 -5
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-kT9Mb3dT.js → cli-D8exVpuI.js} +30 -29
- package/dist/cli-hcHk5KuP.js +102 -0
- package/dist/{cli-utils-BdkJVXjy.js → cli-utils-D2X_bDLt.js} +9 -1
- package/dist/{cli-utils-DGnL8raH.js → cli-utils-DcDBK4C5.js} +9 -1
- package/dist/{client-D9E5Wwb_.js → client-BWkoTfOH.js} +3 -2
- package/dist/{client-DzIcZx4J.js → client-CfLiulzK.js} +2 -1
- package/dist/{command-registry-vEVxxxzI.js → command-registry-D3VhxpWx.js} +21 -12
- package/dist/{commands-NIY0IDXe.js → commands-DE8FNH0v.js} +92 -20
- package/dist/{commands-eY0Ao0wt.js → commands-Mekaw9WG.js} +92 -20
- package/dist/{common-C2wAYEWA.js → common-BCW6hLGI.js} +2 -2
- package/dist/{common-BzPvZcxT.js → common-Bf_TG87Y.js} +2 -2
- package/dist/{common-6Fcbzr42.js → common-DT_obM-k.js} +2 -2
- package/dist/{completion-cli-BBKG6buM.js → completion-cli-B3BqQJq9.js} +3 -3
- package/dist/{completion-cli-C84I5l8a.js → completion-cli-CepDzeW1.js} +2 -2
- package/dist/{config-Ofh9gKvs.js → config-BrVuTQ8R.js} +14 -2
- package/dist/{config-6FVC8hW0.js → config-CweTwOtr.js} +40 -28
- package/dist/{config-DqwH4y-D.js → config-DaD4FsAn.js} +19 -7
- package/dist/{config-D2kCn7yR.js → config-ZYN8tezd.js} +18 -6
- package/dist/{config-cli-CQzq5yWB.js → config-cli-3CaIxSKo.js} +4 -4
- package/dist/config-cli-B6Np85rk.js +15 -0
- package/dist/{config-guard-B1plY6aQ.js → config-guard-C4b2dksv.js} +2 -2
- package/dist/{config-guard-CYlpjNN7.js → config-guard-CWhoBtB3.js} +20 -20
- package/dist/{config-sync-CYX9Tzyr.js → config-sync-CCVp-tVX.js} +2 -2
- package/dist/{config-sync-CDUhjDom.js → config-sync-CMO_5lyl.js} +2 -2
- package/dist/{configure-G6h2Ppk0.js → configure-D882Bg7c.js} +39 -15
- package/dist/{configure-Bv6mqD0j.js → configure-D88dg6mE.js} +79 -77
- package/dist/{configure-DxQqSUJs.js → configure-xpjwedvJ.js} +50 -49
- package/dist/{configure-B-dfdPKX.js → configure-zXK6UZ51.js} +49 -24
- package/dist/{context-CpsnZLOp.js → context-B5X720Bs.js} +1 -1
- package/dist/{control-service-D1oxSXVg.js → control-service-3CI4vt1h.js} +2 -2
- package/dist/{control-service-CzAfyR4e.js → control-service-5YtMvm7D.js} +5 -5
- package/dist/control-ui/assets/index-C4ejMN5U.js +72 -0
- package/dist/control-ui/assets/index-C4ejMN5U.js.map +1 -0
- package/dist/control-ui/assets/index-CcPNqN3R.css +1 -0
- package/dist/control-ui/assets/index-D7Bf6Say.js +3 -0
- package/dist/control-ui/assets/index-D7Bf6Say.js.map +1 -0
- package/dist/control-ui/assets/index-yhFuaOnc.js +2 -0
- package/dist/control-ui/assets/index-yhFuaOnc.js.map +1 -0
- package/dist/control-ui/assets/observers-V7q9lNYt.js +2 -0
- package/dist/control-ui/assets/observers-V7q9lNYt.js.map +1 -0
- package/dist/control-ui/assets/rrweb-plugin-console-record-sPdhR0i8.js +138 -0
- package/dist/control-ui/assets/rrweb-plugin-console-record-sPdhR0i8.js.map +1 -0
- package/dist/control-ui/assets/rrweb-record-CMVXB7aO.js +129 -0
- package/dist/control-ui/assets/rrweb-record-CMVXB7aO.js.map +1 -0
- package/dist/control-ui/index.html +2 -2
- package/dist/{cron-cli-C4qZZo4e.js → cron-cli-Cht6Itx6.js} +18 -18
- package/dist/{cron-cli-CSivg2i9.js → cron-cli-D9XrF-Gx.js} +8 -8
- package/dist/{daemon-cli-DfxT-pQ4.js → daemon-cli-9zrnYRjh.js} +8 -8
- package/dist/{daemon-cli-KMzjJH_D.js → daemon-cli-CrdPhSxr.js} +15 -15
- package/dist/daemon-cli.js +34 -6
- package/dist/{daemon-runtime-CIE27usH.js → daemon-runtime-BrUj88ZO.js} +2 -2
- package/dist/{daemon-runtime-BfgstLVI.js → daemon-runtime-DCqwraWR.js} +1 -1
- package/dist/{deliver-8r6UbXnC.js → deliver-B-dPbUIs.js} +18 -28
- package/dist/{deliver-ahx1N11n.js → deliver-BKzX3YoN.js} +7 -7
- package/dist/{deliver-DVt8TbK9.js → deliver-C1L5nO0K.js} +3 -3
- package/dist/{deliver-D2hQZ9X0.js → deliver-d-CaN0uL.js} +59 -69
- package/dist/deps-DyT32VfN.js +23 -0
- package/dist/{diagnostics-DXeDqA_-.js → diagnostics-Cu9pZAFn.js} +1 -1
- package/dist/{dispatcher-DpSnqIL0.js → dispatcher-BQQugU-7.js} +1 -1
- package/dist/{dispatcher-DzT6jltc.js → dispatcher-DzwzLQRk.js} +2 -2
- package/dist/{dns-cli-D9ka2fZD.js → dns-cli-C8KIX4P3.js} +12 -12
- package/dist/{dns-cli-D2Orvc8E.js → dns-cli-V2bo6vSt.js} +3 -3
- package/dist/{docs-cli-CKfzGqYM.js → docs-cli-Bt-YV3xs.js} +2 -2
- package/dist/{docs-cli-DWYXJd-j.js → docs-cli-D2cVJxjP.js} +7 -7
- package/dist/{doctor-vXt5qjNJ.js → doctor-DEnSKgHu.js} +21 -21
- package/dist/{doctor-DumyG85t.js → doctor-WpKCNZeO.js} +36 -181
- package/dist/{doctor-completion-lAyxyd7X.js → doctor-completion-CPff9UlF.js} +2 -2
- package/dist/{doctor-completion-C8JSWfqN.js → doctor-completion-CypXc1Uo.js} +2 -2
- package/dist/{doctor-config-flow-DA50eWp5.js → doctor-config-flow-Bgl0Cc20.js} +6 -6
- package/dist/{doctor-config-flow-BjfGQ1Br.js → doctor-config-flow-Dxy7RIm0.js} +4 -4
- package/dist/{engine-BVchKo5_.js → engine-DpbYPop7.js} +9 -9
- package/dist/{engine-CKqNpVwE.js → engine-zmn3SOYa.js} +10 -9
- package/dist/entry.js +19 -28
- package/dist/{env-DVJCc7dM.js → env-DlTia1B4.js} +1 -1
- package/dist/{exec-cazBMA02.js → exec-BylR5qWS.js} +1 -1
- package/dist/{exec-gKbUce2p.js → exec-C6tXfeqA.js} +1 -1
- package/dist/{exec-Bfd4ztFZ.js → exec-DUzVF5_D.js} +7 -7
- package/dist/{exec-approvals-cli-BPwW6GIK.js → exec-approvals-cli-CN2WeH7y.js} +20 -20
- package/dist/{exec-approvals-cli-6HndodnP.js → exec-approvals-cli-DYZVBnqS.js} +8 -8
- package/dist/extensionAPI.js +22 -22
- package/dist/format-BCAtE7cT.js +20 -0
- package/dist/{frontmatter-BP4GSt5L.js → frontmatter-Dsa7N963.js} +2 -2
- package/dist/{gateway-cli-CHhTweWb.js → gateway-cli-B_xsx5Nv.js} +104 -101
- package/dist/{gateway-cli-B60L2z4a.js → gateway-cli-D3VBOA_i.js} +69 -66
- package/dist/{gateway-rpc-CrSglZPE.js → gateway-rpc-Cj_h2sVM.js} +3 -3
- package/dist/{gateway-rpc-BtOX_e53.js → gateway-rpc-CnXMGsxp.js} +3 -3
- package/dist/{gmail-setup-utils-D2uUKNlF.js → gmail-setup-utils-DaJoXV_3.js} +3 -3
- package/dist/{health-BttJ1Qeh.js → health-C8KCBhuo.js} +8 -8
- package/dist/{health-D8fJ6U_k.js → health-CabOEPQ0.js} +13 -13
- package/dist/{health-format-CH6JWH45.js → health-format-D-JJ5_S4.js} +2 -2
- package/dist/{heartbeat-visibility-DcGQOTXe.js → heartbeat-visibility-BjYY-mKG.js} +1 -1
- package/dist/{heartbeat-visibility-B2MDtPTL.js → heartbeat-visibility-ZfNSbFcq.js} +1 -1
- package/dist/{help-format-7YidDC5Z.js → help-format-Dt-I_Mls.js} +1 -1
- package/dist/{hooks-cli-DRUryj5H.js → hooks-cli-Cs7GUa7G.js} +34 -33
- package/dist/{hooks-cli-BMZF6RF3.js → hooks-cli-DOs9WZ3K.js} +56 -55
- package/dist/{hooks-status-VvwKn90L.js → hooks-status-DdweuSIj.js} +4 -4
- package/dist/{image-ops-BUy__GHL.js → image-ops-Ct3GueyT.js} +1 -1
- package/dist/index.js +79 -71
- package/dist/{init-B8PBeUpi.js → init-CFndGgTJ.js} +1 -1
- package/dist/{init-DxkAVKP0.js → init-DkBwXNme.js} +1 -1
- package/dist/{installs-sayrGjx1.js → installs-Bi6UipiE.js} +6 -6
- package/dist/{installs-BcnNDR54.js → installs-a4Vz_J08.js} +3 -3
- package/dist/ipv4-DfMwLQ0d.js +14 -0
- package/dist/{lib-D4dE4_XZ.js → lib-6xd5SQjU.js} +20 -20
- package/dist/{lifecycle-core-BerWWP7p.js → lifecycle-core-B8PI1NZJ.js} +3 -3
- package/dist/{links-OhvsEkVw.js → links-DcilUrqq.js} +1 -1
- package/dist/llm-slug-generator.js +25 -25
- package/dist/{loader-CLNb0v_s.js → loader-Bw2wdN4l.js} +159 -3
- package/dist/{loader-Bww_qb65.js → loader-C87TLS4J.js} +159 -3
- package/dist/{logging-DhXRGHWg.js → logging-Chc1Sj6N.js} +1 -1
- package/dist/{login-BovU8kno.js → login-BHnvW9HA.js} +6 -6
- package/dist/{login-BPtmlRRv.js → login-BTOKtSQN.js} +5 -5
- package/dist/{login-C54B66KM.js → login-CrMpAZ0n.js} +4 -4
- package/dist/{login-C4mptULi.js → login-DKkQ3Czu.js} +5 -5
- package/dist/{login-qr-bim3Nkyu.js → login-qr-BGbHImRb.js} +8 -8
- package/dist/{login-qr-pFbvowe5.js → login-qr-CsAVGp00.js} +12 -12
- package/dist/{login-qr-657mh7cI.js → login-qr-DILcBA_q.js} +6 -6
- package/dist/{login-qr-BxNKHxcf.js → login-qr-OUAGpDsU.js} +10 -10
- package/dist/{logs-cli-CQStwrGd.js → logs-cli-Bc6IOyHA.js} +8 -8
- package/dist/{logs-cli-De79vyiP.js → logs-cli-BiAJbjnq.js} +15 -15
- package/dist/{manager-B043uMPT.js → manager-BYu34CX3.js} +12 -12
- package/dist/{manager-Cvmm95Pf.js → manager-C6L_DH0O.js} +2 -2
- package/dist/{manager-BtrVJ8Ve.js → manager-D8VCuzru.js} +9 -9
- package/dist/{manager-A3pC-CW-.js → manager-b_aZwo00.js} +16 -16
- package/dist/{manifest-registry-D-DOtLzo.js → manifest-registry-qF960vMH.js} +1 -1
- package/dist/{memory-cli-COl5xoIl.js → memory-cli-B0kKl-9T.js} +7 -7
- package/dist/{memory-cli-691NgCXx.js → memory-cli-DLtBA6r5.js} +11 -11
- package/dist/{message-channel-DZYYDt1_.js → message-channel-CMsexA3K.js} +9 -7
- package/dist/{message-channel-DdOBO6Qm.js → message-channel-DIHHKJhk.js} +8 -6
- package/dist/{migrate-DkBWjPPs.js → migrate-DuohB_ur.js} +3 -3
- package/dist/{migrate-BLjwxe9X.js → migrate-bgeTT_GR.js} +3 -3
- package/dist/{model-auth-DKhjNVHc.js → model-auth-CHB3EySM.js} +10 -5
- package/dist/{model-auth-CxAB4iZ0.js → model-auth-KpsOXKDc.js} +3 -3
- package/dist/model-param-b-C1QDqzQp.js +16 -0
- package/dist/{model-selection-BPkpXepz.js → model-selection-CLcoOT3e.js} +25 -7
- package/dist/{model-selection-wCaVeFbb.js → model-selection-CY6r_3wt.js} +25 -7
- package/dist/{model-selection-DFbDH9o2.js → model-selection-DcO3qJOu.js} +24 -6
- package/dist/{model-selection-BI8CKPwQ.js → model-selection-DjsJGv1R.js} +67 -8
- package/dist/models-BM2_NkMu.js +2707 -0
- package/dist/models-cli-BjY8wA-C.js +272 -0
- package/dist/models-cli-BpjeKsUz.js +2946 -0
- package/dist/{node-cli-Ajhng-5p.js → node-cli-BmuVEJ1C.js} +12 -12
- package/dist/{node-cli-t3N6HE9R.js → node-cli-DU_oREff.js} +27 -27
- package/dist/{node-service-4B-0AjmA.js → node-service-qZXF7T7A.js} +1 -1
- package/dist/{note-De2zPKl3.js → note-iMYVGjpA.js} +2 -2
- package/dist/noxsoft-bootstrap-C4dSx7K_.js +77 -0
- package/dist/noxsoft-bootstrap-CrlkSFzd.js +77 -0
- package/dist/{npm-registry-spec-CFp4OEe4.js → npm-registry-spec-Br4B4I_3.js} +2 -2
- package/dist/{npm-registry-spec-DVDcgWxm.js → npm-registry-spec-jf7Mowdn.js} +1 -1
- package/dist/{onboard-xSPFmM29.js → onboard-DM9gULJN.js} +24 -19
- package/dist/{onboard-i4CJtSb9.js → onboard-_-D81kAy.js} +19 -15
- package/dist/{onboard-channels-RsbA6EaD.js → onboard-channels-CtT-RN60.js} +8 -8
- package/dist/{onboard-channels-D6Gt3CsX.js → onboard-channels-UkphAdCy.js} +4 -4
- package/dist/{onboard-helpers-IeOtcIME.js → onboard-helpers-CFudIoX4.js} +3 -3
- package/dist/{onboard-helpers-DPqXrhma.js → onboard-helpers-CJ3HzoUO.js} +7 -7
- package/dist/{onboarding-CZBVMwFn.js → onboarding-BB9PteK8.js} +20 -17
- package/dist/{onboarding-Cao0a_Z1.js → onboarding-Djmm0PEM.js} +27 -23
- package/dist/{orchestrator-COMX8CF2.js → orchestrator-C1nWKIJS.js} +7 -3
- package/dist/{orchestrator-BLXpTTgr.js → orchestrator-C2ypFiPL.js} +6 -3
- package/dist/{outbound-DWfSyfZC.js → outbound-Bmft-5um.js} +4 -4
- package/dist/{outbound-Rs0fFC2g.js → outbound-C577aWZp.js} +1 -1
- package/dist/{outbound-DLCmFGfJ.js → outbound-DW2eod1S.js} +4 -4
- package/dist/{outbound-uxBpmALx.js → outbound-fPqdCDR4.js} +4 -4
- package/dist/outbound-send-deps-DVfWC4E8.js +14 -0
- package/dist/outbound-send-deps-T_FgdfgW.js +36 -0
- package/dist/{parse-timeout-DkOL1T_l.js → parse-timeout-C4WLf3Qy.js} +3 -3
- package/dist/{parse-timeout-DlU4ymhF.js → parse-timeout-D4UO8pY_.js} +1 -1
- package/dist/{path-env-CjpH-KWH.js → path-env-DLQPf9qj.js} +2 -2
- package/dist/{paths-D2eokayo.js → paths-B-AkG5FD.js} +3 -3
- package/dist/{paths-DQMKfv60.js → paths-CAQJvbeZ.js} +2 -2
- package/dist/{paths-Cwszsz1I.js → paths-Q6h5HODL.js} +2 -2
- package/dist/{pi-auth-json-BLdaEAx2.js → pi-auth-json-B_lKNFK6.js} +5 -5
- package/dist/{pi-auth-json-BH7uvkKr.js → pi-auth-json-BmdBnmlZ.js} +8 -9
- package/dist/{pi-auth-json-DjxzPUt3.js → pi-auth-json-DkYqdjrV.js} +2 -2
- package/dist/{pi-auth-json-smxh_Xud.js → pi-auth-json-WTvcP2gz.js} +9 -8
- package/dist/{pi-embedded-D4eEfxIU.js → pi-embedded-BMbtgOzv.js} +825 -319
- package/dist/{pi-embedded-DifnZvKk.js → pi-embedded-DfbM3fAT.js} +888 -382
- package/dist/{pi-embedded-helpers-B6wVA0hU.js → pi-embedded-helpers-BZ9GspxK.js} +1 -1
- package/dist/{pi-tools.policy-CDgjN_3f.js → pi-tools.policy-D2FusuQa.js} +3 -3
- package/dist/{pi-tools.policy-ox141hP6.js → pi-tools.policy-WdTAfqbV.js} +6 -6
- package/dist/{plugin-auto-enable-Mj7AnofW.js → plugin-auto-enable-CtYcdTju.js} +5 -5
- package/dist/{plugin-auto-enable-OqDAK-ap.js → plugin-auto-enable-DhuD30Je.js} +2 -2
- package/dist/{plugin-registry-CpXm8ADp.js → plugin-registry-DePMxn4z.js} +4 -4
- package/dist/{plugin-registry-CkZnT8Fb.js → plugin-registry-QTkplP4s.js} +2 -2
- package/dist/plugin-sdk/agents/cli-backends.d.ts +4 -1
- package/dist/plugin-sdk/agents/cli-credentials.d.ts +0 -10
- package/dist/plugin-sdk/agents/cli-runner.d.ts +2 -0
- package/dist/plugin-sdk/agents/defaults.d.ts +2 -2
- package/dist/plugin-sdk/agents/model-auto.d.ts +43 -0
- package/dist/plugin-sdk/agents/model-fallback.d.ts +5 -0
- package/dist/plugin-sdk/agents/model-preference.d.ts +25 -0
- package/dist/plugin-sdk/agents/noxsoft-runner.d.ts +94 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +6 -3
- package/dist/plugin-sdk/agents/pi-embedded.d.ts +6 -50
- package/dist/plugin-sdk/agents/runner-capabilities.d.ts +2 -0
- package/dist/plugin-sdk/agents/sandbox/constants.d.ts +1 -1
- package/dist/plugin-sdk/auth/noxsoft-auth.d.ts +55 -0
- package/dist/plugin-sdk/channels/registry.d.ts +2 -2
- package/dist/plugin-sdk/cli/deps.d.ts +2 -1
- package/dist/plugin-sdk/cli/outbound-send-deps.d.ts +10 -0
- package/dist/plugin-sdk/commands/agent/types.d.ts +2 -0
- package/dist/plugin-sdk/config/types.agent-defaults.d.ts +14 -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.d.ts +13 -0
- package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +1 -0
- package/dist/plugin-sdk/identity/loader.d.ts +1 -0
- package/dist/plugin-sdk/identity/trust-graph.d.ts +32 -0
- package/dist/plugin-sdk/index.js +57 -47
- package/dist/plugin-sdk/utils/message-channel.d.ts +2 -1
- package/dist/{plugins-DnJgmFJR.js → plugins-DYcg0qBW.js} +1 -1
- package/dist/{plugins-cli-CrrkMAYM.js → plugins-cli-Bc9oU1ld.js} +58 -57
- package/dist/{plugins-cli-D4VxQKaJ.js → plugins-cli-Dv0KQTWo.js} +36 -35
- package/dist/{polls-DuwPgAV7.js → polls-DFISjV7H.js} +5 -5
- package/dist/{ports-B1b1r9Dz.js → ports-DaVrZDUq.js} +2 -2
- package/dist/{ports-BX00e96t.js → ports-q535r1PZ.js} +2 -2
- package/dist/{program-CTDFmZNx.js → program-CuwbF8YO.js} +48 -40
- package/dist/{program-context-Hl6bnPfB.js → program-context-CxPfy-Wr.js} +51 -35
- package/dist/{progress-B-VBLfHr.js → progress-CVLvQV_t.js} +1 -1
- package/dist/{prompt-style-DU9Vjqe5.js → prompt-style-BI53UVgE.js} +1 -1
- package/dist/{prompts-D6b3zLVO.js → prompts-BmgT_kkv.js} +33 -2
- package/dist/prompts-Bq4QGFQM.js +158 -0
- package/dist/{pw-ai-BV57RRmp.js → pw-ai-CB-zeR7h.js} +5 -5
- package/dist/{pw-ai-CY-VcqJp.js → pw-ai-C_1-7IgH.js} +4 -4
- package/dist/{pw-ai-CTHtrCEC.js → pw-ai-DxNrJcCA.js} +3 -3
- package/dist/{qmd-manager-DJeQYS-r.js → qmd-manager-C_XBZ_bT.js} +5 -5
- package/dist/{qmd-manager-CwbYv6nJ.js → qmd-manager-CpNYgSrx.js} +7 -7
- package/dist/{qmd-manager-Cbm03z8H.js → qmd-manager-Q0OSDQ-e.js} +5 -5
- package/dist/{register.agent-CMoYTJqj.js → register.agent-DFQmkIEH.js} +53 -50
- package/dist/{register.agent-BKINbWbs.js → register.agent-DUjwGw9d.js} +77 -73
- package/dist/{register.anima-BHrZ90Sv.js → register.anima-CRFHJu2J.js} +21 -21
- package/dist/{register.anima-CnEy5VFQ.js → register.anima-CtKNrpE8.js} +21 -21
- package/dist/{register.configure-Cv5NkGH2.js → register.configure-CSSN07XN.js} +50 -49
- package/dist/register.configure-CnEKV57N.js +107 -0
- package/dist/register.maintenance-CU1A-90-.js +102 -0
- package/dist/{register.maintenance-DtAw8E_a.js → register.maintenance-fhcCB7ih.js} +48 -47
- package/dist/register.message-C1a0y2ZR.js +661 -0
- package/dist/register.message-fM0jSKB8.js +659 -0
- package/dist/register.onboard-B7Gavmvt.js +128 -0
- package/dist/{register.onboard-U3lIfaw_.js → register.onboard-BhPlqjFi.js} +50 -49
- package/dist/{register.setup-CLkGhR-e.js → register.setup-0jPnMgnz.js} +96 -92
- package/dist/{register.setup-Dyp5L_GQ.js → register.setup-CADdQUEN.js} +72 -69
- package/dist/{register.status-health-sessions-Dx-qZMol.js → register.status-health-sessions-Cu5fDT-z.js} +68 -67
- package/dist/{register.status-health-sessions-Cc2Y5gSj.js → register.status-health-sessions-DdQsABr_.js} +40 -39
- package/dist/{register.subclis-L55mGheS.js → register.subclis-CZ91ufCy.js} +28 -21
- package/dist/{reply-BgPvB-gR.js → reply-DtHlnzOx.js} +6631 -6172
- package/dist/{reply-prefix-37W_P4kH.js → reply-prefix-C8dIgJur.js} +1 -1
- package/dist/{reply-prefix-DBRqtDEq.js → reply-prefix-DmWGtcH-.js} +1 -1
- package/dist/{routes-ZlpnlJFF.js → routes-CWCAc8uJ.js} +2 -2
- package/dist/{routes-DeDgHj5Y.js → routes-FT0Us8Md.js} +6 -6
- package/dist/{run-DEHnKm2x.js → run-Dfz_7j7t.js} +1256 -166
- package/dist/{run-BFPM6M2S.js → run-DqBQ-bGn.js} +1230 -140
- package/dist/{run-main-Cxmjk1SF.js → run-main-DGDW0fhx.js} +51 -50
- package/dist/{runtime-guard-cBL2D5J8.js → runtime-guard-D14Z_QY6.js} +1 -1
- package/dist/{sandbox-DDOFuJU9.js → sandbox-D-N7M7lp.js} +2 -2
- package/dist/{sandbox-cli-GhcxR1Va.js → sandbox-cli-CQKz2I1X.js} +9 -9
- package/dist/{sandbox-cli-CGJvhJ4L.js → sandbox-cli-DHNFlTo-.js} +23 -23
- package/dist/{sandbox-B8Nza4lP.js → sandbox-pBHlfFdB.js} +6 -6
- package/dist/{security-cli-B7VIDDSL.js → security-cli-Bdi7MuP6.js} +14 -22
- package/dist/{security-cli-gsyz4Wrw.js → security-cli-C3aI09uy.js} +27 -35
- package/dist/{semantic-C3Z-zhNi.js → semantic-9rgWUrz3.js} +1 -1
- package/dist/{semantic-CG6X3rBo.js → semantic-C1UN3bb9.js} +1 -1
- package/dist/{semantic-DCd6zBnV.js → semantic-CQApJNO_.js} +1 -1
- package/dist/{server-context-Dkz4Ce8z.js → server-context-Clykq0XU.js} +1 -1
- package/dist/{server-context-BlJi7pjP.js → server-context-Yx4pgBqJ.js} +7 -7
- package/dist/{server-node-events-DBOg36in.js → server-node-events-BR1aXVlu.js} +55 -53
- package/dist/{server-node-events-CmZXzWcd.js → server-node-events-Ca797E1d.js} +34 -31
- package/dist/{service-QlHhVsQf.js → service-Dd1DfPia.js} +1 -1
- package/dist/{service-audit-D4xG05j8.js → service-audit-Bwpoc2LD.js} +1 -1
- package/dist/{service-audit-BaoBb09i.js → service-audit-KzOtcw_V.js} +3 -3
- package/dist/{session-BJ9XCJBg.js → session-5YO_H-Ra.js} +1 -1
- package/dist/{session-3MLbl1-K.js → session-BiA6jrcs.js} +1 -1
- package/dist/session-C7IGnhd1.js +190 -0
- package/dist/{session-KNXzWBht.js → session-CSmfU0D3.js} +1 -1
- package/dist/{session-CqKJvPTq.js → session-DLevr8Vd.js} +5 -5
- package/dist/session-DfsMJNG3.js +190 -0
- package/dist/{session-TAOVpONo.js → session-FmXsucR7.js} +2 -2
- package/dist/{session-cost-usage-BamtB1rn.js → session-cost-usage-BWqR-ik6.js} +1 -1
- package/dist/{sessions-C2th3rm6.js → sessions-BOzeFzuL.js} +12 -22
- package/dist/{sessions-1XK2mH6L.js → sessions-C_3wTmSA.js} +9 -19
- package/dist/{sessions-BrQHxX_o.js → sessions-Dj7_4mkr.js} +4 -4
- package/dist/{settings-cli-CCtkuc1r.js → settings-cli-DxNeu6kx.js} +79 -77
- package/dist/{settings-cli-Ccizggz2.js → settings-cli-Dytfop1H.js} +50 -49
- package/dist/{setup-token-Dqtgnjxw.js → setup-token-B802CZwe.js} +13 -18
- package/dist/{setup-token-Bcer2kX8.js → setup-token-DYh2QzJ-.js} +29 -34
- package/dist/{shared-Hnu5dChj.js → shared-C-rqLtIT.js} +2 -2
- package/dist/{shell-env-KRrv3dPW.js → shell-env-CMI9f7-7.js} +1 -1
- package/dist/{shell-env-B4ae4lFh.js → shell-env-HkVWMh--.js} +1 -1
- package/dist/{shell-env-PnmcBTp4.js → shell-env-iPnSIi-t.js} +1 -1
- package/dist/{skills-CQoUYlGu.js → skills-4v6-kw0C.js} +3 -3
- package/dist/{skills-cli-DQuLxQUM.js → skills-cli-BoasNTpZ.js} +15 -15
- package/dist/{skills-cli-CNNy0FxN.js → skills-cli-TeAq3fRG.js} +3 -3
- package/dist/{skills-install-2DbC1Yo2.js → skills-install-D6_qpRjW.js} +7 -7
- package/dist/{skills-install-CE6djAWL.js → skills-install-Qw2oU8L8.js} +2 -2
- package/dist/{skills-status-ybjSmiHu.js → skills-status-CvH7AUoY.js} +4 -4
- package/dist/{soul-Bt57OdSx.js → soul-BiIdv3Wp.js} +125 -5
- package/dist/{soul-DFeEGG5h.js → soul-Bt8UNmTq.js} +126 -5
- package/dist/{soul-CwWWw7cs.js → soul-D9k5zulC.js} +2 -2
- package/dist/{soul-Bru-rRjk.js → soul-DQSYs-4l.js} +1 -1
- package/dist/{sqlite-BTcAhNls.js → sqlite-BMMt7osH.js} +2 -2
- package/dist/{sqlite-ClLAW1iQ.js → sqlite-CZ1vD4VS.js} +4 -4
- package/dist/{sqlite-CLZ1eR5Q.js → sqlite-CpAJt-JS.js} +1 -1
- package/dist/{start-DfC7PlAH.js → start-BqnPia0t.js} +66 -63
- package/dist/start-C3fuLzX0.js +157 -0
- package/dist/{status-BVAoIQ0V.js → status-CHGNPonc.js} +26 -44
- package/dist/{status-BU6h4wUP.js → status-CxF6k_jr.js} +2 -2
- package/dist/{status-C9B6cEM0.js → status-DfZJJqNs.js} +15 -15
- package/dist/{status-BaEcHPtc.js → status-tLgozFYL.js} +4 -4
- package/dist/{status.update-CbIRaeaV.js → status.update-B6Tdpk07.js} +2 -2
- package/dist/{status.update-CPACVnCc.js → status.update-E9dSFk_b.js} +1 -1
- package/dist/{subagent-registry-MZIxVf8W.js → subagent-registry-CPtElVX0.js} +807 -348
- package/dist/{subsystem-BMsbqSb4.js → subsystem-BAADN1B8.js} +18 -27
- package/dist/{subsystem-CucjNlOk.js → subsystem-D-Xta-sj.js} +17 -26
- package/dist/{subsystem-DA3Cno1i.js → subsystem-D1AJZPgG.js} +38 -47
- package/dist/{system-cli-BKicxULp.js → system-cli-CP7JrhR0.js} +15 -15
- package/dist/{system-cli-Unb-WFAR.js → system-cli-DoLzi2Sn.js} +8 -8
- package/dist/{systemd-5KGZ3NHE.js → systemd-Bx76sJ3M.js} +2 -2
- package/dist/{systemd-linger-B-uyzDap.js → systemd-linger-BVwGXVS0.js} +2 -2
- package/dist/{systemd-linger-CS_pA1-a.js → systemd-linger-CxGmIy_5.js} +1 -1
- package/dist/{table-CdHBo5d1.js → table-Blmz7glr.js} +2 -2
- package/dist/{tokens-DGhK0fpG.js → tokens-SP2Q7i59.js} +1 -1
- package/dist/{tool-images-DK97edts.js → tool-images-2qproko3.js} +2 -2
- package/dist/{tool-images-Dq55i0mz.js → tool-images-C6cKHTbj.js} +2 -2
- package/dist/{tool-images-J0rGmoDV.js → tool-images-CgDT0Xzv.js} +2 -2
- package/dist/{tui-Bm8FEW0b.js → tui-C2eLfbhA.js} +5 -5
- package/dist/{tui-cli-BGjsxGle.js → tui-cli-BgcbCtgc.js} +12 -12
- package/dist/{tui-cli-TwCYv-a7.js → tui-cli-cLSYBQu9.js} +27 -27
- package/dist/{tui-DtGKiHUr.js → tui-r4qpJhNk.js} +10 -10
- package/dist/{update-Dfi92PZJ.js → update-CqKpX3cX.js} +3 -3
- package/dist/{update-Dle5MRUz.js → update-DA91za97.js} +1 -1
- package/dist/{update-cli-QMVW2eiR.js → update-cli-BuCw75tM.js} +87 -85
- package/dist/{update-cli-D1e-DsWy.js → update-cli-C-er5av6.js} +55 -54
- package/dist/{update-runner-DPmSGXS3.js → update-runner-czCqHZCu.js} +5 -5
- package/dist/{update-runner-iLJQF6VA.js → update-runner-kE8AMQt4.js} +1 -1
- package/dist/{utils-B60lF9Wq.js → utils-CLYlhJuc.js} +1 -1
- package/dist/{web-DJRRkHG8.js → web-BHGK5GtV.js} +24 -24
- package/dist/web-CyYunanU.js +65 -0
- package/dist/{web-DDAkSrtZ.js → web-DvTXV-fo.js} +35 -34
- package/dist/{web-DBQRQY6n.js → web-so3pGceM.js} +27 -27
- package/dist/{webhooks-cli-Cg0F2mU6.js → webhooks-cli-k3QMf7Rs.js} +4 -4
- package/dist/{webhooks-cli-BsWx7MgH.js → webhooks-cli-vlEfXEKm.js} +12 -12
- package/dist/{whatsapp-actions-gpz6-vPI.js → whatsapp-actions-6fPRKwPV.js} +11 -11
- package/dist/{whatsapp-actions-DJpQVKnT.js → whatsapp-actions-BJn-z76S.js} +17 -17
- package/dist/{whatsapp-actions-tWRWRZ4X.js → whatsapp-actions-C0tlEdLy.js} +5 -5
- package/dist/{whatsapp-actions-CMEP8v3k.js → whatsapp-actions-Hr-W8vjY.js} +13 -13
- package/dist/{widearea-dns-BDtWuGCY.js → widearea-dns-CHAT20aR.js} +1 -1
- package/dist/{workspace-BQkffCaR.js → workspace-BFIZCnGo.js} +5 -5
- package/dist/{ws-log-Bc4grA6W.js → ws-log-CUobU2tD.js} +1 -1
- package/package.json +1 -1
- package/templates/profiles/nox.profile.json5 +5 -5
- package/dist/cli--Gal7v4I.js +0 -101
- package/dist/config-cli-cyvL43DG.js +0 -15
- package/dist/control-ui/assets/index-B7CJLRZD.css +0 -1
- package/dist/control-ui/assets/index-DLPYIcs0.js +0 -58
- package/dist/control-ui/assets/index-DLPYIcs0.js.map +0 -1
- package/dist/deps-CeyVMZf1.js +0 -13
- package/dist/models-ByeH7ZKb.js +0 -1350
- package/dist/register.configure-3GfqcGLK.js +0 -105
- package/dist/register.maintenance-YZDsMymb.js +0 -100
- package/dist/register.onboard-Dswys-iV.js +0 -126
- package/dist/start-BPye9w5U.js +0 -154
- package/dist/web-DE-hmqXy.js +0 -64
- /package/dist/{BasicParser-BiEpjka-.js → BasicParser-D4BHCxVb.js} +0 -0
- /package/dist/{agents.config-DibGEnBs.js → agents.config-Br4ULmK0.js} +0 -0
- /package/dist/{archive-BIKRyvqD.js → archive-CNqghdwQ.js} +0 -0
- /package/dist/{archive-5e-Ytlq-.js → archive-D-dHRz-v.js} +0 -0
- /package/dist/{argv-B6vsXQtF.js → argv-nNQ109_K.js} +0 -0
- /package/dist/{auth-store-Vfd6oc1G.js → auth-store-BEfSfCbW.js} +0 -0
- /package/dist/{auto-update-BUbllW1X.js → auto-update-Cvd8YJrT.js} +0 -0
- /package/dist/{auto-update-DdH8fo63.js → auto-update-DO4nHkfM.js} +0 -0
- /package/dist/{brew-Bkf_MwX9.js → brew-DHWnVWm3.js} +0 -0
- /package/dist/{budget-CV0a771W.js → budget-DvjICb0t.js} +0 -0
- /package/dist/{budget-GiXjG9eW.js → budget-e0R5xsU3.js} +0 -0
- /package/dist/{command-options-DfPEZwUK.js → command-options-DtJ8-EC7.js} +0 -0
- /package/dist/{command-options-mgpP-XId.js → command-options-eC-m_qJx.js} +0 -0
- /package/dist/{delivery-queue-DGnDKL02.js → delivery-queue-BKQk1j0k.js} +0 -0
- /package/dist/{delivery-queue-DZ_ibFDu.js → delivery-queue-CExaJXRz.js} +0 -0
- /package/dist/{display-BwSYYxVE.js → display-4p3-O9mP.js} +0 -0
- /package/dist/{display-Dck2kudh.js → display-Bo8pBhMp.js} +0 -0
- /package/dist/{exec-approvals-BJikgQkX.js → exec-approvals-DK5-KCUz.js} +0 -0
- /package/dist/{format-wiLVr0D3.js → format-9DMvWYUJ.js} +0 -0
- /package/dist/{format-duration-C5oKCGwB.js → format-duration-CnGkTPRF.js} +0 -0
- /package/dist/{gmail-setup-utils-CR33Gqfc.js → gmail-setup-utils-BIXtKTpT.js} +0 -0
- /package/dist/{help-format-DJx5Rwy2.js → help-format-ZKxl6UCb.js} +0 -0
- /package/dist/{helpers-8O7IVGO-.js → helpers-CWQnEONe.js} +0 -0
- /package/dist/{hooks-status-DiqubDlK.js → hooks-status-DqfJDvYl.js} +0 -0
- /package/dist/{ipv4-BYbwrpG-.js → ipv4-CExV55ho.js} +0 -0
- /package/dist/{is-main-BnikY3ud.js → is-main-H-hpHkdq.js} +0 -0
- /package/dist/{lib-D1DXSMt_.js → lib-D0_kW-B6.js} +0 -0
- /package/dist/{links-3c7gzW-G.js → links-BjjDMNIq.js} +0 -0
- /package/dist/{logging-Bpf6Cepz.js → logging-DWwOqnTW.js} +0 -0
- /package/dist/{logging-DcXIbpwk.js → logging-_rCcBkls.js} +0 -0
- /package/dist/{model-param-b-BcBBSgiD.js → model-param-b-2KmFir_0.js} +0 -0
- /package/dist/{node-service-BDlDNv3t.js → node-service-cOoW5hLa.js} +0 -0
- /package/dist/{note-BaOKDvcy.js → note-CeLGcHqv.js} +0 -0
- /package/dist/{noxsoft-auth-Bmict45b.js → noxsoft-auth-CE75mBXE.js} +0 -0
- /package/dist/{noxsoft-auth-DpwLJIW0.js → noxsoft-auth-CgCk5707.js} +0 -0
- /package/dist/{pi-model-discovery-ClWISQ3j.js → pi-model-discovery-Bu4Zr7nI.js} +0 -0
- /package/dist/{ports-aNJUI3Mi.js → ports-BGLuwt2Z.js} +0 -0
- /package/dist/{progress-Dj2aBWOI.js → progress-glCgu57m.js} +0 -0
- /package/dist/{qmd-manager-DrDX4o7e.js → qmd-manager-CO795NK4.js} +0 -0
- /package/dist/{queue-B77yV52t.js → queue-DDq0uzy5.js} +0 -0
- /package/dist/{queue-wFYwitx0.js → queue-DtQ5sbyD.js} +0 -0
- /package/dist/{registry-gaRST__4.js → registry-BvymIcVf.js} +0 -0
- /package/dist/{registry-Cv8RtADU.js → registry-DwaHkd_j.js} +0 -0
- /package/dist/{requirements-CEowKaVY.js → requirements-Ct4XnMiK.js} +0 -0
- /package/dist/{skill-scanner-DGoUYV22.js → skill-scanner-5_Y3u6SU.js} +0 -0
- /package/dist/{skill-scanner-FO7SyxAD.js → skill-scanner-Dld2ijVw.js} +0 -0
- /package/dist/{templates-D-h5PNIK.js → templates-4_And8I_.js} +0 -0
- /package/dist/{templates-ndPXOyGA.js → templates-5Z-UIDze.js} +0 -0
- /package/dist/{types-DSS9sywz.js → types-BQk_oAin.js} +0 -0
- /package/dist/{usage-format-BtlQ-77V.js → usage-format-BSa7cHyK.js} +0 -0
- /package/dist/{ws-log-BA9w1cJs.js → ws-log-CG6cvCZW.js} +0 -0
|
@@ -2,7 +2,7 @@ import { n as __exportAll } from "./chunk-BXK9XSlF.js";
|
|
|
2
2
|
import { Q as resolveOAuthPath, o as createSubsystemLogger } from "./entry.js";
|
|
3
3
|
import { t as formatCliCommand } from "./command-format-kLw3YIIu.js";
|
|
4
4
|
import { y as resolveUserPath } from "./utils-D1VGbO3C.js";
|
|
5
|
-
import { c as normalizeProviderId } from "./model-selection-
|
|
5
|
+
import { c as normalizeProviderId } from "./model-selection-DcO3qJOu.js";
|
|
6
6
|
import { t as withFileLock } from "./file-lock-CxXn285m.js";
|
|
7
7
|
import { t as resolveAnimaAgentDir } from "./agent-paths-niQrLbGc.js";
|
|
8
8
|
import { execFileSync, execSync } from "node:child_process";
|
|
@@ -91,7 +91,6 @@ const CLAUDE_CLI_CREDENTIALS_RELATIVE_PATH = ".claude/.credentials.json";
|
|
|
91
91
|
const CODEX_CLI_AUTH_FILENAME = "auth.json";
|
|
92
92
|
const QWEN_CLI_CREDENTIALS_RELATIVE_PATH = ".qwen/oauth_creds.json";
|
|
93
93
|
const MINIMAX_CLI_CREDENTIALS_RELATIVE_PATH = ".minimax/oauth_creds.json";
|
|
94
|
-
const OPENCLAW_AUTH_PROFILES_PATH = ".openclaw/agents/main/agent/auth-profiles.json";
|
|
95
94
|
const CLAUDE_CLI_KEYCHAIN_SERVICE = "Claude Code-credentials";
|
|
96
95
|
const WINDOWS_CREDENTIAL_TARGET = "Claude Code-credentials";
|
|
97
96
|
let codexCliCache = null;
|
|
@@ -210,43 +209,6 @@ function readMiniMaxCliCredentials(options) {
|
|
|
210
209
|
return readPortalCliOauthCredentials(resolveMiniMaxCliCredentialsPath(options?.homeDir), "minimax-portal");
|
|
211
210
|
}
|
|
212
211
|
/**
|
|
213
|
-
* Read Claude Code credentials from the OpenClaw auth-profiles.json store.
|
|
214
|
-
*
|
|
215
|
-
* OpenClaw (which shares the same auth infrastructure) stores the Claude Code
|
|
216
|
-
* OAuth token in ~/.openclaw/agents/main/agent/auth-profiles.json.
|
|
217
|
-
* This is the most reliable source on Windows where the Keychain is unavailable.
|
|
218
|
-
*/
|
|
219
|
-
function readOpenClawCredentials(options) {
|
|
220
|
-
const baseDir = options?.homeDir ?? resolveUserPath("~");
|
|
221
|
-
const raw = loadJsonFile(path.join(baseDir, OPENCLAW_AUTH_PROFILES_PATH));
|
|
222
|
-
if (!raw || typeof raw !== "object") return null;
|
|
223
|
-
const profiles = raw.profiles;
|
|
224
|
-
if (!profiles) return null;
|
|
225
|
-
const anthropicProfile = profiles["anthropic:default"];
|
|
226
|
-
if (!anthropicProfile || anthropicProfile.provider !== "anthropic") return null;
|
|
227
|
-
if (anthropicProfile.type === "token" && typeof anthropicProfile.token === "string") {
|
|
228
|
-
const token = anthropicProfile.token;
|
|
229
|
-
log.info("read anthropic credentials from openclaw auth-profiles", { type: "token" });
|
|
230
|
-
return {
|
|
231
|
-
type: "token",
|
|
232
|
-
provider: "anthropic",
|
|
233
|
-
token,
|
|
234
|
-
expires: Date.now() + 365 * 24 * 60 * 60 * 1e3
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
if (anthropicProfile.type === "oauth" && typeof anthropicProfile.access === "string" && typeof anthropicProfile.refresh === "string" && typeof anthropicProfile.expires === "number") {
|
|
238
|
-
log.info("read anthropic oauth credentials from openclaw auth-profiles");
|
|
239
|
-
return {
|
|
240
|
-
type: "oauth",
|
|
241
|
-
provider: "anthropic",
|
|
242
|
-
access: anthropicProfile.access,
|
|
243
|
-
refresh: anthropicProfile.refresh,
|
|
244
|
-
expires: anthropicProfile.expires
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
return null;
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
212
|
* Read Claude Code credentials from Windows Credential Manager.
|
|
251
213
|
*
|
|
252
214
|
* On Windows, the Claude CLI stores its OAuth token via the Windows
|
|
@@ -317,8 +279,6 @@ function readClaudeCliCredentials(options) {
|
|
|
317
279
|
return parsed;
|
|
318
280
|
}
|
|
319
281
|
}
|
|
320
|
-
const openClawCreds = readOpenClawCredentials({ homeDir: options?.homeDir });
|
|
321
|
-
if (openClawCreds) return openClawCreds;
|
|
322
282
|
return null;
|
|
323
283
|
}
|
|
324
284
|
function readCodexCliCredentials(options) {
|
|
@@ -687,6 +647,26 @@ function saveAuthProfileStore(store, agentDir) {
|
|
|
687
647
|
|
|
688
648
|
//#endregion
|
|
689
649
|
//#region src/agents/auth-profiles/profiles.ts
|
|
650
|
+
async function setAuthProfileOrder(params) {
|
|
651
|
+
const providerKey = normalizeProviderId(params.provider);
|
|
652
|
+
const sanitized = params.order && Array.isArray(params.order) ? params.order.map((entry) => String(entry).trim()).filter(Boolean) : [];
|
|
653
|
+
const deduped = [];
|
|
654
|
+
for (const entry of sanitized) if (!deduped.includes(entry)) deduped.push(entry);
|
|
655
|
+
return await updateAuthProfileStoreWithLock({
|
|
656
|
+
agentDir: params.agentDir,
|
|
657
|
+
updater: (store) => {
|
|
658
|
+
store.order = store.order ?? {};
|
|
659
|
+
if (deduped.length === 0) {
|
|
660
|
+
if (!store.order[providerKey]) return false;
|
|
661
|
+
delete store.order[providerKey];
|
|
662
|
+
if (Object.keys(store.order).length === 0) store.order = void 0;
|
|
663
|
+
return true;
|
|
664
|
+
}
|
|
665
|
+
store.order[providerKey] = deduped;
|
|
666
|
+
return true;
|
|
667
|
+
}
|
|
668
|
+
});
|
|
669
|
+
}
|
|
690
670
|
function upsertAuthProfile(params) {
|
|
691
671
|
const credential = params.credential.type === "api_key" ? {
|
|
692
672
|
...params.credential,
|
|
@@ -703,6 +683,32 @@ function listProfilesForProvider(store, provider) {
|
|
|
703
683
|
const providerKey = normalizeProviderId(provider);
|
|
704
684
|
return Object.entries(store.profiles).filter(([, cred]) => normalizeProviderId(cred.provider) === providerKey).map(([id]) => id);
|
|
705
685
|
}
|
|
686
|
+
async function markAuthProfileGood(params) {
|
|
687
|
+
const { store, provider, profileId, agentDir } = params;
|
|
688
|
+
const updated = await updateAuthProfileStoreWithLock({
|
|
689
|
+
agentDir,
|
|
690
|
+
updater: (freshStore) => {
|
|
691
|
+
const profile = freshStore.profiles[profileId];
|
|
692
|
+
if (!profile || profile.provider !== provider) return false;
|
|
693
|
+
freshStore.lastGood = {
|
|
694
|
+
...freshStore.lastGood,
|
|
695
|
+
[provider]: profileId
|
|
696
|
+
};
|
|
697
|
+
return true;
|
|
698
|
+
}
|
|
699
|
+
});
|
|
700
|
+
if (updated) {
|
|
701
|
+
store.lastGood = updated.lastGood;
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
704
|
+
const profile = store.profiles[profileId];
|
|
705
|
+
if (!profile || profile.provider !== provider) return;
|
|
706
|
+
store.lastGood = {
|
|
707
|
+
...store.lastGood,
|
|
708
|
+
[provider]: profileId
|
|
709
|
+
};
|
|
710
|
+
saveAuthProfileStore(store, agentDir);
|
|
711
|
+
}
|
|
706
712
|
|
|
707
713
|
//#endregion
|
|
708
714
|
//#region src/agents/auth-profiles/repair.ts
|
|
@@ -1004,11 +1010,156 @@ function isProfileInCooldown(store, profileId) {
|
|
|
1004
1010
|
const unusableUntil = resolveProfileUnusableUntil$1(stats);
|
|
1005
1011
|
return unusableUntil ? Date.now() < unusableUntil : false;
|
|
1006
1012
|
}
|
|
1013
|
+
/**
|
|
1014
|
+
* Mark a profile as successfully used. Resets error count and updates lastUsed.
|
|
1015
|
+
* Uses store lock to avoid overwriting concurrent usage updates.
|
|
1016
|
+
*/
|
|
1017
|
+
async function markAuthProfileUsed(params) {
|
|
1018
|
+
const { store, profileId, agentDir } = params;
|
|
1019
|
+
const updated = await updateAuthProfileStoreWithLock({
|
|
1020
|
+
agentDir,
|
|
1021
|
+
updater: (freshStore) => {
|
|
1022
|
+
if (!freshStore.profiles[profileId]) return false;
|
|
1023
|
+
freshStore.usageStats = freshStore.usageStats ?? {};
|
|
1024
|
+
freshStore.usageStats[profileId] = {
|
|
1025
|
+
...freshStore.usageStats[profileId],
|
|
1026
|
+
lastUsed: Date.now(),
|
|
1027
|
+
errorCount: 0,
|
|
1028
|
+
cooldownUntil: void 0,
|
|
1029
|
+
disabledUntil: void 0,
|
|
1030
|
+
disabledReason: void 0,
|
|
1031
|
+
failureCounts: void 0
|
|
1032
|
+
};
|
|
1033
|
+
return true;
|
|
1034
|
+
}
|
|
1035
|
+
});
|
|
1036
|
+
if (updated) {
|
|
1037
|
+
store.usageStats = updated.usageStats;
|
|
1038
|
+
return;
|
|
1039
|
+
}
|
|
1040
|
+
if (!store.profiles[profileId]) return;
|
|
1041
|
+
store.usageStats = store.usageStats ?? {};
|
|
1042
|
+
store.usageStats[profileId] = {
|
|
1043
|
+
...store.usageStats[profileId],
|
|
1044
|
+
lastUsed: Date.now(),
|
|
1045
|
+
errorCount: 0,
|
|
1046
|
+
cooldownUntil: void 0,
|
|
1047
|
+
disabledUntil: void 0,
|
|
1048
|
+
disabledReason: void 0,
|
|
1049
|
+
failureCounts: void 0
|
|
1050
|
+
};
|
|
1051
|
+
saveAuthProfileStore(store, agentDir);
|
|
1052
|
+
}
|
|
1053
|
+
function calculateAuthProfileCooldownMs(errorCount) {
|
|
1054
|
+
const normalized = Math.max(1, errorCount);
|
|
1055
|
+
return Math.min(3600 * 1e3, 60 * 1e3 * 5 ** Math.min(normalized - 1, 3));
|
|
1056
|
+
}
|
|
1057
|
+
function resolveAuthCooldownConfig(params) {
|
|
1058
|
+
const defaults = {
|
|
1059
|
+
billingBackoffHours: 5,
|
|
1060
|
+
billingMaxHours: 24,
|
|
1061
|
+
failureWindowHours: 24
|
|
1062
|
+
};
|
|
1063
|
+
const resolveHours = (value, fallback) => typeof value === "number" && Number.isFinite(value) && value > 0 ? value : fallback;
|
|
1064
|
+
const cooldowns = params.cfg?.auth?.cooldowns;
|
|
1065
|
+
const billingBackoffHours = resolveHours((() => {
|
|
1066
|
+
const map = cooldowns?.billingBackoffHoursByProvider;
|
|
1067
|
+
if (!map) return;
|
|
1068
|
+
for (const [key, value] of Object.entries(map)) if (normalizeProviderId(key) === params.providerId) return value;
|
|
1069
|
+
})() ?? cooldowns?.billingBackoffHours, defaults.billingBackoffHours);
|
|
1070
|
+
const billingMaxHours = resolveHours(cooldowns?.billingMaxHours, defaults.billingMaxHours);
|
|
1071
|
+
const failureWindowHours = resolveHours(cooldowns?.failureWindowHours, defaults.failureWindowHours);
|
|
1072
|
+
return {
|
|
1073
|
+
billingBackoffMs: billingBackoffHours * 60 * 60 * 1e3,
|
|
1074
|
+
billingMaxMs: billingMaxHours * 60 * 60 * 1e3,
|
|
1075
|
+
failureWindowMs: failureWindowHours * 60 * 60 * 1e3
|
|
1076
|
+
};
|
|
1077
|
+
}
|
|
1078
|
+
function calculateAuthProfileBillingDisableMsWithConfig(params) {
|
|
1079
|
+
const normalized = Math.max(1, params.errorCount);
|
|
1080
|
+
const baseMs = Math.max(6e4, params.baseMs);
|
|
1081
|
+
const maxMs = Math.max(baseMs, params.maxMs);
|
|
1082
|
+
const raw = baseMs * 2 ** Math.min(normalized - 1, 10);
|
|
1083
|
+
return Math.min(maxMs, raw);
|
|
1084
|
+
}
|
|
1007
1085
|
function resolveProfileUnusableUntilForDisplay(store, profileId) {
|
|
1008
1086
|
const stats = store.usageStats?.[profileId];
|
|
1009
1087
|
if (!stats) return null;
|
|
1010
1088
|
return resolveProfileUnusableUntil$1(stats);
|
|
1011
1089
|
}
|
|
1090
|
+
function computeNextProfileUsageStats(params) {
|
|
1091
|
+
const windowMs = params.cfgResolved.failureWindowMs;
|
|
1092
|
+
const windowExpired = typeof params.existing.lastFailureAt === "number" && params.existing.lastFailureAt > 0 && params.now - params.existing.lastFailureAt > windowMs;
|
|
1093
|
+
const nextErrorCount = (windowExpired ? 0 : params.existing.errorCount ?? 0) + 1;
|
|
1094
|
+
const failureCounts = windowExpired ? {} : { ...params.existing.failureCounts };
|
|
1095
|
+
failureCounts[params.reason] = (failureCounts[params.reason] ?? 0) + 1;
|
|
1096
|
+
const updatedStats = {
|
|
1097
|
+
...params.existing,
|
|
1098
|
+
errorCount: nextErrorCount,
|
|
1099
|
+
failureCounts,
|
|
1100
|
+
lastFailureAt: params.now
|
|
1101
|
+
};
|
|
1102
|
+
if (params.reason === "billing") {
|
|
1103
|
+
const backoffMs = calculateAuthProfileBillingDisableMsWithConfig({
|
|
1104
|
+
errorCount: failureCounts.billing ?? 1,
|
|
1105
|
+
baseMs: params.cfgResolved.billingBackoffMs,
|
|
1106
|
+
maxMs: params.cfgResolved.billingMaxMs
|
|
1107
|
+
});
|
|
1108
|
+
updatedStats.disabledUntil = params.now + backoffMs;
|
|
1109
|
+
updatedStats.disabledReason = "billing";
|
|
1110
|
+
} else {
|
|
1111
|
+
const backoffMs = calculateAuthProfileCooldownMs(nextErrorCount);
|
|
1112
|
+
updatedStats.cooldownUntil = params.now + backoffMs;
|
|
1113
|
+
}
|
|
1114
|
+
return updatedStats;
|
|
1115
|
+
}
|
|
1116
|
+
/**
|
|
1117
|
+
* Mark a profile as failed for a specific reason. Billing failures are treated
|
|
1118
|
+
* as "disabled" (longer backoff) vs the regular cooldown window.
|
|
1119
|
+
*/
|
|
1120
|
+
async function markAuthProfileFailure(params) {
|
|
1121
|
+
const { store, profileId, reason, agentDir, cfg } = params;
|
|
1122
|
+
const updated = await updateAuthProfileStoreWithLock({
|
|
1123
|
+
agentDir,
|
|
1124
|
+
updater: (freshStore) => {
|
|
1125
|
+
const profile = freshStore.profiles[profileId];
|
|
1126
|
+
if (!profile) return false;
|
|
1127
|
+
freshStore.usageStats = freshStore.usageStats ?? {};
|
|
1128
|
+
const existing = freshStore.usageStats[profileId] ?? {};
|
|
1129
|
+
const now = Date.now();
|
|
1130
|
+
const cfgResolved = resolveAuthCooldownConfig({
|
|
1131
|
+
cfg,
|
|
1132
|
+
providerId: normalizeProviderId(profile.provider)
|
|
1133
|
+
});
|
|
1134
|
+
freshStore.usageStats[profileId] = computeNextProfileUsageStats({
|
|
1135
|
+
existing,
|
|
1136
|
+
now,
|
|
1137
|
+
reason,
|
|
1138
|
+
cfgResolved
|
|
1139
|
+
});
|
|
1140
|
+
return true;
|
|
1141
|
+
}
|
|
1142
|
+
});
|
|
1143
|
+
if (updated) {
|
|
1144
|
+
store.usageStats = updated.usageStats;
|
|
1145
|
+
return;
|
|
1146
|
+
}
|
|
1147
|
+
if (!store.profiles[profileId]) return;
|
|
1148
|
+
store.usageStats = store.usageStats ?? {};
|
|
1149
|
+
const existing = store.usageStats[profileId] ?? {};
|
|
1150
|
+
const now = Date.now();
|
|
1151
|
+
const cfgResolved = resolveAuthCooldownConfig({
|
|
1152
|
+
cfg,
|
|
1153
|
+
providerId: normalizeProviderId(store.profiles[profileId]?.provider ?? "")
|
|
1154
|
+
});
|
|
1155
|
+
store.usageStats[profileId] = computeNextProfileUsageStats({
|
|
1156
|
+
existing,
|
|
1157
|
+
now,
|
|
1158
|
+
reason,
|
|
1159
|
+
cfgResolved
|
|
1160
|
+
});
|
|
1161
|
+
saveAuthProfileStore(store, agentDir);
|
|
1162
|
+
}
|
|
1012
1163
|
|
|
1013
1164
|
//#endregion
|
|
1014
1165
|
//#region src/agents/auth-profiles/order.ts
|
|
@@ -1106,4 +1257,4 @@ function orderProfilesByMode(order, store) {
|
|
|
1106
1257
|
var auth_profiles_exports = /* @__PURE__ */ __exportAll({ ensureAuthProfileStore: () => ensureAuthProfileStore });
|
|
1107
1258
|
|
|
1108
1259
|
//#endregion
|
|
1109
|
-
export {
|
|
1260
|
+
export { normalizeOptionalSecretInput as C, CODEX_CLI_PROFILE_ID as D, CLAUDE_CLI_PROFILE_ID as E, saveJsonFile as S, resolveAuthProfileDisplayLabel as T, resolveAuthStorePath as _, markAuthProfileUsed as a, readCodexCliCredentialsCached as b, repairOAuthProfileIdMismatch as c, setAuthProfileOrder as d, upsertAuthProfile as f, updateAuthProfileStoreWithLock as g, saveAuthProfileStore as h, markAuthProfileFailure as i, listProfilesForProvider as l, loadAuthProfileStore as m, resolveAuthProfileOrder as n, resolveProfileUnusableUntilForDisplay as o, ensureAuthProfileStore as p, isProfileInCooldown as r, resolveApiKeyForProfile as s, auth_profiles_exports as t, markAuthProfileGood as u, resolveAuthStorePathForDisplay as v, normalizeSecretInput as w, loadJsonFile as x, readClaudeCliCredentials as y };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __exportAll } from "./chunk-BXK9XSlF.js";
|
|
2
2
|
import { m as resolveStateDir, p as resolveOAuthPath } from "./paths-zhVksOvm.js";
|
|
3
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
4
|
-
import { b as resolveUserPath } from "./utils-
|
|
3
|
+
import { t as createSubsystemLogger } from "./subsystem-BAADN1B8.js";
|
|
4
|
+
import { b as resolveUserPath } from "./utils-CLYlhJuc.js";
|
|
5
5
|
import { n as DEFAULT_AGENT_ID } from "./session-key-DAZmp8ll.js";
|
|
6
|
-
import { c as normalizeProviderId } from "./model-selection-
|
|
6
|
+
import { c as normalizeProviderId } from "./model-selection-CY6r_3wt.js";
|
|
7
7
|
import { t as formatCliCommand } from "./command-format-BCtkuvqF.js";
|
|
8
8
|
import { t as withFileLock } from "./file-lock-Z53aFHvY.js";
|
|
9
9
|
import fs from "node:fs";
|
|
@@ -92,7 +92,6 @@ const CLAUDE_CLI_CREDENTIALS_RELATIVE_PATH = ".claude/.credentials.json";
|
|
|
92
92
|
const CODEX_CLI_AUTH_FILENAME = "auth.json";
|
|
93
93
|
const QWEN_CLI_CREDENTIALS_RELATIVE_PATH = ".qwen/oauth_creds.json";
|
|
94
94
|
const MINIMAX_CLI_CREDENTIALS_RELATIVE_PATH = ".minimax/oauth_creds.json";
|
|
95
|
-
const OPENCLAW_AUTH_PROFILES_PATH = ".openclaw/agents/main/agent/auth-profiles.json";
|
|
96
95
|
const CLAUDE_CLI_KEYCHAIN_SERVICE = "Claude Code-credentials";
|
|
97
96
|
const WINDOWS_CREDENTIAL_TARGET = "Claude Code-credentials";
|
|
98
97
|
let codexCliCache = null;
|
|
@@ -211,43 +210,6 @@ function readMiniMaxCliCredentials(options) {
|
|
|
211
210
|
return readPortalCliOauthCredentials(resolveMiniMaxCliCredentialsPath(options?.homeDir), "minimax-portal");
|
|
212
211
|
}
|
|
213
212
|
/**
|
|
214
|
-
* Read Claude Code credentials from the OpenClaw auth-profiles.json store.
|
|
215
|
-
*
|
|
216
|
-
* OpenClaw (which shares the same auth infrastructure) stores the Claude Code
|
|
217
|
-
* OAuth token in ~/.openclaw/agents/main/agent/auth-profiles.json.
|
|
218
|
-
* This is the most reliable source on Windows where the Keychain is unavailable.
|
|
219
|
-
*/
|
|
220
|
-
function readOpenClawCredentials(options) {
|
|
221
|
-
const baseDir = options?.homeDir ?? resolveUserPath("~");
|
|
222
|
-
const raw = loadJsonFile(path.join(baseDir, OPENCLAW_AUTH_PROFILES_PATH));
|
|
223
|
-
if (!raw || typeof raw !== "object") return null;
|
|
224
|
-
const profiles = raw.profiles;
|
|
225
|
-
if (!profiles) return null;
|
|
226
|
-
const anthropicProfile = profiles["anthropic:default"];
|
|
227
|
-
if (!anthropicProfile || anthropicProfile.provider !== "anthropic") return null;
|
|
228
|
-
if (anthropicProfile.type === "token" && typeof anthropicProfile.token === "string") {
|
|
229
|
-
const token = anthropicProfile.token;
|
|
230
|
-
log.info("read anthropic credentials from openclaw auth-profiles", { type: "token" });
|
|
231
|
-
return {
|
|
232
|
-
type: "token",
|
|
233
|
-
provider: "anthropic",
|
|
234
|
-
token,
|
|
235
|
-
expires: Date.now() + 365 * 24 * 60 * 60 * 1e3
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
if (anthropicProfile.type === "oauth" && typeof anthropicProfile.access === "string" && typeof anthropicProfile.refresh === "string" && typeof anthropicProfile.expires === "number") {
|
|
239
|
-
log.info("read anthropic oauth credentials from openclaw auth-profiles");
|
|
240
|
-
return {
|
|
241
|
-
type: "oauth",
|
|
242
|
-
provider: "anthropic",
|
|
243
|
-
access: anthropicProfile.access,
|
|
244
|
-
refresh: anthropicProfile.refresh,
|
|
245
|
-
expires: anthropicProfile.expires
|
|
246
|
-
};
|
|
247
|
-
}
|
|
248
|
-
return null;
|
|
249
|
-
}
|
|
250
|
-
/**
|
|
251
213
|
* Read Claude Code credentials from Windows Credential Manager.
|
|
252
214
|
*
|
|
253
215
|
* On Windows, the Claude CLI stores its OAuth token via the Windows
|
|
@@ -318,8 +280,6 @@ function readClaudeCliCredentials(options) {
|
|
|
318
280
|
return parsed;
|
|
319
281
|
}
|
|
320
282
|
}
|
|
321
|
-
const openClawCreds = readOpenClawCredentials({ homeDir: options?.homeDir });
|
|
322
|
-
if (openClawCreds) return openClawCreds;
|
|
323
283
|
return null;
|
|
324
284
|
}
|
|
325
285
|
function readCodexCliCredentials(options) {
|
|
@@ -696,6 +656,26 @@ function saveAuthProfileStore(store, agentDir) {
|
|
|
696
656
|
|
|
697
657
|
//#endregion
|
|
698
658
|
//#region src/agents/auth-profiles/profiles.ts
|
|
659
|
+
async function setAuthProfileOrder(params) {
|
|
660
|
+
const providerKey = normalizeProviderId(params.provider);
|
|
661
|
+
const sanitized = params.order && Array.isArray(params.order) ? params.order.map((entry) => String(entry).trim()).filter(Boolean) : [];
|
|
662
|
+
const deduped = [];
|
|
663
|
+
for (const entry of sanitized) if (!deduped.includes(entry)) deduped.push(entry);
|
|
664
|
+
return await updateAuthProfileStoreWithLock({
|
|
665
|
+
agentDir: params.agentDir,
|
|
666
|
+
updater: (store) => {
|
|
667
|
+
store.order = store.order ?? {};
|
|
668
|
+
if (deduped.length === 0) {
|
|
669
|
+
if (!store.order[providerKey]) return false;
|
|
670
|
+
delete store.order[providerKey];
|
|
671
|
+
if (Object.keys(store.order).length === 0) store.order = void 0;
|
|
672
|
+
return true;
|
|
673
|
+
}
|
|
674
|
+
store.order[providerKey] = deduped;
|
|
675
|
+
return true;
|
|
676
|
+
}
|
|
677
|
+
});
|
|
678
|
+
}
|
|
699
679
|
function upsertAuthProfile(params) {
|
|
700
680
|
const credential = params.credential.type === "api_key" ? {
|
|
701
681
|
...params.credential,
|
|
@@ -712,6 +692,32 @@ function listProfilesForProvider(store, provider) {
|
|
|
712
692
|
const providerKey = normalizeProviderId(provider);
|
|
713
693
|
return Object.entries(store.profiles).filter(([, cred]) => normalizeProviderId(cred.provider) === providerKey).map(([id]) => id);
|
|
714
694
|
}
|
|
695
|
+
async function markAuthProfileGood(params) {
|
|
696
|
+
const { store, provider, profileId, agentDir } = params;
|
|
697
|
+
const updated = await updateAuthProfileStoreWithLock({
|
|
698
|
+
agentDir,
|
|
699
|
+
updater: (freshStore) => {
|
|
700
|
+
const profile = freshStore.profiles[profileId];
|
|
701
|
+
if (!profile || profile.provider !== provider) return false;
|
|
702
|
+
freshStore.lastGood = {
|
|
703
|
+
...freshStore.lastGood,
|
|
704
|
+
[provider]: profileId
|
|
705
|
+
};
|
|
706
|
+
return true;
|
|
707
|
+
}
|
|
708
|
+
});
|
|
709
|
+
if (updated) {
|
|
710
|
+
store.lastGood = updated.lastGood;
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
713
|
+
const profile = store.profiles[profileId];
|
|
714
|
+
if (!profile || profile.provider !== provider) return;
|
|
715
|
+
store.lastGood = {
|
|
716
|
+
...store.lastGood,
|
|
717
|
+
[provider]: profileId
|
|
718
|
+
};
|
|
719
|
+
saveAuthProfileStore(store, agentDir);
|
|
720
|
+
}
|
|
715
721
|
|
|
716
722
|
//#endregion
|
|
717
723
|
//#region src/agents/auth-profiles/repair.ts
|
|
@@ -1013,11 +1019,156 @@ function isProfileInCooldown(store, profileId) {
|
|
|
1013
1019
|
const unusableUntil = resolveProfileUnusableUntil$1(stats);
|
|
1014
1020
|
return unusableUntil ? Date.now() < unusableUntil : false;
|
|
1015
1021
|
}
|
|
1022
|
+
/**
|
|
1023
|
+
* Mark a profile as successfully used. Resets error count and updates lastUsed.
|
|
1024
|
+
* Uses store lock to avoid overwriting concurrent usage updates.
|
|
1025
|
+
*/
|
|
1026
|
+
async function markAuthProfileUsed(params) {
|
|
1027
|
+
const { store, profileId, agentDir } = params;
|
|
1028
|
+
const updated = await updateAuthProfileStoreWithLock({
|
|
1029
|
+
agentDir,
|
|
1030
|
+
updater: (freshStore) => {
|
|
1031
|
+
if (!freshStore.profiles[profileId]) return false;
|
|
1032
|
+
freshStore.usageStats = freshStore.usageStats ?? {};
|
|
1033
|
+
freshStore.usageStats[profileId] = {
|
|
1034
|
+
...freshStore.usageStats[profileId],
|
|
1035
|
+
lastUsed: Date.now(),
|
|
1036
|
+
errorCount: 0,
|
|
1037
|
+
cooldownUntil: void 0,
|
|
1038
|
+
disabledUntil: void 0,
|
|
1039
|
+
disabledReason: void 0,
|
|
1040
|
+
failureCounts: void 0
|
|
1041
|
+
};
|
|
1042
|
+
return true;
|
|
1043
|
+
}
|
|
1044
|
+
});
|
|
1045
|
+
if (updated) {
|
|
1046
|
+
store.usageStats = updated.usageStats;
|
|
1047
|
+
return;
|
|
1048
|
+
}
|
|
1049
|
+
if (!store.profiles[profileId]) return;
|
|
1050
|
+
store.usageStats = store.usageStats ?? {};
|
|
1051
|
+
store.usageStats[profileId] = {
|
|
1052
|
+
...store.usageStats[profileId],
|
|
1053
|
+
lastUsed: Date.now(),
|
|
1054
|
+
errorCount: 0,
|
|
1055
|
+
cooldownUntil: void 0,
|
|
1056
|
+
disabledUntil: void 0,
|
|
1057
|
+
disabledReason: void 0,
|
|
1058
|
+
failureCounts: void 0
|
|
1059
|
+
};
|
|
1060
|
+
saveAuthProfileStore(store, agentDir);
|
|
1061
|
+
}
|
|
1062
|
+
function calculateAuthProfileCooldownMs(errorCount) {
|
|
1063
|
+
const normalized = Math.max(1, errorCount);
|
|
1064
|
+
return Math.min(3600 * 1e3, 60 * 1e3 * 5 ** Math.min(normalized - 1, 3));
|
|
1065
|
+
}
|
|
1066
|
+
function resolveAuthCooldownConfig(params) {
|
|
1067
|
+
const defaults = {
|
|
1068
|
+
billingBackoffHours: 5,
|
|
1069
|
+
billingMaxHours: 24,
|
|
1070
|
+
failureWindowHours: 24
|
|
1071
|
+
};
|
|
1072
|
+
const resolveHours = (value, fallback) => typeof value === "number" && Number.isFinite(value) && value > 0 ? value : fallback;
|
|
1073
|
+
const cooldowns = params.cfg?.auth?.cooldowns;
|
|
1074
|
+
const billingBackoffHours = resolveHours((() => {
|
|
1075
|
+
const map = cooldowns?.billingBackoffHoursByProvider;
|
|
1076
|
+
if (!map) return;
|
|
1077
|
+
for (const [key, value] of Object.entries(map)) if (normalizeProviderId(key) === params.providerId) return value;
|
|
1078
|
+
})() ?? cooldowns?.billingBackoffHours, defaults.billingBackoffHours);
|
|
1079
|
+
const billingMaxHours = resolveHours(cooldowns?.billingMaxHours, defaults.billingMaxHours);
|
|
1080
|
+
const failureWindowHours = resolveHours(cooldowns?.failureWindowHours, defaults.failureWindowHours);
|
|
1081
|
+
return {
|
|
1082
|
+
billingBackoffMs: billingBackoffHours * 60 * 60 * 1e3,
|
|
1083
|
+
billingMaxMs: billingMaxHours * 60 * 60 * 1e3,
|
|
1084
|
+
failureWindowMs: failureWindowHours * 60 * 60 * 1e3
|
|
1085
|
+
};
|
|
1086
|
+
}
|
|
1087
|
+
function calculateAuthProfileBillingDisableMsWithConfig(params) {
|
|
1088
|
+
const normalized = Math.max(1, params.errorCount);
|
|
1089
|
+
const baseMs = Math.max(6e4, params.baseMs);
|
|
1090
|
+
const maxMs = Math.max(baseMs, params.maxMs);
|
|
1091
|
+
const raw = baseMs * 2 ** Math.min(normalized - 1, 10);
|
|
1092
|
+
return Math.min(maxMs, raw);
|
|
1093
|
+
}
|
|
1016
1094
|
function resolveProfileUnusableUntilForDisplay(store, profileId) {
|
|
1017
1095
|
const stats = store.usageStats?.[profileId];
|
|
1018
1096
|
if (!stats) return null;
|
|
1019
1097
|
return resolveProfileUnusableUntil$1(stats);
|
|
1020
1098
|
}
|
|
1099
|
+
function computeNextProfileUsageStats(params) {
|
|
1100
|
+
const windowMs = params.cfgResolved.failureWindowMs;
|
|
1101
|
+
const windowExpired = typeof params.existing.lastFailureAt === "number" && params.existing.lastFailureAt > 0 && params.now - params.existing.lastFailureAt > windowMs;
|
|
1102
|
+
const nextErrorCount = (windowExpired ? 0 : params.existing.errorCount ?? 0) + 1;
|
|
1103
|
+
const failureCounts = windowExpired ? {} : { ...params.existing.failureCounts };
|
|
1104
|
+
failureCounts[params.reason] = (failureCounts[params.reason] ?? 0) + 1;
|
|
1105
|
+
const updatedStats = {
|
|
1106
|
+
...params.existing,
|
|
1107
|
+
errorCount: nextErrorCount,
|
|
1108
|
+
failureCounts,
|
|
1109
|
+
lastFailureAt: params.now
|
|
1110
|
+
};
|
|
1111
|
+
if (params.reason === "billing") {
|
|
1112
|
+
const backoffMs = calculateAuthProfileBillingDisableMsWithConfig({
|
|
1113
|
+
errorCount: failureCounts.billing ?? 1,
|
|
1114
|
+
baseMs: params.cfgResolved.billingBackoffMs,
|
|
1115
|
+
maxMs: params.cfgResolved.billingMaxMs
|
|
1116
|
+
});
|
|
1117
|
+
updatedStats.disabledUntil = params.now + backoffMs;
|
|
1118
|
+
updatedStats.disabledReason = "billing";
|
|
1119
|
+
} else {
|
|
1120
|
+
const backoffMs = calculateAuthProfileCooldownMs(nextErrorCount);
|
|
1121
|
+
updatedStats.cooldownUntil = params.now + backoffMs;
|
|
1122
|
+
}
|
|
1123
|
+
return updatedStats;
|
|
1124
|
+
}
|
|
1125
|
+
/**
|
|
1126
|
+
* Mark a profile as failed for a specific reason. Billing failures are treated
|
|
1127
|
+
* as "disabled" (longer backoff) vs the regular cooldown window.
|
|
1128
|
+
*/
|
|
1129
|
+
async function markAuthProfileFailure(params) {
|
|
1130
|
+
const { store, profileId, reason, agentDir, cfg } = params;
|
|
1131
|
+
const updated = await updateAuthProfileStoreWithLock({
|
|
1132
|
+
agentDir,
|
|
1133
|
+
updater: (freshStore) => {
|
|
1134
|
+
const profile = freshStore.profiles[profileId];
|
|
1135
|
+
if (!profile) return false;
|
|
1136
|
+
freshStore.usageStats = freshStore.usageStats ?? {};
|
|
1137
|
+
const existing = freshStore.usageStats[profileId] ?? {};
|
|
1138
|
+
const now = Date.now();
|
|
1139
|
+
const cfgResolved = resolveAuthCooldownConfig({
|
|
1140
|
+
cfg,
|
|
1141
|
+
providerId: normalizeProviderId(profile.provider)
|
|
1142
|
+
});
|
|
1143
|
+
freshStore.usageStats[profileId] = computeNextProfileUsageStats({
|
|
1144
|
+
existing,
|
|
1145
|
+
now,
|
|
1146
|
+
reason,
|
|
1147
|
+
cfgResolved
|
|
1148
|
+
});
|
|
1149
|
+
return true;
|
|
1150
|
+
}
|
|
1151
|
+
});
|
|
1152
|
+
if (updated) {
|
|
1153
|
+
store.usageStats = updated.usageStats;
|
|
1154
|
+
return;
|
|
1155
|
+
}
|
|
1156
|
+
if (!store.profiles[profileId]) return;
|
|
1157
|
+
store.usageStats = store.usageStats ?? {};
|
|
1158
|
+
const existing = store.usageStats[profileId] ?? {};
|
|
1159
|
+
const now = Date.now();
|
|
1160
|
+
const cfgResolved = resolveAuthCooldownConfig({
|
|
1161
|
+
cfg,
|
|
1162
|
+
providerId: normalizeProviderId(store.profiles[profileId]?.provider ?? "")
|
|
1163
|
+
});
|
|
1164
|
+
store.usageStats[profileId] = computeNextProfileUsageStats({
|
|
1165
|
+
existing,
|
|
1166
|
+
now,
|
|
1167
|
+
reason,
|
|
1168
|
+
cfgResolved
|
|
1169
|
+
});
|
|
1170
|
+
saveAuthProfileStore(store, agentDir);
|
|
1171
|
+
}
|
|
1021
1172
|
|
|
1022
1173
|
//#endregion
|
|
1023
1174
|
//#region src/agents/auth-profiles/order.ts
|
|
@@ -1115,4 +1266,4 @@ function orderProfilesByMode(order, store) {
|
|
|
1115
1266
|
var auth_profiles_exports = /* @__PURE__ */ __exportAll({ ensureAuthProfileStore: () => ensureAuthProfileStore });
|
|
1116
1267
|
|
|
1117
1268
|
//#endregion
|
|
1118
|
-
export {
|
|
1269
|
+
export { saveJsonFile as C, normalizeOptionalSecretInput as D, CODEX_CLI_PROFILE_ID as E, normalizeSecretInput as O, loadJsonFile as S, CLAUDE_CLI_PROFILE_ID as T, resolveAuthStorePath as _, markAuthProfileUsed as a, readClaudeCliCredentials as b, repairOAuthProfileIdMismatch as c, setAuthProfileOrder as d, upsertAuthProfile as f, updateAuthProfileStoreWithLock as g, saveAuthProfileStore as h, markAuthProfileFailure as i, listProfilesForProvider as l, loadAuthProfileStore as m, resolveAuthProfileOrder as n, resolveProfileUnusableUntilForDisplay as o, ensureAuthProfileStore as p, isProfileInCooldown as r, resolveApiKeyForProfile as s, auth_profiles_exports as t, markAuthProfileGood as u, resolveAuthStorePathForDisplay as v, resolveAuthProfileDisplayLabel as w, readCodexCliCredentialsCached as x, resolveAnimaAgentDir as y };
|