activeclaw 2026.2.11 → 2026.2.13
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 +106 -0
- package/dist/{accounts-DbzMEfKN.js → accounts-DCDeFTra.js} +2 -2
- package/dist/{accounts-C2elk6PC.js → accounts-DeqIQjo1.js} +2 -2
- package/dist/{acp-cli-CVFTdsQY.js → acp-cli-CeYI4XRd.js} +15 -16
- package/dist/{acp-cli-BpJwIyLl.js → acp-cli-rNbGXICg.js} +14 -15
- package/dist/{agent-Bz1r5O8q.js → agent-BvNJF5QL.js} +19 -15
- package/dist/{agent-22-R4bNS.js → agent-CyMxTyrG.js} +20 -16
- package/dist/{agent-scope-D8miw9q_.js → agent-scope-BIEhVP4_.js} +172 -4
- package/dist/{agent-scope-CGmuusG9.js → agent-scope-CQCus0rI.js} +3 -3
- package/dist/{agent-scope-DQuy3dwI.js → agent-scope-CsRbLH4l.js} +4 -4
- package/dist/{agent-scope-BEf5crnU.js → agent-scope-DPIFau3f.js} +5 -1
- package/dist/audio-preflight-BU8W7uxc.js +60 -0
- package/dist/audio-preflight-CGsumMzb.js +60 -0
- package/dist/audio-preflight-SLmkJI6-.js +74 -0
- package/dist/audio-preflight-jZc5mFCZ.js +71 -0
- package/dist/{audit-C4wLaF0D.js → audit-Dmww_503.js} +71 -19
- package/dist/{audit-CY-yopxa.js → audit-wPu26VMb.js} +72 -20
- package/dist/{tailscale-DU6DgqVy.js → auth-9x3lqfIY.js} +208 -3
- package/dist/{tailscale-Cu-2HNvU.js → auth-CQNl_IaI.js} +190 -3
- package/dist/{auth-health-BFKUoCwJ.js → auth-health-C4L4FGBA.js} +1 -1
- package/dist/{auth-health-d7BMZlWG.js → auth-health-j6epgQbq.js} +1 -1
- package/dist/{auth-profiles-Bv1AEm-Y.js → auth-profiles-ByNs3eEm.js} +87 -31
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +28 -22
- package/dist/bundled/session-memory/handler.js +33 -22
- package/dist/{call-7yrB6v4I.js → call-DVYCIV8m.js} +5 -5
- package/dist/{call-Bek1xlgk.js → call-SolyGS1r.js} +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-3mdYN0C_.js → channel-options-BwC2yQcR.js} +4 -4
- package/dist/{channel-options-DJ0b1m7B.js → channel-options-Cq9BVDkP.js} +12 -7
- package/dist/{channel-selection-RZimme3j.js → channel-selection-D4D6ImhN.js} +2 -2
- package/dist/{channel-selection-B9b7Kuit.js → channel-selection-MZAHm4U8.js} +2 -2
- package/dist/{channels-cli-CYbK2Dku.js → channels-cli-9Dsk9Qm7.js} +57 -53
- package/dist/{channels-cli-BFznbGOs.js → channels-cli-BJUppQll.js} +59 -55
- package/dist/{channels-status-issues-B3KkflfR.js → channels-status-issues-D7GSV1GS.js} +1 -1
- package/dist/{channels-status-issues-DQkRaZts.js → channels-status-issues-DDAWeT-6.js} +1 -1
- package/dist/{chrome-Db7w64LF.js → chrome-BfB6JdKF.js} +4 -4
- package/dist/{chrome-Dm-EgOjJ.js → chrome-Cvr-57lg.js} +6 -5
- package/dist/{chrome-CF16STk9.js → chrome-DL0avO8n.js} +2 -1
- package/dist/{chrome-yIKmOzCO.js → chrome-foEwx3lN.js} +5 -4
- package/dist/{clack-prompter-BCiBkJVr.js → clack-prompter-Bz3Mmcl-.js} +5 -5
- package/dist/{clack-prompter-DuBVnTKy.js → clack-prompter-ChCGXfyt.js} +4 -4
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-Cl3PdJei.js → cli-ZR9ugUBX.js} +42 -38
- package/dist/cli-miPe4Ujz.js +93 -0
- package/dist/{client-6xKrRC-1.js → client-BrYfyoDK.js} +54 -5
- package/dist/{client-DMloFP_O.js → client-CTwXnRl7.js} +54 -5
- package/dist/{command-format-ayFsmwwz.js → command-format-Bxe0mWee.js} +1 -1
- package/dist/{command-options-BTAzyqqb.js → command-options-BvgxzPbK.js} +9 -4
- package/dist/{commands-CjEGXOZ_.js → commands-BX_OIIVR.js} +4 -4
- package/dist/{completion-cli-DrJGfJGl.js → completion-cli-CR77-jyv.js} +3 -3
- package/dist/{completion-cli-DOec3E2Z.js → completion-cli-DnjpxAag.js} +30 -30
- package/dist/{config-B00lvFac.js → config-Bdhomfei.js} +21 -7
- package/dist/{config-XBdA0ciN.js → config-BvMsmctM.js} +83 -9
- package/dist/{config-BqGVMf1y.js → config-QYrbd7x7.js} +60 -6
- package/dist/{config--NUdpACy.js → config-aFQssWKX.js} +21 -7
- package/dist/{config-guard-4kCO_rnQ.js → config-guard-CljaSxJd.js} +160 -51
- package/dist/{configure-B69emwZv.js → configure-BXLiucXo.js} +28 -25
- package/dist/{configure-sMhpLzFf.js → configure-BYPqXzGZ.js} +28 -25
- package/dist/control-auth-8Cf4WXpR.js +54 -0
- package/dist/control-auth-DBCu3qyv.js +54 -0
- package/dist/{control-service-Db_1V-KY.js → control-service-B5KnPqGP.js} +11 -5
- package/dist/{control-service-IRAmbcbN.js → control-service-DKnttEus.js} +10 -4
- package/dist/control-ui/assets/{index-CnB9IO4a.js → index-B4LPvte9.js} +369 -369
- package/dist/control-ui/assets/index-B4LPvte9.js.map +1 -0
- package/dist/control-ui/index.html +1 -1
- package/dist/{cron-cli-Cum2324v.js → cron-cli-D7BRjDv2.js} +20 -20
- package/dist/{cron-cli-DhUWcYdk.js → cron-cli-z1zk_FXQ.js} +19 -19
- package/dist/{daemon-cli-q7nkEF5-.js → daemon-cli-BDkU2ocb.js} +60 -21
- package/dist/{daemon-cli-CTC2CHci.js → daemon-cli-cNSF93-v.js} +59 -20
- package/dist/{daemon-runtime-c0uXH4Dl.js → daemon-runtime-B0tg_LsX.js} +3 -3
- package/dist/{daemon-runtime-UsK-tOty.js → daemon-runtime-Bsjeut6m.js} +3 -3
- package/dist/{deliver-hf-WKyWd.js → deliver-CIU9Npgs.js} +373 -281
- package/dist/{deliver-CT6KiDqO.js → deliver-DYYCo1G7.js} +369 -278
- package/dist/{deliver-T9d44OpZ.js → deliver-LsxKETro.js} +371 -279
- package/dist/{deliver-CPy8jYj9.js → deliver-xUU3mGHo.js} +369 -277
- package/dist/{deps-Bv1kLtwo.js → deps-QSwGcoNZ.js} +2 -2
- package/dist/{deps-DFQdAWQc.js → deps-lAAA2zYI.js} +2 -2
- package/dist/{devices-cli-Cm7U1py9.js → devices-cli-BG3-2oqt.js} +14 -14
- package/dist/{devices-cli-ZpjlfK-e.js → devices-cli-VIQtOvt_.js} +14 -14
- package/dist/{directory-cli-B14TUSJA.js → directory-cli-BCJwjVC0.js} +16 -16
- package/dist/{directory-cli-67kzd4I5.js → directory-cli-jYzZ02gk.js} +14 -14
- package/dist/{dispatcher-3ElQWGVI.js → dispatcher-DY51b-Zc.js} +2 -2
- package/dist/{dns-cli-CU-xfhTN.js → dns-cli-DHIiMJjS.js} +12 -12
- package/dist/{dns-cli-Dqj7O6Q_.js → dns-cli-pZlv87Ib.js} +11 -11
- package/dist/{docs-cli-CamBqzb5.js → docs-cli-2JDiwfzP.js} +8 -8
- package/dist/{docs-cli-Cj3L5oqB.js → docs-cli-BhkYqoIQ.js} +7 -7
- package/dist/{doctor-BV1kvbMm.js → doctor-Bf8EhNtA.js} +36 -35
- package/dist/{doctor-BJirShBi.js → doctor-sYG5V4Co.js} +34 -33
- package/dist/entry.js +56 -18
- package/dist/{env-BxRc6wWv.js → env-ONzUVAG2.js} +1 -1
- package/dist/{exec-CijMSZd9.js → exec-B8lXct-k.js} +503 -14
- package/dist/{exec-B8JKbXKW.js → exec-CACT5OAW.js} +1 -1
- package/dist/{exec-57A8Rlc8.js → exec-CJFFoM7H.js} +32 -13
- package/dist/{exec-Cv_Ofd1m.js → exec-YIosokWE.js} +1 -1
- package/dist/{exec-approvals-cli-DEzz9Iai.js → exec-approvals-cli-7LH0lwhO.js} +21 -21
- package/dist/{exec-approvals-cli-DhXj3hQX.js → exec-approvals-cli-apGnQbpj.js} +21 -21
- package/dist/extensionAPI.js +7733 -8746
- package/dist/fetch-DmiOpALK.js +274 -0
- package/dist/fetch-timeout-BEtUjM1S.js +274 -0
- package/dist/fetch-timeout-DEoXG_SF.js +274 -0
- package/dist/fetch-timeout-DTK9vxex.js +274 -0
- package/dist/{gateway-cli-D1EdIq8I.js → gateway-cli-DUdYxlZS.js} +491 -136
- package/dist/{gateway-cli-B_xDUDy2.js → gateway-cli-DbvWmE-9.js} +495 -140
- package/dist/{gateway-rpc-3B5y445n.js → gateway-rpc-BByb2Snz.js} +3 -3
- package/dist/{gateway-rpc-BoL2vinh.js → gateway-rpc-wXSCUZXj.js} +3 -3
- package/dist/{github-copilot-auth-Omqrto0J.js → github-copilot-auth-D7ewvpMd.js} +205 -17
- package/dist/{github-copilot-auth-CZxurvdz.js → github-copilot-auth-DDispnyz.js} +205 -17
- package/dist/{github-copilot-token-SLWintYd.js → github-copilot-token-Cfs0Wxr8.js} +1 -1
- package/dist/{gmail-setup-utils-BXQKsLtI.js → gmail-setup-utils-Cfns8TQx.js} +3 -3
- package/dist/{gmail-setup-utils-CHcssBOA.js → gmail-setup-utils-DJb-_5kO.js} +4 -4
- package/dist/{health-format-Dy1caGsq.js → health-format-KGPokKJH.js} +97 -42
- package/dist/{health-format-DrGFg8bx.js → health-format-LZDxu3rv.js} +95 -40
- package/dist/{help-format-DAj7l5uV.js → help-format-C48TXngO.js} +1 -1
- package/dist/{help-format-CUnac_bT.js → help-format-R5fLToDw.js} +1 -1
- package/dist/{hooks-cli-ptEf6TIM.js → hooks-cli-CT8JCRkH.js} +51 -46
- package/dist/{hooks-cli-Bhf5VRp1.js → hooks-cli-S1MKumJO.js} +49 -44
- package/dist/{hooks-status-Br-2bK2G.js → hooks-status-Cw0xD8Lt.js} +3 -3
- package/dist/{hooks-status-DNQJSa4B.js → hooks-status-D9MhwHRp.js} +3 -3
- package/dist/{image-rOFfK3PJ.js → image-Brk1sJbw.js} +10 -7
- package/dist/{image-fUwR7slg.js → image-C4Nn2p3e.js} +10 -7
- package/dist/{image-Ds4NLGPR.js → image-DgtfXMcX.js} +9 -6
- package/dist/{image-Dnnxt82I.js → image-RKwc3fsL.js} +8 -5
- package/dist/index.js +208 -97
- package/dist/{installs-CRSjQxbR.js → installs-CrLcWYHe.js} +8 -7
- package/dist/{installs-89zeUsVn.js → installs-DscWb9b9.js} +8 -7
- package/dist/{links-7M-j83As.js → links-B8LAzWwg.js} +1 -1
- package/dist/{links-C591fM9M.js → links-Eax1UO3w.js} +1 -1
- package/dist/llm-slug-generator.js +18 -19
- package/dist/{loader-wXwp4rZJ.js → loader-KjT074JR.js} +5722 -6888
- package/dist/{logging-MMRGFxGI.js → logging-BAyPwvdH.js} +1 -1
- package/dist/{logging-DuK6YXuK.js → logging-CRq4h04P.js} +2 -2
- package/dist/{login-qr-wM8BnKJh.js → login-qr-B6ZgAuIf.js} +5 -5
- package/dist/{login-qr-CPEsT6dN.js → login-qr-Bua-p0nG.js} +3 -4
- package/dist/{login-qr-CGEu5TU-.js → login-qr-CuvemJj4.js} +6 -6
- package/dist/{login-qr-DH150tTp.js → login-qr-Djr1JfIf.js} +2 -2
- package/dist/{logs-cli-ClgkHnfT.js → logs-cli-9IAV7rWY.js} +38 -22
- package/dist/{logs-cli-CmfINsOj.js → logs-cli-EiKzUFPa.js} +37 -21
- package/dist/{manager-DYo4PlVM.js → manager-BIMh_eSm.js} +7 -8
- package/dist/{manager-D6EbxDV4.js → manager-CwinWQoz.js} +5 -5
- package/dist/{manager-BbnHek5T.js → manager-DkqF1GiK.js} +9 -9
- package/dist/{manager-CcVYv0N5.js → manager-T1XfGchB.js} +8 -8
- package/dist/{manifest-registry-3It8Z8yN.js → manifest-registry-CQhdnDBZ.js} +40 -2
- package/dist/{manifest-registry-D5SiA3xq.js → manifest-registry-u0okVSkU.js} +40 -2
- package/dist/{message-channel-Cu61-7H6.js → message-channel-BLi2a6Yw.js} +1 -1
- package/dist/{message-channel-BlgPSDAh.js → message-channel-C_MmebBt.js} +1 -1
- package/dist/{model-auth-ioeR_zLX.js → model-auth-CabXIF6O.js} +116 -34
- package/dist/{model-selection-BK7DuyH8.js → model-selection-BLuqsGVB.js} +86 -30
- package/dist/{model-selection-CezC36lH.js → model-selection-C1GmkTAV.js} +84 -28
- package/dist/{models-cli-C3uGdOrd.js → models-cli-9jmDv-h3.js} +52 -48
- package/dist/{models-cli-CUIVPgXE.js → models-cli-zS9rtWz8.js} +53 -49
- package/dist/{node-cli-BxBGSuPE.js → node-cli-CrpTxTTs.js} +28 -26
- package/dist/{node-cli-CdYAsuQQ.js → node-cli-wemUMCg-.js} +28 -26
- package/dist/{node-service-u8g85nD3.js → node-service-C8DTHTMg.js} +2 -2
- package/dist/{node-service-CM5vkdIo.js → node-service-WQuEKz6W.js} +2 -2
- package/dist/{nodes-cli-By6yeCTB.js → nodes-cli-BaU2SIFw.js} +20 -20
- package/dist/{nodes-cli-BaVMTAPc.js → nodes-cli-Dx23D72n.js} +20 -20
- package/dist/{nodes-screen-Dvl_ohUY.js → nodes-screen-C0IuBqUL.js} +1 -1
- package/dist/{note-5WqioBRA.js → note-BhRSeNeu.js} +2 -2
- package/dist/{note-Ci08TSbV.js → note-hhtubr2j.js} +1 -1
- package/dist/{onboard-channels-DxXvp8og.js → onboard-channels-C501x8GI.js} +8 -8
- package/dist/{onboard-channels-CXhnVy4E.js → onboard-channels-Dxzroasd.js} +8 -8
- package/dist/{onboard-skills-CBxsRGyf.js → onboard-skills-DV0Qzvjj.js} +440 -136
- package/dist/{onboard-skills-DQwOQ6Ry.js → onboard-skills-rlBHcu3Q.js} +439 -135
- package/dist/{onboarding-Du_7qEng.js → onboarding-CN-EDLjd.js} +38 -38
- package/dist/{openclaw-root-JLDMp6ux.js → openclaw-root-1VeFrph_.js} +4 -0
- package/dist/{openclaw-root-Dw6gumSU.js → openclaw-root-BNlEap4i.js} +4 -0
- package/dist/{pairing-cli-CRQDpj8f.js → pairing-cli-CDHG4xuI.js} +15 -15
- package/dist/{pairing-cli-Cng1KFWw.js → pairing-cli-CQP34Dlx.js} +15 -15
- package/dist/{pairing-labels-Ciu3Zoxj.js → pairing-labels-B6CN0SNH.js} +1 -1
- package/dist/{pairing-labels-CWFEtSc3.js → pairing-labels-CgNHnjzT.js} +1 -1
- package/dist/{pairing-store-c-QQ2u8p.js → pairing-store-CmlRVqOz.js} +2 -2
- package/dist/{pairing-store-CgXR3ZWJ.js → pairing-store-Dp5_JGnG.js} +3 -3
- package/dist/{path-env-CXWUFfFv.js → path-env-CLvYNwtL.js} +1 -1
- package/dist/{path-env-BgLvMbz_.js → path-env-CaYUVIML.js} +2 -2
- package/dist/{paths-MnZaxqPw.js → paths-B0a4ywSO.js} +30 -5
- package/dist/{paths-Bkhd_qY8.js → paths-B49s6UZQ.js} +30 -5
- package/dist/{paths-DL6EIRTw.js → paths-D0O87MfH.js} +30 -5
- package/dist/{paths-IivnSNkP.js → paths-DLINmNFQ.js} +31 -6
- package/dist/{pi-embedded-CgPTEqlB.js → pi-embedded-Ctrt2kz0.js} +8759 -9600
- package/dist/{pi-embedded-helpers-DYH6OWft.js → pi-embedded-helpers-CMKLjW6X.js} +68 -9
- package/dist/{pi-embedded-helpers-y1_Se0yq.js → pi-embedded-helpers-CUzTc1v6.js} +241 -24
- package/dist/{pi-embedded-helpers-Bkpd4fTr.js → pi-embedded-helpers-DfwkwPYD.js} +67 -8
- package/dist/{pi-embedded-helpers-BbWRSUnc.js → pi-embedded-helpers-WDwx99UA.js} +347 -32
- package/dist/{pi-tools.policy-akYsGFiA.js → pi-tools.policy-BpsROZbz.js} +4 -4
- package/dist/{plugin-auto-enable-lZwe2yX5.js → plugin-auto-enable-Bqhc3w5n.js} +5 -5
- package/dist/{plugin-auto-enable-AOSOJ-v1.js → plugin-auto-enable-PW76g_PJ.js} +5 -5
- package/dist/plugin-sdk/agents/bash-process-registry.d.ts +1 -0
- package/dist/plugin-sdk/agents/models-config.providers.d.ts +10 -0
- package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +5 -1
- package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +1 -1
- package/dist/plugin-sdk/agents/pi-embedded-runner/google.d.ts +1 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/payloads.d.ts +1 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/types.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/types.d.ts +15 -0
- package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.tools.d.ts +1 -1
- package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.types.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-embedded-subscribe.types.d.ts +2 -0
- package/dist/plugin-sdk/agents/session-tool-result-guard-wrapper.d.ts +2 -0
- package/dist/plugin-sdk/agents/session-tool-result-guard.d.ts +4 -0
- package/dist/plugin-sdk/agents/tools/agent-step.d.ts +3 -0
- package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +1 -1
- package/dist/plugin-sdk/agents/tools/web-search.d.ts +10 -1
- package/dist/plugin-sdk/agents/usage.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +1 -1
- package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/reply/mentions.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +3 -0
- package/dist/plugin-sdk/auto-reply/reply/reply-reference.d.ts +1 -1
- package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +11 -0
- package/dist/plugin-sdk/auto-reply/reply/session-usage.d.ts +8 -0
- package/dist/plugin-sdk/auto-reply/types.d.ts +2 -0
- package/dist/plugin-sdk/browser/control-auth.d.ts +13 -0
- package/dist/plugin-sdk/channels/plugins/onboarding/signal.d.ts +1 -0
- package/dist/plugin-sdk/cli/prompt.d.ts +1 -0
- package/dist/plugin-sdk/commands/agent/types.d.ts +2 -0
- package/dist/plugin-sdk/commands/onboard-types.d.ts +7 -1
- package/dist/plugin-sdk/config/sessions/paths.d.ts +7 -2
- package/dist/plugin-sdk/config/types.agents.d.ts +2 -0
- package/dist/plugin-sdk/config/types.discord.d.ts +5 -0
- package/dist/plugin-sdk/config/types.gateway.d.ts +15 -0
- package/dist/plugin-sdk/config/types.hooks.d.ts +15 -0
- package/dist/plugin-sdk/config/types.memory.d.ts +2 -0
- package/dist/plugin-sdk/config/zod-schema.agents.d.ts +1 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +13 -1
- package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +1 -1
- package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +9 -0
- package/dist/plugin-sdk/config/zod-schema.providers.d.ts +4 -0
- package/dist/plugin-sdk/cron/service/jobs.d.ts +8 -0
- package/dist/plugin-sdk/cron/service/state.d.ts +1 -0
- package/dist/plugin-sdk/cron/types.d.ts +2 -0
- package/dist/plugin-sdk/discord/monitor/allow-list.d.ts +15 -0
- package/dist/plugin-sdk/discord/send.types.d.ts +5 -0
- package/dist/plugin-sdk/gateway/auth.d.ts +36 -0
- package/dist/plugin-sdk/gateway/protocol/index.d.ts +0 -3
- package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +7 -1
- package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +3 -1
- package/dist/plugin-sdk/index.js +935 -660
- package/dist/plugin-sdk/infra/binaries.d.ts +3 -0
- package/dist/plugin-sdk/infra/heartbeat-active-hours.d.ts +5 -0
- package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +1 -0
- package/dist/plugin-sdk/infra/net/fetch-guard.d.ts +1 -0
- package/dist/plugin-sdk/infra/net/ssrf.d.ts +1 -0
- package/dist/plugin-sdk/infra/tailscale.d.ts +34 -0
- package/dist/plugin-sdk/infra/tmp-openclaw-dir.d.ts +10 -0
- package/dist/plugin-sdk/logging/console.d.ts +1 -0
- package/dist/plugin-sdk/logging/logger.d.ts +1 -1
- package/dist/plugin-sdk/logging/state.d.ts +1 -0
- package/dist/plugin-sdk/markdown/ir.d.ts +1 -1
- package/dist/plugin-sdk/markdown/whatsapp.d.ts +14 -0
- package/dist/plugin-sdk/media/input-files.d.ts +5 -0
- package/dist/plugin-sdk/media-understanding/audio-preflight.d.ts +16 -0
- package/dist/plugin-sdk/media-understanding/types.d.ts +1 -0
- package/dist/plugin-sdk/memory/backend-config.d.ts +2 -1
- package/dist/plugin-sdk/memory/qmd-manager.d.ts +2 -0
- package/dist/plugin-sdk/memory/qmd-query-parser.d.ts +8 -0
- package/dist/plugin-sdk/process/command-queue.d.ts +16 -0
- package/dist/plugin-sdk/routing/resolve-route.d.ts +3 -1
- package/dist/plugin-sdk/security/external-content.d.ts +1 -1
- package/dist/plugin-sdk/security/secret-equal.d.ts +1 -0
- package/dist/plugin-sdk/sessions/input-provenance.d.ts +16 -0
- package/dist/plugin-sdk/signal/monitor/event-handler.types.d.ts +8 -0
- package/dist/plugin-sdk/signal/monitor/mentions.d.ts +2 -0
- package/dist/plugin-sdk/slack/monitor/commands.d.ts +5 -0
- package/dist/plugin-sdk/telegram/bot-message-context.d.ts +2 -1
- package/dist/plugin-sdk/telegram/send.d.ts +3 -0
- package/dist/plugin-sdk/web/media.d.ts +2 -0
- package/dist/{plugins-Db5BiELK.js → plugins-4Hqd1WGf.js} +3 -3
- package/dist/{plugins-CNaHNND_.js → plugins-X7d_tfTE.js} +4 -4
- package/dist/{plugins-cli-8G-hQPCu.js → plugins-cli-Bgku3EGj.js} +253 -44
- package/dist/{plugins-cli-CDiocaDE.js → plugins-cli-CVToH3if.js} +257 -48
- package/dist/{ports-BeebfNCb.js → ports-qkt29rdC.js} +2 -2
- package/dist/{program-0Cj9YxRN.js → program-Cf7lkBur.js} +82 -80
- package/dist/{progress-DIQJt9Va.js → progress-C9kngsTD.js} +1 -1
- package/dist/{progress-Da1ehW-x.js → progress-DWqhRakV.js} +1 -1
- package/dist/{prompt-style-Dc0C5HC9.js → prompt-style-BFH5D5LN.js} +1 -1
- package/dist/{prompt-style-CjQRlDx4.js → prompt-style-CIbmaxSa.js} +1 -1
- package/dist/{pw-ai-C43wv1ZF.js → pw-ai-8mdv3h-d.js} +7 -6
- package/dist/{pw-ai-COWYvUfG.js → pw-ai-CM1IsSgZ.js} +6 -6
- package/dist/{pw-ai-BxJ-KCIy.js → pw-ai-FGoRVblI.js} +5 -6
- package/dist/{pw-ai-CsvaObGM.js → pw-ai-sS1fRKW_.js} +3 -3
- package/dist/{qmd-manager-CpsjQyaZ.js → qmd-manager-C67Fc8aN.js} +79 -26
- package/dist/{qmd-manager-C9YWFeG6.js → qmd-manager-CXVbfg99.js} +81 -26
- package/dist/{qmd-manager-C02E8ixK.js → qmd-manager-RMRE8Tqt.js} +81 -26
- package/dist/{qmd-manager-BzY2LQTT.js → qmd-manager-pyc_MTIe.js} +78 -23
- package/dist/{register.subclis-DUkirdHn.js → register.subclis-C02e4zuJ.js} +29 -29
- package/dist/{reply--b7BsXGP.js → reply-DICXkh_C.js} +7289 -8455
- package/dist/{routes-DUkEKAc1.js → routes-CmOI1hIH.js} +29 -11
- package/dist/{routes-B4QQiFju.js → routes-DewK5tq2.js} +29 -12
- package/dist/{rpc-CuMtxrRT.js → rpc-DHr30euf.js} +3 -3
- package/dist/{rpc-Blt6MJ4F.js → rpc-T300F8zI.js} +3 -3
- package/dist/{run-main-XZcPA23b.js → run-main-C5wpthq1.js} +84 -82
- package/dist/runner-CY0nmVme.js +1886 -0
- package/dist/runner-Cfm5nTMc.js +1785 -0
- package/dist/runner-D_dujMod.js +1886 -0
- package/dist/runner-DrGYLH5K.js +1785 -0
- package/dist/{sandbox-Aks-9EcZ.js → sandbox-BKYnhYQH.js} +24 -17
- package/dist/{sandbox-DqUO2K83.js → sandbox-Bhjnh1Xg.js} +23 -16
- package/dist/{sandbox-cli-C99Thxi8.js → sandbox-cli-DBsAjZJN.js} +21 -21
- package/dist/{sandbox-cli-CJqRM4V6.js → sandbox-cli-rV9LtFeu.js} +21 -21
- package/dist/{security-cli-iqYLMOz3.js → security-cli-BIwJM_rs.js} +27 -27
- package/dist/{security-cli-DW3lCz-o.js → security-cli-BRjny8Yu.js} +27 -27
- package/dist/{server-context-fX4xiYRh.js → server-context-BGpGs3qd.js} +7 -7
- package/dist/{server-context-8Qt35QdF.js → server-context-Cl0U0vE3.js} +7 -7
- package/dist/{server-node-events-CHWXfb_T.js → server-node-events-CBfTbiTA.js} +48 -44
- package/dist/{server-node-events-BzrEnKLX.js → server-node-events-QCvh8EgI.js} +45 -41
- package/dist/{service-Cd4BxKuo.js → service--nPk7DvT.js} +8 -4
- package/dist/{service-DDPRbf8a.js → service-99RDXwX4.js} +8 -4
- package/dist/{service-audit-CCFxuvKs.js → service-audit-DnLmRGQt.js} +4 -4
- package/dist/{service-audit-x6jCN-6a.js → service-audit-ckBaRCVC.js} +4 -4
- package/dist/{session-cost-usage-CcCEQNuc.js → session-cost-usage-D7HuoSSD.js} +12 -10
- package/dist/{session-cost-usage-PvyVZz-g.js → session-cost-usage-D9hHANWI.js} +12 -10
- package/dist/{shared-ILguacOr.js → shared-Bs4vduG4.js} +3 -3
- package/dist/{shared-CagUDdmp.js → shared-CEY5IkwG.js} +3 -3
- package/dist/{shared-gOyV38rM.js → shared-DRohONn_.js} +4 -4
- package/dist/{shared-BDk_zC9p.js → shared-ICqOZibV.js} +4 -4
- package/dist/{skill-scanner-C_fQzVDu.js → skill-scanner-CucvxYhu.js} +1 -1
- package/dist/{skill-scanner-DrVEHfC6.js → skill-scanner-rHMtUHtP.js} +1 -1
- package/dist/{skills-D5UZZZSY.js → skills-DRjfSQT3.js} +141 -6
- package/dist/{skills-ccAgQ3Ad.js → skills-DprQj9X2.js} +142 -7
- package/dist/{skills-cli-DQilTG3n.js → skills-cli-9WO-C55s.js} +12 -12
- package/dist/{skills-cli-ggyLBtAY.js → skills-cli-B9eej-EW.js} +13 -13
- package/dist/{skills-status-BosMnzIs.js → skills-status-5U3P3YfJ.js} +3 -3
- package/dist/{skills-status-DjtPPMnY.js → skills-status-TDIgVd1K.js} +2 -2
- package/dist/{sqlite-B7FPASCO.js → sqlite-BINzs1U0.js} +2 -2
- package/dist/{sqlite-Btrgi7-j.js → sqlite-D4w5TejA.js} +3 -3
- package/dist/{sqlite-BrQ9tw8B.js → sqlite-DRRHmlug.js} +3 -3
- package/dist/{sqlite-HepBVDoX.js → sqlite-F6PGkEm1.js} +2 -2
- package/dist/{status-BByCntWS.js → status-BKGkKC_v.js} +3 -3
- package/dist/{status-Dt7RE_Yy.js → status-CiHtHdaa.js} +4 -4
- package/dist/{status-zfL4Yej7.js → status-DDWoOpeB.js} +37 -37
- package/dist/{subsystem-Bh1Y_6Uv.js → subsystem-BoExtIHo.js} +52 -17
- package/dist/{system-cli-DwuUkdkH.js → system-cli-B6lr60Io.js} +14 -14
- package/dist/{system-cli-Clqsx8U5.js → system-cli-CprW9G3h.js} +14 -14
- package/dist/{systemd-BEWwfwn0.js → systemd-C0VZriGM.js} +3 -3
- package/dist/{systemd-D6wTPnHi.js → systemd-DrmBtJ5T.js} +3 -3
- package/dist/{systemd-hints-zi4ohCOY.js → systemd-hints-DZtXiVHa.js} +1 -1
- package/dist/{systemd-linger-CDo2UbHM.js → systemd-linger-NC2kl1SC.js} +2 -2
- package/dist/{systemd-linger-BxjTrgoH.js → systemd-linger-xdn3BdPh.js} +2 -2
- package/dist/{table-DEnmtvl5.js → table-B8dx3v4v.js} +2 -2
- package/dist/{table-cCoGqLsk.js → table-CwulTLQp.js} +1 -1
- package/dist/{tool-display-DskiU8Kt.js → tool-display-CZRIDMRm.js} +2 -2
- package/dist/{tool-display-o-dDAlqF.js → tool-display-ClRud3pg.js} +2 -2
- package/dist/{tui-BdJWZdto.js → tui-CVTQn-dC.js} +14 -13
- package/dist/{tui-Bc7XUQGP.js → tui-Lu8FdrlK.js} +13 -14
- package/dist/{tui-cli-BGYh0UL0.js → tui-cli-BLpTj1X9.js} +27 -27
- package/dist/{tui-cli-D3n-O9zB.js → tui-cli-BLx5kL2I.js} +26 -26
- package/dist/{tui-formatters-CA85v4U2.js → tui-formatters-CNySEfJN.js} +6 -6
- package/dist/{tui-formatters-C3NarH24.js → tui-formatters-DePhZK3J.js} +6 -6
- package/dist/{update-JB16aPIY.js → update-DHVxMTpQ.js} +3 -3
- package/dist/{update-Ct9sqJC_.js → update-DU1geolI.js} +3 -3
- package/dist/{update-cli-wWKDS3cm.js → update-cli-C0hUvJWK.js} +89 -71
- package/dist/{update-cli-DDXp_N9B.js → update-cli-Wb1GB3rL.js} +88 -70
- package/dist/{update-runner-ChTf6O6p.js → update-runner--ixK4J3W.js} +11 -11
- package/dist/{update-runner-CmE6cHdn.js → update-runner-7Qa1T9y6.js} +10 -10
- package/dist/{utils-Dk86IbEs.js → utils-BLJAc3ZV.js} +1 -1
- package/dist/{utils-es4ygvQ-.js → utils-Cd9QdCHh.js} +1 -1
- package/dist/{webhooks-cli-CVIE9TtX.js → webhooks-cli-DgcMy7RG.js} +12 -12
- package/dist/{webhooks-cli-BmKSiQQC.js → webhooks-cli-aVzUcJY9.js} +11 -11
- package/dist/{widearea-dns-2ah0bkAj.js → widearea-dns-BaIgNEhY.js} +3 -3
- package/dist/{widearea-dns-CMIG6-74.js → widearea-dns-DzuRdwk5.js} +3 -3
- package/dist/{ws-DtDKpbLR.js → ws-CHCQHs0F.js} +1 -1
- package/dist/{ws-log-BP3z_g6Z.js → ws-log-CIXbLCka.js} +1 -1
- package/dist/{ws-log-D7MkvKhg.js → ws-log-DcQFZByi.js} +2 -2
- package/dist/{wsl-Cwo7X0Un.js → wsl-BUOkxKJu.js} +2 -2
- package/docs/assets/install-script.svg +1 -0
- package/docs/automation/hooks.md +1 -38
- package/docs/automation/webhook.md +43 -2
- package/docs/channels/discord.md +389 -381
- package/docs/channels/imessage.md +229 -218
- package/docs/channels/slack.md +294 -415
- package/docs/channels/telegram.md +401 -505
- package/docs/channels/whatsapp.md +338 -310
- package/docs/ci.md +0 -12
- package/docs/cli/hooks.md +1 -14
- package/docs/cli/index.md +6 -1
- package/docs/cli/logs.md +4 -0
- package/docs/cli/onboard.md +30 -0
- package/docs/cli/plugins.md +20 -1
- package/docs/cli/security.md +1 -0
- package/docs/concepts/memory.md +7 -4
- package/docs/concepts/session-tool.md +1 -0
- package/docs/docs.json +11 -11
- package/docs/gateway/configuration-examples.md +9 -2
- package/docs/gateway/configuration-reference.md +2329 -0
- package/docs/gateway/configuration.md +338 -3304
- package/docs/gateway/index.md +162 -238
- package/docs/gateway/openresponses-http-api.md +15 -0
- package/docs/gateway/security/index.md +3 -0
- package/docs/help/faq.md +9 -0
- package/docs/install/hetzner.md +21 -0
- package/docs/install/installer.md +20 -0
- package/docs/nodes/audio.md +19 -0
- package/docs/platforms/mac/release.md +7 -7
- package/docs/providers/glm.md +3 -3
- package/docs/providers/index.md +1 -0
- package/docs/providers/litellm.md +153 -0
- package/docs/providers/zai.md +2 -2
- package/docs/reference/templates/AGENTS.md +26 -26
- package/docs/reference/templates/HEARTBEAT.md +31 -2
- package/docs/reference/templates/SOUL.md +14 -8
- package/docs/reference/transcript-hygiene.md +18 -0
- package/docs/start/getting-started.md +5 -0
- package/docs/start/wizard-cli-automation.md +17 -0
- package/docs/start/wizard-cli-reference.md +12 -0
- package/docs/tools/browser.md +6 -0
- package/docs/zh-CN/automation/hooks.md +1 -38
- package/docs/zh-CN/cli/hooks.md +1 -14
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/bluebubbles/src/monitor.test.ts +40 -28
- package/extensions/bluebubbles/src/monitor.ts +0 -4
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +10 -10
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +2 -5
- package/extensions/feishu/src/bot.checkBotMentioned.test.ts +64 -0
- package/extensions/feishu/src/bot.ts +1 -1
- package/extensions/feishu/src/channel.test.ts +48 -0
- package/extensions/feishu/src/channel.ts +1 -3
- package/extensions/feishu/src/config-schema.ts +6 -0
- package/extensions/feishu/src/docx.ts +14 -4
- package/extensions/feishu/src/media.test.ts +151 -0
- package/extensions/feishu/src/media.ts +27 -13
- package/extensions/feishu/src/reply-dispatcher.test.ts +116 -0
- package/extensions/feishu/src/reply-dispatcher.ts +124 -67
- package/extensions/feishu/src/streaming-card.ts +223 -0
- package/extensions/feishu/src/targets.test.ts +16 -0
- package/extensions/feishu/src/targets.ts +1 -1
- 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/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/irc/src/client.ts +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 +2 -2
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/index.ts +6 -2
- package/extensions/memory-lancedb/package.json +2 -2
- package/extensions/minimax-portal-auth/index.ts +7 -5
- 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/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +2 -2
- 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/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/voice-call/src/media-stream.ts +7 -1
- package/extensions/voice-call/src/providers/twilio.test.ts +5 -3
- package/extensions/voice-call/src/providers/twilio.ts +12 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +26 -22
- package/dist/auth-BcNHFK-i.js +0 -184
- package/dist/auth-BvIPpm7G.js +0 -184
- package/dist/boolean-M-esQJt6.js +0 -30
- package/dist/bundled/soul-evil/HOOK.md +0 -71
- package/dist/bundled/soul-evil/handler.js +0 -194
- package/dist/cli-DJbWJ9aB.js +0 -89
- package/dist/config-CI7EpvlP.js +0 -15
- package/dist/control-ui/assets/index-CnB9IO4a.js.map +0 -1
- package/dist/date-time-c6HTX6IW.js +0 -187
- package/dist/frontmatter-xwTm0734.js +0 -105
- package/dist/parse-duration-De_tAQSe.js +0 -24
- package/dist/session-key-nXYQSv-a.js +0 -167
- package/dist/utils-dp_OM900.js +0 -476
- package/docs/hooks/soul-evil.md +0 -69
- package/docs/zh-CN/hooks/soul-evil.md +0 -72
- /package/dist/{archive-CXhvR9nU.js → archive-beaSfAzA.js} +0 -0
- /package/dist/{brew-BIrWdDps.js → brew-BUIxHEkn.js} +0 -0
- /package/dist/{brew-B7YK4ZoL.js → brew-ROHf0-Xp.js} +0 -0
- /package/dist/{cli-utils-PlLcDZlM.js → cli-utils-CRhVAaLV.js} +0 -0
- /package/dist/{cli-utils-R-ECs5cY.js → cli-utils-LcHOt63h.js} +0 -0
- /package/dist/{command-format-BUxhT1xL.js → command-format-qUVxzqYm.js} +0 -0
- /package/dist/{constants-CNTiY-ZN.js → constants-BvQ6S8j5.js} +0 -0
- /package/dist/{constants-DuoCkWRh.js → constants-JPeoOZnw.js} +0 -0
- /package/dist/{errors-D3tYRJWG.js → errors-B91HIDPD.js} +0 -0
- /package/dist/{errors-B0eT3jVv.js → errors-Bv81hF2P.js} +0 -0
- /package/dist/{errors-x4NYs-1P.js → errors-DjZBTJJ3.js} +0 -0
- /package/dist/{exec-approvals-DGPTjO0N.js → exec-approvals-Cb4ZLukq.js} +0 -0
- /package/dist/{exec-approvals-DhmKpiIo.js → exec-approvals-DQ8TVVmj.js} +0 -0
- /package/dist/{format-CaxeRcue.js → format-CNU-Zkrz.js} +0 -0
- /package/dist/{format-DLOJPZmo.js → format-DcfK-dwd.js} +0 -0
- /package/dist/{format-duration-Be5Z7JdJ.js → format-duration-84n6_DgO.js} +0 -0
- /package/dist/{format-duration-CEmFWLyX.js → format-duration-Bo9zNKwO.js} +0 -0
- /package/dist/{format-relative-79_Y1n2Y.js → format-relative-CZOlQ2pA.js} +0 -0
- /package/dist/{format-relative-Db7eqEu8.js → format-relative-cegC_FF5.js} +0 -0
- /package/dist/{github-copilot-token-C9IJh2Pn.js → github-copilot-token-DkiRbJdR.js} +0 -0
- /package/dist/{helpers-CQI-5xS9.js → helpers-8O7IVGO-.js} +0 -0
- /package/dist/{helpers-CRzoyyXS.js → helpers-D_jqdWkd.js} +0 -0
- /package/dist/{helpers-C89IG08W.js → helpers-HyeZXsnu.js} +0 -0
- /package/dist/{is-main-WWuz28Ip.js → is-main-BWoXGz7p.js} +0 -0
- /package/dist/{logging-BzvBIA3Y.js → logging-fywhKCmE.js} +0 -0
- /package/dist/{nodes-screen-lykd2cny.js → nodes-screen-CdCWeiwy.js} +0 -0
- /package/dist/{parse-Cjiudy6x.js → parse-Bw0oH-rT.js} +0 -0
- /package/dist/{parse-DqAvJRIf.js → parse-ioZhOtha.js} +0 -0
- /package/dist/{parse-log-line-CUrpqe1w.js → parse-log-line-BoDqomM4.js} +0 -0
- /package/dist/{parse-log-line-D2UGw0wR.js → parse-log-line-DPxH1XZx.js} +0 -0
- /package/dist/{parse-timeout-DFSPLxpY.js → parse-timeout-D1XX_zN_.js} +0 -0
- /package/dist/{parse-timeout-DV8NQQWk.js → parse-timeout-DMW-z4Iz.js} +0 -0
- /package/dist/{pi-model-discovery-CV2V1HHz.js → pi-model-discovery-DqgqUyAv.js} +0 -0
- /package/dist/{pi-model-discovery-DzFOAbQt.js → pi-model-discovery-EwKVHlZB.js} +0 -0
- /package/dist/{prompts--d-6l5Ln.js → prompts-Bg96reub.js} +0 -0
- /package/dist/{redact-DAKeu7PA.js → redact-BRsnXqwD.js} +0 -0
- /package/dist/{redact-DuEEf1p1.js → redact-Br9GfacZ.js} +0 -0
- /package/dist/{redact-BOIof271.js → redact-BrXLgslJ.js} +0 -0
- /package/dist/{status-Cv36yYdi.js → status-BRZfQbJ2.js} +0 -0
- /package/dist/{status-Drziap9H.js → status-CoAy6bEC.js} +0 -0
- /package/dist/{systemd-hints-CH4pbCFD.js → systemd-hints-CXNtLw9Q.js} +0 -0
- /package/dist/{tailnet-DGRSvYuQ.js → tailnet-DATIFSsY.js} +0 -0
- /package/dist/{transcript-events-BlIONGVn.js → transcript-events-BHS7QoRl.js} +0 -0
- /package/dist/{transcript-events-C1hdue6u.js → transcript-events-Bp7fGnwv.js} +0 -0
- /package/dist/{transcript-events-CZ8CG4ht.js → transcript-events-BtNd-j6q.js} +0 -0
- /package/dist/{usage-format-6Uar63S0.js → usage-format-C4JfTbSp.js} +0 -0
- /package/dist/{usage-format-hd37en6b.js → usage-format-CpORtVCG.js} +0 -0
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { _ as resolveConfigDir, b as resolveUserPath, c as ensureDir, l as escapeRegExp, t as CONFIG_DIR } from "./utils-
|
|
2
|
-
import { Nt as resolveNodeManagerOptions,
|
|
3
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
4
|
-
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-
|
|
5
|
-
import { D as VENICE_DEFAULT_MODEL_REF, Dt as DEFAULT_MODEL, H as resolveEnvApiKey, Ot as DEFAULT_PROVIDER, P as SYNTHETIC_DEFAULT_MODEL_REF, R as getCustomProviderApiKey, St as normalizeSecretInput, X as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, bt as resolveOpenClawAgentDir, ct as generateChutesPkce, d as resolveConfiguredModelRef, dt as listProfilesForProvider, et as resolveAuthProfileOrder, ht as ensureAuthProfileStore, lt as parseOAuthCallbackInput, mt as upsertAuthProfile, o as modelKey, ot as CHUTES_AUTHORIZE_ENDPOINT, r as buildModelAliasIndex, s as normalizeProviderId, st as exchangeChutesCodeForTokens, t as buildAllowedModelSet, u as resolveAllowlistModelKey } from "./model-selection-
|
|
1
|
+
import { _ as resolveConfigDir, b as resolveUserPath, c as ensureDir, l as escapeRegExp, t as CONFIG_DIR } from "./utils-Cd9QdCHh.js";
|
|
2
|
+
import { Nt as resolveNodeManagerOptions, Ot as openUrl, bt as detectBinary } from "./reply-DICXkh_C.js";
|
|
3
|
+
import { t as runCommandWithTimeout } from "./exec-YIosokWE.js";
|
|
4
|
+
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-CQCus0rI.js";
|
|
5
|
+
import { D as VENICE_DEFAULT_MODEL_REF, Dt as DEFAULT_MODEL, H as resolveEnvApiKey, Ot as DEFAULT_PROVIDER, P as SYNTHETIC_DEFAULT_MODEL_REF, R as getCustomProviderApiKey, St as normalizeSecretInput, X as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, bt as resolveOpenClawAgentDir, ct as generateChutesPkce, d as resolveConfiguredModelRef, dt as listProfilesForProvider, et as resolveAuthProfileOrder, ht as ensureAuthProfileStore, lt as parseOAuthCallbackInput, mt as upsertAuthProfile, o as modelKey, ot as CHUTES_AUTHORIZE_ENDPOINT, r as buildModelAliasIndex, s as normalizeProviderId, st as exchangeChutesCodeForTokens, t as buildAllowedModelSet, u as resolveAllowlistModelKey } from "./model-selection-BLuqsGVB.js";
|
|
6
6
|
import { t as formatCliCommand } from "./command-format-ChfKqObn.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { a as
|
|
12
|
-
import {
|
|
13
|
-
import { t as
|
|
14
|
-
import {
|
|
7
|
+
import { s as loadModelCatalog } from "./runner-D_dujMod.js";
|
|
8
|
+
import { b as resolveSkillKey, i as loadWorkspaceSkillEntries, m as hasBinary, t as resolveSkillsInstallPreferences } from "./skills-DprQj9X2.js";
|
|
9
|
+
import { i as fetchWithSsrFGuard, r as fetchWithTimeout } from "./fetch-DmiOpALK.js";
|
|
10
|
+
import { t as resolveBrewExecutable } from "./brew-ROHf0-Xp.js";
|
|
11
|
+
import { $ as setAnthropicApiKey, A as applyOpenrouterProviderConfig, B as applyVercelAiGatewayProviderConfig, C as applyLitellmConfig, Ct as ZAI_CODING_GLOBAL_BASE_URL, D as applyMoonshotProviderConfig, E as applyMoonshotConfigCn, Et as validateAnthropicSetupToken, F as applyTogetherConfig, G as applyZaiConfig, H as applyXaiProviderConfig, I as applyTogetherProviderConfig, J as OPENROUTER_DEFAULT_MODEL_REF, K as applyZaiProviderConfig, L as applyVeniceConfig, M as applyQianfanProviderConfig, N as applySyntheticConfig, O as applyMoonshotProviderConfigCn, P as applySyntheticProviderConfig, Q as ZAI_DEFAULT_MODEL_REF, R as applyVeniceProviderConfig, S as applyKimiCodeProviderConfig, St as ZAI_CODING_CN_BASE_URL, T as applyMoonshotConfig, Tt as buildTokenProfileId, U as applyXiaomiConfig, V as applyXaiConfig, W as applyXiaomiProviderConfig, X as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, Y as TOGETHER_DEFAULT_MODEL_REF, Z as XIAOMI_DEFAULT_MODEL_REF, _ as applyMinimaxProviderConfig, _t as KIMI_CODING_MODEL_REF, a as normalizeAlias, at as setMoonshotApiKey, b as applyCloudflareAiGatewayProviderConfig, bt as XAI_DEFAULT_MODEL_REF, ct as setQianfanApiKey, d as resolvePluginProviders, dt as setVeniceApiKey, et as setCloudflareAiGatewayConfig, f as applyOpencodeZenConfig, ft as setVercelAiGatewayApiKey, g as applyMinimaxConfig, gt as writeOAuthCredentials, h as applyMinimaxApiProviderConfig, ht as setZaiApiKey, i as formatTokenK, it as setMinimaxApiKey, j as applyQianfanConfig, k as applyOpenrouterConfig, l as createVpsAwareOAuthHandlers, lt as setSyntheticApiKey, m as applyMinimaxApiConfig, mt as setXiaomiApiKey, nt as setKimiCodingApiKey, ot as setOpencodeZenApiKey, p as applyOpencodeZenProviderConfig, pt as setXaiApiKey, q as LITELLM_DEFAULT_MODEL_REF, rt as setLitellmApiKey, st as setOpenrouterApiKey, t as githubCopilotLoginCommand, tt as setGeminiApiKey, u as isRemoteEnvironment, ut as setTogetherApiKey, v as applyAuthProfileConfig, vt as MOONSHOT_DEFAULT_MODEL_REF, w as applyLitellmProviderConfig, wt as ZAI_GLOBAL_BASE_URL, x as applyKimiCodeConfig, xt as ZAI_CN_BASE_URL, y as applyCloudflareAiGatewayConfig, yt as QIANFAN_DEFAULT_MODEL_REF, z as applyVercelAiGatewayConfig } from "./github-copilot-auth-D7ewvpMd.js";
|
|
12
|
+
import { a as enablePluginInConfig } from "./onboard-channels-Dxzroasd.js";
|
|
13
|
+
import { t as scanDirectoryWithSummary } from "./skill-scanner-CucvxYhu.js";
|
|
14
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-5U3P3YfJ.js";
|
|
15
|
+
import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-DzuRdwk5.js";
|
|
15
16
|
import fs from "node:fs";
|
|
16
17
|
import path from "node:path";
|
|
17
18
|
import { randomBytes } from "node:crypto";
|
|
@@ -37,7 +38,7 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
37
38
|
{
|
|
38
39
|
value: "minimax",
|
|
39
40
|
label: "MiniMax",
|
|
40
|
-
hint: "M2.
|
|
41
|
+
hint: "M2.5 (recommended)",
|
|
41
42
|
choices: [
|
|
42
43
|
"minimax-portal",
|
|
43
44
|
"minimax-api",
|
|
@@ -84,9 +85,14 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
84
85
|
},
|
|
85
86
|
{
|
|
86
87
|
value: "zai",
|
|
87
|
-
label: "Z.AI
|
|
88
|
-
hint: "
|
|
89
|
-
choices: [
|
|
88
|
+
label: "Z.AI",
|
|
89
|
+
hint: "GLM Coding Plan / Global / CN",
|
|
90
|
+
choices: [
|
|
91
|
+
"zai-coding-global",
|
|
92
|
+
"zai-coding-cn",
|
|
93
|
+
"zai-global",
|
|
94
|
+
"zai-cn"
|
|
95
|
+
]
|
|
90
96
|
},
|
|
91
97
|
{
|
|
92
98
|
value: "qianfan",
|
|
@@ -136,6 +142,12 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
136
142
|
hint: "Privacy-focused (uncensored models)",
|
|
137
143
|
choices: ["venice-api-key"]
|
|
138
144
|
},
|
|
145
|
+
{
|
|
146
|
+
value: "litellm",
|
|
147
|
+
label: "LiteLLM",
|
|
148
|
+
hint: "Unified LLM gateway (100+ providers)",
|
|
149
|
+
choices: ["litellm-api-key"]
|
|
150
|
+
},
|
|
139
151
|
{
|
|
140
152
|
value: "cloudflare-ai-gateway",
|
|
141
153
|
label: "Cloudflare AI Gateway",
|
|
@@ -181,6 +193,11 @@ function buildAuthChoiceOptions(params) {
|
|
|
181
193
|
value: "openrouter-api-key",
|
|
182
194
|
label: "OpenRouter API key"
|
|
183
195
|
});
|
|
196
|
+
options.push({
|
|
197
|
+
value: "litellm-api-key",
|
|
198
|
+
label: "LiteLLM API key",
|
|
199
|
+
hint: "Unified gateway for 100+ LLM providers"
|
|
200
|
+
});
|
|
184
201
|
options.push({
|
|
185
202
|
value: "ai-gateway-api-key",
|
|
186
203
|
label: "Vercel AI Gateway API key"
|
|
@@ -237,7 +254,27 @@ function buildAuthChoiceOptions(params) {
|
|
|
237
254
|
});
|
|
238
255
|
options.push({
|
|
239
256
|
value: "zai-api-key",
|
|
240
|
-
label: "Z.AI
|
|
257
|
+
label: "Z.AI API key"
|
|
258
|
+
});
|
|
259
|
+
options.push({
|
|
260
|
+
value: "zai-coding-global",
|
|
261
|
+
label: "Coding-Plan-Global",
|
|
262
|
+
hint: "GLM Coding Plan Global (api.z.ai)"
|
|
263
|
+
});
|
|
264
|
+
options.push({
|
|
265
|
+
value: "zai-coding-cn",
|
|
266
|
+
label: "Coding-Plan-CN",
|
|
267
|
+
hint: "GLM Coding Plan CN (open.bigmodel.cn)"
|
|
268
|
+
});
|
|
269
|
+
options.push({
|
|
270
|
+
value: "zai-global",
|
|
271
|
+
label: "Global",
|
|
272
|
+
hint: "Z.AI Global (api.z.ai)"
|
|
273
|
+
});
|
|
274
|
+
options.push({
|
|
275
|
+
value: "zai-cn",
|
|
276
|
+
label: "CN",
|
|
277
|
+
hint: "Z.AI CN (open.bigmodel.cn)"
|
|
241
278
|
});
|
|
242
279
|
options.push({
|
|
243
280
|
value: "xiaomi-api-key",
|
|
@@ -268,11 +305,11 @@ function buildAuthChoiceOptions(params) {
|
|
|
268
305
|
});
|
|
269
306
|
options.push({
|
|
270
307
|
value: "minimax-api",
|
|
271
|
-
label: "MiniMax M2.
|
|
308
|
+
label: "MiniMax M2.5"
|
|
272
309
|
});
|
|
273
310
|
options.push({
|
|
274
311
|
value: "minimax-api-lightning",
|
|
275
|
-
label: "MiniMax M2.
|
|
312
|
+
label: "MiniMax M2.5 Lightning",
|
|
276
313
|
hint: "Faster, higher output cost"
|
|
277
314
|
});
|
|
278
315
|
options.push({
|
|
@@ -513,6 +550,91 @@ function applyGoogleGeminiModelDefault(cfg) {
|
|
|
513
550
|
//#region src/commands/opencode-zen-model-default.ts
|
|
514
551
|
const OPENCODE_ZEN_DEFAULT_MODEL = "opencode/claude-opus-4-6";
|
|
515
552
|
|
|
553
|
+
//#endregion
|
|
554
|
+
//#region src/commands/zai-endpoint-detect.ts
|
|
555
|
+
async function probeZaiChatCompletions(params) {
|
|
556
|
+
try {
|
|
557
|
+
const res = await fetchWithTimeout(`${params.baseUrl}/chat/completions`, {
|
|
558
|
+
method: "POST",
|
|
559
|
+
headers: {
|
|
560
|
+
authorization: `Bearer ${params.apiKey}`,
|
|
561
|
+
"content-type": "application/json"
|
|
562
|
+
},
|
|
563
|
+
body: JSON.stringify({
|
|
564
|
+
model: params.modelId,
|
|
565
|
+
stream: false,
|
|
566
|
+
max_tokens: 1,
|
|
567
|
+
messages: [{
|
|
568
|
+
role: "user",
|
|
569
|
+
content: "ping"
|
|
570
|
+
}]
|
|
571
|
+
})
|
|
572
|
+
}, params.timeoutMs, params.fetchFn);
|
|
573
|
+
if (res.ok) return { ok: true };
|
|
574
|
+
let errorCode;
|
|
575
|
+
let errorMessage;
|
|
576
|
+
try {
|
|
577
|
+
const json = await res.json();
|
|
578
|
+
const code = json?.error?.code;
|
|
579
|
+
const msg = json?.error?.message ?? json?.msg ?? json?.message;
|
|
580
|
+
if (typeof code === "string") errorCode = code;
|
|
581
|
+
else if (typeof code === "number") errorCode = String(code);
|
|
582
|
+
if (typeof msg === "string") errorMessage = msg;
|
|
583
|
+
} catch {}
|
|
584
|
+
return {
|
|
585
|
+
ok: false,
|
|
586
|
+
status: res.status,
|
|
587
|
+
errorCode,
|
|
588
|
+
errorMessage
|
|
589
|
+
};
|
|
590
|
+
} catch {
|
|
591
|
+
return { ok: false };
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
async function detectZaiEndpoint(params) {
|
|
595
|
+
if (process.env.VITEST && !params.fetchFn) return null;
|
|
596
|
+
const timeoutMs = params.timeoutMs ?? 5e3;
|
|
597
|
+
const glm5 = [{
|
|
598
|
+
endpoint: "global",
|
|
599
|
+
baseUrl: ZAI_GLOBAL_BASE_URL
|
|
600
|
+
}, {
|
|
601
|
+
endpoint: "cn",
|
|
602
|
+
baseUrl: ZAI_CN_BASE_URL
|
|
603
|
+
}];
|
|
604
|
+
for (const candidate of glm5) if ((await probeZaiChatCompletions({
|
|
605
|
+
baseUrl: candidate.baseUrl,
|
|
606
|
+
apiKey: params.apiKey,
|
|
607
|
+
modelId: "glm-5",
|
|
608
|
+
timeoutMs,
|
|
609
|
+
fetchFn: params.fetchFn
|
|
610
|
+
})).ok) return {
|
|
611
|
+
endpoint: candidate.endpoint,
|
|
612
|
+
baseUrl: candidate.baseUrl,
|
|
613
|
+
modelId: "glm-5",
|
|
614
|
+
note: `Verified GLM-5 on ${candidate.endpoint} endpoint.`
|
|
615
|
+
};
|
|
616
|
+
const coding = [{
|
|
617
|
+
endpoint: "coding-global",
|
|
618
|
+
baseUrl: ZAI_CODING_GLOBAL_BASE_URL
|
|
619
|
+
}, {
|
|
620
|
+
endpoint: "coding-cn",
|
|
621
|
+
baseUrl: ZAI_CODING_CN_BASE_URL
|
|
622
|
+
}];
|
|
623
|
+
for (const candidate of coding) if ((await probeZaiChatCompletions({
|
|
624
|
+
baseUrl: candidate.baseUrl,
|
|
625
|
+
apiKey: params.apiKey,
|
|
626
|
+
modelId: "glm-4.7",
|
|
627
|
+
timeoutMs,
|
|
628
|
+
fetchFn: params.fetchFn
|
|
629
|
+
})).ok) return {
|
|
630
|
+
endpoint: candidate.endpoint,
|
|
631
|
+
baseUrl: candidate.baseUrl,
|
|
632
|
+
modelId: "glm-4.7",
|
|
633
|
+
note: "Coding Plan endpoint detected; GLM-5 is not available there. Defaulting to GLM-4.7."
|
|
634
|
+
};
|
|
635
|
+
return null;
|
|
636
|
+
}
|
|
637
|
+
|
|
516
638
|
//#endregion
|
|
517
639
|
//#region src/commands/auth-choice.apply.api-providers.ts
|
|
518
640
|
async function applyAuthChoiceApiProviders(params) {
|
|
@@ -525,6 +647,7 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
525
647
|
let authChoice = params.authChoice;
|
|
526
648
|
if (authChoice === "apiKey" && params.opts?.tokenProvider && params.opts.tokenProvider !== "anthropic" && params.opts.tokenProvider !== "openai") {
|
|
527
649
|
if (params.opts.tokenProvider === "openrouter") authChoice = "openrouter-api-key";
|
|
650
|
+
else if (params.opts.tokenProvider === "litellm") authChoice = "litellm-api-key";
|
|
528
651
|
else if (params.opts.tokenProvider === "vercel-ai-gateway") authChoice = "ai-gateway-api-key";
|
|
529
652
|
else if (params.opts.tokenProvider === "cloudflare-ai-gateway") authChoice = "cloudflare-ai-gateway-api-key";
|
|
530
653
|
else if (params.opts.tokenProvider === "moonshot") authChoice = "moonshot-api-key";
|
|
@@ -602,6 +725,67 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
602
725
|
agentModelOverride
|
|
603
726
|
};
|
|
604
727
|
}
|
|
728
|
+
if (authChoice === "litellm-api-key") {
|
|
729
|
+
const store = ensureAuthProfileStore(params.agentDir, { allowKeychainPrompt: false });
|
|
730
|
+
const existingProfileId = resolveAuthProfileOrder({
|
|
731
|
+
cfg: nextConfig,
|
|
732
|
+
store,
|
|
733
|
+
provider: "litellm"
|
|
734
|
+
}).find((profileId) => Boolean(store.profiles[profileId]));
|
|
735
|
+
const existingCred = existingProfileId ? store.profiles[existingProfileId] : void 0;
|
|
736
|
+
let profileId = "litellm:default";
|
|
737
|
+
let hasCredential = false;
|
|
738
|
+
if (existingProfileId && existingCred?.type === "api_key") {
|
|
739
|
+
profileId = existingProfileId;
|
|
740
|
+
hasCredential = true;
|
|
741
|
+
}
|
|
742
|
+
if (!hasCredential && params.opts?.token && params.opts?.tokenProvider === "litellm") {
|
|
743
|
+
await setLitellmApiKey(normalizeApiKeyInput(params.opts.token), params.agentDir);
|
|
744
|
+
hasCredential = true;
|
|
745
|
+
}
|
|
746
|
+
if (!hasCredential) {
|
|
747
|
+
await params.prompter.note("LiteLLM provides a unified API to 100+ LLM providers.\nGet your API key from your LiteLLM proxy or https://litellm.ai\nDefault proxy runs on http://localhost:4000", "LiteLLM");
|
|
748
|
+
const envKey = resolveEnvApiKey("litellm");
|
|
749
|
+
if (envKey) {
|
|
750
|
+
if (await params.prompter.confirm({
|
|
751
|
+
message: `Use existing LITELLM_API_KEY (${envKey.source}, ${formatApiKeyPreview(envKey.apiKey)})?`,
|
|
752
|
+
initialValue: true
|
|
753
|
+
})) {
|
|
754
|
+
await setLitellmApiKey(envKey.apiKey, params.agentDir);
|
|
755
|
+
hasCredential = true;
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
if (!hasCredential) {
|
|
759
|
+
const key = await params.prompter.text({
|
|
760
|
+
message: "Enter LiteLLM API key",
|
|
761
|
+
validate: validateApiKeyInput
|
|
762
|
+
});
|
|
763
|
+
await setLitellmApiKey(normalizeApiKeyInput(String(key)), params.agentDir);
|
|
764
|
+
hasCredential = true;
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
if (hasCredential) nextConfig = applyAuthProfileConfig(nextConfig, {
|
|
768
|
+
profileId,
|
|
769
|
+
provider: "litellm",
|
|
770
|
+
mode: "api_key"
|
|
771
|
+
});
|
|
772
|
+
const applied = await applyDefaultModelChoice({
|
|
773
|
+
config: nextConfig,
|
|
774
|
+
setDefaultModel: params.setDefaultModel,
|
|
775
|
+
defaultModel: LITELLM_DEFAULT_MODEL_REF,
|
|
776
|
+
applyDefaultConfig: applyLitellmConfig,
|
|
777
|
+
applyProviderConfig: applyLitellmProviderConfig,
|
|
778
|
+
noteDefault: LITELLM_DEFAULT_MODEL_REF,
|
|
779
|
+
noteAgentModel,
|
|
780
|
+
prompter: params.prompter
|
|
781
|
+
});
|
|
782
|
+
nextConfig = applied.config;
|
|
783
|
+
agentModelOverride = applied.agentModelOverride ?? agentModelOverride;
|
|
784
|
+
return {
|
|
785
|
+
config: nextConfig,
|
|
786
|
+
agentModelOverride
|
|
787
|
+
};
|
|
788
|
+
}
|
|
605
789
|
if (authChoice === "ai-gateway-api-key") {
|
|
606
790
|
let hasCredential = false;
|
|
607
791
|
if (!hasCredential && params.opts?.token && params.opts?.tokenProvider === "vercel-ai-gateway") {
|
|
@@ -911,10 +1095,17 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
911
1095
|
agentModelOverride
|
|
912
1096
|
};
|
|
913
1097
|
}
|
|
914
|
-
if (authChoice === "zai-api-key") {
|
|
1098
|
+
if (authChoice === "zai-api-key" || authChoice === "zai-coding-global" || authChoice === "zai-coding-cn" || authChoice === "zai-global" || authChoice === "zai-cn") {
|
|
1099
|
+
let endpoint;
|
|
1100
|
+
if (authChoice === "zai-coding-global") endpoint = "coding-global";
|
|
1101
|
+
else if (authChoice === "zai-coding-cn") endpoint = "coding-cn";
|
|
1102
|
+
else if (authChoice === "zai-global") endpoint = "global";
|
|
1103
|
+
else if (authChoice === "zai-cn") endpoint = "cn";
|
|
915
1104
|
let hasCredential = false;
|
|
1105
|
+
let apiKey = "";
|
|
916
1106
|
if (!hasCredential && params.opts?.token && params.opts?.tokenProvider === "zai") {
|
|
917
|
-
|
|
1107
|
+
apiKey = normalizeApiKeyInput(params.opts.token);
|
|
1108
|
+
await setZaiApiKey(apiKey, params.agentDir);
|
|
918
1109
|
hasCredential = true;
|
|
919
1110
|
}
|
|
920
1111
|
const envKey = resolveEnvApiKey("zai");
|
|
@@ -923,7 +1114,8 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
923
1114
|
message: `Use existing ZAI_API_KEY (${envKey.source}, ${formatApiKeyPreview(envKey.apiKey)})?`,
|
|
924
1115
|
initialValue: true
|
|
925
1116
|
})) {
|
|
926
|
-
|
|
1117
|
+
apiKey = envKey.apiKey;
|
|
1118
|
+
await setZaiApiKey(apiKey, params.agentDir);
|
|
927
1119
|
hasCredential = true;
|
|
928
1120
|
}
|
|
929
1121
|
}
|
|
@@ -932,42 +1124,67 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
932
1124
|
message: "Enter Z.AI API key",
|
|
933
1125
|
validate: validateApiKeyInput
|
|
934
1126
|
});
|
|
935
|
-
|
|
1127
|
+
apiKey = normalizeApiKeyInput(String(key));
|
|
1128
|
+
await setZaiApiKey(apiKey, params.agentDir);
|
|
1129
|
+
}
|
|
1130
|
+
let modelIdOverride;
|
|
1131
|
+
if (!endpoint) {
|
|
1132
|
+
const detected = await detectZaiEndpoint({ apiKey });
|
|
1133
|
+
if (detected) {
|
|
1134
|
+
endpoint = detected.endpoint;
|
|
1135
|
+
modelIdOverride = detected.modelId;
|
|
1136
|
+
await params.prompter.note(detected.note, "Z.AI endpoint");
|
|
1137
|
+
} else endpoint = await params.prompter.select({
|
|
1138
|
+
message: "Select Z.AI endpoint",
|
|
1139
|
+
options: [
|
|
1140
|
+
{
|
|
1141
|
+
value: "coding-global",
|
|
1142
|
+
label: "Coding-Plan-Global",
|
|
1143
|
+
hint: "GLM Coding Plan Global (api.z.ai)"
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
value: "coding-cn",
|
|
1147
|
+
label: "Coding-Plan-CN",
|
|
1148
|
+
hint: "GLM Coding Plan CN (open.bigmodel.cn)"
|
|
1149
|
+
},
|
|
1150
|
+
{
|
|
1151
|
+
value: "global",
|
|
1152
|
+
label: "Global",
|
|
1153
|
+
hint: "Z.AI Global (api.z.ai)"
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
value: "cn",
|
|
1157
|
+
label: "CN",
|
|
1158
|
+
hint: "Z.AI CN (open.bigmodel.cn)"
|
|
1159
|
+
}
|
|
1160
|
+
],
|
|
1161
|
+
initialValue: "global"
|
|
1162
|
+
});
|
|
936
1163
|
}
|
|
937
1164
|
nextConfig = applyAuthProfileConfig(nextConfig, {
|
|
938
1165
|
profileId: "zai:default",
|
|
939
1166
|
provider: "zai",
|
|
940
1167
|
mode: "api_key"
|
|
941
1168
|
});
|
|
942
|
-
{
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
}
|
|
962
|
-
}
|
|
963
|
-
}),
|
|
964
|
-
noteDefault: ZAI_DEFAULT_MODEL_REF,
|
|
965
|
-
noteAgentModel,
|
|
966
|
-
prompter: params.prompter
|
|
967
|
-
});
|
|
968
|
-
nextConfig = applied.config;
|
|
969
|
-
agentModelOverride = applied.agentModelOverride ?? agentModelOverride;
|
|
970
|
-
}
|
|
1169
|
+
const defaultModel = modelIdOverride ? `zai/${modelIdOverride}` : ZAI_DEFAULT_MODEL_REF;
|
|
1170
|
+
const applied = await applyDefaultModelChoice({
|
|
1171
|
+
config: nextConfig,
|
|
1172
|
+
setDefaultModel: params.setDefaultModel,
|
|
1173
|
+
defaultModel,
|
|
1174
|
+
applyDefaultConfig: (config) => applyZaiConfig(config, {
|
|
1175
|
+
endpoint,
|
|
1176
|
+
...modelIdOverride ? { modelId: modelIdOverride } : {}
|
|
1177
|
+
}),
|
|
1178
|
+
applyProviderConfig: (config) => applyZaiProviderConfig(config, {
|
|
1179
|
+
endpoint,
|
|
1180
|
+
...modelIdOverride ? { modelId: modelIdOverride } : {}
|
|
1181
|
+
}),
|
|
1182
|
+
noteDefault: defaultModel,
|
|
1183
|
+
noteAgentModel,
|
|
1184
|
+
prompter: params.prompter
|
|
1185
|
+
});
|
|
1186
|
+
nextConfig = applied.config;
|
|
1187
|
+
agentModelOverride = applied.agentModelOverride ?? agentModelOverride;
|
|
971
1188
|
return {
|
|
972
1189
|
config: nextConfig,
|
|
973
1190
|
agentModelOverride
|
|
@@ -1474,7 +1691,7 @@ async function applyAuthChoiceMiniMax(params) {
|
|
|
1474
1691
|
label: "MiniMax"
|
|
1475
1692
|
});
|
|
1476
1693
|
if (params.authChoice === "minimax-cloud" || params.authChoice === "minimax-api" || params.authChoice === "minimax-api-lightning") {
|
|
1477
|
-
const modelId = params.authChoice === "minimax-api-lightning" ? "MiniMax-M2.
|
|
1694
|
+
const modelId = params.authChoice === "minimax-api-lightning" ? "MiniMax-M2.5-Lightning" : "MiniMax-M2.5";
|
|
1478
1695
|
let hasCredential = false;
|
|
1479
1696
|
const envKey = resolveEnvApiKey("minimax");
|
|
1480
1697
|
if (envKey) {
|
|
@@ -2152,6 +2369,10 @@ const PREFERRED_PROVIDER_BY_AUTH_CHOICE = {
|
|
|
2152
2369
|
"google-antigravity": "google-antigravity",
|
|
2153
2370
|
"google-gemini-cli": "google-gemini-cli",
|
|
2154
2371
|
"zai-api-key": "zai",
|
|
2372
|
+
"zai-coding-global": "zai",
|
|
2373
|
+
"zai-coding-cn": "zai",
|
|
2374
|
+
"zai-global": "zai",
|
|
2375
|
+
"zai-cn": "zai",
|
|
2155
2376
|
"xiaomi-api-key": "xiaomi",
|
|
2156
2377
|
"synthetic-api-key": "synthetic",
|
|
2157
2378
|
"venice-api-key": "venice",
|
|
@@ -2164,6 +2385,7 @@ const PREFERRED_PROVIDER_BY_AUTH_CHOICE = {
|
|
|
2164
2385
|
minimax: "lmstudio",
|
|
2165
2386
|
"opencode-zen": "opencode",
|
|
2166
2387
|
"xai-api-key": "xai",
|
|
2388
|
+
"litellm-api-key": "litellm",
|
|
2167
2389
|
"qwen-portal": "qwen-portal",
|
|
2168
2390
|
"minimax-portal": "minimax-portal",
|
|
2169
2391
|
"qianfan-api-key": "qianfan",
|
|
@@ -2517,18 +2739,23 @@ const DEFAULT_OLLAMA_BASE_URL = "http://127.0.0.1:11434/v1";
|
|
|
2517
2739
|
const DEFAULT_CONTEXT_WINDOW = 4096;
|
|
2518
2740
|
const DEFAULT_MAX_TOKENS = 4096;
|
|
2519
2741
|
const VERIFY_TIMEOUT_MS = 1e4;
|
|
2742
|
+
var CustomApiError = class extends Error {
|
|
2743
|
+
constructor(code, message) {
|
|
2744
|
+
super(message);
|
|
2745
|
+
this.name = "CustomApiError";
|
|
2746
|
+
this.code = code;
|
|
2747
|
+
}
|
|
2748
|
+
};
|
|
2520
2749
|
const COMPATIBILITY_OPTIONS = [
|
|
2521
2750
|
{
|
|
2522
2751
|
value: "openai",
|
|
2523
2752
|
label: "OpenAI-compatible",
|
|
2524
|
-
hint: "Uses /chat/completions"
|
|
2525
|
-
api: "openai-completions"
|
|
2753
|
+
hint: "Uses /chat/completions"
|
|
2526
2754
|
},
|
|
2527
2755
|
{
|
|
2528
2756
|
value: "anthropic",
|
|
2529
2757
|
label: "Anthropic-compatible",
|
|
2530
|
-
hint: "Uses /messages"
|
|
2531
|
-
api: "anthropic-messages"
|
|
2758
|
+
hint: "Uses /messages"
|
|
2532
2759
|
},
|
|
2533
2760
|
{
|
|
2534
2761
|
value: "unknown",
|
|
@@ -2689,6 +2916,132 @@ async function promptBaseUrlAndKey(params) {
|
|
|
2689
2916
|
apiKey: apiKeyInput.trim()
|
|
2690
2917
|
};
|
|
2691
2918
|
}
|
|
2919
|
+
function resolveProviderApi(compatibility) {
|
|
2920
|
+
return compatibility === "anthropic" ? "anthropic-messages" : "openai-completions";
|
|
2921
|
+
}
|
|
2922
|
+
function parseCustomApiCompatibility(raw) {
|
|
2923
|
+
const compatibilityRaw = raw?.trim().toLowerCase();
|
|
2924
|
+
if (!compatibilityRaw) return "openai";
|
|
2925
|
+
if (compatibilityRaw !== "openai" && compatibilityRaw !== "anthropic") throw new CustomApiError("invalid_compatibility", "Invalid --custom-compatibility (use \"openai\" or \"anthropic\").");
|
|
2926
|
+
return compatibilityRaw;
|
|
2927
|
+
}
|
|
2928
|
+
function resolveCustomProviderId(params) {
|
|
2929
|
+
const providers = params.config.models?.providers ?? {};
|
|
2930
|
+
const baseUrl = params.baseUrl.trim();
|
|
2931
|
+
const explicitProviderId = params.providerId?.trim();
|
|
2932
|
+
if (explicitProviderId && !normalizeEndpointId(explicitProviderId)) throw new CustomApiError("invalid_provider_id", "Custom provider ID must include letters, numbers, or hyphens.");
|
|
2933
|
+
const requestedProviderId = explicitProviderId || buildEndpointIdFromUrl(baseUrl);
|
|
2934
|
+
const providerIdResult = resolveUniqueEndpointId({
|
|
2935
|
+
requestedId: requestedProviderId,
|
|
2936
|
+
baseUrl,
|
|
2937
|
+
providers
|
|
2938
|
+
});
|
|
2939
|
+
return {
|
|
2940
|
+
providerId: providerIdResult.providerId,
|
|
2941
|
+
...providerIdResult.renamed ? { providerIdRenamedFrom: normalizeEndpointId(requestedProviderId) || "custom" } : {}
|
|
2942
|
+
};
|
|
2943
|
+
}
|
|
2944
|
+
function parseNonInteractiveCustomApiFlags(params) {
|
|
2945
|
+
const baseUrl = params.baseUrl?.trim() ?? "";
|
|
2946
|
+
const modelId = params.modelId?.trim() ?? "";
|
|
2947
|
+
if (!baseUrl || !modelId) throw new CustomApiError("missing_required", ["Auth choice \"custom-api-key\" requires a base URL and model ID.", "Use --custom-base-url and --custom-model-id."].join("\n"));
|
|
2948
|
+
const apiKey = params.apiKey?.trim();
|
|
2949
|
+
const providerId = params.providerId?.trim();
|
|
2950
|
+
if (providerId && !normalizeEndpointId(providerId)) throw new CustomApiError("invalid_provider_id", "Custom provider ID must include letters, numbers, or hyphens.");
|
|
2951
|
+
return {
|
|
2952
|
+
baseUrl,
|
|
2953
|
+
modelId,
|
|
2954
|
+
compatibility: parseCustomApiCompatibility(params.compatibility),
|
|
2955
|
+
...apiKey ? { apiKey } : {},
|
|
2956
|
+
...providerId ? { providerId } : {}
|
|
2957
|
+
};
|
|
2958
|
+
}
|
|
2959
|
+
function applyCustomApiConfig(params) {
|
|
2960
|
+
const baseUrl = params.baseUrl.trim();
|
|
2961
|
+
try {
|
|
2962
|
+
new URL(baseUrl);
|
|
2963
|
+
} catch {
|
|
2964
|
+
throw new CustomApiError("invalid_base_url", "Custom provider base URL must be a valid URL.");
|
|
2965
|
+
}
|
|
2966
|
+
if (params.compatibility !== "openai" && params.compatibility !== "anthropic") throw new CustomApiError("invalid_compatibility", "Custom provider compatibility must be \"openai\" or \"anthropic\".");
|
|
2967
|
+
const modelId = params.modelId.trim();
|
|
2968
|
+
if (!modelId) throw new CustomApiError("invalid_model_id", "Custom provider model ID is required.");
|
|
2969
|
+
const providerIdResult = resolveCustomProviderId({
|
|
2970
|
+
config: params.config,
|
|
2971
|
+
baseUrl,
|
|
2972
|
+
providerId: params.providerId
|
|
2973
|
+
});
|
|
2974
|
+
const providerId = providerIdResult.providerId;
|
|
2975
|
+
const providers = params.config.models?.providers ?? {};
|
|
2976
|
+
const modelRef = modelKey(providerId, modelId);
|
|
2977
|
+
const alias = params.alias?.trim() ?? "";
|
|
2978
|
+
const aliasError = resolveAliasError({
|
|
2979
|
+
raw: alias,
|
|
2980
|
+
cfg: params.config,
|
|
2981
|
+
modelRef
|
|
2982
|
+
});
|
|
2983
|
+
if (aliasError) throw new CustomApiError("invalid_alias", aliasError);
|
|
2984
|
+
const existingProvider = providers[providerId];
|
|
2985
|
+
const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
|
|
2986
|
+
const hasModel = existingModels.some((model) => model.id === modelId);
|
|
2987
|
+
const nextModel = {
|
|
2988
|
+
id: modelId,
|
|
2989
|
+
name: `${modelId} (Custom Provider)`,
|
|
2990
|
+
contextWindow: DEFAULT_CONTEXT_WINDOW,
|
|
2991
|
+
maxTokens: DEFAULT_MAX_TOKENS,
|
|
2992
|
+
input: ["text"],
|
|
2993
|
+
cost: {
|
|
2994
|
+
input: 0,
|
|
2995
|
+
output: 0,
|
|
2996
|
+
cacheRead: 0,
|
|
2997
|
+
cacheWrite: 0
|
|
2998
|
+
},
|
|
2999
|
+
reasoning: false
|
|
3000
|
+
};
|
|
3001
|
+
const mergedModels = hasModel ? existingModels : [...existingModels, nextModel];
|
|
3002
|
+
const { apiKey: existingApiKey, ...existingProviderRest } = existingProvider ?? {};
|
|
3003
|
+
const normalizedApiKey = params.apiKey?.trim() || (existingApiKey ? existingApiKey.trim() : void 0);
|
|
3004
|
+
let config = {
|
|
3005
|
+
...params.config,
|
|
3006
|
+
models: {
|
|
3007
|
+
...params.config.models,
|
|
3008
|
+
mode: params.config.models?.mode ?? "merge",
|
|
3009
|
+
providers: {
|
|
3010
|
+
...providers,
|
|
3011
|
+
[providerId]: {
|
|
3012
|
+
...existingProviderRest,
|
|
3013
|
+
baseUrl,
|
|
3014
|
+
api: resolveProviderApi(params.compatibility),
|
|
3015
|
+
...normalizedApiKey ? { apiKey: normalizedApiKey } : {},
|
|
3016
|
+
models: mergedModels.length > 0 ? mergedModels : [nextModel]
|
|
3017
|
+
}
|
|
3018
|
+
}
|
|
3019
|
+
}
|
|
3020
|
+
};
|
|
3021
|
+
config = applyPrimaryModel(config, modelRef);
|
|
3022
|
+
if (alias) config = {
|
|
3023
|
+
...config,
|
|
3024
|
+
agents: {
|
|
3025
|
+
...config.agents,
|
|
3026
|
+
defaults: {
|
|
3027
|
+
...config.agents?.defaults,
|
|
3028
|
+
models: {
|
|
3029
|
+
...config.agents?.defaults?.models,
|
|
3030
|
+
[modelRef]: {
|
|
3031
|
+
...config.agents?.defaults?.models?.[modelRef],
|
|
3032
|
+
alias
|
|
3033
|
+
}
|
|
3034
|
+
}
|
|
3035
|
+
}
|
|
3036
|
+
}
|
|
3037
|
+
};
|
|
3038
|
+
return {
|
|
3039
|
+
config,
|
|
3040
|
+
providerId,
|
|
3041
|
+
modelId,
|
|
3042
|
+
...providerIdResult.providerIdRenamedFrom ? { providerIdRenamedFrom: providerIdResult.providerIdRenamedFrom } : {}
|
|
3043
|
+
};
|
|
3044
|
+
}
|
|
2692
3045
|
async function promptCustomApiConfig(params) {
|
|
2693
3046
|
const { prompter, runtime, config } = params;
|
|
2694
3047
|
const baseInput = await promptBaseUrlAndKey({ prompter });
|
|
@@ -2708,7 +3061,6 @@ async function promptCustomApiConfig(params) {
|
|
|
2708
3061
|
validate: (val) => val.trim() ? void 0 : "Model ID is required"
|
|
2709
3062
|
})).trim();
|
|
2710
3063
|
let compatibility = compatibilityChoice === "unknown" ? null : compatibilityChoice;
|
|
2711
|
-
let providerApi = COMPATIBILITY_OPTIONS.find((entry) => entry.value === compatibility)?.api ?? "openai-completions";
|
|
2712
3064
|
while (true) {
|
|
2713
3065
|
let verifiedFromProbe = false;
|
|
2714
3066
|
if (!compatibility) {
|
|
@@ -2720,7 +3072,6 @@ async function promptCustomApiConfig(params) {
|
|
|
2720
3072
|
})).ok) {
|
|
2721
3073
|
probeSpinner.stop("Detected OpenAI-compatible endpoint.");
|
|
2722
3074
|
compatibility = "openai";
|
|
2723
|
-
providerApi = "openai-completions";
|
|
2724
3075
|
verifiedFromProbe = true;
|
|
2725
3076
|
} else if ((await requestAnthropicVerification({
|
|
2726
3077
|
baseUrl,
|
|
@@ -2729,7 +3080,6 @@ async function promptCustomApiConfig(params) {
|
|
|
2729
3080
|
})).ok) {
|
|
2730
3081
|
probeSpinner.stop("Detected Anthropic-compatible endpoint.");
|
|
2731
3082
|
compatibility = "anthropic";
|
|
2732
|
-
providerApi = "anthropic-messages";
|
|
2733
3083
|
verifiedFromProbe = true;
|
|
2734
3084
|
} else {
|
|
2735
3085
|
probeSpinner.stop("Could not detect endpoint type.");
|
|
@@ -2826,84 +3176,34 @@ async function promptCustomApiConfig(params) {
|
|
|
2826
3176
|
if (!normalizeEndpointId(value)) return "Endpoint ID is required.";
|
|
2827
3177
|
}
|
|
2828
3178
|
});
|
|
2829
|
-
const
|
|
2830
|
-
requestedId: providerIdInput,
|
|
2831
|
-
baseUrl,
|
|
2832
|
-
providers
|
|
2833
|
-
});
|
|
2834
|
-
if (providerIdResult.renamed) await prompter.note(`Endpoint ID "${providerIdInput}" already exists for a different base URL. Using "${providerIdResult.providerId}".`, "Endpoint ID");
|
|
2835
|
-
const providerId = providerIdResult.providerId;
|
|
2836
|
-
const modelRef = modelKey(providerId, modelId);
|
|
2837
|
-
const alias = (await prompter.text({
|
|
3179
|
+
const aliasInput = await prompter.text({
|
|
2838
3180
|
message: "Model alias (optional)",
|
|
2839
3181
|
placeholder: "e.g. local, ollama",
|
|
2840
3182
|
initialValue: "",
|
|
2841
|
-
validate: (value) =>
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
const existingProvider = providers[providerId];
|
|
2848
|
-
const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
|
|
2849
|
-
const hasModel = existingModels.some((model) => model.id === modelId);
|
|
2850
|
-
const nextModel = {
|
|
2851
|
-
id: modelId,
|
|
2852
|
-
name: `${modelId} (Custom Provider)`,
|
|
2853
|
-
contextWindow: DEFAULT_CONTEXT_WINDOW,
|
|
2854
|
-
maxTokens: DEFAULT_MAX_TOKENS,
|
|
2855
|
-
input: ["text"],
|
|
2856
|
-
cost: {
|
|
2857
|
-
input: 0,
|
|
2858
|
-
output: 0,
|
|
2859
|
-
cacheRead: 0,
|
|
2860
|
-
cacheWrite: 0
|
|
2861
|
-
},
|
|
2862
|
-
reasoning: false
|
|
2863
|
-
};
|
|
2864
|
-
const mergedModels = hasModel ? existingModels : [...existingModels, nextModel];
|
|
2865
|
-
const { apiKey: existingApiKey, ...existingProviderRest } = existingProvider ?? {};
|
|
2866
|
-
const normalizedApiKey = apiKey.trim() || (existingApiKey ? existingApiKey.trim() : void 0);
|
|
2867
|
-
let newConfig = {
|
|
2868
|
-
...config,
|
|
2869
|
-
models: {
|
|
2870
|
-
...config.models,
|
|
2871
|
-
mode: config.models?.mode ?? "merge",
|
|
2872
|
-
providers: {
|
|
2873
|
-
...providers,
|
|
2874
|
-
[providerId]: {
|
|
2875
|
-
...existingProviderRest,
|
|
3183
|
+
validate: (value) => {
|
|
3184
|
+
return resolveAliasError({
|
|
3185
|
+
raw: value,
|
|
3186
|
+
cfg: config,
|
|
3187
|
+
modelRef: modelKey(resolveUniqueEndpointId({
|
|
3188
|
+
requestedId: normalizeEndpointId(providerIdInput) || "custom",
|
|
2876
3189
|
baseUrl,
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
}
|
|
2881
|
-
}
|
|
2882
|
-
}
|
|
2883
|
-
};
|
|
2884
|
-
newConfig = applyPrimaryModel(newConfig, modelRef);
|
|
2885
|
-
if (alias) newConfig = {
|
|
2886
|
-
...newConfig,
|
|
2887
|
-
agents: {
|
|
2888
|
-
...newConfig.agents,
|
|
2889
|
-
defaults: {
|
|
2890
|
-
...newConfig.agents?.defaults,
|
|
2891
|
-
models: {
|
|
2892
|
-
...newConfig.agents?.defaults?.models,
|
|
2893
|
-
[modelRef]: {
|
|
2894
|
-
...newConfig.agents?.defaults?.models?.[modelRef],
|
|
2895
|
-
alias
|
|
2896
|
-
}
|
|
2897
|
-
}
|
|
2898
|
-
}
|
|
3190
|
+
providers
|
|
3191
|
+
}).providerId, modelId)
|
|
3192
|
+
});
|
|
2899
3193
|
}
|
|
2900
|
-
};
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
3194
|
+
});
|
|
3195
|
+
const result = applyCustomApiConfig({
|
|
3196
|
+
config,
|
|
3197
|
+
baseUrl,
|
|
3198
|
+
modelId,
|
|
3199
|
+
compatibility: compatibility ?? "openai",
|
|
3200
|
+
apiKey,
|
|
3201
|
+
providerId: providerIdInput,
|
|
3202
|
+
alias: aliasInput
|
|
3203
|
+
});
|
|
3204
|
+
if (result.providerIdRenamedFrom && result.providerId) await prompter.note(`Endpoint ID "${result.providerIdRenamedFrom}" already exists for a different base URL. Using "${result.providerId}".`, "Endpoint ID");
|
|
3205
|
+
runtime.log(`Configured custom provider: ${result.providerId}/${result.modelId}`);
|
|
3206
|
+
return result;
|
|
2907
3207
|
}
|
|
2908
3208
|
|
|
2909
3209
|
//#endregion
|
|
@@ -3457,24 +3757,28 @@ function buildNodeInstallCommand(packageName, prefs) {
|
|
|
3457
3757
|
"pnpm",
|
|
3458
3758
|
"add",
|
|
3459
3759
|
"-g",
|
|
3760
|
+
"--ignore-scripts",
|
|
3460
3761
|
packageName
|
|
3461
3762
|
];
|
|
3462
3763
|
case "yarn": return [
|
|
3463
3764
|
"yarn",
|
|
3464
3765
|
"global",
|
|
3465
3766
|
"add",
|
|
3767
|
+
"--ignore-scripts",
|
|
3466
3768
|
packageName
|
|
3467
3769
|
];
|
|
3468
3770
|
case "bun": return [
|
|
3469
3771
|
"bun",
|
|
3470
3772
|
"add",
|
|
3471
3773
|
"-g",
|
|
3774
|
+
"--ignore-scripts",
|
|
3472
3775
|
packageName
|
|
3473
3776
|
];
|
|
3474
3777
|
default: return [
|
|
3475
3778
|
"npm",
|
|
3476
3779
|
"install",
|
|
3477
3780
|
"-g",
|
|
3781
|
+
"--ignore-scripts",
|
|
3478
3782
|
packageName
|
|
3479
3783
|
];
|
|
3480
3784
|
}
|
|
@@ -3919,4 +4223,4 @@ async function setupSkills(cfg, workspaceDir, runtime, prompter) {
|
|
|
3919
4223
|
}
|
|
3920
4224
|
|
|
3921
4225
|
//#endregion
|
|
3922
|
-
export { promptAuthChoiceGrouped as _,
|
|
4226
|
+
export { promptAuthChoiceGrouped as S, applyAuthChoice as _, CustomApiError as a, detectZaiEndpoint as b, promptCustomApiConfig as c, applyModelFallbacksFromSelection as d, applyPrimaryModel as f, warnIfModelConfigLooksOff as g, resolvePreferredProviderForAuthChoice as h, discoverGatewayBeacons as i, resolveCustomProviderId as l, promptModelAllowlist as m, installSkill as n, applyCustomApiConfig as o, promptDefaultModel as p, promptRemoteGatewayConfig as r, parseNonInteractiveCustomApiFlags as s, setupSkills as t, applyModelAllowlist as u, applyOpenAIConfig as v, applyGoogleGeminiModelDefault as x, upsertSharedEnvVar as y };
|