@gguf/claw 2026.2.4 → 2026.2.5
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 +50 -1
- package/LICENSE +1 -1
- package/README.md +50 -43
- package/dist/{accounts-BlHoTziG.js → accounts-BgZmhIm6.js} +4 -4
- package/dist/{accounts-B5QZU96b.js → accounts-Dto4p9zB.js} +2 -2
- package/dist/{acp-cli-DU_cVWbN.js → acp-cli-BOKabdeW.js} +15 -15
- package/dist/{acp-cli-O8LcQigE.js → acp-cli-BwcHtBDk.js} +19 -19
- package/dist/{agent-BBI-UGkN.js → agent-DztWhVCH.js} +20 -13
- package/dist/{agent-DuQt3QDO.js → agent-_H-0rbHV.js} +21 -14
- package/dist/{agent-scope-jm0ZdXwM.js → agent-scope-C9VjJXEK.js} +5 -180
- package/dist/{agent-scope-CrgUOY3f.js → agent-scope-CMs5Y7l-.js} +6 -181
- package/dist/{agent-scope-COnICB_7.js → agent-scope-Csu2B6AM.js} +2 -2
- package/dist/{audit-D-OqdjQu.js → audit-BWbjQmyv.js} +182 -15
- package/dist/{audit-CWGOX7Eh.js → audit-ZY6Dk5Ec.js} +183 -16
- package/dist/{auth-viF_w60n.js → auth-CbhB03Rz.js} +2 -2
- package/dist/{auth-DK3l201_.js → auth-DksjO6WG.js} +2 -2
- package/dist/{auth-health-DcKoxhDo.js → auth-health-C4bElkgf.js} +1 -1
- package/dist/{auth-health-Ba9GTScq.js → auth-health-Ctf-_JFE.js} +1 -1
- package/dist/{auth-profiles-CfFGCDJa.js → auth-profiles-CYBuGiBb.js} +38 -13
- package/dist/build-info.json +2 -2
- package/dist/{call-CfqL-4Nc.js → call-90HgQQ8o.js} +34 -8
- package/dist/{call-CPBhMXxo.js → call-BTbA5OB4.js} +35 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/a2ui/a2ui.bundle.js +29 -44
- package/dist/{channel-options-eRR8_a8h.js → channel-options-DrUmtdd9.js} +3 -3
- package/dist/{channel-options-BCSvD6JM.js → channel-options-uftAnT5P.js} +7 -7
- package/dist/{channel-selection-BAwiO0li.js → channel-selection-CJWYmCLf.js} +2 -2
- package/dist/{channel-selection-BCn8_qun.js → channel-selection-PZuuCvrp.js} +2 -2
- package/dist/{channel-summary-BkqO8zZ9.js → channel-summary-D9nzC5WB.js} +8 -42
- package/dist/{channel-summary-C8GoEKgH.js → channel-summary-DUiKDBLv.js} +9 -43
- package/dist/{channels-cli-CBGINubh.js → channels-cli-PAlqhOZ7.js} +56 -54
- package/dist/{channels-cli-yQo-Rzw6.js → channels-cli-PPk5wwuy.js} +59 -57
- package/dist/{channels-status-issues-C9vMMPG0.js → channels-status-issues-CJ8PJgDc.js} +1 -1
- package/dist/{channels-status-issues-DRXQXvhY.js → channels-status-issues-CrS1r5sr.js} +1 -1
- package/dist/{chrome-DlqPCh1y.js → chrome-B3IuUad-.js} +2 -2
- package/dist/{chrome-D2LUApAY.js → chrome-BNSd7Bie.js} +5 -5
- package/dist/{clack-prompter-OmDa1Hm1.js → clack-prompter-CEKDd_Vg.js} +5 -5
- package/dist/{clack-prompter-BJuVh97L.js → clack-prompter-DuBVnTKy.js} +4 -4
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/cli-DBAccB3n.js +86 -0
- package/dist/cli-DD5dW58-.js +89 -0
- package/dist/{client-zqMhLTAX.js → client-BYVbRnuQ.js} +13 -5
- package/dist/{client-cU7Xg1MO.js → client-CxbkcEZ7.js} +12 -4
- package/dist/{command-options-51bBgSJL.js → command-options-DUUINcz0.js} +3 -3
- package/dist/{commands-DMKDOFmC.js → commands-DAC7XMAT.js} +5 -4
- package/dist/completion-cli-BPIeQDFy.js +773 -0
- package/dist/{completion-cli-BoF86Oeq.js → completion-cli-BbhA_JbG.js} +62 -15
- package/dist/{config-qgIz1lbh.js → config-CAuZ-EkU.js} +93 -31
- package/dist/{config-CGsoho7J.js → config-CG73z4h6.js} +61 -28
- package/dist/{config-DCT1RAo6.js → config-CKLedg5Y.js} +92 -30
- package/dist/{config-guard-CJuPkD5Y.js → config-guard-a5ynrKd-.js} +181 -57
- package/dist/{configure-C1_0rFdQ.js → configure-B47GYdlB.js} +33 -23
- package/dist/{configure-D0OAmW2s.js → configure-ChnTy7Jz.js} +31 -21
- package/dist/{control-service-BW5sW2U1.js → control-service-CS61Road.js} +13 -6
- package/dist/{control-service-Ds9ompnU.js → control-service-D2E9NKqQ.js} +12 -5
- package/dist/control-ui/assets/{index-RwcW4Xl0.css → index-BoXosYY6.css} +1 -1
- package/dist/control-ui/assets/index-Dm6g1E26.js +7553 -0
- package/dist/control-ui/assets/index-Dm6g1E26.js.map +1 -0
- package/dist/control-ui/index.html +2 -2
- package/dist/{cron-cli-Bn_e3WGb.js → cron-cli-CssI71-c.js} +20 -19
- package/dist/{cron-cli-BVARiNrv.js → cron-cli-Ys53MyTg.js} +24 -23
- package/dist/{daemon-cli-fHXAapHL.js → daemon-cli-B6aLZ8OE.js} +28 -23
- package/dist/{daemon-cli-yy_MAYxv.js → daemon-cli-CMKd_D6h.js} +26 -21
- package/dist/{daemon-runtime-vNkYv9tq.js → daemon-runtime-BCn_QIHK.js} +64 -7
- package/dist/{daemon-runtime-ELWW7q0C.js → daemon-runtime-DMd0mgTK.js} +64 -7
- package/dist/{deliver-Bsvrattg.js → deliver-C3bnXkg5.js} +12 -10
- package/dist/{deliver-Dl8TEyHM.js → deliver-CZPhTA7x.js} +7 -5
- package/dist/{deliver-eE21zdeQ.js → deliver-Cau4HL7W.js} +11 -9
- package/dist/{deps-BrcOX0ht.js → deps-BG1LonF6.js} +2 -2
- package/dist/{deps-wXkiMwLZ.js → deps-ytXmI88x.js} +2 -2
- package/dist/{devices-cli-BjlwgE6B.js → devices-cli-Cm0ENrXH.js} +16 -16
- package/dist/{devices-cli-BVc_Ic5O.js → devices-cli-D_rnGkqO.js} +12 -12
- package/dist/{directory-cli-cc9ivzEM.js → directory-cli-CGLolzJC.js} +15 -15
- package/dist/{directory-cli-CULRQACb.js → directory-cli-CTtv_AB7.js} +19 -19
- package/dist/{dispatcher-BNB5aCZ6.js → dispatcher-6oI-H42S.js} +1 -1
- package/dist/{dns-cli-BwDdBlsK.js → dns-cli-BRkJGLqK.js} +15 -15
- package/dist/{dns-cli-B79COhmu.js → dns-cli-CoeI4817.js} +11 -11
- package/dist/{docs-cli-BM55jf4Y.js → docs-cli-BH9bMx3a.js} +7 -7
- package/dist/{docs-cli-t7IEzxr8.js → docs-cli-Bh1Coji2.js} +10 -10
- package/dist/{doctor-CT9JPoCt.js → doctor-CwSrWRCp.js} +43 -38
- package/dist/{doctor-OmfNRlMS.js → doctor-JnMryC_M.js} +40 -35
- package/dist/entry.js +12 -8
- package/dist/{env-DOcCob95.js → env-0_mKbEWW.js} +2 -2
- package/dist/{errors-DdT2Dtkb.js → errors-CZ9opC6L.js} +4 -4
- package/dist/{exec-B7WKla_0.js → exec-BMnoMcZW.js} +1 -1
- package/dist/{exec-CTo4hK94.js → exec-HEWTMJ7j.js} +1 -1
- package/dist/{exec-approvals-WdYFyy5N.js → exec-approvals-BCEFzcbC.js} +19 -2
- package/dist/{exec-approvals-CK-Umdr3.js → exec-approvals-DZixgolZ.js} +19 -2
- package/dist/{exec-approvals-cli-DD_z4fL9.js → exec-approvals-cli-D7aVv5hN.js} +19 -19
- package/dist/{exec-approvals-cli-BK2toX2b.js → exec-approvals-cli-DzLp5G7t.js} +23 -23
- package/dist/extensionAPI.js +1186 -267
- package/dist/{gateway-cli-BCC0T5iY.js → gateway-cli-DHP5DRUH.js} +910 -199
- package/dist/{gateway-cli-BTlr6Uwl.js → gateway-cli-ape0pnBU.js} +912 -202
- package/dist/{gateway-rpc-CMAcradB.js → gateway-rpc-C8rNIC0P.js} +3 -3
- package/dist/{gateway-rpc-SvVB4Fmv.js → gateway-rpc-CWnTaSEY.js} +3 -3
- package/dist/{github-copilot-auth-BHLcQ1sN.js → github-copilot-auth-B_lK1g__.js} +173 -87
- package/dist/{github-copilot-auth-BoRchp_Q.js → github-copilot-auth-C8Uf0Q03.js} +174 -88
- package/dist/{github-copilot-token-BEtihsn6.js → github-copilot-token-B3SA95yo.js} +8 -2
- package/dist/{github-copilot-token-rP-6QdKv.js → github-copilot-token-SLWintYd.js} +7 -1
- package/dist/{github-copilot-token-VZsS4013.js → github-copilot-token-pGSmVaW-.js} +8 -2
- package/dist/{gmail-setup-utils-4czdWNCN.js → gmail-setup-utils-Bi6W14MK.js} +3 -3
- package/dist/{gmail-setup-utils-B1CTmT2V.js → gmail-setup-utils-QpN7TEXS.js} +4 -4
- package/dist/{health-format-B4_A88V3.js → health-format-B3eStY5r.js} +215 -21
- package/dist/{health-format-Ct8J0fwc.js → health-format-ND2rUbQO.js} +213 -19
- package/dist/{help-format-CGcnDM3D.js → help-format-Bozi4K9H.js} +1 -1
- package/dist/{helpers-DfgBr1D5.js → helpers-BIc7L8EF.js} +1 -1
- package/dist/{helpers-Cw9kFCkw.js → helpers-D66_XoIz.js} +1 -1
- package/dist/{hooks-cli-NmkXLKmj.js → hooks-cli-BMu_-4Ru.js} +49 -49
- package/dist/{hooks-cli-B-28F__A.js → hooks-cli-CmeQxEOM.js} +45 -45
- package/dist/{hooks-status-I3Y60zVN.js → hooks-status-CKmUPU-M.js} +3 -3
- package/dist/{hooks-status-XV9oQICf.js → hooks-status-DepPyfBb.js} +4 -4
- package/dist/{image-ClOB6QDJ.js → image-Ca_PtqY7.js} +8 -6
- package/dist/{image-BYmtfVH8.js → image-CgBndiQy.js} +9 -7
- package/dist/{image-CXg7Z0WD.js → image-nRwqkmtf.js} +8 -6
- package/dist/index.js +231 -105
- package/dist/{installs-C5cjVarj.js → installs-BhEjOqPy.js} +43 -6
- package/dist/{installs-W4Pc1LJz.js → installs-DsJkyWfL.js} +43 -6
- package/dist/{links-C9fyAH-V.js → links-B5pRdmo1.js} +1 -1
- package/dist/{links-jGisPfXW.js → links-D0uzJbi6.js} +1 -1
- package/dist/{loader-BYWxo-_j.js → loader-_Pj-TZS2.js} +920 -491
- package/dist/{logging-BnUUuH3y.js → logging-Cc7m6PTv.js} +1 -1
- package/dist/{logging-CLCWl7Iu.js → logging-TXWhN8jG.js} +2 -2
- package/dist/{login-qr-C2H_iQJU.js → login-qr-BIlr0vwe.js} +12 -7
- package/dist/{login-qr-7WOtj6zE.js → login-qr-CcOWO_dR.js} +9 -4
- package/dist/{login-qr-sEcxw1_U.js → login-qr-Cmsf7BGt.js} +11 -6
- package/dist/{logs-cli-C5v4fEDj.js → logs-cli-5L3NxTsc.js} +19 -19
- package/dist/{logs-cli-nVwK5g60.js → logs-cli-DtiFFkZL.js} +15 -15
- package/dist/{manager-rDmdE7O9.js → manager-BXiIQku7.js} +9 -7
- package/dist/{manager-JSP5pLyv.js → manager-C4ILl-d3.js} +10 -8
- package/dist/{manager-BArueSTR.js → manager-LpytrxUw.js} +12 -10
- package/dist/{manifest-registry-tuAcHxrV.js → manifest-registry-C69Z-I4v.js} +1 -1
- package/dist/{manifest-registry-BFpLJJDB.js → manifest-registry-DHaa1SJb.js} +1 -1
- package/dist/{message-channel-CAFcg7mw.js → message-channel-BlgPSDAh.js} +6 -1
- package/dist/{message-channel-CQGWXVL4.js → message-channel-Bpfe5l5f.js} +7 -2
- package/dist/{model-selection-Cp1maz7B.js → model-selection-DMUrNhQP.js} +41 -16
- package/dist/{model-selection-Cs1y6OBv.js → model-selection-mzTqrNoj.js} +38 -14
- package/dist/{models-cli-n9a8pESx.js → models-cli-DHzyyLvp.js} +49 -49
- package/dist/{models-cli-DGnLcr4X.js → models-cli-EhrWjNLH.js} +53 -53
- package/dist/{net-DaJz_a4n.js → net-C8YRVt16.js} +1 -1
- package/dist/{net-DeiCIMU6.js → net-CWMMy37F.js} +1 -1
- package/dist/{node-cli-rtEq-YyU.js → node-cli-2oYmIWJt.js} +30 -30
- package/dist/{node-cli-AOO0HsM1.js → node-cli-DH7Ykym5.js} +26 -26
- package/dist/{node-service-CjtBRyjp.js → node-service-BAYHx0E7.js} +2 -2
- package/dist/{node-service-BW_LhY5w.js → node-service-Lc1LlnFH.js} +2 -2
- package/dist/{nodes-cli-Coxj5hDA.js → nodes-cli-Bc5K-0Lt.js} +22 -22
- package/dist/{nodes-cli-ChBsNXzz.js → nodes-cli-hT8yYD7S.js} +18 -18
- package/dist/{nodes-screen-Ln98EX_f.js → nodes-screen-DGlNPbk4.js} +2 -2
- package/dist/{nodes-screen-DOhGEibx.js → nodes-screen-DT5HvhJV.js} +2 -2
- package/dist/{note-BFpD-42H.js → note-B5HnoeZX.js} +2 -2
- package/dist/{note-CBiVaqG7.js → note-Ci08TSbV.js} +1 -1
- package/dist/{onboard-channels-CF7lTDNu.js → onboard-channels-D-ZQTy5V.js} +9 -8
- package/dist/{onboard-channels-CJCy7TTQ.js → onboard-channels-DKT27PdN.js} +10 -9
- package/dist/{onboard-skills-DdFGj9pt.js → onboard-skills-YobctE-R.js} +259 -194
- package/dist/{onboard-skills-fL84FI8F.js → onboard-skills-s8J5xbUr.js} +259 -194
- package/dist/{onboarding-DcN1avQK.js → onboarding-BP4-5uzE.js} +96 -60
- package/dist/{pairing-cli-DbP9KqPL.js → pairing-cli-C8KHRjaU.js} +15 -15
- package/dist/{pairing-cli-B7RQFp4r.js → pairing-cli-i7wiTmYC.js} +19 -19
- package/dist/{pairing-labels-DK2aLSd2.js → pairing-labels-BbydDT7w.js} +1 -1
- package/dist/{pairing-labels-C6I3dD-m.js → pairing-labels-CtqLxbG6.js} +1 -1
- package/dist/{pairing-store-BnMngoWQ.js → pairing-store-DFq7WtOv.js} +2 -2
- package/dist/{pairing-store-DMex6WWe.js → pairing-store-DTfv_FGA.js} +1 -1
- package/dist/{path-env-CuGC6r1F.js → path-env-DP3DsVge.js} +2 -2
- package/dist/{path-env-CUhrC5DA.js → path-env-h3xp5PqO.js} +1 -1
- package/dist/{paths-xPuk88Yf.js → paths-B4kigINg.js} +2 -2
- package/dist/{paths-50eo6DV6.js → paths-Bb0nwPeu.js} +2 -2
- package/dist/{paths-RvF0P6tQ.js → paths-CTg8F3AE.js} +1 -1
- package/dist/{pi-embedded-helpers-DJgCXZEz.js → pi-embedded-helpers-BB4uACeq.js} +175 -170
- package/dist/{pi-embedded-helpers-DiK8Qn1l.js → pi-embedded-helpers-BxqZh6U7.js} +43 -19
- package/dist/{pi-embedded-helpers-CC00lEFI.js → pi-embedded-helpers-DF8SAHU-.js} +175 -170
- package/dist/{pi-model-discovery-DjGamP_B.js → pi-model-discovery-CV2V1HHz.js} +8 -1
- package/dist/{pi-model-discovery-CnK2Dol8.js → pi-model-discovery-DzEIEgHL.js} +8 -1
- package/dist/{pi-model-discovery-CsRo-xMp.js → pi-model-discovery-EhM2JAQo.js} +8 -1
- package/dist/{pi-tools.policy-DleRi9eC.js → pi-tools.policy-BQ8N5y8a.js} +5 -4
- package/dist/{plugin-auto-enable-JQ63k0Ce.js → plugin-auto-enable-Ci7TBlH2.js} +5 -5
- package/dist/{plugin-auto-enable-CIVp3SAp.js → plugin-auto-enable-DyW8lHTT.js} +4 -4
- package/dist/plugin-sdk/index.d.ts +228 -283
- package/dist/plugin-sdk/index.js +22528 -69091
- package/dist/plugin-sdk/pi-model-discovery-Dw3A6oXH.js +37 -0
- package/dist/{plugins-TrKFfrLt.js → plugins-BUPpq5aS.js} +3 -2
- package/dist/{plugins-D1CxUobm.js → plugins-BYIWo0Cp.js} +5 -4
- package/dist/{plugins-cli-17wYux52.js → plugins-cli-CGfxctIx.js} +50 -49
- package/dist/{plugins-cli-VyQWn_LW.js → plugins-cli-Dr_R2-FY.js} +46 -45
- package/dist/{ports-B27T1uRn.js → ports-0V-Mu4ch.js} +2 -2
- package/dist/{program-BA9_uWfO.js → program-oR55MCAT.js} +84 -81
- package/dist/{progress-uNDQDtGB.js → progress-xpLtQsNY.js} +1 -1
- package/dist/{prompt-style-gfROyHgB.js → prompt-style-vzh0MGHs.js} +1 -1
- package/dist/{pw-ai-BC4dLE7k.js → pw-ai-B7Fvw8DW.js} +4 -4
- package/dist/{pw-ai-DlTBXZjY.js → pw-ai-DYpQO6HI.js} +6 -6
- package/dist/{pw-ai-BEqPnalN.js → pw-ai-tNPuRNn3.js} +4 -4
- package/dist/{qmd-manager-8xWxIGbO.js → qmd-manager-BKkFEEN_.js} +9 -8
- package/dist/{plugin-sdk/qmd-manager-DvkA01DP.js → qmd-manager-CF52nuBg.js} +6 -6
- package/dist/{qmd-manager-BSCOmXYZ.js → qmd-manager-Dub8jfbo.js} +7 -6
- package/dist/{register.subclis-CWWz9WdX.js → register.subclis-BpIR6Iqi.js} +36 -30
- package/dist/{reply-CoztdrN_.js → reply-B8pOiUNN.js} +935 -506
- package/dist/rolldown-runtime-Cbj13DAv.js +20 -0
- package/dist/{routes-yI5QIzeL.js → routes-BSfXf8a5.js} +5 -5
- package/dist/{routes-Ds-tIZFJ.js → routes-DchZU3EK.js} +6 -6
- package/dist/{rpc-HF82_iLh.js → rpc-DqI3QH59.js} +3 -3
- package/dist/{rpc-HdKLb6jx.js → rpc-Vo2ACfn-.js} +3 -3
- package/dist/{run-main-B3krVvc1.js → run-main-DrVUUPHV.js} +84 -84
- package/dist/{sandbox-BXUfp_qv.js → sandbox-CV8VwPij.js} +36 -16
- package/dist/{sandbox-Cnq9TXEn.js → sandbox-DuqLKN5J.js} +34 -14
- package/dist/{sandbox-cli-C7j1V6tb.js → sandbox-cli-C0_Hrk7i.js} +25 -24
- package/dist/{sandbox-cli-CnS9JJlO.js → sandbox-cli-Ces6i3n2.js} +21 -20
- package/dist/{security-cli-Clg7RQT3.js → security-cli-CybLT9XS.js} +32 -30
- package/dist/{security-cli-BGd4NO4l.js → security-cli-T7yrd3lb.js} +28 -26
- package/dist/{server-context-D2cv-pIA.js → server-context-vChIAqjH.js} +6 -6
- package/dist/{server-context-CM_E6wD5.js → server-context-yKyxyxOJ.js} +5 -5
- package/dist/{server-node-events-IMwI538C.js → server-node-events-BR2vHqf6.js} +44 -43
- package/dist/{server-node-events-C5EqDe_U.js → server-node-events-D39FA0NG.js} +48 -47
- package/dist/{service-CAxAjHNB.js → service-BZesBIaG.js} +3 -3
- package/dist/{service-BoDHq_LN.js → service-_JwSmGSn.js} +2 -2
- package/dist/{service-audit-Bf33pqEM.js → service-audit-C-IA4omi.js} +6 -6
- package/dist/{service-audit-DBSAGhm8.js → service-audit-DDX1kO3k.js} +6 -6
- package/dist/session-cost-usage-BTXosU1k.js +692 -0
- package/dist/session-cost-usage-CBP4Hv9D.js +692 -0
- package/dist/session-key-CZkcvAtx.js +177 -0
- package/dist/session-key-Dm2EOhrH.js +177 -0
- package/dist/{shared-ChNOqAzp.js → shared-BmtNKsPq.js} +4 -4
- package/dist/{shared-D42-KbPa.js → shared-C1XLEyB0.js} +3 -3
- package/dist/{shared-xZjRQa6y.js → shared-C8_5pNbb.js} +4 -4
- package/dist/{shared-DBGw227P.js → shared-fnGLWyZ6.js} +3 -3
- package/dist/skill-scanner-BoGjHXUZ.js +255 -0
- package/dist/skill-scanner-Bp1D9gra.js +255 -0
- package/dist/{skills-DtwGIkTI.js → skills-CmU0Q92f.js} +3 -3
- package/dist/{skills-C4b1FA1e.js → skills-D5JDj3TR.js} +5 -5
- package/dist/{skills-cli-BPkuJAz9.js → skills-cli-C1yJvIkL.js} +16 -16
- package/dist/{skills-cli-b0ZmGlmh.js → skills-cli-DBC5zFat.js} +12 -12
- package/dist/{skills-status-CSCMqNZP.js → skills-status-CEvVUD3U.js} +3 -3
- package/dist/{skills-status-CWkBweWW.js → skills-status-DtXrj3fy.js} +2 -2
- package/dist/{status-BIWeu5mN.js → status-BRXuHUsK.js} +94 -58
- package/dist/{status-CcM6W8r4.js → status-BTGXSvZ1.js} +3 -3
- package/dist/{status-PjegR5Cv.js → status-DBZ5Z7ng.js} +4 -4
- package/dist/{subsystem-46MXi6Ip.js → subsystem-CAq3uyo7.js} +1 -1
- package/dist/{system-cli-B4FEIE5d.js → system-cli-Dqnt-b0D.js} +13 -13
- package/dist/{system-cli-BL_QZ1VP.js → system-cli-SJLtqI47.js} +17 -17
- package/dist/{systemd-DAgZTW06.js → systemd-8sIc6isV.js} +2 -2
- package/dist/{systemd-CNYEkRek.js → systemd-B-3NdMmA.js} +3 -3
- package/dist/{systemd-hints-CcgK8AJE.js → systemd-hints-DO88c_nD.js} +1 -1
- package/dist/{systemd-hints-okqOoOug.js → systemd-hints-Wim4Bq6j.js} +1 -1
- package/dist/{systemd-linger-CTe0ZDxD.js → systemd-linger-N-cIaegf.js} +8 -3
- package/dist/{systemd-linger-Cbkoh9qw.js → systemd-linger-SsSOsJST.js} +8 -3
- package/dist/{table-f0EgX-YI.js → table-CJSx0YID.js} +1 -1
- package/dist/{table-DuNe7Qes.js → table-CLtGjVsx.js} +2 -2
- package/dist/{tailscale-BUcKO8Rr.js → tailscale-9MusRvOi.js} +1 -1
- package/dist/{tailscale-Cvk3mQDZ.js → tailscale-BVGD9gSD.js} +2 -2
- package/dist/{tool-display-rIUh61kT.js → tool-display-BxZG0o1b.js} +2 -2
- package/dist/{tool-display-BMYWrp0L.js → tool-display-DmgKs6-V.js} +2 -2
- package/dist/{tui-cV-R-JXi.js → tui-DPorsF4z.js} +203 -75
- package/dist/{tui-DBmFYQTk.js → tui-XH6_v0qC.js} +204 -74
- package/dist/{tui-cli-B_CKOjZ1.js → tui-cli-DRSIBDgZ.js} +30 -29
- package/dist/{tui-cli-CVdJ28TX.js → tui-cli-DV_JAtnq.js} +26 -25
- package/dist/{update-BDyA5Iqy.js → update-DNAVcIQ7.js} +3 -3
- package/dist/{update-BIB5jGcv.js → update-DzMcwy1G.js} +3 -3
- package/dist/{update-cli-p49uMWby.js → update-cli-OAcZiYuA.js} +112 -27
- package/dist/{update-cli-C5vwquH_.js → update-cli-tQcy8mkI.js} +109 -23
- package/dist/{update-runner-8XFxQglY.js → update-runner-2i8_mIG5.js} +254 -17
- package/dist/{update-runner-s8Rs8ex3.js → update-runner-BDdk_K2S.js} +254 -17
- package/dist/usage-format-DvowRSs-.js +36 -0
- package/dist/usage-format-E3bMcUMV.js +36 -0
- package/dist/{utils-Dg0Xbl6w.js → utils-CKSrBNwq.js} +2 -2
- package/dist/{webhooks-cli-DkQGQ2ae.js → webhooks-cli-BztQHEco.js} +11 -11
- package/dist/{webhooks-cli-kRN8qR7B.js → webhooks-cli-ZAn97osC.js} +15 -15
- package/dist/{widearea-dns-BIhjVRG1.js → widearea-dns-CsSylzXH.js} +2 -2
- package/dist/{widearea-dns-D4yoSNNw.js → widearea-dns-D9Al4QRv.js} +2 -2
- package/dist/{ws-log-DQ6nkLys.js → ws-log-B7UNLFLC.js} +3 -3
- package/dist/{ws-log-C4IerKk4.js → ws-log-DJIXahf0.js} +2 -2
- package/dist/{wsl-DASmek7h.js → wsl-ATjkMwMA.js} +1 -1
- package/docs/.i18n/glossary.zh-CN.json +20 -0
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/bedrock.md +3 -3
- package/docs/channels/discord.md +2 -1
- package/docs/channels/feishu.md +72 -2
- package/docs/channels/telegram.md +19 -0
- package/docs/cli/devices.md +3 -0
- package/docs/cli/gateway.md +3 -0
- package/docs/cli/index.md +2 -0
- package/docs/cli/onboard.md +16 -2
- package/docs/concepts/features.md +53 -0
- package/docs/concepts/memory.md +1 -1
- package/docs/concepts/messages.md +1 -1
- package/docs/concepts/model-providers.md +11 -11
- package/docs/concepts/models.md +1 -1
- package/docs/concepts/multi-agent.md +2 -2
- package/docs/concepts/session.md +19 -3
- package/docs/docs.json +331 -182
- package/docs/gateway/cli-backends.md +7 -5
- package/docs/gateway/configuration-examples.md +4 -4
- package/docs/gateway/configuration.md +34 -16
- package/docs/gateway/heartbeat.md +61 -1
- package/docs/gateway/local-models.md +3 -3
- package/docs/gateway/network-model.md +17 -0
- package/docs/gateway/remote.md +3 -1
- package/docs/gateway/security/index.md +1 -1
- package/docs/help/faq.md +25 -26
- package/docs/help/submitting-a-pr.md +214 -0
- package/docs/help/submitting-an-issue.md +165 -0
- package/docs/index.md +127 -193
- package/docs/install/docker.md +2 -2
- package/docs/{platforms → install}/exe-dev.md +4 -3
- package/docs/{platforms → install}/fly.md +1 -1
- package/docs/install/index.md +4 -2
- package/docs/nodes/media-understanding.md +2 -2
- package/docs/platforms/digitalocean.md +2 -2
- package/docs/platforms/index.md +4 -4
- package/docs/platforms/linux.md +1 -1
- package/docs/platforms/mac/release.md +7 -7
- package/docs/platforms/oracle.md +1 -1
- package/docs/platforms/raspberry-pi.md +1 -1
- package/docs/providers/anthropic.md +3 -3
- package/docs/providers/index.md +1 -1
- package/docs/providers/minimax.md +3 -3
- package/docs/providers/models.md +1 -1
- package/docs/providers/ollama.md +60 -6
- package/docs/providers/openai.md +2 -2
- package/docs/providers/opencode.md +1 -1
- package/docs/providers/vercel-ai-gateway.md +1 -1
- package/docs/reference/credits.md +27 -0
- package/docs/reference/wizard.md +268 -0
- package/docs/start/bootstrapping.md +41 -0
- package/docs/start/docs-directory.md +64 -0
- package/docs/start/getting-started.md +109 -197
- package/docs/start/hubs.md +12 -0
- package/docs/start/onboarding.md +51 -81
- package/docs/start/openclaw.md +3 -20
- package/docs/start/quickstart.md +22 -0
- package/docs/start/setup.md +14 -1
- package/docs/start/wizard-cli-automation.md +141 -0
- package/docs/start/wizard-cli-reference.md +244 -0
- package/docs/start/wizard.md +48 -289
- package/docs/style.css +3 -0
- package/docs/testing.md +9 -9
- package/docs/token-use.md +2 -2
- package/docs/tools/index.md +3 -0
- package/docs/tools/llm-task.md +1 -1
- package/docs/tools/thinking.md +1 -0
- package/docs/tui.md +3 -0
- package/docs/vps.md +6 -6
- package/docs/web/control-ui.md +2 -0
- package/docs/web/dashboard.md +7 -7
- package/docs/zh-CN/channels/feishu.md +119 -3
- package/docs/zh-CN/concepts/features.md +59 -0
- package/docs/zh-CN/gateway/network-model.md +23 -0
- package/docs/zh-CN/gateway/remote.md +1 -1
- package/docs/zh-CN/help/faq.md +5 -5
- package/docs/zh-CN/index.md +124 -202
- package/docs/zh-CN/install/docker.md +1 -1
- package/docs/zh-CN/platforms/digitalocean.md +2 -2
- package/docs/zh-CN/platforms/index.md +4 -4
- package/docs/zh-CN/platforms/linux.md +1 -1
- package/docs/zh-CN/platforms/oracle.md +1 -1
- package/docs/zh-CN/platforms/raspberry-pi.md +1 -1
- package/docs/zh-CN/providers/ollama.md +1 -1
- package/docs/zh-CN/reference/credits.md +34 -0
- package/docs/zh-CN/start/docs-directory.md +70 -0
- package/docs/zh-CN/start/getting-started.md +1 -1
- package/docs/zh-CN/start/hubs.md +39 -30
- package/docs/zh-CN/start/quickstart.md +88 -0
- package/docs/zh-CN/vps.md +4 -4
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/bluebubbles/src/monitor.ts +9 -0
- package/extensions/copilot-proxy/index.ts +1 -0
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/index.ts +49 -1
- package/extensions/feishu/openclaw.plugin.json +1 -0
- package/extensions/feishu/package.json +9 -5
- package/extensions/feishu/skills/feishu-doc/SKILL.md +105 -0
- package/extensions/feishu/skills/feishu-doc/references/block-types.md +103 -0
- package/extensions/feishu/skills/feishu-drive/SKILL.md +97 -0
- package/extensions/feishu/skills/feishu-perm/SKILL.md +119 -0
- package/extensions/feishu/skills/feishu-wiki/SKILL.md +111 -0
- package/extensions/feishu/src/accounts.ts +144 -0
- package/extensions/feishu/src/bitable.ts +459 -0
- package/extensions/feishu/src/bot.ts +871 -0
- package/extensions/feishu/src/channel.ts +267 -202
- package/extensions/feishu/src/client.ts +118 -0
- package/extensions/feishu/src/config-schema.ts +152 -26
- package/extensions/feishu/src/directory.ts +177 -0
- package/extensions/feishu/src/doc-schema.ts +47 -0
- package/extensions/feishu/src/docx.ts +521 -0
- package/extensions/feishu/src/drive-schema.ts +46 -0
- package/extensions/feishu/src/drive.ts +227 -0
- package/extensions/feishu/src/media.ts +527 -0
- package/extensions/feishu/src/mention.ts +126 -0
- package/extensions/feishu/src/monitor.ts +190 -0
- package/extensions/feishu/src/onboarding.ts +278 -200
- package/extensions/feishu/src/outbound.ts +40 -0
- package/extensions/feishu/src/perm-schema.ts +52 -0
- package/extensions/feishu/src/perm.ts +173 -0
- package/extensions/feishu/src/policy.ts +104 -0
- package/extensions/feishu/src/probe.ts +44 -0
- package/extensions/feishu/src/reactions.ts +160 -0
- package/extensions/feishu/src/reply-dispatcher.ts +184 -0
- package/extensions/feishu/src/runtime.ts +14 -0
- package/extensions/feishu/src/send.ts +358 -0
- package/extensions/feishu/src/targets.ts +78 -0
- package/extensions/feishu/src/tools-config.ts +21 -0
- package/extensions/feishu/src/types.ts +75 -0
- package/extensions/feishu/src/typing.ts +80 -0
- package/extensions/feishu/src/wiki-schema.ts +55 -0
- package/extensions/feishu/src/wiki.ts +232 -0
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/googlechat/src/monitor.ts +12 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +6 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/matrix/src/config-schema.ts +1 -0
- package/extensions/matrix/src/matrix/monitor/handler.ts +9 -5
- package/extensions/matrix/src/types.ts +2 -0
- package/extensions/mattermost/package.json +1 -1
- package/extensions/mattermost/src/channel.test.ts +24 -0
- package/extensions/mattermost/src/config-schema.ts +1 -0
- package/extensions/mattermost/src/mattermost/monitor.ts +9 -5
- package/extensions/mattermost/src/types.ts +2 -0
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
- package/extensions/memory-lancedb/node_modules/.bin/openai.CMD +2 -2
- package/extensions/memory-lancedb/node_modules/.bin/openai.ps1 +2 -2
- package/extensions/memory-lancedb/package.json +2 -2
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/msteams/src/monitor-handler/message-handler.ts +1 -0
- package/extensions/msteams/src/reply-dispatcher.ts +7 -5
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nextcloud-talk/src/config-schema.ts +1 -0
- package/extensions/nextcloud-talk/src/inbound.ts +10 -0
- package/extensions/nextcloud-talk/src/send.ts +7 -2
- package/extensions/nextcloud-talk/src/types.ts +2 -0
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/tlon/src/config-schema.ts +2 -0
- package/extensions/tlon/src/monitor/index.ts +41 -14
- package/extensions/tlon/src/monitor/utils.ts +1 -0
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/twitch/src/config-schema.ts +2 -0
- package/extensions/twitch/src/monitor.ts +11 -0
- package/extensions/twitch/src/types.ts +2 -0
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/voice-call/src/manager.test.ts +30 -0
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalo/src/config-schema.ts +1 -0
- package/extensions/zalo/src/monitor.ts +11 -0
- package/extensions/zalo/src/types.ts +2 -0
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/extensions/zalouser/src/config-schema.ts +1 -0
- package/extensions/zalouser/src/monitor.ts +12 -1
- package/extensions/zalouser/src/types.ts +2 -0
- package/package.json +14 -14
- package/dist/auth-profiles-3t9aTwDR.js +0 -11
- package/dist/auth-profiles-BYvLI-zr.js +0 -7
- package/dist/auth-profiles-DswR7tzt.js +0 -7
- package/dist/cli-BxIwNzhi.js +0 -89
- package/dist/cli-wFmvNjpg.js +0 -86
- package/dist/command-format-SkzzRqR1.js +0 -52
- package/dist/completion-cli-vxe-jqwC.js +0 -390
- package/dist/config-BwVg6hhl.js +0 -13
- package/dist/config-jKcyRiMo.js +0 -10
- package/dist/configure-DaecSBSI.js +0 -60
- package/dist/configure-t-7r9i4H.js +0 -64
- package/dist/control-service-Dag9b-dU.js +0 -16
- package/dist/control-service-DsUyuevF.js +0 -12
- package/dist/control-ui/assets/index-ryaCcbyp.js +0 -4584
- package/dist/control-ui/assets/index-ryaCcbyp.js.map +0 -1
- package/dist/daemon-cli-CUkUiGoK.js +0 -53
- package/dist/daemon-cli-D6FF4tmP.js +0 -49
- package/dist/deliver-BGnJ4-vz.js +0 -12
- package/dist/deliver-CXpx7BNb.js +0 -25
- package/dist/deliver-Ds2yqOA3.js +0 -21
- package/dist/doctor-BwqqPqMX.js +0 -58
- package/dist/doctor-DGrfzoKj.js +0 -62
- package/dist/github-copilot-token-B0CUgVkW.js +0 -4
- package/dist/github-copilot-token-B_uWT0Yi.js +0 -4
- package/dist/github-copilot-token-CXUZ9Lrb.js +0 -3
- package/dist/image-CgTMdnmz.js +0 -28
- package/dist/image-D1O-ebQc.js +0 -14
- package/dist/image-njq9Rf6U.js +0 -24
- package/dist/login-qr-BfbIJ1wP.js +0 -12
- package/dist/login-qr-CGWNrSQq.js +0 -9
- package/dist/login-qr-CUV9HZCg.js +0 -16
- package/dist/manager-DKpTd5pc.js +0 -10
- package/dist/manager-Dr_eVHpN.js +0 -10
- package/dist/manager-DtFcs1NT.js +0 -14
- package/dist/pi-model-discovery-BOramrmp.js +0 -3
- package/dist/pi-model-discovery-Bj98Srfa.js +0 -3
- package/dist/pi-model-discovery-DHPwfwKu.js +0 -3
- package/dist/plugin-sdk/agent-scope-qNPdmst1.js +0 -606
- package/dist/plugin-sdk/auth-profiles-D0LhX8iB.js +0 -7
- package/dist/plugin-sdk/chrome-DMuEXuKT.js +0 -1953
- package/dist/plugin-sdk/config-D5CsedNn.js +0 -5623
- package/dist/plugin-sdk/deliver-DOlMKwJ9.js +0 -12
- package/dist/plugin-sdk/deliver-Dl2ednkv.js +0 -2555
- package/dist/plugin-sdk/exec-CjyVHUuE.js +0 -1107
- package/dist/plugin-sdk/github-copilot-token-BoPqI-5_.js +0 -97
- package/dist/plugin-sdk/github-copilot-token-YEH9Bwov.js +0 -4
- package/dist/plugin-sdk/image-B_t0xXCb.js +0 -1419
- package/dist/plugin-sdk/image-DYTdodiR.js +0 -14
- package/dist/plugin-sdk/login-qr-B7ec28AI.js +0 -9
- package/dist/plugin-sdk/login-qr-BVBRxQRt.js +0 -470
- package/dist/plugin-sdk/manager-B-EITu1a.js +0 -10
- package/dist/plugin-sdk/manager-WCGzgWdf.js +0 -2868
- package/dist/plugin-sdk/model-selection-Bo7pocNu.js +0 -2667
- package/dist/plugin-sdk/paths-BFxmmTT5.js +0 -164
- package/dist/plugin-sdk/paths-Bkjq_KcG.js +0 -40
- package/dist/plugin-sdk/pi-embedded-helpers-fm5_Eokw.js +0 -8755
- package/dist/plugin-sdk/pi-model-discovery-CLgDNnGq.js +0 -13
- package/dist/plugin-sdk/pi-model-discovery-P2-pVRmz.js +0 -3
- package/dist/plugin-sdk/pw-ai-BN7Cwl9J.js +0 -1649
- package/dist/qmd-manager-CzArLjr6.js +0 -615
- package/dist/redact-BR0IM00e.js +0 -94
- package/dist/register.subclis-Bo-xmQ-W.js +0 -342
- package/dist/register.subclis-BuT7ZpPf.js +0 -3
- package/dist/restart-sentinel-CdcBcziq.js +0 -65
- package/dist/restart-sentinel-DywisDen.js +0 -65
- package/dist/runtime-guard-BG6JybtL.js +0 -60
- package/dist/runtime-guard-DvBpNsbR.js +0 -60
- package/dist/sqlite-Dz6S6ijV.js +0 -215
- package/dist/status.update-2ZdxeIeT.js +0 -79
- package/dist/status.update-ChwCPLBt.js +0 -79
- package/dist/systemd-linger-BZb1Uwsd.js +0 -7
- package/dist/systemd-linger-DemNCT5l.js +0 -9
- package/dist/transcript-events-fUhPZcB5.js +0 -17
- package/docs/_config.yml +0 -53
- package/docs/_layouts/default.html +0 -145
- package/docs/assets/docs-chat-widget.js +0 -667
- package/docs/assets/markdown.css +0 -179
- package/docs/assets/terminal.css +0 -473
- package/docs/assets/theme.js +0 -55
- package/extensions/feishu/README.md +0 -47
- /package/dist/{archive-BrH5WBhI.js → archive-D0z3LZDK.js} +0 -0
- /package/dist/{archive-mFgwsll-.js → archive-Dy3Ezb-5.js} +0 -0
- /package/dist/{boolean-CE7i9tBR.js → boolean-BgXe2hyu.js} +0 -0
- /package/dist/{brew-0HRgjHZw.js → brew-CAcErcKz.js} +0 -0
- /package/dist/{brew-Qdppmdlx.js → brew-CcZV0dSS.js} +0 -0
- /package/dist/{cli-utils-CukoNm8O.js → cli-utils-BkRQdAoC.js} +0 -0
- /package/dist/{cli-utils-DFbPmfWB.js → cli-utils-ByANh4Sp.js} +0 -0
- /package/dist/{plugin-sdk/command-format-CFzL448l.js → command-format-CFzL448l.js} +0 -0
- /package/dist/{command-format-BQK1OIvH.js → command-format-ChfKqObn.js} +0 -0
- /package/dist/{command-format-3xiXujG0.js → command-format-ayFsmwwz.js} +0 -0
- /package/dist/{constants-3er_81qc.js → constants-D1op9uGI.js} +0 -0
- /package/dist/{constants-CLUi6T-M.js → constants-HPrOsATF.js} +0 -0
- /package/dist/{exec-BIMFe4XS.js → exec-B8JKbXKW.js} +0 -0
- /package/dist/{format-BnjMmWWT.js → format-B7OjpGnt.js} +0 -0
- /package/dist/{format-hyFOmVZc.js → format-CS7EI0xF.js} +0 -0
- /package/dist/{help-format-af1XWYxC.js → help-format-CfZ94KRN.js} +0 -0
- /package/dist/{helpers-HZ-6iA1e.js → helpers-5yebzF4C.js} +0 -0
- /package/dist/{helpers-uGhPZ_kK.js → helpers-EKm3X92T.js} +0 -0
- /package/dist/{is-main-DD0MG3N8.js → is-main-B6kCyqsv.js} +0 -0
- /package/dist/{is-main-DrJg4t1R.js → is-main-qJ675wPV.js} +0 -0
- /package/dist/{logging-BdnOSVPD.js → logging-BWRYHvLp.js} +0 -0
- /package/dist/{logging-fywhKCmE.js → logging-CfEk_PnX.js} +0 -0
- /package/dist/{openclaw-root-Dean7Fp2.js → openclaw-root-9ILYSmJ9.js} +0 -0
- /package/dist/{openclaw-root-CJKDUIBP.js → openclaw-root-Cvotktkd.js} +0 -0
- /package/dist/{parse-BB0Cqon8.js → parse-BZz5lHzQ.js} +0 -0
- /package/dist/{parse-DLFPuO7w.js → parse-gTOGQPH6.js} +0 -0
- /package/dist/{parse-log-line-B3U8Kflp.js → parse-log-line-C6szvNBZ.js} +0 -0
- /package/dist/{parse-log-line-BmyeB3J2.js → parse-log-line-CARp5QyJ.js} +0 -0
- /package/dist/{parse-timeout-BIB19Upi.js → parse-timeout-CbVKLZ4B.js} +0 -0
- /package/dist/{parse-timeout-CmBmmqZZ.js → parse-timeout-Du-wHHNi.js} +0 -0
- /package/dist/{paths-VslOJiD2.js → paths-B1kfl4h5.js} +0 -0
- /package/dist/{paths-BDd7_JUB.js → paths-scjhy7N2.js} +0 -0
- /package/dist/{progress-Dn3kWpaL.js → progress-Da1ehW-x.js} +0 -0
- /package/dist/{prompt-style-D5D7b3cX.js → prompt-style-Dc0C5HC9.js} +0 -0
- /package/dist/{prompts-CIDznuZR.js → prompts-CXLLIBwP.js} +0 -0
- /package/dist/{prompts-CSlE5VZB.js → prompts-FbZThK8w.js} +0 -0
- /package/dist/{redact-BKh-zp-c.js → redact-B8YiFlwn.js} +0 -0
- /package/dist/{plugin-sdk/redact-wH73ib3-.js → redact-BIMJ3ntQ.js} +0 -0
- /package/dist/{redact-CDPAzwi8.js → redact-DJCFY628.js} +0 -0
- /package/dist/{plugin-sdk/sqlite-CqVsQPIl.js → sqlite-BKl1HJFe.js} +0 -0
- /package/dist/{sqlite-C59YNxdL.js → sqlite-Dnmf3LS7.js} +0 -0
- /package/dist/{sqlite-B_L84oiu.js → sqlite-DqUEZnjO.js} +0 -0
- /package/dist/{status-DkW6wMxZ.js → status-CRIEi8Mc.js} +0 -0
- /package/dist/{status-IDW1pkc0.js → status-tCu4RWZH.js} +0 -0
- /package/dist/{tailnet-BijMqkqa.js → tailnet-Byp3obcc.js} +0 -0
- /package/dist/{tailnet-Bk5cGmwE.js → tailnet-DLDGNuH2.js} +0 -0
- /package/dist/{plugin-sdk/transcript-events-DOI14YeV.js → transcript-events-CZ8CG4ht.js} +0 -0
- /package/dist/{transcript-events-Cj85Mq0h.js → transcript-events-ChU6IQwp.js} +0 -0
- /package/dist/{transcript-events-DW_H__a1.js → transcript-events-JLH5W4He.js} +0 -0
- /package/dist/{utils-PmTbZoD1.js → utils-DX85MiPR.js} +0 -0
- /package/dist/{ws-Cxo2p9fH.js → ws-CEcdsnN9.js} +0 -0
- /package/dist/{ws-DlSkA_BG.js → ws-D091yo4M.js} +0 -0
- /package/docs/{platforms → install}/gcp.md +0 -0
- /package/docs/{platforms → install}/hetzner.md +0 -0
- /package/docs/{platforms → install}/macos-vm.md +0 -0
- /package/docs/{northflank.mdx → install/northflank.mdx} +0 -0
- /package/docs/{railway.mdx → install/railway.mdx} +0 -0
- /package/docs/{render.mdx → install/render.mdx} +0 -0
- /package/docs/zh-CN/{platforms → install}/exe-dev.md +0 -0
- /package/docs/zh-CN/{platforms → install}/fly.md +0 -0
- /package/docs/zh-CN/{platforms → install}/gcp.md +0 -0
- /package/docs/zh-CN/{platforms → install}/hetzner.md +0 -0
- /package/docs/zh-CN/{platforms → install}/macos-vm.md +0 -0
- /package/docs/zh-CN/{northflank.mdx → install/northflank.mdx} +0 -0
- /package/docs/zh-CN/{railway.mdx → install/railway.mdx} +0 -0
- /package/docs/zh-CN/{render.mdx → install/render.mdx} +0 -0
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
import { p as
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { t as buildWorkspaceSkillStatus } from "./skills-status-CWkBweWW.js";
|
|
1
|
+
import { C as buildAllowedModelSet, K as VENICE_DEFAULT_MODEL_REF, M as resolveAllowlistModelKey, N as resolveConfiguredModelRef, O as modelKey, S as resolveOpenClawAgentDir, T as buildModelAliasIndex, X as SYNTHETIC_DEFAULT_MODEL_REF, _ as ensureAuthProfileStore, _t as DEFAULT_PROVIDER, c as CHUTES_AUTHORIZE_ENDPOINT, d as parseOAuthCallbackInput, et as getCustomProviderApiKey, ft as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, g as upsertAuthProfile, gt as DEFAULT_MODEL, it as resolveEnvApiKey, k as normalizeProviderId, l as exchangeChutesCodeForTokens, n as resolveAuthProfileOrder, p as listProfilesForProvider, u as generateChutesPkce } from "./auth-profiles-CYBuGiBb.js";
|
|
2
|
+
import { t as formatCliCommand } from "./command-format-ayFsmwwz.js";
|
|
3
|
+
import { d as resolveConfigDir, m as resolveUserPath, o as ensureDir, t as CONFIG_DIR } from "./utils-DX85MiPR.js";
|
|
4
|
+
import { t as runCommandWithTimeout } from "./exec-B8JKbXKW.js";
|
|
5
|
+
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-C9VjJXEK.js";
|
|
6
|
+
import { t as resolveBrewExecutable } from "./brew-CcZV0dSS.js";
|
|
7
|
+
import { Kt as loadModelCatalog, m as openUrl, o as detectBinary, y as resolveNodeManagerOptions } from "./loader-_Pj-TZS2.js";
|
|
8
|
+
import { a as enablePluginInConfig } from "./onboard-channels-D-ZQTy5V.js";
|
|
9
|
+
import { t as scanDirectoryWithSummary } from "./skill-scanner-Bp1D9gra.js";
|
|
10
|
+
import { R as fetchWithSsrFGuard } from "./deliver-Cau4HL7W.js";
|
|
11
|
+
import { _ as resolveSkillKey, d as hasBinary, i as loadWorkspaceSkillEntries, t as resolveSkillsInstallPreferences } from "./skills-CmU0Q92f.js";
|
|
12
|
+
import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-CsSylzXH.js";
|
|
13
|
+
import { $ as setVeniceApiKey, A as applySyntheticProviderConfig, B as OPENROUTER_DEFAULT_MODEL_REF, C as applyMoonshotConfig, D as applyOpenrouterConfig, E as applyMoonshotProviderConfigCn, F as applyXaiConfig, G as setCloudflareAiGatewayConfig, H as XIAOMI_DEFAULT_MODEL_REF, I as applyXaiProviderConfig, J as setMinimaxApiKey, K as setGeminiApiKey, L as applyXiaomiConfig, M as applyVeniceProviderConfig, N as applyVercelAiGatewayConfig, O as applyOpenrouterProviderConfig, P as applyVercelAiGatewayProviderConfig, Q as setSyntheticApiKey, R as applyXiaomiProviderConfig, S as applyKimiCodeProviderConfig, T as applyMoonshotProviderConfig, U as ZAI_DEFAULT_MODEL_REF, V as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, W as setAnthropicApiKey, X as setOpencodeZenApiKey, Y as setMoonshotApiKey, Z as setOpenrouterApiKey, _ as applyMinimaxProviderConfig, at as KIMI_CODING_MODEL_REF, b as applyCloudflareAiGatewayProviderConfig, ct as buildTokenProfileId, d as resolvePluginProviders, et as setVercelAiGatewayApiKey, f as applyOpencodeZenConfig, g as applyMinimaxConfig, h as applyMinimaxApiProviderConfig, i as formatTokenK, it as writeOAuthCredentials, j as applyVeniceConfig, k as applySyntheticConfig, l as createVpsAwareOAuthHandlers, lt as validateAnthropicSetupToken, m as applyMinimaxApiConfig, nt as setXiaomiApiKey, ot as MOONSHOT_DEFAULT_MODEL_REF, p as applyOpencodeZenProviderConfig, q as setKimiCodingApiKey, rt as setZaiApiKey, st as XAI_DEFAULT_MODEL_REF, t as githubCopilotLoginCommand, tt as setXaiApiKey, u as isRemoteEnvironment, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyZaiConfig } from "./github-copilot-auth-B_lK1g__.js";
|
|
14
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-DtXrj3fy.js";
|
|
16
15
|
import path from "node:path";
|
|
17
16
|
import fs from "node:fs";
|
|
18
|
-
import { fileURLToPath } from "node:url";
|
|
19
17
|
import { loginOpenAICodex } from "@mariozechner/pi-ai";
|
|
20
18
|
import { randomBytes } from "node:crypto";
|
|
21
19
|
import { createServer } from "node:http";
|
|
@@ -402,148 +400,15 @@ async function discoverGatewayBeacons(opts = {}) {
|
|
|
402
400
|
return [];
|
|
403
401
|
}
|
|
404
402
|
|
|
405
|
-
//#endregion
|
|
406
|
-
//#region src/infra/control-ui-assets.ts
|
|
407
|
-
function resolveControlUiRepoRoot(argv1 = process.argv[1]) {
|
|
408
|
-
if (!argv1) return null;
|
|
409
|
-
const normalized = path.resolve(argv1);
|
|
410
|
-
const parts = normalized.split(path.sep);
|
|
411
|
-
const srcIndex = parts.lastIndexOf("src");
|
|
412
|
-
if (srcIndex !== -1) {
|
|
413
|
-
const root = parts.slice(0, srcIndex).join(path.sep);
|
|
414
|
-
if (fs.existsSync(path.join(root, "ui", "vite.config.ts"))) return root;
|
|
415
|
-
}
|
|
416
|
-
let dir = path.dirname(normalized);
|
|
417
|
-
for (let i = 0; i < 8; i++) {
|
|
418
|
-
if (fs.existsSync(path.join(dir, "package.json")) && fs.existsSync(path.join(dir, "ui", "vite.config.ts"))) return dir;
|
|
419
|
-
const parent = path.dirname(dir);
|
|
420
|
-
if (parent === dir) break;
|
|
421
|
-
dir = parent;
|
|
422
|
-
}
|
|
423
|
-
return null;
|
|
424
|
-
}
|
|
425
|
-
async function resolveControlUiDistIndexPath(argv1 = process.argv[1]) {
|
|
426
|
-
if (!argv1) return null;
|
|
427
|
-
const normalized = path.resolve(argv1);
|
|
428
|
-
const distDir = path.dirname(normalized);
|
|
429
|
-
if (path.basename(distDir) === "dist") return path.join(distDir, "control-ui", "index.html");
|
|
430
|
-
const packageRoot = await resolveOpenClawPackageRoot({ argv1: normalized });
|
|
431
|
-
if (!packageRoot) return null;
|
|
432
|
-
return path.join(packageRoot, "dist", "control-ui", "index.html");
|
|
433
|
-
}
|
|
434
|
-
function addCandidate(candidates, value) {
|
|
435
|
-
if (!value) return;
|
|
436
|
-
candidates.add(path.resolve(value));
|
|
437
|
-
}
|
|
438
|
-
function resolveControlUiRootOverrideSync(rootOverride) {
|
|
439
|
-
const resolved = path.resolve(rootOverride);
|
|
440
|
-
try {
|
|
441
|
-
const stats = fs.statSync(resolved);
|
|
442
|
-
if (stats.isFile()) return path.basename(resolved) === "index.html" ? path.dirname(resolved) : null;
|
|
443
|
-
if (stats.isDirectory()) {
|
|
444
|
-
const indexPath = path.join(resolved, "index.html");
|
|
445
|
-
return fs.existsSync(indexPath) ? resolved : null;
|
|
446
|
-
}
|
|
447
|
-
} catch {
|
|
448
|
-
return null;
|
|
449
|
-
}
|
|
450
|
-
return null;
|
|
451
|
-
}
|
|
452
|
-
function resolveControlUiRootSync(opts = {}) {
|
|
453
|
-
const candidates = /* @__PURE__ */ new Set();
|
|
454
|
-
const argv1 = opts.argv1 ?? process.argv[1];
|
|
455
|
-
const cwd = opts.cwd ?? process.cwd();
|
|
456
|
-
const moduleDir = opts.moduleUrl ? path.dirname(fileURLToPath(opts.moduleUrl)) : null;
|
|
457
|
-
const argv1Dir = argv1 ? path.dirname(path.resolve(argv1)) : null;
|
|
458
|
-
const execDir = (() => {
|
|
459
|
-
try {
|
|
460
|
-
const execPath = opts.execPath ?? process.execPath;
|
|
461
|
-
return path.dirname(fs.realpathSync(execPath));
|
|
462
|
-
} catch {
|
|
463
|
-
return null;
|
|
464
|
-
}
|
|
465
|
-
})();
|
|
466
|
-
const packageRoot = resolveOpenClawPackageRootSync({
|
|
467
|
-
argv1,
|
|
468
|
-
moduleUrl: opts.moduleUrl,
|
|
469
|
-
cwd
|
|
470
|
-
});
|
|
471
|
-
addCandidate(candidates, execDir ? path.join(execDir, "control-ui") : null);
|
|
472
|
-
if (moduleDir) {
|
|
473
|
-
addCandidate(candidates, path.join(moduleDir, "control-ui"));
|
|
474
|
-
addCandidate(candidates, path.join(moduleDir, "../control-ui"));
|
|
475
|
-
addCandidate(candidates, path.join(moduleDir, "../../dist/control-ui"));
|
|
476
|
-
}
|
|
477
|
-
if (argv1Dir) {
|
|
478
|
-
addCandidate(candidates, path.join(argv1Dir, "dist", "control-ui"));
|
|
479
|
-
addCandidate(candidates, path.join(argv1Dir, "control-ui"));
|
|
480
|
-
}
|
|
481
|
-
if (packageRoot) addCandidate(candidates, path.join(packageRoot, "dist", "control-ui"));
|
|
482
|
-
addCandidate(candidates, path.join(cwd, "dist", "control-ui"));
|
|
483
|
-
for (const dir of candidates) {
|
|
484
|
-
const indexPath = path.join(dir, "index.html");
|
|
485
|
-
if (fs.existsSync(indexPath)) return dir;
|
|
486
|
-
}
|
|
487
|
-
return null;
|
|
488
|
-
}
|
|
489
|
-
function summarizeCommandOutput(text) {
|
|
490
|
-
const lines = text.split(/\r?\n/g).map((l) => l.trim()).filter(Boolean);
|
|
491
|
-
if (!lines.length) return;
|
|
492
|
-
const last = lines.at(-1);
|
|
493
|
-
if (!last) return;
|
|
494
|
-
return last.length > 240 ? `${last.slice(0, 239)}…` : last;
|
|
495
|
-
}
|
|
496
|
-
async function ensureControlUiAssetsBuilt(runtime = defaultRuntime, opts) {
|
|
497
|
-
const indexFromDist = await resolveControlUiDistIndexPath(process.argv[1]);
|
|
498
|
-
if (indexFromDist && fs.existsSync(indexFromDist)) return {
|
|
499
|
-
ok: true,
|
|
500
|
-
built: false
|
|
501
|
-
};
|
|
502
|
-
const repoRoot = resolveControlUiRepoRoot(process.argv[1]);
|
|
503
|
-
if (!repoRoot) return {
|
|
504
|
-
ok: false,
|
|
505
|
-
built: false,
|
|
506
|
-
message: `${indexFromDist ? `Missing Control UI assets at ${indexFromDist}` : "Missing Control UI assets"}. Build them with \`pnpm ui:build\` (auto-installs UI deps).`
|
|
507
|
-
};
|
|
508
|
-
const indexPath = path.join(repoRoot, "dist", "control-ui", "index.html");
|
|
509
|
-
if (fs.existsSync(indexPath)) return {
|
|
510
|
-
ok: true,
|
|
511
|
-
built: false
|
|
512
|
-
};
|
|
513
|
-
const uiScript = path.join(repoRoot, "scripts", "ui.js");
|
|
514
|
-
if (!fs.existsSync(uiScript)) return {
|
|
515
|
-
ok: false,
|
|
516
|
-
built: false,
|
|
517
|
-
message: `Control UI assets missing but ${uiScript} is unavailable.`
|
|
518
|
-
};
|
|
519
|
-
runtime.log("Control UI assets missing; building (ui:build, auto-installs UI deps)…");
|
|
520
|
-
const build = await runCommandWithTimeout([
|
|
521
|
-
process.execPath,
|
|
522
|
-
uiScript,
|
|
523
|
-
"build"
|
|
524
|
-
], {
|
|
525
|
-
cwd: repoRoot,
|
|
526
|
-
timeoutMs: opts?.timeoutMs ?? 10 * 6e4
|
|
527
|
-
});
|
|
528
|
-
if (build.code !== 0) return {
|
|
529
|
-
ok: false,
|
|
530
|
-
built: false,
|
|
531
|
-
message: `Control UI build failed: ${summarizeCommandOutput(build.stderr) ?? `exit ${build.code}`}`
|
|
532
|
-
};
|
|
533
|
-
if (!fs.existsSync(indexPath)) return {
|
|
534
|
-
ok: false,
|
|
535
|
-
built: true,
|
|
536
|
-
message: `Control UI build completed but ${indexPath} is still missing.`
|
|
537
|
-
};
|
|
538
|
-
return {
|
|
539
|
-
ok: true,
|
|
540
|
-
built: true
|
|
541
|
-
};
|
|
542
|
-
}
|
|
543
|
-
|
|
544
403
|
//#endregion
|
|
545
404
|
//#region src/commands/auth-choice-options.ts
|
|
546
405
|
const AUTH_CHOICE_GROUP_DEFS = [
|
|
406
|
+
{
|
|
407
|
+
value: "xai",
|
|
408
|
+
label: "xAI (Grok)",
|
|
409
|
+
hint: "API key",
|
|
410
|
+
choices: ["xai-api-key"]
|
|
411
|
+
},
|
|
547
412
|
{
|
|
548
413
|
value: "openai",
|
|
549
414
|
label: "OpenAI",
|
|
@@ -671,6 +536,10 @@ function buildAuthChoiceOptions(params) {
|
|
|
671
536
|
value: "openrouter-api-key",
|
|
672
537
|
label: "OpenRouter API key"
|
|
673
538
|
});
|
|
539
|
+
options.push({
|
|
540
|
+
value: "xai-api-key",
|
|
541
|
+
label: "xAI (Grok) API key"
|
|
542
|
+
});
|
|
674
543
|
options.push({
|
|
675
544
|
value: "ai-gateway-api-key",
|
|
676
545
|
label: "Vercel AI Gateway API key"
|
|
@@ -918,6 +787,28 @@ async function applyAuthChoiceAnthropic(params) {
|
|
|
918
787
|
return null;
|
|
919
788
|
}
|
|
920
789
|
|
|
790
|
+
//#endregion
|
|
791
|
+
//#region src/commands/model-allowlist.ts
|
|
792
|
+
function ensureModelAllowlistEntry(params) {
|
|
793
|
+
const rawModelRef = params.modelRef.trim();
|
|
794
|
+
if (!rawModelRef) return params.cfg;
|
|
795
|
+
const models = { ...params.cfg.agents?.defaults?.models };
|
|
796
|
+
const keySet = new Set([rawModelRef]);
|
|
797
|
+
const canonicalKey = resolveAllowlistModelKey(rawModelRef, params.defaultProvider ?? DEFAULT_PROVIDER);
|
|
798
|
+
if (canonicalKey) keySet.add(canonicalKey);
|
|
799
|
+
for (const key of keySet) models[key] = { ...models[key] };
|
|
800
|
+
return {
|
|
801
|
+
...params.cfg,
|
|
802
|
+
agents: {
|
|
803
|
+
...params.cfg.agents,
|
|
804
|
+
defaults: {
|
|
805
|
+
...params.cfg.agents?.defaults,
|
|
806
|
+
models
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
};
|
|
810
|
+
}
|
|
811
|
+
|
|
921
812
|
//#endregion
|
|
922
813
|
//#region src/commands/auth-choice.default-model.ts
|
|
923
814
|
async function applyDefaultModelChoice(params) {
|
|
@@ -926,10 +817,13 @@ async function applyDefaultModelChoice(params) {
|
|
|
926
817
|
if (params.noteDefault) await params.prompter.note(`Default model set to ${params.noteDefault}`, "Model configured");
|
|
927
818
|
return { config: next };
|
|
928
819
|
}
|
|
929
|
-
const
|
|
820
|
+
const nextWithModel = ensureModelAllowlistEntry({
|
|
821
|
+
cfg: params.applyProviderConfig(params.config),
|
|
822
|
+
modelRef: params.defaultModel
|
|
823
|
+
});
|
|
930
824
|
await params.noteAgentModel(params.defaultModel);
|
|
931
825
|
return {
|
|
932
|
-
config:
|
|
826
|
+
config: nextWithModel,
|
|
933
827
|
agentModelOverride: params.defaultModel
|
|
934
828
|
};
|
|
935
829
|
}
|
|
@@ -966,7 +860,7 @@ function applyGoogleGeminiModelDefault(cfg) {
|
|
|
966
860
|
|
|
967
861
|
//#endregion
|
|
968
862
|
//#region src/commands/opencode-zen-model-default.ts
|
|
969
|
-
const OPENCODE_ZEN_DEFAULT_MODEL = "opencode/claude-opus-4-
|
|
863
|
+
const OPENCODE_ZEN_DEFAULT_MODEL = "opencode/claude-opus-4-6";
|
|
970
864
|
|
|
971
865
|
//#endregion
|
|
972
866
|
//#region src/commands/auth-choice.apply.api-providers.ts
|
|
@@ -1567,7 +1461,7 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
1567
1461
|
if (!hasCredential) await params.prompter.note([
|
|
1568
1462
|
"OpenCode Zen provides access to Claude, GPT, Gemini, and more models.",
|
|
1569
1463
|
"Get your API key at: https://opencode.ai/auth",
|
|
1570
|
-
"
|
|
1464
|
+
"OpenCode Zen bills per request. Check your OpenCode dashboard for details."
|
|
1571
1465
|
].join("\n"), "OpenCode Zen");
|
|
1572
1466
|
const envKey = resolveEnvApiKey("opencode");
|
|
1573
1467
|
if (envKey) {
|
|
@@ -2143,7 +2037,7 @@ function upsertSharedEnvVar(params) {
|
|
|
2143
2037
|
|
|
2144
2038
|
//#endregion
|
|
2145
2039
|
//#region src/commands/openai-codex-model-default.ts
|
|
2146
|
-
const OPENAI_CODEX_DEFAULT_MODEL = "openai-codex/gpt-5.
|
|
2040
|
+
const OPENAI_CODEX_DEFAULT_MODEL = "openai-codex/gpt-5.3-codex";
|
|
2147
2041
|
function shouldSetOpenAICodexModel(model) {
|
|
2148
2042
|
const trimmed = model?.trim();
|
|
2149
2043
|
if (!trimmed) return true;
|
|
@@ -2179,12 +2073,59 @@ function applyOpenAICodexModelDefault(cfg) {
|
|
|
2179
2073
|
};
|
|
2180
2074
|
}
|
|
2181
2075
|
|
|
2076
|
+
//#endregion
|
|
2077
|
+
//#region src/commands/openai-model-default.ts
|
|
2078
|
+
const OPENAI_DEFAULT_MODEL = "openai/gpt-5.1-codex";
|
|
2079
|
+
function applyOpenAIProviderConfig(cfg) {
|
|
2080
|
+
const next = ensureModelAllowlistEntry({
|
|
2081
|
+
cfg,
|
|
2082
|
+
modelRef: OPENAI_DEFAULT_MODEL
|
|
2083
|
+
});
|
|
2084
|
+
const models = { ...next.agents?.defaults?.models };
|
|
2085
|
+
models[OPENAI_DEFAULT_MODEL] = {
|
|
2086
|
+
...models[OPENAI_DEFAULT_MODEL],
|
|
2087
|
+
alias: models[OPENAI_DEFAULT_MODEL]?.alias ?? "GPT"
|
|
2088
|
+
};
|
|
2089
|
+
return {
|
|
2090
|
+
...next,
|
|
2091
|
+
agents: {
|
|
2092
|
+
...next.agents,
|
|
2093
|
+
defaults: {
|
|
2094
|
+
...next.agents?.defaults,
|
|
2095
|
+
models
|
|
2096
|
+
}
|
|
2097
|
+
}
|
|
2098
|
+
};
|
|
2099
|
+
}
|
|
2100
|
+
function applyOpenAIConfig(cfg) {
|
|
2101
|
+
const next = applyOpenAIProviderConfig(cfg);
|
|
2102
|
+
return {
|
|
2103
|
+
...next,
|
|
2104
|
+
agents: {
|
|
2105
|
+
...next.agents,
|
|
2106
|
+
defaults: {
|
|
2107
|
+
...next.agents?.defaults,
|
|
2108
|
+
model: next.agents?.defaults?.model && typeof next.agents.defaults.model === "object" ? {
|
|
2109
|
+
...next.agents.defaults.model,
|
|
2110
|
+
primary: OPENAI_DEFAULT_MODEL
|
|
2111
|
+
} : { primary: OPENAI_DEFAULT_MODEL }
|
|
2112
|
+
}
|
|
2113
|
+
}
|
|
2114
|
+
};
|
|
2115
|
+
}
|
|
2116
|
+
|
|
2182
2117
|
//#endregion
|
|
2183
2118
|
//#region src/commands/auth-choice.apply.openai.ts
|
|
2184
2119
|
async function applyAuthChoiceOpenAI(params) {
|
|
2185
2120
|
let authChoice = params.authChoice;
|
|
2186
2121
|
if (authChoice === "apiKey" && params.opts?.tokenProvider === "openai") authChoice = "openai-api-key";
|
|
2187
2122
|
if (authChoice === "openai-api-key") {
|
|
2123
|
+
let nextConfig = params.config;
|
|
2124
|
+
let agentModelOverride;
|
|
2125
|
+
const noteAgentModel = async (model) => {
|
|
2126
|
+
if (!params.agentId) return;
|
|
2127
|
+
await params.prompter.note(`Default model set to ${model} for agent "${params.agentId}".`, "Model configured");
|
|
2128
|
+
};
|
|
2188
2129
|
const envKey = resolveEnvApiKey("openai");
|
|
2189
2130
|
if (envKey) {
|
|
2190
2131
|
if (await params.prompter.confirm({
|
|
@@ -2197,7 +2138,22 @@ async function applyAuthChoiceOpenAI(params) {
|
|
|
2197
2138
|
});
|
|
2198
2139
|
if (!process.env.OPENAI_API_KEY) process.env.OPENAI_API_KEY = envKey.apiKey;
|
|
2199
2140
|
await params.prompter.note(`Copied OPENAI_API_KEY to ${result.path} for launchd compatibility.`, "OpenAI API key");
|
|
2200
|
-
|
|
2141
|
+
const applied = await applyDefaultModelChoice({
|
|
2142
|
+
config: nextConfig,
|
|
2143
|
+
setDefaultModel: params.setDefaultModel,
|
|
2144
|
+
defaultModel: OPENAI_DEFAULT_MODEL,
|
|
2145
|
+
applyDefaultConfig: applyOpenAIConfig,
|
|
2146
|
+
applyProviderConfig: applyOpenAIProviderConfig,
|
|
2147
|
+
noteDefault: OPENAI_DEFAULT_MODEL,
|
|
2148
|
+
noteAgentModel,
|
|
2149
|
+
prompter: params.prompter
|
|
2150
|
+
});
|
|
2151
|
+
nextConfig = applied.config;
|
|
2152
|
+
agentModelOverride = applied.agentModelOverride ?? agentModelOverride;
|
|
2153
|
+
return {
|
|
2154
|
+
config: nextConfig,
|
|
2155
|
+
agentModelOverride
|
|
2156
|
+
};
|
|
2201
2157
|
}
|
|
2202
2158
|
}
|
|
2203
2159
|
let key;
|
|
@@ -2213,7 +2169,22 @@ async function applyAuthChoiceOpenAI(params) {
|
|
|
2213
2169
|
});
|
|
2214
2170
|
process.env.OPENAI_API_KEY = trimmed;
|
|
2215
2171
|
await params.prompter.note(`Saved OPENAI_API_KEY to ${result.path} for launchd compatibility.`, "OpenAI API key");
|
|
2216
|
-
|
|
2172
|
+
const applied = await applyDefaultModelChoice({
|
|
2173
|
+
config: nextConfig,
|
|
2174
|
+
setDefaultModel: params.setDefaultModel,
|
|
2175
|
+
defaultModel: OPENAI_DEFAULT_MODEL,
|
|
2176
|
+
applyDefaultConfig: applyOpenAIConfig,
|
|
2177
|
+
applyProviderConfig: applyOpenAIProviderConfig,
|
|
2178
|
+
noteDefault: OPENAI_DEFAULT_MODEL,
|
|
2179
|
+
noteAgentModel,
|
|
2180
|
+
prompter: params.prompter
|
|
2181
|
+
});
|
|
2182
|
+
nextConfig = applied.config;
|
|
2183
|
+
agentModelOverride = applied.agentModelOverride ?? agentModelOverride;
|
|
2184
|
+
return {
|
|
2185
|
+
config: nextConfig,
|
|
2186
|
+
agentModelOverride
|
|
2187
|
+
};
|
|
2217
2188
|
}
|
|
2218
2189
|
if (params.authChoice === "openai-codex") {
|
|
2219
2190
|
let nextConfig = params.config;
|
|
@@ -2289,6 +2260,66 @@ async function applyAuthChoiceQwenPortal(params) {
|
|
|
2289
2260
|
});
|
|
2290
2261
|
}
|
|
2291
2262
|
|
|
2263
|
+
//#endregion
|
|
2264
|
+
//#region src/commands/auth-choice.apply.xai.ts
|
|
2265
|
+
async function applyAuthChoiceXAI(params) {
|
|
2266
|
+
if (params.authChoice !== "xai-api-key") return null;
|
|
2267
|
+
let nextConfig = params.config;
|
|
2268
|
+
let agentModelOverride;
|
|
2269
|
+
const noteAgentModel = async (model) => {
|
|
2270
|
+
if (!params.agentId) return;
|
|
2271
|
+
await params.prompter.note(`Default model set to ${model} for agent "${params.agentId}".`, "Model configured");
|
|
2272
|
+
};
|
|
2273
|
+
let hasCredential = false;
|
|
2274
|
+
const optsKey = params.opts?.xaiApiKey?.trim();
|
|
2275
|
+
if (optsKey) {
|
|
2276
|
+
setXaiApiKey(normalizeApiKeyInput(optsKey), params.agentDir);
|
|
2277
|
+
hasCredential = true;
|
|
2278
|
+
}
|
|
2279
|
+
if (!hasCredential) {
|
|
2280
|
+
const envKey = resolveEnvApiKey("xai");
|
|
2281
|
+
if (envKey) {
|
|
2282
|
+
if (await params.prompter.confirm({
|
|
2283
|
+
message: `Use existing XAI_API_KEY (${envKey.source}, ${formatApiKeyPreview(envKey.apiKey)})?`,
|
|
2284
|
+
initialValue: true
|
|
2285
|
+
})) {
|
|
2286
|
+
setXaiApiKey(envKey.apiKey, params.agentDir);
|
|
2287
|
+
hasCredential = true;
|
|
2288
|
+
}
|
|
2289
|
+
}
|
|
2290
|
+
}
|
|
2291
|
+
if (!hasCredential) {
|
|
2292
|
+
const key = await params.prompter.text({
|
|
2293
|
+
message: "Enter xAI API key",
|
|
2294
|
+
validate: validateApiKeyInput
|
|
2295
|
+
});
|
|
2296
|
+
setXaiApiKey(normalizeApiKeyInput(String(key)), params.agentDir);
|
|
2297
|
+
}
|
|
2298
|
+
nextConfig = applyAuthProfileConfig(nextConfig, {
|
|
2299
|
+
profileId: "xai:default",
|
|
2300
|
+
provider: "xai",
|
|
2301
|
+
mode: "api_key"
|
|
2302
|
+
});
|
|
2303
|
+
{
|
|
2304
|
+
const applied = await applyDefaultModelChoice({
|
|
2305
|
+
config: nextConfig,
|
|
2306
|
+
setDefaultModel: params.setDefaultModel,
|
|
2307
|
+
defaultModel: XAI_DEFAULT_MODEL_REF,
|
|
2308
|
+
applyDefaultConfig: applyXaiConfig,
|
|
2309
|
+
applyProviderConfig: applyXaiProviderConfig,
|
|
2310
|
+
noteDefault: XAI_DEFAULT_MODEL_REF,
|
|
2311
|
+
noteAgentModel,
|
|
2312
|
+
prompter: params.prompter
|
|
2313
|
+
});
|
|
2314
|
+
nextConfig = applied.config;
|
|
2315
|
+
agentModelOverride = applied.agentModelOverride ?? agentModelOverride;
|
|
2316
|
+
}
|
|
2317
|
+
return {
|
|
2318
|
+
config: nextConfig,
|
|
2319
|
+
agentModelOverride
|
|
2320
|
+
};
|
|
2321
|
+
}
|
|
2322
|
+
|
|
2292
2323
|
//#endregion
|
|
2293
2324
|
//#region src/commands/auth-choice.apply.ts
|
|
2294
2325
|
async function applyAuthChoice(params) {
|
|
@@ -2302,7 +2333,8 @@ async function applyAuthChoice(params) {
|
|
|
2302
2333
|
applyAuthChoiceGoogleAntigravity,
|
|
2303
2334
|
applyAuthChoiceGoogleGeminiCli,
|
|
2304
2335
|
applyAuthChoiceCopilotProxy,
|
|
2305
|
-
applyAuthChoiceQwenPortal
|
|
2336
|
+
applyAuthChoiceQwenPortal,
|
|
2337
|
+
applyAuthChoiceXAI
|
|
2306
2338
|
];
|
|
2307
2339
|
for (const handler of handlers) {
|
|
2308
2340
|
const result = await handler(params);
|
|
@@ -2384,6 +2416,7 @@ const PREFERRED_PROVIDER_BY_AUTH_CHOICE = {
|
|
|
2384
2416
|
"minimax-api-lightning": "minimax",
|
|
2385
2417
|
minimax: "lmstudio",
|
|
2386
2418
|
"opencode-zen": "opencode",
|
|
2419
|
+
"xai-api-key": "xai",
|
|
2387
2420
|
"qwen-portal": "qwen-portal",
|
|
2388
2421
|
"minimax-portal": "minimax-portal"
|
|
2389
2422
|
};
|
|
@@ -2583,7 +2616,7 @@ async function promptModelAllowlist(params) {
|
|
|
2583
2616
|
const raw = await params.prompter.text({
|
|
2584
2617
|
message: params.message ?? "Allowlist models (comma-separated provider/model; blank to keep current)",
|
|
2585
2618
|
initialValue: existingKeys.join(", "),
|
|
2586
|
-
placeholder:
|
|
2619
|
+
placeholder: `${OPENAI_CODEX_DEFAULT_MODEL}, anthropic/claude-opus-4-6`
|
|
2587
2620
|
});
|
|
2588
2621
|
const parsed = String(raw ?? "").split(",").map((value) => value.trim()).filter((value) => value.length > 0);
|
|
2589
2622
|
if (parsed.length === 0) return {};
|
|
@@ -2859,6 +2892,33 @@ function formatInstallFailureMessage(result) {
|
|
|
2859
2892
|
if (!summary) return `Install failed (${code})`;
|
|
2860
2893
|
return `Install failed (${code}): ${summary}`;
|
|
2861
2894
|
}
|
|
2895
|
+
function withWarnings(result, warnings) {
|
|
2896
|
+
if (warnings.length === 0) return result;
|
|
2897
|
+
return {
|
|
2898
|
+
...result,
|
|
2899
|
+
warnings: warnings.slice()
|
|
2900
|
+
};
|
|
2901
|
+
}
|
|
2902
|
+
function formatScanFindingDetail(rootDir, finding) {
|
|
2903
|
+
const relativePath = path.relative(rootDir, finding.file);
|
|
2904
|
+
const filePath = relativePath && relativePath !== "." && !relativePath.startsWith("..") ? relativePath : path.basename(finding.file);
|
|
2905
|
+
return `${finding.message} (${filePath}:${finding.line})`;
|
|
2906
|
+
}
|
|
2907
|
+
async function collectSkillInstallScanWarnings(entry) {
|
|
2908
|
+
const warnings = [];
|
|
2909
|
+
const skillName = entry.skill.name;
|
|
2910
|
+
const skillDir = path.resolve(entry.skill.baseDir);
|
|
2911
|
+
try {
|
|
2912
|
+
const summary = await scanDirectoryWithSummary(skillDir);
|
|
2913
|
+
if (summary.critical > 0) {
|
|
2914
|
+
const criticalDetails = summary.findings.filter((finding) => finding.severity === "critical").map((finding) => formatScanFindingDetail(skillDir, finding)).join("; ");
|
|
2915
|
+
warnings.push(`WARNING: Skill "${skillName}" contains dangerous code patterns: ${criticalDetails}`);
|
|
2916
|
+
} else if (summary.warn > 0) warnings.push(`Skill "${skillName}" has ${summary.warn} suspicious code pattern(s). Run "openclaw security audit --deep" for details.`);
|
|
2917
|
+
} catch (err) {
|
|
2918
|
+
warnings.push(`Skill "${skillName}" code safety scan failed (${String(err)}). Installation continues; run "openclaw security audit --deep" after install.`);
|
|
2919
|
+
}
|
|
2920
|
+
return warnings;
|
|
2921
|
+
}
|
|
2862
2922
|
function resolveInstallId(spec, index) {
|
|
2863
2923
|
return (spec.id ?? `${spec.kind}-${index}`).trim();
|
|
2864
2924
|
}
|
|
@@ -3093,61 +3153,62 @@ async function installSkill(params) {
|
|
|
3093
3153
|
code: null
|
|
3094
3154
|
};
|
|
3095
3155
|
const spec = findInstallSpec(entry, params.installId);
|
|
3096
|
-
|
|
3156
|
+
const warnings = await collectSkillInstallScanWarnings(entry);
|
|
3157
|
+
if (!spec) return withWarnings({
|
|
3097
3158
|
ok: false,
|
|
3098
3159
|
message: `Installer not found: ${params.installId}`,
|
|
3099
3160
|
stdout: "",
|
|
3100
3161
|
stderr: "",
|
|
3101
3162
|
code: null
|
|
3102
|
-
};
|
|
3103
|
-
if (spec.kind === "download") return await installDownloadSpec({
|
|
3163
|
+
}, warnings);
|
|
3164
|
+
if (spec.kind === "download") return withWarnings(await installDownloadSpec({
|
|
3104
3165
|
entry,
|
|
3105
3166
|
spec,
|
|
3106
3167
|
timeoutMs
|
|
3107
|
-
});
|
|
3168
|
+
}), warnings);
|
|
3108
3169
|
const command = buildInstallCommand(spec, resolveSkillsInstallPreferences(params.config));
|
|
3109
|
-
if (command.error) return {
|
|
3170
|
+
if (command.error) return withWarnings({
|
|
3110
3171
|
ok: false,
|
|
3111
3172
|
message: command.error,
|
|
3112
3173
|
stdout: "",
|
|
3113
3174
|
stderr: "",
|
|
3114
3175
|
code: null
|
|
3115
|
-
};
|
|
3176
|
+
}, warnings);
|
|
3116
3177
|
const brewExe = hasBinary("brew") ? "brew" : resolveBrewExecutable();
|
|
3117
|
-
if (spec.kind === "brew" && !brewExe) return {
|
|
3178
|
+
if (spec.kind === "brew" && !brewExe) return withWarnings({
|
|
3118
3179
|
ok: false,
|
|
3119
3180
|
message: "brew not installed",
|
|
3120
3181
|
stdout: "",
|
|
3121
3182
|
stderr: "",
|
|
3122
3183
|
code: null
|
|
3123
|
-
};
|
|
3184
|
+
}, warnings);
|
|
3124
3185
|
if (spec.kind === "uv" && !hasBinary("uv")) if (brewExe) {
|
|
3125
3186
|
const brewResult = await runCommandWithTimeout([
|
|
3126
3187
|
brewExe,
|
|
3127
3188
|
"install",
|
|
3128
3189
|
"uv"
|
|
3129
3190
|
], { timeoutMs });
|
|
3130
|
-
if (brewResult.code !== 0) return {
|
|
3191
|
+
if (brewResult.code !== 0) return withWarnings({
|
|
3131
3192
|
ok: false,
|
|
3132
3193
|
message: "Failed to install uv (brew)",
|
|
3133
3194
|
stdout: brewResult.stdout.trim(),
|
|
3134
3195
|
stderr: brewResult.stderr.trim(),
|
|
3135
3196
|
code: brewResult.code
|
|
3136
|
-
};
|
|
3137
|
-
} else return {
|
|
3197
|
+
}, warnings);
|
|
3198
|
+
} else return withWarnings({
|
|
3138
3199
|
ok: false,
|
|
3139
3200
|
message: "uv not installed (install via brew)",
|
|
3140
3201
|
stdout: "",
|
|
3141
3202
|
stderr: "",
|
|
3142
3203
|
code: null
|
|
3143
|
-
};
|
|
3144
|
-
if (!command.argv || command.argv.length === 0) return {
|
|
3204
|
+
}, warnings);
|
|
3205
|
+
if (!command.argv || command.argv.length === 0) return withWarnings({
|
|
3145
3206
|
ok: false,
|
|
3146
3207
|
message: "invalid install command",
|
|
3147
3208
|
stdout: "",
|
|
3148
3209
|
stderr: "",
|
|
3149
3210
|
code: null
|
|
3150
|
-
};
|
|
3211
|
+
}, warnings);
|
|
3151
3212
|
if (spec.kind === "brew" && brewExe && command.argv[0] === "brew") command.argv[0] = brewExe;
|
|
3152
3213
|
if (spec.kind === "go" && !hasBinary("go")) if (brewExe) {
|
|
3153
3214
|
const brewResult = await runCommandWithTimeout([
|
|
@@ -3155,20 +3216,20 @@ async function installSkill(params) {
|
|
|
3155
3216
|
"install",
|
|
3156
3217
|
"go"
|
|
3157
3218
|
], { timeoutMs });
|
|
3158
|
-
if (brewResult.code !== 0) return {
|
|
3219
|
+
if (brewResult.code !== 0) return withWarnings({
|
|
3159
3220
|
ok: false,
|
|
3160
3221
|
message: "Failed to install go (brew)",
|
|
3161
3222
|
stdout: brewResult.stdout.trim(),
|
|
3162
3223
|
stderr: brewResult.stderr.trim(),
|
|
3163
3224
|
code: brewResult.code
|
|
3164
|
-
};
|
|
3165
|
-
} else return {
|
|
3225
|
+
}, warnings);
|
|
3226
|
+
} else return withWarnings({
|
|
3166
3227
|
ok: false,
|
|
3167
3228
|
message: "go not installed (install via brew)",
|
|
3168
3229
|
stdout: "",
|
|
3169
3230
|
stderr: "",
|
|
3170
3231
|
code: null
|
|
3171
|
-
};
|
|
3232
|
+
}, warnings);
|
|
3172
3233
|
let env;
|
|
3173
3234
|
if (spec.kind === "go" && brewExe) {
|
|
3174
3235
|
const brewBin = await resolveBrewBinDir(timeoutMs, brewExe);
|
|
@@ -3195,13 +3256,13 @@ async function installSkill(params) {
|
|
|
3195
3256
|
}
|
|
3196
3257
|
})();
|
|
3197
3258
|
const success = result.code === 0;
|
|
3198
|
-
return {
|
|
3259
|
+
return withWarnings({
|
|
3199
3260
|
ok: success,
|
|
3200
3261
|
message: success ? "Installed" : formatInstallFailureMessage(result),
|
|
3201
3262
|
stdout: result.stdout.trim(),
|
|
3202
3263
|
stderr: result.stderr.trim(),
|
|
3203
3264
|
code: result.code
|
|
3204
|
-
};
|
|
3265
|
+
}, warnings);
|
|
3205
3266
|
}
|
|
3206
3267
|
|
|
3207
3268
|
//#endregion
|
|
@@ -3296,16 +3357,20 @@ async function setupSkills(cfg, workspaceDir, runtime, prompter) {
|
|
|
3296
3357
|
installId,
|
|
3297
3358
|
config: next
|
|
3298
3359
|
});
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
const
|
|
3303
|
-
|
|
3304
|
-
if (result.stderr) runtime.log(result.stderr.trim());
|
|
3305
|
-
else if (result.stdout) runtime.log(result.stdout.trim());
|
|
3306
|
-
runtime.log(`Tip: run \`${formatCliCommand("openclaw doctor")}\` to review skills + requirements.`);
|
|
3307
|
-
runtime.log("Docs: https://docs.openclaw.ai/skills");
|
|
3360
|
+
const warnings = result.warnings ?? [];
|
|
3361
|
+
if (result.ok) {
|
|
3362
|
+
spin.stop(warnings.length > 0 ? `Installed ${name} (with warnings)` : `Installed ${name}`);
|
|
3363
|
+
for (const warning of warnings) runtime.log(warning);
|
|
3364
|
+
continue;
|
|
3308
3365
|
}
|
|
3366
|
+
const code = result.code == null ? "" : ` (exit ${result.code})`;
|
|
3367
|
+
const detail = summarizeInstallFailure(result.message);
|
|
3368
|
+
spin.stop(`Install failed: ${name}${code}${detail ? ` — ${detail}` : ""}`);
|
|
3369
|
+
for (const warning of warnings) runtime.log(warning);
|
|
3370
|
+
if (result.stderr) runtime.log(result.stderr.trim());
|
|
3371
|
+
else if (result.stdout) runtime.log(result.stdout.trim());
|
|
3372
|
+
runtime.log(`Tip: run \`${formatCliCommand("openclaw doctor")}\` to review skills + requirements.`);
|
|
3373
|
+
runtime.log("Docs: https://docs.openclaw.ai/skills");
|
|
3309
3374
|
}
|
|
3310
3375
|
}
|
|
3311
3376
|
for (const skill of missing) {
|
|
@@ -3324,4 +3389,4 @@ async function setupSkills(cfg, workspaceDir, runtime, prompter) {
|
|
|
3324
3389
|
}
|
|
3325
3390
|
|
|
3326
3391
|
//#endregion
|
|
3327
|
-
export {
|
|
3392
|
+
export { applyModelFallbacksFromSelection as a, promptModelAllowlist as c, applyAuthChoice as d, applyOpenAIConfig as f, discoverGatewayBeacons as g, promptAuthChoiceGrouped as h, applyModelAllowlist as i, resolvePreferredProviderForAuthChoice as l, applyGoogleGeminiModelDefault as m, installSkill as n, applyPrimaryModel as o, upsertSharedEnvVar as p, promptRemoteGatewayConfig as r, promptDefaultModel as s, setupSkills as t, warnIfModelConfigLooksOff as u };
|