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 { C as buildAllowedModelSet, M as resolveAllowlistModelKey, N as resolveConfiguredModelRef, O as modelKey, S as resolveOpenClawAgentDir, T as buildModelAliasIndex, Tt as DEFAULT_PROVIDER, Y as VENICE_DEFAULT_MODEL_REF, _ as ensureAuthProfileStore, bt as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, c as CHUTES_AUTHORIZE_ENDPOINT, d as parseOAuthCallbackInput, g as upsertAuthProfile, k as normalizeProviderId, l as exchangeChutesCodeForTokens, n as resolveAuthProfileOrder, nt as SYNTHETIC_DEFAULT_MODEL_REF, ot as getCustomProviderApiKey, p as listProfilesForProvider, pt as normalizeSecretInput, u as generateChutesPkce, ut as resolveEnvApiKey, wt as DEFAULT_MODEL } from "./auth-profiles-
|
|
2
|
-
import { t as formatCliCommand } from "./command-format-
|
|
3
|
-
import { c as escapeRegExp, g as resolveConfigDir, s as ensureDir, t as CONFIG_DIR, y as resolveUserPath } from "./utils-
|
|
4
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
5
|
-
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-
|
|
6
|
-
import { t as resolveBrewExecutable } from "./brew-
|
|
7
|
-
import {
|
|
8
|
-
import { a as enablePluginInConfig } from "./onboard-channels-
|
|
9
|
-
import { t as scanDirectoryWithSummary } from "./skill-scanner-
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { t as
|
|
1
|
+
import { C as buildAllowedModelSet, M as resolveAllowlistModelKey, N as resolveConfiguredModelRef, O as modelKey, S as resolveOpenClawAgentDir, T as buildModelAliasIndex, Tt as DEFAULT_PROVIDER, Y as VENICE_DEFAULT_MODEL_REF, _ as ensureAuthProfileStore, bt as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, c as CHUTES_AUTHORIZE_ENDPOINT, d as parseOAuthCallbackInput, g as upsertAuthProfile, k as normalizeProviderId, l as exchangeChutesCodeForTokens, n as resolveAuthProfileOrder, nt as SYNTHETIC_DEFAULT_MODEL_REF, ot as getCustomProviderApiKey, p as listProfilesForProvider, pt as normalizeSecretInput, u as generateChutesPkce, ut as resolveEnvApiKey, wt as DEFAULT_MODEL } from "./auth-profiles-ByNs3eEm.js";
|
|
2
|
+
import { t as formatCliCommand } from "./command-format-Bxe0mWee.js";
|
|
3
|
+
import { c as escapeRegExp, g as resolveConfigDir, s as ensureDir, t as CONFIG_DIR, y as resolveUserPath } from "./utils-BLJAc3ZV.js";
|
|
4
|
+
import { t as runCommandWithTimeout } from "./exec-CACT5OAW.js";
|
|
5
|
+
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-CsRbLH4l.js";
|
|
6
|
+
import { t as resolveBrewExecutable } from "./brew-BUIxHEkn.js";
|
|
7
|
+
import { m as openUrl, o as detectBinary, y as resolveNodeManagerOptions } from "./loader-KjT074JR.js";
|
|
8
|
+
import { a as enablePluginInConfig } from "./onboard-channels-C501x8GI.js";
|
|
9
|
+
import { t as scanDirectoryWithSummary } from "./skill-scanner-rHMtUHtP.js";
|
|
10
|
+
import { i as fetchWithSsrFGuard, t as fetchWithTimeout } from "./fetch-timeout-DTK9vxex.js";
|
|
11
|
+
import { b as resolveSkillKey, i as loadWorkspaceSkillEntries, m as hasBinary, t as resolveSkillsInstallPreferences } from "./skills-DRjfSQT3.js";
|
|
12
|
+
import { _ as loadModelCatalog } from "./runner-CY0nmVme.js";
|
|
13
|
+
import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-BaIgNEhY.js";
|
|
14
|
+
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-DDispnyz.js";
|
|
15
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-TDIgVd1K.js";
|
|
15
16
|
import path from "node:path";
|
|
16
17
|
import fs from "node:fs";
|
|
17
18
|
import { loginOpenAICodex } from "@mariozechner/pi-ai";
|
|
@@ -418,7 +419,7 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
418
419
|
{
|
|
419
420
|
value: "minimax",
|
|
420
421
|
label: "MiniMax",
|
|
421
|
-
hint: "M2.
|
|
422
|
+
hint: "M2.5 (recommended)",
|
|
422
423
|
choices: [
|
|
423
424
|
"minimax-portal",
|
|
424
425
|
"minimax-api",
|
|
@@ -465,9 +466,14 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
465
466
|
},
|
|
466
467
|
{
|
|
467
468
|
value: "zai",
|
|
468
|
-
label: "Z.AI
|
|
469
|
-
hint: "
|
|
470
|
-
choices: [
|
|
469
|
+
label: "Z.AI",
|
|
470
|
+
hint: "GLM Coding Plan / Global / CN",
|
|
471
|
+
choices: [
|
|
472
|
+
"zai-coding-global",
|
|
473
|
+
"zai-coding-cn",
|
|
474
|
+
"zai-global",
|
|
475
|
+
"zai-cn"
|
|
476
|
+
]
|
|
471
477
|
},
|
|
472
478
|
{
|
|
473
479
|
value: "qianfan",
|
|
@@ -517,6 +523,12 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
517
523
|
hint: "Privacy-focused (uncensored models)",
|
|
518
524
|
choices: ["venice-api-key"]
|
|
519
525
|
},
|
|
526
|
+
{
|
|
527
|
+
value: "litellm",
|
|
528
|
+
label: "LiteLLM",
|
|
529
|
+
hint: "Unified LLM gateway (100+ providers)",
|
|
530
|
+
choices: ["litellm-api-key"]
|
|
531
|
+
},
|
|
520
532
|
{
|
|
521
533
|
value: "cloudflare-ai-gateway",
|
|
522
534
|
label: "Cloudflare AI Gateway",
|
|
@@ -562,6 +574,11 @@ function buildAuthChoiceOptions(params) {
|
|
|
562
574
|
value: "openrouter-api-key",
|
|
563
575
|
label: "OpenRouter API key"
|
|
564
576
|
});
|
|
577
|
+
options.push({
|
|
578
|
+
value: "litellm-api-key",
|
|
579
|
+
label: "LiteLLM API key",
|
|
580
|
+
hint: "Unified gateway for 100+ LLM providers"
|
|
581
|
+
});
|
|
565
582
|
options.push({
|
|
566
583
|
value: "ai-gateway-api-key",
|
|
567
584
|
label: "Vercel AI Gateway API key"
|
|
@@ -618,7 +635,27 @@ function buildAuthChoiceOptions(params) {
|
|
|
618
635
|
});
|
|
619
636
|
options.push({
|
|
620
637
|
value: "zai-api-key",
|
|
621
|
-
label: "Z.AI
|
|
638
|
+
label: "Z.AI API key"
|
|
639
|
+
});
|
|
640
|
+
options.push({
|
|
641
|
+
value: "zai-coding-global",
|
|
642
|
+
label: "Coding-Plan-Global",
|
|
643
|
+
hint: "GLM Coding Plan Global (api.z.ai)"
|
|
644
|
+
});
|
|
645
|
+
options.push({
|
|
646
|
+
value: "zai-coding-cn",
|
|
647
|
+
label: "Coding-Plan-CN",
|
|
648
|
+
hint: "GLM Coding Plan CN (open.bigmodel.cn)"
|
|
649
|
+
});
|
|
650
|
+
options.push({
|
|
651
|
+
value: "zai-global",
|
|
652
|
+
label: "Global",
|
|
653
|
+
hint: "Z.AI Global (api.z.ai)"
|
|
654
|
+
});
|
|
655
|
+
options.push({
|
|
656
|
+
value: "zai-cn",
|
|
657
|
+
label: "CN",
|
|
658
|
+
hint: "Z.AI CN (open.bigmodel.cn)"
|
|
622
659
|
});
|
|
623
660
|
options.push({
|
|
624
661
|
value: "xiaomi-api-key",
|
|
@@ -649,11 +686,11 @@ function buildAuthChoiceOptions(params) {
|
|
|
649
686
|
});
|
|
650
687
|
options.push({
|
|
651
688
|
value: "minimax-api",
|
|
652
|
-
label: "MiniMax M2.
|
|
689
|
+
label: "MiniMax M2.5"
|
|
653
690
|
});
|
|
654
691
|
options.push({
|
|
655
692
|
value: "minimax-api-lightning",
|
|
656
|
-
label: "MiniMax M2.
|
|
693
|
+
label: "MiniMax M2.5 Lightning",
|
|
657
694
|
hint: "Faster, higher output cost"
|
|
658
695
|
});
|
|
659
696
|
options.push({
|
|
@@ -894,6 +931,91 @@ function applyGoogleGeminiModelDefault(cfg) {
|
|
|
894
931
|
//#region src/commands/opencode-zen-model-default.ts
|
|
895
932
|
const OPENCODE_ZEN_DEFAULT_MODEL = "opencode/claude-opus-4-6";
|
|
896
933
|
|
|
934
|
+
//#endregion
|
|
935
|
+
//#region src/commands/zai-endpoint-detect.ts
|
|
936
|
+
async function probeZaiChatCompletions(params) {
|
|
937
|
+
try {
|
|
938
|
+
const res = await fetchWithTimeout(`${params.baseUrl}/chat/completions`, {
|
|
939
|
+
method: "POST",
|
|
940
|
+
headers: {
|
|
941
|
+
authorization: `Bearer ${params.apiKey}`,
|
|
942
|
+
"content-type": "application/json"
|
|
943
|
+
},
|
|
944
|
+
body: JSON.stringify({
|
|
945
|
+
model: params.modelId,
|
|
946
|
+
stream: false,
|
|
947
|
+
max_tokens: 1,
|
|
948
|
+
messages: [{
|
|
949
|
+
role: "user",
|
|
950
|
+
content: "ping"
|
|
951
|
+
}]
|
|
952
|
+
})
|
|
953
|
+
}, params.timeoutMs, params.fetchFn);
|
|
954
|
+
if (res.ok) return { ok: true };
|
|
955
|
+
let errorCode;
|
|
956
|
+
let errorMessage;
|
|
957
|
+
try {
|
|
958
|
+
const json = await res.json();
|
|
959
|
+
const code = json?.error?.code;
|
|
960
|
+
const msg = json?.error?.message ?? json?.msg ?? json?.message;
|
|
961
|
+
if (typeof code === "string") errorCode = code;
|
|
962
|
+
else if (typeof code === "number") errorCode = String(code);
|
|
963
|
+
if (typeof msg === "string") errorMessage = msg;
|
|
964
|
+
} catch {}
|
|
965
|
+
return {
|
|
966
|
+
ok: false,
|
|
967
|
+
status: res.status,
|
|
968
|
+
errorCode,
|
|
969
|
+
errorMessage
|
|
970
|
+
};
|
|
971
|
+
} catch {
|
|
972
|
+
return { ok: false };
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
async function detectZaiEndpoint(params) {
|
|
976
|
+
if (process.env.VITEST && !params.fetchFn) return null;
|
|
977
|
+
const timeoutMs = params.timeoutMs ?? 5e3;
|
|
978
|
+
const glm5 = [{
|
|
979
|
+
endpoint: "global",
|
|
980
|
+
baseUrl: ZAI_GLOBAL_BASE_URL
|
|
981
|
+
}, {
|
|
982
|
+
endpoint: "cn",
|
|
983
|
+
baseUrl: ZAI_CN_BASE_URL
|
|
984
|
+
}];
|
|
985
|
+
for (const candidate of glm5) if ((await probeZaiChatCompletions({
|
|
986
|
+
baseUrl: candidate.baseUrl,
|
|
987
|
+
apiKey: params.apiKey,
|
|
988
|
+
modelId: "glm-5",
|
|
989
|
+
timeoutMs,
|
|
990
|
+
fetchFn: params.fetchFn
|
|
991
|
+
})).ok) return {
|
|
992
|
+
endpoint: candidate.endpoint,
|
|
993
|
+
baseUrl: candidate.baseUrl,
|
|
994
|
+
modelId: "glm-5",
|
|
995
|
+
note: `Verified GLM-5 on ${candidate.endpoint} endpoint.`
|
|
996
|
+
};
|
|
997
|
+
const coding = [{
|
|
998
|
+
endpoint: "coding-global",
|
|
999
|
+
baseUrl: ZAI_CODING_GLOBAL_BASE_URL
|
|
1000
|
+
}, {
|
|
1001
|
+
endpoint: "coding-cn",
|
|
1002
|
+
baseUrl: ZAI_CODING_CN_BASE_URL
|
|
1003
|
+
}];
|
|
1004
|
+
for (const candidate of coding) if ((await probeZaiChatCompletions({
|
|
1005
|
+
baseUrl: candidate.baseUrl,
|
|
1006
|
+
apiKey: params.apiKey,
|
|
1007
|
+
modelId: "glm-4.7",
|
|
1008
|
+
timeoutMs,
|
|
1009
|
+
fetchFn: params.fetchFn
|
|
1010
|
+
})).ok) return {
|
|
1011
|
+
endpoint: candidate.endpoint,
|
|
1012
|
+
baseUrl: candidate.baseUrl,
|
|
1013
|
+
modelId: "glm-4.7",
|
|
1014
|
+
note: "Coding Plan endpoint detected; GLM-5 is not available there. Defaulting to GLM-4.7."
|
|
1015
|
+
};
|
|
1016
|
+
return null;
|
|
1017
|
+
}
|
|
1018
|
+
|
|
897
1019
|
//#endregion
|
|
898
1020
|
//#region src/commands/auth-choice.apply.api-providers.ts
|
|
899
1021
|
async function applyAuthChoiceApiProviders(params) {
|
|
@@ -906,6 +1028,7 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
906
1028
|
let authChoice = params.authChoice;
|
|
907
1029
|
if (authChoice === "apiKey" && params.opts?.tokenProvider && params.opts.tokenProvider !== "anthropic" && params.opts.tokenProvider !== "openai") {
|
|
908
1030
|
if (params.opts.tokenProvider === "openrouter") authChoice = "openrouter-api-key";
|
|
1031
|
+
else if (params.opts.tokenProvider === "litellm") authChoice = "litellm-api-key";
|
|
909
1032
|
else if (params.opts.tokenProvider === "vercel-ai-gateway") authChoice = "ai-gateway-api-key";
|
|
910
1033
|
else if (params.opts.tokenProvider === "cloudflare-ai-gateway") authChoice = "cloudflare-ai-gateway-api-key";
|
|
911
1034
|
else if (params.opts.tokenProvider === "moonshot") authChoice = "moonshot-api-key";
|
|
@@ -983,6 +1106,67 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
983
1106
|
agentModelOverride
|
|
984
1107
|
};
|
|
985
1108
|
}
|
|
1109
|
+
if (authChoice === "litellm-api-key") {
|
|
1110
|
+
const store = ensureAuthProfileStore(params.agentDir, { allowKeychainPrompt: false });
|
|
1111
|
+
const existingProfileId = resolveAuthProfileOrder({
|
|
1112
|
+
cfg: nextConfig,
|
|
1113
|
+
store,
|
|
1114
|
+
provider: "litellm"
|
|
1115
|
+
}).find((profileId) => Boolean(store.profiles[profileId]));
|
|
1116
|
+
const existingCred = existingProfileId ? store.profiles[existingProfileId] : void 0;
|
|
1117
|
+
let profileId = "litellm:default";
|
|
1118
|
+
let hasCredential = false;
|
|
1119
|
+
if (existingProfileId && existingCred?.type === "api_key") {
|
|
1120
|
+
profileId = existingProfileId;
|
|
1121
|
+
hasCredential = true;
|
|
1122
|
+
}
|
|
1123
|
+
if (!hasCredential && params.opts?.token && params.opts?.tokenProvider === "litellm") {
|
|
1124
|
+
await setLitellmApiKey(normalizeApiKeyInput(params.opts.token), params.agentDir);
|
|
1125
|
+
hasCredential = true;
|
|
1126
|
+
}
|
|
1127
|
+
if (!hasCredential) {
|
|
1128
|
+
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");
|
|
1129
|
+
const envKey = resolveEnvApiKey("litellm");
|
|
1130
|
+
if (envKey) {
|
|
1131
|
+
if (await params.prompter.confirm({
|
|
1132
|
+
message: `Use existing LITELLM_API_KEY (${envKey.source}, ${formatApiKeyPreview(envKey.apiKey)})?`,
|
|
1133
|
+
initialValue: true
|
|
1134
|
+
})) {
|
|
1135
|
+
await setLitellmApiKey(envKey.apiKey, params.agentDir);
|
|
1136
|
+
hasCredential = true;
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
if (!hasCredential) {
|
|
1140
|
+
const key = await params.prompter.text({
|
|
1141
|
+
message: "Enter LiteLLM API key",
|
|
1142
|
+
validate: validateApiKeyInput
|
|
1143
|
+
});
|
|
1144
|
+
await setLitellmApiKey(normalizeApiKeyInput(String(key)), params.agentDir);
|
|
1145
|
+
hasCredential = true;
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
if (hasCredential) nextConfig = applyAuthProfileConfig(nextConfig, {
|
|
1149
|
+
profileId,
|
|
1150
|
+
provider: "litellm",
|
|
1151
|
+
mode: "api_key"
|
|
1152
|
+
});
|
|
1153
|
+
const applied = await applyDefaultModelChoice({
|
|
1154
|
+
config: nextConfig,
|
|
1155
|
+
setDefaultModel: params.setDefaultModel,
|
|
1156
|
+
defaultModel: LITELLM_DEFAULT_MODEL_REF,
|
|
1157
|
+
applyDefaultConfig: applyLitellmConfig,
|
|
1158
|
+
applyProviderConfig: applyLitellmProviderConfig,
|
|
1159
|
+
noteDefault: LITELLM_DEFAULT_MODEL_REF,
|
|
1160
|
+
noteAgentModel,
|
|
1161
|
+
prompter: params.prompter
|
|
1162
|
+
});
|
|
1163
|
+
nextConfig = applied.config;
|
|
1164
|
+
agentModelOverride = applied.agentModelOverride ?? agentModelOverride;
|
|
1165
|
+
return {
|
|
1166
|
+
config: nextConfig,
|
|
1167
|
+
agentModelOverride
|
|
1168
|
+
};
|
|
1169
|
+
}
|
|
986
1170
|
if (authChoice === "ai-gateway-api-key") {
|
|
987
1171
|
let hasCredential = false;
|
|
988
1172
|
if (!hasCredential && params.opts?.token && params.opts?.tokenProvider === "vercel-ai-gateway") {
|
|
@@ -1292,10 +1476,17 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
1292
1476
|
agentModelOverride
|
|
1293
1477
|
};
|
|
1294
1478
|
}
|
|
1295
|
-
if (authChoice === "zai-api-key") {
|
|
1479
|
+
if (authChoice === "zai-api-key" || authChoice === "zai-coding-global" || authChoice === "zai-coding-cn" || authChoice === "zai-global" || authChoice === "zai-cn") {
|
|
1480
|
+
let endpoint;
|
|
1481
|
+
if (authChoice === "zai-coding-global") endpoint = "coding-global";
|
|
1482
|
+
else if (authChoice === "zai-coding-cn") endpoint = "coding-cn";
|
|
1483
|
+
else if (authChoice === "zai-global") endpoint = "global";
|
|
1484
|
+
else if (authChoice === "zai-cn") endpoint = "cn";
|
|
1296
1485
|
let hasCredential = false;
|
|
1486
|
+
let apiKey = "";
|
|
1297
1487
|
if (!hasCredential && params.opts?.token && params.opts?.tokenProvider === "zai") {
|
|
1298
|
-
|
|
1488
|
+
apiKey = normalizeApiKeyInput(params.opts.token);
|
|
1489
|
+
await setZaiApiKey(apiKey, params.agentDir);
|
|
1299
1490
|
hasCredential = true;
|
|
1300
1491
|
}
|
|
1301
1492
|
const envKey = resolveEnvApiKey("zai");
|
|
@@ -1304,7 +1495,8 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
1304
1495
|
message: `Use existing ZAI_API_KEY (${envKey.source}, ${formatApiKeyPreview(envKey.apiKey)})?`,
|
|
1305
1496
|
initialValue: true
|
|
1306
1497
|
})) {
|
|
1307
|
-
|
|
1498
|
+
apiKey = envKey.apiKey;
|
|
1499
|
+
await setZaiApiKey(apiKey, params.agentDir);
|
|
1308
1500
|
hasCredential = true;
|
|
1309
1501
|
}
|
|
1310
1502
|
}
|
|
@@ -1313,42 +1505,67 @@ async function applyAuthChoiceApiProviders(params) {
|
|
|
1313
1505
|
message: "Enter Z.AI API key",
|
|
1314
1506
|
validate: validateApiKeyInput
|
|
1315
1507
|
});
|
|
1316
|
-
|
|
1508
|
+
apiKey = normalizeApiKeyInput(String(key));
|
|
1509
|
+
await setZaiApiKey(apiKey, params.agentDir);
|
|
1510
|
+
}
|
|
1511
|
+
let modelIdOverride;
|
|
1512
|
+
if (!endpoint) {
|
|
1513
|
+
const detected = await detectZaiEndpoint({ apiKey });
|
|
1514
|
+
if (detected) {
|
|
1515
|
+
endpoint = detected.endpoint;
|
|
1516
|
+
modelIdOverride = detected.modelId;
|
|
1517
|
+
await params.prompter.note(detected.note, "Z.AI endpoint");
|
|
1518
|
+
} else endpoint = await params.prompter.select({
|
|
1519
|
+
message: "Select Z.AI endpoint",
|
|
1520
|
+
options: [
|
|
1521
|
+
{
|
|
1522
|
+
value: "coding-global",
|
|
1523
|
+
label: "Coding-Plan-Global",
|
|
1524
|
+
hint: "GLM Coding Plan Global (api.z.ai)"
|
|
1525
|
+
},
|
|
1526
|
+
{
|
|
1527
|
+
value: "coding-cn",
|
|
1528
|
+
label: "Coding-Plan-CN",
|
|
1529
|
+
hint: "GLM Coding Plan CN (open.bigmodel.cn)"
|
|
1530
|
+
},
|
|
1531
|
+
{
|
|
1532
|
+
value: "global",
|
|
1533
|
+
label: "Global",
|
|
1534
|
+
hint: "Z.AI Global (api.z.ai)"
|
|
1535
|
+
},
|
|
1536
|
+
{
|
|
1537
|
+
value: "cn",
|
|
1538
|
+
label: "CN",
|
|
1539
|
+
hint: "Z.AI CN (open.bigmodel.cn)"
|
|
1540
|
+
}
|
|
1541
|
+
],
|
|
1542
|
+
initialValue: "global"
|
|
1543
|
+
});
|
|
1317
1544
|
}
|
|
1318
1545
|
nextConfig = applyAuthProfileConfig(nextConfig, {
|
|
1319
1546
|
profileId: "zai:default",
|
|
1320
1547
|
provider: "zai",
|
|
1321
1548
|
mode: "api_key"
|
|
1322
1549
|
});
|
|
1323
|
-
{
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
}
|
|
1343
|
-
}
|
|
1344
|
-
}),
|
|
1345
|
-
noteDefault: ZAI_DEFAULT_MODEL_REF,
|
|
1346
|
-
noteAgentModel,
|
|
1347
|
-
prompter: params.prompter
|
|
1348
|
-
});
|
|
1349
|
-
nextConfig = applied.config;
|
|
1350
|
-
agentModelOverride = applied.agentModelOverride ?? agentModelOverride;
|
|
1351
|
-
}
|
|
1550
|
+
const defaultModel = modelIdOverride ? `zai/${modelIdOverride}` : ZAI_DEFAULT_MODEL_REF;
|
|
1551
|
+
const applied = await applyDefaultModelChoice({
|
|
1552
|
+
config: nextConfig,
|
|
1553
|
+
setDefaultModel: params.setDefaultModel,
|
|
1554
|
+
defaultModel,
|
|
1555
|
+
applyDefaultConfig: (config) => applyZaiConfig(config, {
|
|
1556
|
+
endpoint,
|
|
1557
|
+
...modelIdOverride ? { modelId: modelIdOverride } : {}
|
|
1558
|
+
}),
|
|
1559
|
+
applyProviderConfig: (config) => applyZaiProviderConfig(config, {
|
|
1560
|
+
endpoint,
|
|
1561
|
+
...modelIdOverride ? { modelId: modelIdOverride } : {}
|
|
1562
|
+
}),
|
|
1563
|
+
noteDefault: defaultModel,
|
|
1564
|
+
noteAgentModel,
|
|
1565
|
+
prompter: params.prompter
|
|
1566
|
+
});
|
|
1567
|
+
nextConfig = applied.config;
|
|
1568
|
+
agentModelOverride = applied.agentModelOverride ?? agentModelOverride;
|
|
1352
1569
|
return {
|
|
1353
1570
|
config: nextConfig,
|
|
1354
1571
|
agentModelOverride
|
|
@@ -1855,7 +2072,7 @@ async function applyAuthChoiceMiniMax(params) {
|
|
|
1855
2072
|
label: "MiniMax"
|
|
1856
2073
|
});
|
|
1857
2074
|
if (params.authChoice === "minimax-cloud" || params.authChoice === "minimax-api" || params.authChoice === "minimax-api-lightning") {
|
|
1858
|
-
const modelId = params.authChoice === "minimax-api-lightning" ? "MiniMax-M2.
|
|
2075
|
+
const modelId = params.authChoice === "minimax-api-lightning" ? "MiniMax-M2.5-Lightning" : "MiniMax-M2.5";
|
|
1859
2076
|
let hasCredential = false;
|
|
1860
2077
|
const envKey = resolveEnvApiKey("minimax");
|
|
1861
2078
|
if (envKey) {
|
|
@@ -2533,6 +2750,10 @@ const PREFERRED_PROVIDER_BY_AUTH_CHOICE = {
|
|
|
2533
2750
|
"google-antigravity": "google-antigravity",
|
|
2534
2751
|
"google-gemini-cli": "google-gemini-cli",
|
|
2535
2752
|
"zai-api-key": "zai",
|
|
2753
|
+
"zai-coding-global": "zai",
|
|
2754
|
+
"zai-coding-cn": "zai",
|
|
2755
|
+
"zai-global": "zai",
|
|
2756
|
+
"zai-cn": "zai",
|
|
2536
2757
|
"xiaomi-api-key": "xiaomi",
|
|
2537
2758
|
"synthetic-api-key": "synthetic",
|
|
2538
2759
|
"venice-api-key": "venice",
|
|
@@ -2545,6 +2766,7 @@ const PREFERRED_PROVIDER_BY_AUTH_CHOICE = {
|
|
|
2545
2766
|
minimax: "lmstudio",
|
|
2546
2767
|
"opencode-zen": "opencode",
|
|
2547
2768
|
"xai-api-key": "xai",
|
|
2769
|
+
"litellm-api-key": "litellm",
|
|
2548
2770
|
"qwen-portal": "qwen-portal",
|
|
2549
2771
|
"minimax-portal": "minimax-portal",
|
|
2550
2772
|
"qianfan-api-key": "qianfan",
|
|
@@ -2898,18 +3120,23 @@ const DEFAULT_OLLAMA_BASE_URL = "http://127.0.0.1:11434/v1";
|
|
|
2898
3120
|
const DEFAULT_CONTEXT_WINDOW = 4096;
|
|
2899
3121
|
const DEFAULT_MAX_TOKENS = 4096;
|
|
2900
3122
|
const VERIFY_TIMEOUT_MS = 1e4;
|
|
3123
|
+
var CustomApiError = class extends Error {
|
|
3124
|
+
constructor(code, message) {
|
|
3125
|
+
super(message);
|
|
3126
|
+
this.name = "CustomApiError";
|
|
3127
|
+
this.code = code;
|
|
3128
|
+
}
|
|
3129
|
+
};
|
|
2901
3130
|
const COMPATIBILITY_OPTIONS = [
|
|
2902
3131
|
{
|
|
2903
3132
|
value: "openai",
|
|
2904
3133
|
label: "OpenAI-compatible",
|
|
2905
|
-
hint: "Uses /chat/completions"
|
|
2906
|
-
api: "openai-completions"
|
|
3134
|
+
hint: "Uses /chat/completions"
|
|
2907
3135
|
},
|
|
2908
3136
|
{
|
|
2909
3137
|
value: "anthropic",
|
|
2910
3138
|
label: "Anthropic-compatible",
|
|
2911
|
-
hint: "Uses /messages"
|
|
2912
|
-
api: "anthropic-messages"
|
|
3139
|
+
hint: "Uses /messages"
|
|
2913
3140
|
},
|
|
2914
3141
|
{
|
|
2915
3142
|
value: "unknown",
|
|
@@ -3070,6 +3297,132 @@ async function promptBaseUrlAndKey(params) {
|
|
|
3070
3297
|
apiKey: apiKeyInput.trim()
|
|
3071
3298
|
};
|
|
3072
3299
|
}
|
|
3300
|
+
function resolveProviderApi(compatibility) {
|
|
3301
|
+
return compatibility === "anthropic" ? "anthropic-messages" : "openai-completions";
|
|
3302
|
+
}
|
|
3303
|
+
function parseCustomApiCompatibility(raw) {
|
|
3304
|
+
const compatibilityRaw = raw?.trim().toLowerCase();
|
|
3305
|
+
if (!compatibilityRaw) return "openai";
|
|
3306
|
+
if (compatibilityRaw !== "openai" && compatibilityRaw !== "anthropic") throw new CustomApiError("invalid_compatibility", "Invalid --custom-compatibility (use \"openai\" or \"anthropic\").");
|
|
3307
|
+
return compatibilityRaw;
|
|
3308
|
+
}
|
|
3309
|
+
function resolveCustomProviderId(params) {
|
|
3310
|
+
const providers = params.config.models?.providers ?? {};
|
|
3311
|
+
const baseUrl = params.baseUrl.trim();
|
|
3312
|
+
const explicitProviderId = params.providerId?.trim();
|
|
3313
|
+
if (explicitProviderId && !normalizeEndpointId(explicitProviderId)) throw new CustomApiError("invalid_provider_id", "Custom provider ID must include letters, numbers, or hyphens.");
|
|
3314
|
+
const requestedProviderId = explicitProviderId || buildEndpointIdFromUrl(baseUrl);
|
|
3315
|
+
const providerIdResult = resolveUniqueEndpointId({
|
|
3316
|
+
requestedId: requestedProviderId,
|
|
3317
|
+
baseUrl,
|
|
3318
|
+
providers
|
|
3319
|
+
});
|
|
3320
|
+
return {
|
|
3321
|
+
providerId: providerIdResult.providerId,
|
|
3322
|
+
...providerIdResult.renamed ? { providerIdRenamedFrom: normalizeEndpointId(requestedProviderId) || "custom" } : {}
|
|
3323
|
+
};
|
|
3324
|
+
}
|
|
3325
|
+
function parseNonInteractiveCustomApiFlags(params) {
|
|
3326
|
+
const baseUrl = params.baseUrl?.trim() ?? "";
|
|
3327
|
+
const modelId = params.modelId?.trim() ?? "";
|
|
3328
|
+
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"));
|
|
3329
|
+
const apiKey = params.apiKey?.trim();
|
|
3330
|
+
const providerId = params.providerId?.trim();
|
|
3331
|
+
if (providerId && !normalizeEndpointId(providerId)) throw new CustomApiError("invalid_provider_id", "Custom provider ID must include letters, numbers, or hyphens.");
|
|
3332
|
+
return {
|
|
3333
|
+
baseUrl,
|
|
3334
|
+
modelId,
|
|
3335
|
+
compatibility: parseCustomApiCompatibility(params.compatibility),
|
|
3336
|
+
...apiKey ? { apiKey } : {},
|
|
3337
|
+
...providerId ? { providerId } : {}
|
|
3338
|
+
};
|
|
3339
|
+
}
|
|
3340
|
+
function applyCustomApiConfig(params) {
|
|
3341
|
+
const baseUrl = params.baseUrl.trim();
|
|
3342
|
+
try {
|
|
3343
|
+
new URL(baseUrl);
|
|
3344
|
+
} catch {
|
|
3345
|
+
throw new CustomApiError("invalid_base_url", "Custom provider base URL must be a valid URL.");
|
|
3346
|
+
}
|
|
3347
|
+
if (params.compatibility !== "openai" && params.compatibility !== "anthropic") throw new CustomApiError("invalid_compatibility", "Custom provider compatibility must be \"openai\" or \"anthropic\".");
|
|
3348
|
+
const modelId = params.modelId.trim();
|
|
3349
|
+
if (!modelId) throw new CustomApiError("invalid_model_id", "Custom provider model ID is required.");
|
|
3350
|
+
const providerIdResult = resolveCustomProviderId({
|
|
3351
|
+
config: params.config,
|
|
3352
|
+
baseUrl,
|
|
3353
|
+
providerId: params.providerId
|
|
3354
|
+
});
|
|
3355
|
+
const providerId = providerIdResult.providerId;
|
|
3356
|
+
const providers = params.config.models?.providers ?? {};
|
|
3357
|
+
const modelRef = modelKey(providerId, modelId);
|
|
3358
|
+
const alias = params.alias?.trim() ?? "";
|
|
3359
|
+
const aliasError = resolveAliasError({
|
|
3360
|
+
raw: alias,
|
|
3361
|
+
cfg: params.config,
|
|
3362
|
+
modelRef
|
|
3363
|
+
});
|
|
3364
|
+
if (aliasError) throw new CustomApiError("invalid_alias", aliasError);
|
|
3365
|
+
const existingProvider = providers[providerId];
|
|
3366
|
+
const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
|
|
3367
|
+
const hasModel = existingModels.some((model) => model.id === modelId);
|
|
3368
|
+
const nextModel = {
|
|
3369
|
+
id: modelId,
|
|
3370
|
+
name: `${modelId} (Custom Provider)`,
|
|
3371
|
+
contextWindow: DEFAULT_CONTEXT_WINDOW,
|
|
3372
|
+
maxTokens: DEFAULT_MAX_TOKENS,
|
|
3373
|
+
input: ["text"],
|
|
3374
|
+
cost: {
|
|
3375
|
+
input: 0,
|
|
3376
|
+
output: 0,
|
|
3377
|
+
cacheRead: 0,
|
|
3378
|
+
cacheWrite: 0
|
|
3379
|
+
},
|
|
3380
|
+
reasoning: false
|
|
3381
|
+
};
|
|
3382
|
+
const mergedModels = hasModel ? existingModels : [...existingModels, nextModel];
|
|
3383
|
+
const { apiKey: existingApiKey, ...existingProviderRest } = existingProvider ?? {};
|
|
3384
|
+
const normalizedApiKey = params.apiKey?.trim() || (existingApiKey ? existingApiKey.trim() : void 0);
|
|
3385
|
+
let config = {
|
|
3386
|
+
...params.config,
|
|
3387
|
+
models: {
|
|
3388
|
+
...params.config.models,
|
|
3389
|
+
mode: params.config.models?.mode ?? "merge",
|
|
3390
|
+
providers: {
|
|
3391
|
+
...providers,
|
|
3392
|
+
[providerId]: {
|
|
3393
|
+
...existingProviderRest,
|
|
3394
|
+
baseUrl,
|
|
3395
|
+
api: resolveProviderApi(params.compatibility),
|
|
3396
|
+
...normalizedApiKey ? { apiKey: normalizedApiKey } : {},
|
|
3397
|
+
models: mergedModels.length > 0 ? mergedModels : [nextModel]
|
|
3398
|
+
}
|
|
3399
|
+
}
|
|
3400
|
+
}
|
|
3401
|
+
};
|
|
3402
|
+
config = applyPrimaryModel(config, modelRef);
|
|
3403
|
+
if (alias) config = {
|
|
3404
|
+
...config,
|
|
3405
|
+
agents: {
|
|
3406
|
+
...config.agents,
|
|
3407
|
+
defaults: {
|
|
3408
|
+
...config.agents?.defaults,
|
|
3409
|
+
models: {
|
|
3410
|
+
...config.agents?.defaults?.models,
|
|
3411
|
+
[modelRef]: {
|
|
3412
|
+
...config.agents?.defaults?.models?.[modelRef],
|
|
3413
|
+
alias
|
|
3414
|
+
}
|
|
3415
|
+
}
|
|
3416
|
+
}
|
|
3417
|
+
}
|
|
3418
|
+
};
|
|
3419
|
+
return {
|
|
3420
|
+
config,
|
|
3421
|
+
providerId,
|
|
3422
|
+
modelId,
|
|
3423
|
+
...providerIdResult.providerIdRenamedFrom ? { providerIdRenamedFrom: providerIdResult.providerIdRenamedFrom } : {}
|
|
3424
|
+
};
|
|
3425
|
+
}
|
|
3073
3426
|
async function promptCustomApiConfig(params) {
|
|
3074
3427
|
const { prompter, runtime, config } = params;
|
|
3075
3428
|
const baseInput = await promptBaseUrlAndKey({ prompter });
|
|
@@ -3089,7 +3442,6 @@ async function promptCustomApiConfig(params) {
|
|
|
3089
3442
|
validate: (val) => val.trim() ? void 0 : "Model ID is required"
|
|
3090
3443
|
})).trim();
|
|
3091
3444
|
let compatibility = compatibilityChoice === "unknown" ? null : compatibilityChoice;
|
|
3092
|
-
let providerApi = COMPATIBILITY_OPTIONS.find((entry) => entry.value === compatibility)?.api ?? "openai-completions";
|
|
3093
3445
|
while (true) {
|
|
3094
3446
|
let verifiedFromProbe = false;
|
|
3095
3447
|
if (!compatibility) {
|
|
@@ -3101,7 +3453,6 @@ async function promptCustomApiConfig(params) {
|
|
|
3101
3453
|
})).ok) {
|
|
3102
3454
|
probeSpinner.stop("Detected OpenAI-compatible endpoint.");
|
|
3103
3455
|
compatibility = "openai";
|
|
3104
|
-
providerApi = "openai-completions";
|
|
3105
3456
|
verifiedFromProbe = true;
|
|
3106
3457
|
} else if ((await requestAnthropicVerification({
|
|
3107
3458
|
baseUrl,
|
|
@@ -3110,7 +3461,6 @@ async function promptCustomApiConfig(params) {
|
|
|
3110
3461
|
})).ok) {
|
|
3111
3462
|
probeSpinner.stop("Detected Anthropic-compatible endpoint.");
|
|
3112
3463
|
compatibility = "anthropic";
|
|
3113
|
-
providerApi = "anthropic-messages";
|
|
3114
3464
|
verifiedFromProbe = true;
|
|
3115
3465
|
} else {
|
|
3116
3466
|
probeSpinner.stop("Could not detect endpoint type.");
|
|
@@ -3207,84 +3557,34 @@ async function promptCustomApiConfig(params) {
|
|
|
3207
3557
|
if (!normalizeEndpointId(value)) return "Endpoint ID is required.";
|
|
3208
3558
|
}
|
|
3209
3559
|
});
|
|
3210
|
-
const
|
|
3211
|
-
requestedId: providerIdInput,
|
|
3212
|
-
baseUrl,
|
|
3213
|
-
providers
|
|
3214
|
-
});
|
|
3215
|
-
if (providerIdResult.renamed) await prompter.note(`Endpoint ID "${providerIdInput}" already exists for a different base URL. Using "${providerIdResult.providerId}".`, "Endpoint ID");
|
|
3216
|
-
const providerId = providerIdResult.providerId;
|
|
3217
|
-
const modelRef = modelKey(providerId, modelId);
|
|
3218
|
-
const alias = (await prompter.text({
|
|
3560
|
+
const aliasInput = await prompter.text({
|
|
3219
3561
|
message: "Model alias (optional)",
|
|
3220
3562
|
placeholder: "e.g. local, ollama",
|
|
3221
3563
|
initialValue: "",
|
|
3222
|
-
validate: (value) =>
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
const existingProvider = providers[providerId];
|
|
3229
|
-
const existingModels = Array.isArray(existingProvider?.models) ? existingProvider.models : [];
|
|
3230
|
-
const hasModel = existingModels.some((model) => model.id === modelId);
|
|
3231
|
-
const nextModel = {
|
|
3232
|
-
id: modelId,
|
|
3233
|
-
name: `${modelId} (Custom Provider)`,
|
|
3234
|
-
contextWindow: DEFAULT_CONTEXT_WINDOW,
|
|
3235
|
-
maxTokens: DEFAULT_MAX_TOKENS,
|
|
3236
|
-
input: ["text"],
|
|
3237
|
-
cost: {
|
|
3238
|
-
input: 0,
|
|
3239
|
-
output: 0,
|
|
3240
|
-
cacheRead: 0,
|
|
3241
|
-
cacheWrite: 0
|
|
3242
|
-
},
|
|
3243
|
-
reasoning: false
|
|
3244
|
-
};
|
|
3245
|
-
const mergedModels = hasModel ? existingModels : [...existingModels, nextModel];
|
|
3246
|
-
const { apiKey: existingApiKey, ...existingProviderRest } = existingProvider ?? {};
|
|
3247
|
-
const normalizedApiKey = apiKey.trim() || (existingApiKey ? existingApiKey.trim() : void 0);
|
|
3248
|
-
let newConfig = {
|
|
3249
|
-
...config,
|
|
3250
|
-
models: {
|
|
3251
|
-
...config.models,
|
|
3252
|
-
mode: config.models?.mode ?? "merge",
|
|
3253
|
-
providers: {
|
|
3254
|
-
...providers,
|
|
3255
|
-
[providerId]: {
|
|
3256
|
-
...existingProviderRest,
|
|
3564
|
+
validate: (value) => {
|
|
3565
|
+
return resolveAliasError({
|
|
3566
|
+
raw: value,
|
|
3567
|
+
cfg: config,
|
|
3568
|
+
modelRef: modelKey(resolveUniqueEndpointId({
|
|
3569
|
+
requestedId: normalizeEndpointId(providerIdInput) || "custom",
|
|
3257
3570
|
baseUrl,
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
}
|
|
3262
|
-
}
|
|
3263
|
-
}
|
|
3264
|
-
};
|
|
3265
|
-
newConfig = applyPrimaryModel(newConfig, modelRef);
|
|
3266
|
-
if (alias) newConfig = {
|
|
3267
|
-
...newConfig,
|
|
3268
|
-
agents: {
|
|
3269
|
-
...newConfig.agents,
|
|
3270
|
-
defaults: {
|
|
3271
|
-
...newConfig.agents?.defaults,
|
|
3272
|
-
models: {
|
|
3273
|
-
...newConfig.agents?.defaults?.models,
|
|
3274
|
-
[modelRef]: {
|
|
3275
|
-
...newConfig.agents?.defaults?.models?.[modelRef],
|
|
3276
|
-
alias
|
|
3277
|
-
}
|
|
3278
|
-
}
|
|
3279
|
-
}
|
|
3571
|
+
providers
|
|
3572
|
+
}).providerId, modelId)
|
|
3573
|
+
});
|
|
3280
3574
|
}
|
|
3281
|
-
};
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3575
|
+
});
|
|
3576
|
+
const result = applyCustomApiConfig({
|
|
3577
|
+
config,
|
|
3578
|
+
baseUrl,
|
|
3579
|
+
modelId,
|
|
3580
|
+
compatibility: compatibility ?? "openai",
|
|
3581
|
+
apiKey,
|
|
3582
|
+
providerId: providerIdInput,
|
|
3583
|
+
alias: aliasInput
|
|
3584
|
+
});
|
|
3585
|
+
if (result.providerIdRenamedFrom && result.providerId) await prompter.note(`Endpoint ID "${result.providerIdRenamedFrom}" already exists for a different base URL. Using "${result.providerId}".`, "Endpoint ID");
|
|
3586
|
+
runtime.log(`Configured custom provider: ${result.providerId}/${result.modelId}`);
|
|
3587
|
+
return result;
|
|
3288
3588
|
}
|
|
3289
3589
|
|
|
3290
3590
|
//#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 { discoverGatewayBeacons as _,
|
|
4226
|
+
export { discoverGatewayBeacons as S, applyOpenAIConfig as _, applyCustomApiConfig as a, applyGoogleGeminiModelDefault as b, resolveCustomProviderId as c, applyPrimaryModel as d, promptDefaultModel as f, applyAuthChoice as g, warnIfModelConfigLooksOff as h, CustomApiError as i, applyModelAllowlist as l, resolvePreferredProviderForAuthChoice as m, installSkill as n, parseNonInteractiveCustomApiFlags as o, promptModelAllowlist as p, promptRemoteGatewayConfig as r, promptCustomApiConfig as s, setupSkills as t, applyModelFallbacksFromSelection as u, upsertSharedEnvVar as v, promptAuthChoiceGrouped as x, detectZaiEndpoint as y };
|