@spacebar_ai/moldclaw-core 2026.3.43 → 2026.3.45
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/dist/accounts-5qY-dKca.d.ts +103 -0
- package/dist/accounts-CxV5zzzp.js +114 -0
- package/dist/acp-cli-2JoKJ0xt.js +2093 -0
- package/dist/actions.runtime-BJPd9nat.js +119 -0
- package/dist/actions.runtime-DVs4a2cB.js +133 -0
- package/dist/agent-scope-lZlwP1At.js +208 -0
- package/dist/agents-CmT3Jwvj.js +222 -0
- package/dist/agents-D7Pebhph.js +853 -0
- package/dist/agents.config-CX9CPNfP.js +17 -0
- package/dist/agents.config-DF9Zwn9n.js +121 -0
- package/dist/allow-list-B3f4EqAM.js +81 -0
- package/dist/allowlist-_YpK0-4h.js +142 -0
- package/dist/api-B44giplI.js +117 -0
- package/dist/audit-C3InXm7H.js +787 -0
- package/dist/audit-ChWS6RiF.js +54 -0
- package/dist/audit-channel.collect.runtime-DZzrS6v2.js +605 -0
- package/dist/audit-channel.runtime-B2XTOsSF.js +121 -0
- package/dist/audit-extra.async-C2G0mqmk.js +813 -0
- package/dist/audit-membership-runtime-DOv5-eHo.js +162 -0
- package/dist/audit.deep.runtime-DyL9O_sU.js +25 -0
- package/dist/audit.nondeep.runtime-C6jFgJfH.js +832 -0
- package/dist/audit.runtime-Cvh2wmWM.js +118 -0
- package/dist/auth-Ch3Rchm4.js +101 -0
- package/dist/auth-choice-Beq0dWPS.js +268 -0
- package/dist/auth-choice-DZYg94gS.js +122 -0
- package/dist/auth-choice-TVG_8lJj.js +507 -0
- package/dist/auth-choice-options-B_qxsjdj.js +123 -0
- package/dist/auth-choice-prompt-BayzDobT.js +115 -0
- package/dist/auth-choice-prompt-_UES859x.js +36 -0
- package/dist/auth-choice.apply-helpers-BhbNIV8X.js +66 -0
- package/dist/auth-choice.plugin-providers.runtime-CVC4Jzhp.js +119 -0
- package/dist/auth-profiles-C-Ul-Qkn.js +128139 -0
- package/dist/auth-profiles.runtime-Clyka_jV.js +116 -0
- package/dist/banner-CojBHPWr.js +342 -0
- package/dist/bluebubbles-BnLsj2Fy.d.ts +6 -0
- package/dist/bluebubbles-irYTGbfn.js +64 -0
- package/dist/bot-DdyrB2z9.d.ts +478 -0
- package/dist/brave-w4Fo8WZ3.js +24 -0
- package/dist/browser-cli-DWFs3P_i.js +1494 -0
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.d.ts +1 -1
- package/dist/bundled/boot-md/handler.js +35 -35
- package/dist/bundled/bootstrap-extra-files/handler.d.ts +1 -1
- package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
- package/dist/bundled/command-logger/handler.d.ts +1 -1
- package/dist/bundled/session-memory/handler.d.ts +1 -1
- package/dist/bundled/session-memory/handler.js +36 -36
- package/dist/call-Do7wTSr7.js +39 -0
- package/dist/call-gdDAt07d.js +640 -0
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/channel-34O87pvK.js +949 -0
- package/dist/channel-B3Xo_4d8.js +1598 -0
- package/dist/channel-BEqDvL49.js +397 -0
- package/dist/channel-BLOk9WRE.js +214 -0
- package/dist/channel-BY5H2cdy.js +803 -0
- package/dist/channel-BeOtzXIH.js +4681 -0
- package/dist/channel-Bt8x_5Kj.js +306 -0
- package/dist/channel-C3E8XWLF.js +1321 -0
- package/dist/channel-C6ngVfGr.js +943 -0
- package/dist/channel-CVDBca2b.js +226 -0
- package/dist/channel-Cctli72q.js +562 -0
- package/dist/channel-DEAbU9Dj2.js +316 -0
- package/dist/channel-DIULkrBN.js +575 -0
- package/dist/channel-DXb4gsSd.js +619 -0
- package/dist/channel-Dap9LY-9.js +352 -0
- package/dist/channel-DcJdUnab.js +538 -0
- package/dist/channel-ZYCQj3hP.js +207 -0
- package/dist/channel-account-context-Baszl3_B.js +103 -0
- package/dist/channel-hlzhFHDl.js +497 -0
- package/dist/channel-options-PwBzYYtq.js +50 -0
- package/dist/channel-plugin-ids-TZIY4hFs.js +26 -0
- package/dist/channel-summary-CCEAV13o.js +111 -0
- package/dist/channel-tY2Hg5ac.js +542 -0
- package/dist/channel-vMWcWq1U.js +920 -0
- package/dist/channel.runtime-8qWgkCxX.js +404 -0
- package/dist/channel.runtime-C4jtgrbI.js +179 -0
- package/dist/channel.runtime-CJ4ug6Mp.js +127 -0
- package/dist/channel.runtime-ChKRJAZ8.js +4011 -0
- package/dist/channel.runtime-Cj54LYU-.js +418 -0
- package/dist/channel.runtime-KH06-bu1.js +870 -0
- package/dist/channel.runtime-_GYnBh2X.js +199 -0
- package/dist/channel.runtime-go7Pzt6N.js +241 -0
- package/dist/channel.runtime-iypIZ0EU.js +171 -0
- package/dist/channel.runtime-mukTWpon.js +182 -0
- package/dist/channel.runtime-oNtF1sc3.js +218 -0
- package/dist/channel.setup-BZfok6kX.js +11 -0
- package/dist/channel.setup-CbXfZ2dq.js +9 -0
- package/dist/channel.setup-CfyM55np.js +8 -0
- package/dist/channel.setup-CoG-gJ6n.js +9 -0
- package/dist/channel.setup-Cp4PH_rc.js +57 -0
- package/dist/channel.setup-V2w9Jk9j.js +6 -0
- package/dist/channel.setup-t7F5WZE7.js +8 -0
- package/dist/channels/plugins/actions/discord.d.ts +2 -2
- package/dist/channels/plugins/actions/discord.js +35 -35
- package/dist/channels/plugins/actions/signal.d.ts +1 -1
- package/dist/channels/plugins/actions/signal.js +35 -35
- package/dist/channels/plugins/actions/telegram.d.ts +2 -2
- package/dist/channels/plugins/actions/telegram.js +35 -35
- package/dist/channels/plugins/agent-tools/whatsapp-login.d.ts +3 -3
- package/dist/channels/plugins/agent-tools/whatsapp-login.js +35 -35
- package/dist/channels-H5ThmyG8.js +1118 -0
- package/dist/channels-cQ-6NFCQ.js +404 -0
- package/dist/channels-cli-TmchKLFS.js +291 -0
- package/dist/channels-status-issues-DXnkXEeJ.js +16 -0
- package/dist/clawbot-cli-Cpbxu8dD.js +118 -0
- package/dist/cleanup-utils-D0L17RsX.js +96 -0
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/cli--2bGSKdX.js +154 -0
- package/dist/command-registry-BaVPDmwn.js +242 -0
- package/dist/command-registry-DhLyeSbO.js +14 -0
- package/dist/command-secret-gateway-C5D_-jb0.js +111 -0
- package/dist/compact.runtime-C9a0kRAg.js +116 -0
- package/dist/completion-cli-Bg95upyk.js +17 -0
- package/dist/completion-cli-CrPdlnCH.js +445 -0
- package/dist/config-BbvDRSYp.js +31 -0
- package/dist/config-CwBv71QC.js +44 -0
- package/dist/config-cli-jsZsYhAl.js +678 -0
- package/dist/config-guard-DTaXXqly.js +118 -0
- package/dist/config-validation-Q6U1sP84.js +262 -0
- package/dist/config-value-DT3-5958.js +132 -0
- package/dist/configure-BJfMiVej.js +1100 -0
- package/dist/configure-Cist3Iza.js +243 -0
- package/dist/control-ui-assets-C1YDYi82.js +232 -0
- package/dist/control-ui-shared-Dm5Dh0Lo.js +29 -0
- package/dist/core-BwKq3krw.js +150 -0
- package/dist/core-hjBwfDsW.d.ts +87 -0
- package/dist/cron-cli-Bktbk7iP.js +639 -0
- package/dist/daemon-cli-BXyH8DBL.js +339 -0
- package/dist/daemon-install-mxcGYsRJ.js +180 -0
- package/dist/deliver-BPYUKaSp.js +111 -0
- package/dist/deliver-runtime-CwnLQZTN.js +111 -0
- package/dist/device-id-cli-XvwZbIyC.js +52 -0
- package/dist/device-identity-IG5DngWM.js +365 -0
- package/dist/devices-cli-DIsxj4xp.js +342 -0
- package/dist/diagnostic-DTPopFvh.js +310 -0
- package/dist/directory-cli-D253m0er.js +311 -0
- package/dist/directory-config-helpers-DpFcAbmo.d.ts +38 -0
- package/dist/directory.static-BXv9MXqm.js +44 -0
- package/dist/discord-DwFf1qp7.js +114 -0
- package/dist/discovery-DzRM1wzK.js +48 -0
- package/dist/dm-policy-shared-DKoGdUpY.d.ts +95 -0
- package/dist/dns-cli-BJiz6CLK.js +217 -0
- package/dist/docs-cli-Dq2Yi5qO.js +174 -0
- package/dist/doctor-completion-BPl6HiiZ.js +90 -0
- package/dist/doctor-config-flow-BHR1Ayyh.js +2437 -0
- package/dist/doctor-config-flow-PXVtrfkE.js +112 -0
- package/dist/enable-Cyagpq3b.js +24 -0
- package/dist/entry.js +4 -4
- package/dist/exec-approvals-cli-kLAev6bP.js +421 -0
- package/dist/extensions/acpx/index.d.ts +1 -1
- package/dist/extensions/amazon-bedrock/index.d.ts +1 -1
- package/dist/extensions/amazon-bedrock/index.js +4 -4
- package/dist/extensions/anthropic/index.d.ts +1 -1
- package/dist/extensions/anthropic/index.js +35 -35
- package/dist/extensions/bluebubbles/index.d.ts +1 -1
- package/dist/extensions/bluebubbles/index.js +39 -39
- package/dist/extensions/bluebubbles/setup-entry.d.ts +2 -2
- package/dist/extensions/bluebubbles/setup-entry.js +39 -39
- package/dist/extensions/brave/index.d.ts +1 -1
- package/dist/extensions/brave/index.js +5 -5
- package/dist/extensions/byteplus/index.d.ts +1 -1
- package/dist/extensions/byteplus/index.js +35 -35
- package/dist/extensions/cloudflare-ai-gateway/index.d.ts +1 -1
- package/dist/extensions/cloudflare-ai-gateway/index.js +36 -36
- package/dist/extensions/copilot-proxy/index.d.ts +1 -1
- package/dist/extensions/copilot-proxy/index.js +4 -4
- package/dist/extensions/device-pair/index.d.ts +1 -1
- package/dist/extensions/device-pair/index.js +4 -4
- package/dist/extensions/diagnostics-otel/index.d.ts +1 -1
- package/dist/extensions/diagnostics-otel/index.js +4 -4
- package/dist/extensions/diffs/index.d.ts +1 -1
- package/dist/extensions/discord/index.d.ts +1 -1
- package/dist/extensions/discord/index.js +40 -40
- package/dist/extensions/discord/setup-entry.d.ts +1 -1
- package/dist/extensions/discord/setup-entry.js +38 -38
- package/dist/extensions/elevenlabs/index.d.ts +1 -1
- package/dist/extensions/elevenlabs/index.js +35 -35
- package/dist/extensions/feishu/index.d.ts +2 -2
- package/dist/extensions/feishu/index.js +40 -40
- package/dist/extensions/feishu/setup-entry.d.ts +2 -2
- package/dist/extensions/feishu/setup-entry.js +37 -37
- package/dist/extensions/firecrawl/index.d.ts +1 -1
- package/dist/extensions/firecrawl/index.js +35 -35
- package/dist/extensions/github-copilot/index.d.ts +1 -1
- package/dist/extensions/github-copilot/index.js +35 -35
- package/dist/extensions/google/index.d.ts +1 -1
- package/dist/extensions/google/index.js +35 -35
- package/dist/extensions/googlechat/index.d.ts +1 -1
- package/dist/extensions/googlechat/index.js +38 -38
- package/dist/extensions/googlechat/setup-entry.d.ts +1 -1
- package/dist/extensions/googlechat/setup-entry.js +38 -38
- package/dist/extensions/huggingface/index.d.ts +1 -1
- package/dist/extensions/huggingface/index.js +35 -35
- package/dist/extensions/imessage/index.d.ts +1 -1
- package/dist/extensions/imessage/index.js +39 -39
- package/dist/extensions/imessage/setup-entry.d.ts +1 -1
- package/dist/extensions/imessage/setup-entry.js +39 -39
- package/dist/extensions/irc/index.d.ts +1 -1
- package/dist/extensions/irc/index.js +38 -38
- package/dist/extensions/irc/setup-entry.d.ts +2 -2
- package/dist/extensions/irc/setup-entry.js +38 -38
- package/dist/extensions/kakao-talkchannel/index.d.ts +1 -1
- package/dist/extensions/kakao-talkchannel/index.js +4 -4
- package/dist/extensions/kilocode/index.d.ts +1 -1
- package/dist/extensions/kilocode/index.js +35 -35
- package/dist/extensions/kimi-coding/index.d.ts +1 -1
- package/dist/extensions/kimi-coding/index.js +35 -35
- package/dist/extensions/line/index.d.ts +1 -1
- package/dist/extensions/line/index.js +37 -37
- package/dist/extensions/line/setup-entry.d.ts +1 -1
- package/dist/extensions/line/setup-entry.js +37 -37
- package/dist/extensions/llm-task/index.d.ts +1 -1
- package/dist/extensions/llm-task/index.js +35 -35
- package/dist/extensions/lobster/index.d.ts +1 -1
- package/dist/extensions/lobster/index.js +4 -4
- package/dist/extensions/matrix/index.d.ts +1 -1
- package/dist/extensions/matrix/index.js +40 -40
- package/dist/extensions/matrix/setup-entry.d.ts +2 -2
- package/dist/extensions/matrix/setup-entry.js +40 -40
- package/dist/extensions/mattermost/index.d.ts +1 -1
- package/dist/extensions/mattermost/index.js +37 -37
- package/dist/extensions/mattermost/setup-entry.d.ts +2 -2
- package/dist/extensions/mattermost/setup-entry.js +37 -37
- package/dist/extensions/memory-core/index.d.ts +1 -1
- package/dist/extensions/memory-core/index.js +4 -4
- package/dist/extensions/memory-lancedb/index.d.ts +1 -1
- package/dist/extensions/memory-lancedb/index.js +4 -4
- package/dist/extensions/microsoft/index.d.ts +1 -1
- package/dist/extensions/microsoft/index.js +35 -35
- package/dist/extensions/minimax/index.d.ts +1 -1
- package/dist/extensions/minimax/index.js +35 -35
- package/dist/extensions/mistral/index.d.ts +1 -1
- package/dist/extensions/mistral/index.js +35 -35
- package/dist/extensions/modelstudio/index.d.ts +1 -1
- package/dist/extensions/modelstudio/index.js +35 -35
- package/dist/extensions/moonshot/index.d.ts +1 -1
- package/dist/extensions/moonshot/index.js +35 -35
- package/dist/extensions/msteams/index.d.ts +1 -1
- package/dist/extensions/msteams/index.js +40 -40
- package/dist/extensions/msteams/setup-entry.d.ts +1 -1
- package/dist/extensions/msteams/setup-entry.js +40 -40
- package/dist/extensions/nextcloud-talk/index.d.ts +1 -1
- package/dist/extensions/nextcloud-talk/index.js +37 -37
- package/dist/extensions/nextcloud-talk/setup-entry.d.ts +2 -2
- package/dist/extensions/nextcloud-talk/setup-entry.js +37 -37
- package/dist/extensions/nostr/index.d.ts +1 -1
- package/dist/extensions/nostr/index.js +37 -37
- package/dist/extensions/nostr/setup-entry.d.ts +1 -1
- package/dist/extensions/nostr/setup-entry.js +37 -37
- package/dist/extensions/nvidia/index.d.ts +1 -1
- package/dist/extensions/nvidia/index.js +4 -4
- package/dist/extensions/ollama/index.d.ts +1 -1
- package/dist/extensions/ollama/index.js +7 -7
- package/dist/extensions/open-prose/index.d.ts +1 -1
- package/dist/extensions/open-prose/index.js +4 -4
- package/dist/extensions/openai/index.d.ts +1 -1
- package/dist/extensions/openai/index.js +35 -35
- package/dist/extensions/opencode/index.d.ts +1 -1
- package/dist/extensions/opencode/index.js +35 -35
- package/dist/extensions/opencode-go/index.d.ts +1 -1
- package/dist/extensions/opencode-go/index.js +35 -35
- package/dist/extensions/openrouter/index.d.ts +1 -1
- package/dist/extensions/openrouter/index.js +35 -35
- package/dist/extensions/openshell/index.d.ts +1 -1
- package/dist/extensions/openshell/index.js +35 -35
- package/dist/extensions/perplexity/index.d.ts +1 -1
- package/dist/extensions/perplexity/index.js +5 -5
- package/dist/extensions/phone-control/index.d.ts +1 -1
- package/dist/extensions/phone-control/index.js +4 -4
- package/dist/extensions/qianfan/index.d.ts +1 -1
- package/dist/extensions/qianfan/index.js +35 -35
- package/dist/extensions/qwen-portal-auth/index.d.ts +1 -1
- package/dist/extensions/qwen-portal-auth/index.js +35 -35
- package/dist/extensions/sglang/index.d.ts +1 -1
- package/dist/extensions/sglang/index.js +35 -35
- package/dist/extensions/signal/index.d.ts +1 -1
- package/dist/extensions/signal/index.js +38 -38
- package/dist/extensions/signal/setup-entry.d.ts +1 -1
- package/dist/extensions/signal/setup-entry.js +38 -38
- package/dist/extensions/slack/index.d.ts +1 -1
- package/dist/extensions/slack/index.js +39 -39
- package/dist/extensions/slack/setup-entry.d.ts +1 -1
- package/dist/extensions/slack/setup-entry.js +38 -38
- package/dist/extensions/synology-chat/index.d.ts +1 -1
- package/dist/extensions/synology-chat/index.js +37 -37
- package/dist/extensions/synology-chat/setup-entry.d.ts +1 -1
- package/dist/extensions/synology-chat/setup-entry.js +37 -37
- package/dist/extensions/synthetic/index.d.ts +1 -1
- package/dist/extensions/synthetic/index.js +35 -35
- package/dist/extensions/talk-voice/index.d.ts +1 -1
- package/dist/extensions/talk-voice/index.js +35 -35
- package/dist/extensions/telegram/index.d.ts +1 -1
- package/dist/extensions/telegram/index.js +38 -38
- package/dist/extensions/telegram/setup-entry.d.ts +1 -1
- package/dist/extensions/telegram/setup-entry.js +37 -37
- package/dist/extensions/thread-ownership/index.d.ts +1 -1
- package/dist/extensions/thread-ownership/index.js +4 -4
- package/dist/extensions/tlon/index.d.ts +1 -1
- package/dist/extensions/tlon/index.js +37 -37
- package/dist/extensions/tlon/setup-entry.d.ts +1 -1
- package/dist/extensions/tlon/setup-entry.js +37 -37
- package/dist/extensions/together/index.d.ts +1 -1
- package/dist/extensions/together/index.js +35 -35
- package/dist/extensions/twitch/index.d.ts +2 -2
- package/dist/extensions/twitch/index.js +37 -37
- package/dist/extensions/venice/index.d.ts +1 -1
- package/dist/extensions/venice/index.js +35 -35
- package/dist/extensions/vercel-ai-gateway/index.d.ts +1 -1
- package/dist/extensions/vercel-ai-gateway/index.js +36 -36
- package/dist/extensions/vllm/index.d.ts +1 -1
- package/dist/extensions/vllm/index.js +35 -35
- package/dist/extensions/voice-call/index.d.ts +1 -1
- package/dist/extensions/voice-call/index.js +35 -35
- package/dist/extensions/volcengine/index.d.ts +1 -1
- package/dist/extensions/volcengine/index.js +35 -35
- package/dist/extensions/whatsapp/index.d.ts +1 -1
- package/dist/extensions/whatsapp/index.js +38 -38
- package/dist/extensions/whatsapp/setup-entry.d.ts +1 -1
- package/dist/extensions/whatsapp/setup-entry.js +38 -38
- package/dist/extensions/xai/index.d.ts +1 -1
- package/dist/extensions/xai/index.js +35 -35
- package/dist/extensions/xiaomi/index.d.ts +1 -1
- package/dist/extensions/xiaomi/index.js +35 -35
- package/dist/extensions/zai/index.d.ts +1 -1
- package/dist/extensions/zai/index.js +35 -35
- package/dist/extensions/zalo/index.d.ts +1 -1
- package/dist/extensions/zalo/index.js +39 -39
- package/dist/extensions/zalo/setup-entry.d.ts +1 -1
- package/dist/extensions/zalo/setup-entry.js +39 -39
- package/dist/extensions/zalouser/index.d.ts +1 -1
- package/dist/extensions/zalouser/index.js +40 -40
- package/dist/extensions/zalouser/setup-entry.d.ts +1 -1
- package/dist/extensions/zalouser/setup-entry.js +40 -40
- package/dist/feishu-fIcnHDTd.d.ts +36 -0
- package/dist/gateway-cli-DofujQf3.js +26437 -0
- package/dist/gateway-install-token-vvtOvufH.js +163 -0
- package/dist/gateway-rpc-C0Vk51W7.js +26 -0
- package/dist/gateway-runtime-CBm3CCoA.js +69 -0
- package/dist/git-commit-BTWXFY41.js +177 -0
- package/dist/git-commit-D6GTN5Yt.js +2 -0
- package/dist/googlechat-BvwsCVKl.d.ts +12 -0
- package/dist/googlechat-DzoFLiDG.js +307 -0
- package/dist/group-access-DpiQnd-G.d.ts +61 -0
- package/dist/health-CqUU_ecm.js +570 -0
- package/dist/health-Dzn8BT5I.js +113 -0
- package/dist/heartbeat-summary-Dct2lqJj.js +57 -0
- package/dist/help-CtwSApfq.js +81 -0
- package/dist/hooks-9gokOxZ5.d.ts +6 -0
- package/dist/hooks-cli-DtBvd1lb.js +1000 -0
- package/dist/hooks-status-Bm_pGORf.js +78 -0
- package/dist/http-registry-D-S6a1Na.d.ts +20 -0
- package/dist/identity-file-Diub2a0t.js +60 -0
- package/dist/image-generation-CbIVzmAR.d.ts +9 -0
- package/dist/imessage-C7Z59nbV.js +31 -0
- package/dist/imessage-scXvYYHX.js +115 -0
- package/dist/inbound-reply-dispatch-gzPJFtkc.js +71 -0
- package/dist/inbound-reply-dispatch-n7U3qg15.d.ts +72 -0
- package/dist/index.js +2 -2
- package/dist/install-target-B4n74f_B.js +574 -0
- package/dist/installs-e1WEcS2x.js +532 -0
- package/dist/io-BaBxjB1v.js +9739 -0
- package/dist/io-CgHb1Jld.js +29 -0
- package/dist/irc-DxJ7uOKl.js +672 -0
- package/dist/library-DjjiKiBC.js +112 -0
- package/dist/lifecycle-core-Dn8PK6nk.js +382 -0
- package/dist/line/accounts.d.ts +2 -2
- package/dist/line/send.d.ts +1 -1
- package/dist/line/send.js +7 -7
- package/dist/line/template-messages.d.ts +1 -1
- package/dist/line-B5QFpgN_.d.ts +75 -0
- package/dist/line-BBiBiGgL.js +530 -0
- package/dist/llm-slug-generator-BQ09Fz6D.js +67 -0
- package/dist/llm-slug-generator.d.ts +1 -1
- package/dist/llm-slug-generator.js +36 -36
- package/dist/logging-CdisccbY.js +13 -0
- package/dist/logging-LKQSgX1d.js +30 -0
- package/dist/login-qr-B2ElPfmb.js +112 -0
- package/dist/login-qr-Di3uPIK1.js +233 -0
- package/dist/logs-cli-CNzOvZ2d.js +256 -0
- package/dist/manager-runtime-2RwW64dE.js +111 -0
- package/dist/manager.runtime-BacHmSFL.js +715 -0
- package/dist/manifest-registry-CS_p1OBQ.js +1329 -0
- package/dist/matrix-43_RGLZN.d.ts +68 -0
- package/dist/matrix-6-xpfQHf.js +1269 -0
- package/dist/matrix-DKYdZvGK.js +1495 -0
- package/dist/mcp-cli-Ci2jvv3s.js +87 -0
- package/dist/media-understanding.runtime-0668UZMb.js +116 -0
- package/dist/memory-cli-BGfRJOPh.js +111 -0
- package/dist/memory-search-BHhETk6u.js +17 -0
- package/dist/memory-search-tTD5o_rU.js +204 -0
- package/dist/method-scopes-B2ZKSsxQ.js +2452 -0
- package/dist/model-auth-markers-LqZ4qhrZ.d.ts +20 -0
- package/dist/model-picker-D9Gmg9vM.js +390 -0
- package/dist/model-picker-VOam6Dfa.js +112 -0
- package/dist/model-picker.runtime-B8h4yaGk.js +125 -0
- package/dist/model-selection-bBBxfXdb.js +653 -0
- package/dist/model-suppression.runtime-IpdzuuaW.js +116 -0
- package/dist/models-CEr8OkSA.js +118 -0
- package/dist/models-FgjlnyvT.js +2514 -0
- package/dist/models-cli-CdXULEZe.js +309 -0
- package/dist/models-config-UQxq76ac.js +111 -0
- package/dist/models-config.providers.discovery-puxTsH39.d.ts +18 -0
- package/dist/moldclaw-root-Cb6HRlUO.js +92 -0
- package/dist/monitor-BGAB5pZp.js +772 -0
- package/dist/monitor-C_1qA4q5.js +6823 -0
- package/dist/monitor-D8WcCUuA.js +782 -0
- package/dist/monitor-DesGoihT.js +113 -0
- package/dist/monitor-DhrUY3U6.js +3468 -0
- package/dist/monitor-DsDCIG87.js +3076 -0
- package/dist/monitor-dBB-luY7.js +115 -0
- package/dist/monitor-shared-CkicpwVc.js +444 -0
- package/dist/msteams-qmY7xMCK.js +852 -0
- package/dist/node-cli-B_2nTm80.js +2503 -0
- package/dist/node-resolve-BYC2FbO2.js +835 -0
- package/dist/nodes-cli-CBX71Wd_.js +1380 -0
- package/dist/nostr-BFKRoOlz.d.ts +7 -0
- package/dist/nostr-OB78XVlq.js +8744 -0
- package/dist/npm-resolution-DZJB3Hgh.js +60 -0
- package/dist/oauth-env-CLG8KOrz.js +10 -0
- package/dist/onboard-BON0C360.js +48 -0
- package/dist/onboard-DsKI17iq.js +25 -0
- package/dist/onboard-DyBwXVGT.js +589 -0
- package/dist/onboard-channels-BaVA02kK.js +1241 -0
- package/dist/onboard-channels-JJVMXpKl.js +205 -0
- package/dist/onboard-custom-D6YDrk9n.js +571 -0
- package/dist/onboard-custom-DqsNalL1.js +114 -0
- package/dist/onboard-helpers-DiSRTpZC.js +335 -0
- package/dist/onboard-helpers-DqZsjdb8.js +113 -0
- package/dist/onboard-hooks-pzEPZAvl.js +72 -0
- package/dist/onboard-remote-DFMLELsg.js +181 -0
- package/dist/onboard-remote-DmMYxY80.js +117 -0
- package/dist/onboard-search-B7FsNd7m.js +302 -0
- package/dist/onboard-skills-BJRdI-K3.js +133 -0
- package/dist/onboard-skills-Cg1YQAZa.js +117 -0
- package/dist/outbound-media-BHD4aJEX.d.ts +11 -0
- package/dist/outbound-media-CrraEXXv.js +11 -0
- package/dist/pairing-access-CzHpaM0R.d.ts +21 -0
- package/dist/pairing-cli-DSQTYgc0.js +217 -0
- package/dist/perplexity-CXwMDD3u.js +24 -0
- package/dist/persistent-dedupe-B9vrAf8t.d.ts +26 -0
- package/dist/pi-model-discovery-runtime-vSSbBDFG.js +111 -0
- package/dist/pi-tools.before-tool-call.runtime-C5yLUogH.js +381 -0
- package/dist/plugin-install-B1RfdrdV.js +117 -0
- package/dist/plugin-install-C9aaL42Y.js +184 -0
- package/dist/plugin-install-plan-BlfDt117.js +49 -0
- package/dist/plugin-registry-D2P9SYJ9.js +113 -0
- package/dist/plugin-registry-QtjVXmj3.js +49 -0
- package/dist/plugin-sdk/account-resolution.js +35 -35
- package/dist/plugin-sdk/acp-runtime.js +35 -35
- package/dist/plugin-sdk/agent-runtime.js +35 -35
- package/dist/plugin-sdk/bluebubbles.js +37 -37
- package/dist/plugin-sdk/channel-config-helpers.js +35 -35
- package/dist/plugin-sdk/channel-policy.js +35 -35
- package/dist/plugin-sdk/channel-runtime.js +35 -35
- package/dist/plugin-sdk/compat.js +36 -36
- package/dist/plugin-sdk/config-runtime.js +35 -35
- package/dist/plugin-sdk/conversation-runtime.js +35 -35
- package/dist/plugin-sdk/copilot-proxy.js +4 -4
- package/dist/plugin-sdk/core.js +4 -4
- package/dist/plugin-sdk/device-pair.js +4 -4
- package/dist/plugin-sdk/discord.js +35 -35
- package/dist/plugin-sdk/feishu.js +35 -35
- package/dist/plugin-sdk/gateway-runtime.js +10 -10
- package/dist/plugin-sdk/googlechat.js +37 -37
- package/dist/plugin-sdk/image-generation-runtime.js +35 -35
- package/dist/plugin-sdk/image-generation.js +35 -35
- package/dist/plugin-sdk/imessage.js +36 -36
- package/dist/plugin-sdk/index.js +35 -35
- package/dist/plugin-sdk/infra-runtime.js +35 -35
- package/dist/plugin-sdk/irc.js +37 -37
- package/dist/plugin-sdk/line.js +36 -36
- package/dist/plugin-sdk/llm-task.js +35 -35
- package/dist/plugin-sdk/lobster.js +4 -4
- package/dist/plugin-sdk/matrix.js +37 -37
- package/dist/plugin-sdk/mattermost.js +36 -36
- package/dist/plugin-sdk/media-runtime.js +35 -35
- package/dist/plugin-sdk/media-understanding-runtime.js +35 -35
- package/dist/plugin-sdk/media-understanding.js +35 -35
- package/dist/plugin-sdk/memory-lancedb.js +4 -4
- package/dist/plugin-sdk/minimax-portal-auth.js +4 -4
- package/dist/plugin-sdk/msteams.js +38 -38
- package/dist/plugin-sdk/nextcloud-talk.js +36 -36
- package/dist/plugin-sdk/nostr.js +36 -36
- package/dist/plugin-sdk/ollama-setup.js +9 -9
- package/dist/plugin-sdk/open-prose.js +4 -4
- package/dist/plugin-sdk/phone-control.js +4 -4
- package/dist/plugin-sdk/plugin-runtime.js +35 -35
- package/dist/plugin-sdk/provider-auth.js +35 -35
- package/dist/plugin-sdk/provider-models.js +5 -5
- package/dist/plugin-sdk/provider-onboard.js +4 -4
- package/dist/plugin-sdk/provider-setup.js +39 -39
- package/dist/plugin-sdk/provider-stream.js +4 -4
- package/dist/plugin-sdk/provider-usage.js +4 -4
- package/dist/plugin-sdk/qwen-portal-auth.js +35 -35
- package/dist/plugin-sdk/reply-history.js +35 -35
- package/dist/plugin-sdk/reply-runtime.js +35 -35
- package/dist/plugin-sdk/routing.js +3 -3
- package/dist/plugin-sdk/sandbox.js +35 -35
- package/dist/plugin-sdk/security-runtime.js +35 -35
- package/dist/plugin-sdk/self-hosted-provider-setup.js +37 -37
- package/dist/plugin-sdk/setup.js +35 -35
- package/dist/plugin-sdk/signal.js +35 -35
- package/dist/plugin-sdk/slack.js +35 -35
- package/dist/plugin-sdk/speech-runtime.js +35 -35
- package/dist/plugin-sdk/speech.js +35 -35
- package/dist/plugin-sdk/src/secrets/secure-file-store.d.ts +26 -0
- package/dist/plugin-sdk/src/subscription/provider.d.ts +5 -3
- package/dist/plugin-sdk/synology-chat.js +36 -36
- package/dist/plugin-sdk/talk-voice.js +4 -4
- package/dist/plugin-sdk/telegram.js +35 -35
- package/dist/plugin-sdk/text-runtime.js +7 -7
- package/dist/plugin-sdk/thread-ownership.js +4 -4
- package/dist/plugin-sdk/tlon.js +36 -36
- package/dist/plugin-sdk/twitch.js +35 -35
- package/dist/plugin-sdk/voice-call.js +35 -35
- package/dist/plugin-sdk/whatsapp.js +35 -35
- package/dist/plugin-sdk/zalo.js +38 -38
- package/dist/plugin-sdk/zalouser.js +38 -38
- package/dist/plugins/runtime/index.d.ts +1 -1
- package/dist/plugins/runtime/index.js +35 -35
- package/dist/plugins-CAULK-lt.js +111 -0
- package/dist/plugins-cli-BGAgYy3Z.js +917 -0
- package/dist/policy-WKZJ8cPK.js +143 -0
- package/dist/preflight-audio.runtime-Bc6Hv-u4.js +116 -0
- package/dist/probe-B7a_VBCB.js +47 -0
- package/dist/probe-BLioBOhT.js +6329 -0
- package/dist/probe-BkM5pykD.js +21 -0
- package/dist/probe-DOEaWez2.js +1793 -0
- package/dist/probe-DpcJ0WeP.js +129 -0
- package/dist/probe-auth-BcNjX8hy.js +40 -0
- package/dist/probe-auth-DhuAb8ls.js +48 -0
- package/dist/program-zG0CuBsn.js +253 -0
- package/dist/prompt-select-styled-B-D6NQFO.js +2673 -0
- package/dist/provider-api-key-auth.runtime-DgGM_pHf.js +121 -0
- package/dist/provider-auth-choice-BOQA0idb.js +126 -0
- package/dist/provider-auth-choice-helpers-hzDkh3f1.js +48 -0
- package/dist/provider-auth-choice-preference-BPcuoO9b.js +189 -0
- package/dist/provider-auth-choice.runtime-B4E0A4J8.js +123 -0
- package/dist/provider-auth-choices-0KaDNPBQ.js +57 -0
- package/dist/provider-auth-guidance-BxxMxMEt.js +34 -0
- package/dist/provider-auth-result-Bto1bYtS.d.ts +18 -0
- package/dist/provider-models-DxOmeToO.d.ts +867 -0
- package/dist/provider-models-xnyxy6mO.js +2113 -0
- package/dist/provider-ollama-setup-DBYK__ov.d.ts +32 -0
- package/dist/provider-ollama-setup-QzgCxj44.js +314 -0
- package/dist/provider-onboard-B9ionepI.js +139 -0
- package/dist/provider-onboard-CURxJ_UX.d.ts +40 -0
- package/dist/provider-runtime.runtime-DFAIaPZT.js +111 -0
- package/dist/provider-self-hosted-setup-CclMg3QB.js +182 -0
- package/dist/provider-self-hosted-setup-qeY8BYSy.d.ts +61 -0
- package/dist/provider-stream-Chz_EFw3.js +512 -0
- package/dist/provider-usage-Cn_OrdMP.js +111 -0
- package/dist/provider-usage-kxemdMp2.js +633 -0
- package/dist/provider-wizard-BMc1Dzks.js +152 -0
- package/dist/push-apns-CuIs_G0k.js +1038 -0
- package/dist/pw-ai-DUe4BbH2.js +1867 -0
- package/dist/qmd-manager-CAAFp7qK.js +1570 -0
- package/dist/qr-cli-9H9go9JE.js +113 -0
- package/dist/qr-cli-Bxxttvx3.js +369 -0
- package/dist/reactions-Dx2ypGlm.js +281 -0
- package/dist/read-only-account-inspect.discord.runtime-D_RVd1-r.js +116 -0
- package/dist/read-only-account-inspect.slack.runtime-Ckl92Rhy.js +116 -0
- package/dist/read-only-account-inspect.telegram.runtime-D97ssjQk.js +116 -0
- package/dist/redact-snapshot-ojhTflxp.js +2663 -0
- package/dist/register.agent-DlBmy_RL.js +439 -0
- package/dist/register.backup-8nOYtJqg.js +625 -0
- package/dist/register.configure-BV_GUQ5w.js +252 -0
- package/dist/register.maintenance-BafAHBum.js +574 -0
- package/dist/register.message-CHhfcEq2.js +709 -0
- package/dist/register.onboard-DjPNnlnr.js +192 -0
- package/dist/register.setup-BMGXI9PG.js +212 -0
- package/dist/register.status-health-sessions-BJMsh2AL.js +498 -0
- package/dist/register.subclis-B7nrik3-.js +315 -0
- package/dist/register.subclis-BCoAVyGn.js +13 -0
- package/dist/replies-BU4AvOyD.js +110 -0
- package/dist/resolve-channels-CDfj5NGq.js +226 -0
- package/dist/resolve-channels-Cz120Lvf.js +262 -0
- package/dist/resolve-route-DdX-HBVt.js +538 -0
- package/dist/resolve-users-Bc6nRqpb.js +143 -0
- package/dist/root-help-QAkoA7GD.js +32 -0
- package/dist/routes-CcJNnwTF.js +7097 -0
- package/dist/rpc-DDUAlBbH.js +67 -0
- package/dist/run-main-Cf8vXm6i.js +424 -0
- package/dist/runtime-Bitmi8Er.d.ts +26 -0
- package/dist/runtime-discord-ops.runtime-DWBnG-Hf.js +9078 -0
- package/dist/runtime-slack-ops.runtime-oYfbYvX4.js +4556 -0
- package/dist/runtime-telegram-ops.runtime-EPGDYN1f.js +133 -0
- package/dist/runtime-whatsapp-login.runtime-BGJoKM2h.js +114 -0
- package/dist/runtime-whatsapp-outbound.runtime-D3Sag6Bv.js +117 -0
- package/dist/sandbox-cli-waaYyhsC.js +535 -0
- package/dist/search-manager-BjDsOXzB.js +16 -0
- package/dist/search-manager-D-G9UaXe.js +386 -0
- package/dist/secrets-cli-BmeEhlzt.js +2070 -0
- package/dist/security-cli-CSsLnFuN.js +575 -0
- package/dist/send-6o7piqfv.js +100 -0
- package/dist/send-99FyFLgk.js +629 -0
- package/dist/send-B1pX9_Oc.js +283 -0
- package/dist/send-Dg5-AjXW.js +1025 -0
- package/dist/send-LdV9TRoN.js +631 -0
- package/dist/server-node-events-BAUUKNFW.js +506 -0
- package/dist/server-zI_K-D05.js +107 -0
- package/dist/sessions-DJGywtY2.js +112 -0
- package/dist/sessions-WR0GKdGl.js +218 -0
- package/dist/setup-2LvBON2J.js +387 -0
- package/dist/setup-CFIMq-Pz.d.ts +37 -0
- package/dist/setup-binary-CcAv8NXz.js +406 -0
- package/dist/setup-browser-C4eRV3h6.js +70 -0
- package/dist/setup-core-ByqF8Nvc.js +166 -0
- package/dist/setup-core-COkq8Zop.js +205 -0
- package/dist/setup-core-C_o77DVV.js +143 -0
- package/dist/setup-core-tAdHbqi9.js +47 -0
- package/dist/setup-surface-DMHtZByF.js +490 -0
- package/dist/setup-wizard-helpers-r0J6l8ST.d.ts +203 -0
- package/dist/setup.finalize-pTkXn8pV.js +522 -0
- package/dist/setup.gateway-config-D1wiUQe6.js +343 -0
- package/dist/shared-BaM_tMxk.js +102 -0
- package/dist/shared-BgUgXsM9.js +75 -0
- package/dist/shared-CezRuVfl.js +96 -0
- package/dist/shared-DQgf3R0B.js +298 -0
- package/dist/shared-RA6kxQfu.js +182 -0
- package/dist/signal-xxP4dGx7.js +114 -0
- package/dist/skills-Bio8GwTE.js +20 -0
- package/dist/skills-DE_MXFSN.js +853 -0
- package/dist/skills-cli-BGuW-tKw.js +292 -0
- package/dist/skills-install-BIlG41ei.js +763 -0
- package/dist/skills-status-B08PtBc_.js +21 -0
- package/dist/skills-status-CzM008aB.js +169 -0
- package/dist/slack-Bzt3M7d8.js +114 -0
- package/dist/slash-commands.runtime-EYqj8SbV.js +128 -0
- package/dist/slash-dispatch.runtime-vWH92PUY.js +141 -0
- package/dist/slash-skill-commands.runtime-sUTjM3J0.js +116 -0
- package/dist/src-Iso9-DPo.js +1701 -0
- package/dist/status-8S882KRO.js +43 -0
- package/dist/status-BF7h_jTB.js +126 -0
- package/dist/status-DxOIyRm9.js +131 -0
- package/dist/status-HlvixAOq.js +606 -0
- package/dist/status-json-CShBo8A6.js +288 -0
- package/dist/status-qhtgsJFd.js +1599 -0
- package/dist/status.link-channel-D3dLYZiH.js +143 -0
- package/dist/status.scan.deps.runtime-mCmOLzpG.js +126 -0
- package/dist/status.scan.runtime-CYuUlDeg.js +119 -0
- package/dist/status.summary-BjB1aTjV.js +592 -0
- package/dist/status.summary.runtime-DW4MOt1Z.js +118 -0
- package/dist/status.update-BxblMS7P.js +77 -0
- package/dist/subagent-orphan-recovery-CCVopsdP.js +307 -0
- package/dist/subagent-registry-runtime-oG47Fzvg.js +111 -0
- package/dist/subscription-CpFdxuFS.js +33 -0
- package/dist/subscription-DaA1urx-.js +102 -0
- package/dist/subscription-cli-Bvto9EmO.js +134 -0
- package/dist/synology-chat-CVy1tJGY.js +297 -0
- package/dist/system-cli-BvNps8sl.js +94 -0
- package/dist/telegram/audit.d.ts +1 -1
- package/dist/telegram/audit.js +1 -1
- package/dist/telegram/token.d.ts +1 -1
- package/dist/telegram/token.js +35 -35
- package/dist/telegram-Dug8pd82.js +114 -0
- package/dist/text-chunking-CQ6ttpWs.js +84 -0
- package/dist/text-chunking-DDUU_vAF.d.ts +79 -0
- package/dist/tlon-BnckVr_7.js +433 -0
- package/dist/tui-DXTge9Ac.js +3834 -0
- package/dist/tui-cli-BRUfLUTd.js +137 -0
- package/dist/types-2H_e7eWT.d.ts +45 -0
- package/dist/types-ZKnGUchG.d.ts +22692 -0
- package/dist/types.base-BFiQZ4J9.d.ts +188 -0
- package/dist/ui--iP08xRA.js +31 -0
- package/dist/update-CtxBD-Cf.js +1036 -0
- package/dist/update-cli-DPE3GCHJ.js +1503 -0
- package/dist/update-offset-store-BlBY7dWj.js +112 -0
- package/dist/update-runner-Cfcrhf2j.js +1496 -0
- package/dist/upsert-with-lock-BZU7Le8n.js +33 -0
- package/dist/usage-Czgwvg0h.js +115 -0
- package/dist/web-BGDXhunB.js +112 -0
- package/dist/web-shared-B5Q0mIJq.d.ts +45 -0
- package/dist/webhook-request-guards-CsKDhZJr.d.ts +76 -0
- package/dist/webhook-targets-CjxuEE9C.d.ts +106 -0
- package/dist/webhook-targets-Dtt6rH4N.js +181 -0
- package/dist/webhooks-cli-Wl9y6AWW.js +350 -0
- package/dist/whatsapp-D64cBQ_9.js +114 -0
- package/dist/whatsapp-actions-CVoTcagb.js +167 -0
- package/dist/workspace-DJ_S272u.js +484 -0
- package/dist/workspace-DbZSqjw0.js +289 -0
- package/dist/workspace-cli-D93DLmAh.js +154 -0
- package/dist/workspace-dirs-CGeIPpGN.js +2003 -0
- package/dist/zalo-CK2dlGmu.d.ts +9 -0
- package/dist/zalo-DxoY8M22.js +415 -0
- package/dist/zalouser-DTHIrPvs.js +30911 -0
- package/extensions/discord/src/monitor/allow-list.ts +8 -1
- package/extensions/discord/src/monitor/message-handler.preflight.ts +4 -1
- package/package.json +1 -1
- package/dist/accounts-CS8U4v8C.js +0 -114
- package/dist/accounts-gLr-Udmt.d.ts +0 -103
- package/dist/acp-cli-BGT0jXcC.js +0 -2093
- package/dist/actions.runtime-BfckTw6c.js +0 -119
- package/dist/actions.runtime-Cl9mBfqH.js +0 -133
- package/dist/agent-scope-C-YmLnnb.js +0 -208
- package/dist/agents-CydD54p8.js +0 -222
- package/dist/agents-DpQsZO6O.js +0 -853
- package/dist/agents.config-XU7IsYE-.js +0 -121
- package/dist/agents.config-ssoQXuvF.js +0 -17
- package/dist/allow-list-Cfn6lmMK.js +0 -81
- package/dist/allowlist-CCYXVpM9.js +0 -142
- package/dist/api-BoXoFKxy.js +0 -117
- package/dist/audit-Bv05N5o9.js +0 -787
- package/dist/audit-CIWW1Aqm.js +0 -54
- package/dist/audit-channel.collect.runtime-Bi7yrdcO.js +0 -605
- package/dist/audit-channel.runtime-C_NDweiW.js +0 -121
- package/dist/audit-extra.async-Dp7OKSXg.js +0 -813
- package/dist/audit-membership-runtime-B8FQ6VtN.js +0 -162
- package/dist/audit.deep.runtime-CXhobL6b.js +0 -25
- package/dist/audit.nondeep.runtime-CrEm3T16.js +0 -832
- package/dist/audit.runtime-CJPKj1Zg.js +0 -118
- package/dist/auth-Byfp0flq.js +0 -101
- package/dist/auth-choice-BgOjdeXN.js +0 -507
- package/dist/auth-choice-CD1Heq0M.js +0 -122
- package/dist/auth-choice-ePNfg0iQ.js +0 -268
- package/dist/auth-choice-options-BlewQWI0.js +0 -123
- package/dist/auth-choice-prompt-BP2b6aXz.js +0 -36
- package/dist/auth-choice-prompt-Cmwl4n97.js +0 -115
- package/dist/auth-choice.apply-helpers-Dq-nxuuX.js +0 -66
- package/dist/auth-choice.plugin-providers.runtime-B23kOUzQ.js +0 -119
- package/dist/auth-profiles-1kPLbBwI.js +0 -127823
- package/dist/auth-profiles.runtime-DAfSjku1.js +0 -116
- package/dist/banner-DeOsobLO.js +0 -342
- package/dist/bluebubbles-BsLGedBM.js +0 -64
- package/dist/bluebubbles-U2sAfO4_.d.ts +0 -6
- package/dist/bot-DW12K3bO.d.ts +0 -478
- package/dist/brave-BoWimrLe.js +0 -24
- package/dist/browser-cli-D_S3wEYE.js +0 -1494
- package/dist/call-ByEzDJ1_.js +0 -640
- package/dist/call-CHCWVg-O.js +0 -39
- package/dist/channel-3VC0oOMu.js +0 -214
- package/dist/channel-B9fCBPiS.js +0 -207
- package/dist/channel-B9q775cM.js +0 -562
- package/dist/channel-BG3UK54j.js +0 -803
- package/dist/channel-BRQAdMML.js +0 -352
- package/dist/channel-BmlLp933.js +0 -1321
- package/dist/channel-By6KvdTG.js +0 -920
- package/dist/channel-C8rRsdf6.js +0 -226
- package/dist/channel-CLEDBbXE.js +0 -943
- package/dist/channel-CMvBAG7o.js +0 -306
- package/dist/channel-CmlxxjHY.js +0 -1598
- package/dist/channel-CqG6_xN0.js +0 -949
- package/dist/channel-DNueHKs92.js +0 -316
- package/dist/channel-DUtyN7BX.js +0 -4681
- package/dist/channel-DWD6GrfZ.js +0 -538
- package/dist/channel-DaRYMYzj.js +0 -619
- package/dist/channel-Dj6BgLp8.js +0 -575
- package/dist/channel-account-context-Ba3u5D21.js +0 -103
- package/dist/channel-crabk6Em.js +0 -542
- package/dist/channel-i8uqQaK2.js +0 -497
- package/dist/channel-options-xljvwHS2.js +0 -50
- package/dist/channel-plugin-ids-DAgknSG4.js +0 -26
- package/dist/channel-summary-dHTMCG75.js +0 -111
- package/dist/channel-xVWQ96Ni.js +0 -397
- package/dist/channel.runtime-B6PoZ4BV.js +0 -182
- package/dist/channel.runtime-BPZmo57e.js +0 -404
- package/dist/channel.runtime-B_1uGR-U.js +0 -199
- package/dist/channel.runtime-BiXnPU0d.js +0 -218
- package/dist/channel.runtime-BpvDc9sv.js +0 -870
- package/dist/channel.runtime-CUua3W80.js +0 -418
- package/dist/channel.runtime-CaCBTd0A.js +0 -179
- package/dist/channel.runtime-D0FfYvUj.js +0 -4011
- package/dist/channel.runtime-DhoJtpvJ.js +0 -241
- package/dist/channel.runtime-Kj9EXNE0.js +0 -127
- package/dist/channel.runtime-r4tPuPyh.js +0 -171
- package/dist/channel.setup-B7d_grfe.js +0 -6
- package/dist/channel.setup-C0vu1fhi.js +0 -9
- package/dist/channel.setup-CAI0FNHj.js +0 -11
- package/dist/channel.setup-CkDVwv5R.js +0 -57
- package/dist/channel.setup-Cpd00YqQ.js +0 -8
- package/dist/channel.setup-DbBz1-WT.js +0 -9
- package/dist/channel.setup-GZnAvD9g.js +0 -8
- package/dist/channels-5H484RSw.js +0 -1118
- package/dist/channels-BnPudfyx.js +0 -404
- package/dist/channels-cli-WIC-QeH_.js +0 -291
- package/dist/channels-status-issues-RDmzovJU.js +0 -16
- package/dist/clawbot-cli-BgutNwf8.js +0 -118
- package/dist/cleanup-utils-DBl1Aij1.js +0 -96
- package/dist/cli-1P7u6zqu.js +0 -154
- package/dist/command-registry-B8jovrws.js +0 -232
- package/dist/command-registry-DtDl1FVm.js +0 -14
- package/dist/command-secret-gateway-BgUo3FxJ.js +0 -111
- package/dist/compact.runtime-CXbXM0AU.js +0 -116
- package/dist/completion-cli-Cik_owAE.js +0 -17
- package/dist/completion-cli-RU3P2RSl.js +0 -445
- package/dist/config-5HUpB1L1.js +0 -31
- package/dist/config-cli-QHaUHoZI.js +0 -433
- package/dist/config-guard-C9Sn3pE-.js +0 -118
- package/dist/config-sW57gztj.js +0 -44
- package/dist/config-validation-5LkjIKNt.js +0 -262
- package/dist/config-value-CtTWALxG.js +0 -132
- package/dist/configure-BmR2TPLf.js +0 -243
- package/dist/configure-DaLN-5xM.js +0 -1100
- package/dist/control-ui-assets-CH3MYmAo.js +0 -232
- package/dist/control-ui-shared-CA77PTml.js +0 -29
- package/dist/core-CvDzLs7B.js +0 -150
- package/dist/core-dPA4nFkn.d.ts +0 -87
- package/dist/cron-cli-tguLpzyq.js +0 -639
- package/dist/daemon-cli-ptosOkL8.js +0 -339
- package/dist/daemon-install-DzU4EnVa.js +0 -180
- package/dist/deliver-DwxFoHM3.js +0 -111
- package/dist/deliver-runtime-DOdDyaPI.js +0 -111
- package/dist/device-id-cli-GopvlxxZ.js +0 -52
- package/dist/device-identity-CRfhC3_s.js +0 -365
- package/dist/devices-cli-ain7ESqU.js +0 -342
- package/dist/diagnostic-D96Xaqrj.js +0 -310
- package/dist/directory-cli-fh1UxGgY.js +0 -311
- package/dist/directory-config-helpers-CpU1oflo.d.ts +0 -38
- package/dist/directory.static-CKjJUNGl.js +0 -44
- package/dist/discord-CflhwDEM.js +0 -114
- package/dist/discovery-x0ZqY4AB.js +0 -48
- package/dist/dm-policy-shared-73A52W6E.d.ts +0 -95
- package/dist/dns-cli-DCHyKjGf.js +0 -217
- package/dist/docs-cli-D3OoqYSP.js +0 -174
- package/dist/doctor-completion-Bq2eP87s.js +0 -90
- package/dist/doctor-config-flow-D8XRG9Ku.js +0 -2437
- package/dist/doctor-config-flow-DGiF1HGc.js +0 -112
- package/dist/enable-0QSF4YGH.js +0 -24
- package/dist/exec-approvals-cli-Bncym0Gd.js +0 -421
- package/dist/feishu-B5JDcyF9.d.ts +0 -36
- package/dist/gateway-cli-DYscsmA-.js +0 -26437
- package/dist/gateway-install-token-CNv17ac9.js +0 -163
- package/dist/gateway-rpc-BGC1Rxvg.js +0 -26
- package/dist/gateway-runtime-D89mSQPB.js +0 -69
- package/dist/git-commit-CeLH5Ozm.js +0 -2
- package/dist/git-commit-DUKRiCP-.js +0 -177
- package/dist/googlechat-BgXeXjd1.js +0 -307
- package/dist/googlechat-De-T7C31.d.ts +0 -12
- package/dist/group-access-Deh1tVNr.d.ts +0 -61
- package/dist/health-BEjzWwaB.js +0 -570
- package/dist/health-FjqrWQL6.js +0 -113
- package/dist/heartbeat-summary-CfdSA9M1.js +0 -57
- package/dist/help-BZeVprq1.js +0 -81
- package/dist/hooks-B5pYs_d7.d.ts +0 -6
- package/dist/hooks-cli-B7uGJs2O.js +0 -1000
- package/dist/hooks-status-CfceaUSg.js +0 -78
- package/dist/http-registry-C-KXqwnj.d.ts +0 -20
- package/dist/identity-file-sshkKKIr.js +0 -60
- package/dist/image-generation-CafM5hZh.d.ts +0 -9
- package/dist/imessage-BcV3WGx_.js +0 -31
- package/dist/imessage-Dhje7Ty-.js +0 -115
- package/dist/inbound-reply-dispatch-C73_7SOl.js +0 -71
- package/dist/inbound-reply-dispatch-DmL0KWLe.d.ts +0 -72
- package/dist/install-target-D7NRhfzc.js +0 -574
- package/dist/installs-Bj6jblqc.js +0 -532
- package/dist/io-CMfWWPXQ.js +0 -9738
- package/dist/io-CV844hAM.js +0 -29
- package/dist/irc-DKi1fDYI.js +0 -672
- package/dist/library-rygTG3oA.js +0 -112
- package/dist/lifecycle-core-BPlvShWY.js +0 -382
- package/dist/line-CGsemKWJ.js +0 -530
- package/dist/line-CKU3ER-n.d.ts +0 -75
- package/dist/llm-slug-generator-DlhVyMqT.js +0 -67
- package/dist/logging-5wu9k6w4.js +0 -30
- package/dist/logging-CxP9suT8.js +0 -13
- package/dist/login-qr-BcDsiwHs.js +0 -233
- package/dist/login-qr-Y8pJ5yV4.js +0 -112
- package/dist/logs-cli-XI9oVXpH.js +0 -256
- package/dist/manager-runtime-DkIlXBhD.js +0 -111
- package/dist/manager.runtime-Q0q2rJCC.js +0 -715
- package/dist/manifest-registry-DAd0SRAP.js +0 -1329
- package/dist/matrix-BI0DBBrG.js +0 -1495
- package/dist/matrix-DiABGjJR.js +0 -1269
- package/dist/matrix-fC6NrFM5.d.ts +0 -68
- package/dist/mcp-cli-BOyn_DLL.js +0 -87
- package/dist/media-understanding.runtime-DjUa7Dka.js +0 -116
- package/dist/memory-cli-CJd_vl-Y.js +0 -111
- package/dist/memory-search-CEEItIFR.js +0 -17
- package/dist/memory-search-Cv1SBrn7.js +0 -204
- package/dist/method-scopes-CQE7-bZ-.js +0 -2452
- package/dist/model-auth-markers-B1bbs9Qd.d.ts +0 -20
- package/dist/model-picker-D6_89XHg.js +0 -112
- package/dist/model-picker-Svaw-APs.js +0 -390
- package/dist/model-picker.runtime-Chi9nV7A.js +0 -125
- package/dist/model-selection-hL8i1Jbs.js +0 -653
- package/dist/model-suppression.runtime-DjWJZ0X-.js +0 -116
- package/dist/models-7qj1dG_W.js +0 -118
- package/dist/models-BPOB_xJF.js +0 -2514
- package/dist/models-cli-DdlOVUjS.js +0 -309
- package/dist/models-config-CBqUS-jX.js +0 -111
- package/dist/models-config.providers.discovery-BKB5JH9M.d.ts +0 -18
- package/dist/moldclaw-root-D6PbhbZk.js +0 -88
- package/dist/monitor-BPYhkEqF.js +0 -782
- package/dist/monitor-BuTcQ24j.js +0 -3468
- package/dist/monitor-CuXvNhFh.js +0 -113
- package/dist/monitor-D-TqSIHF.js +0 -6823
- package/dist/monitor-DRSgo9u2.js +0 -3076
- package/dist/monitor-DcHch39z.js +0 -772
- package/dist/monitor-DsHBMrXp.js +0 -115
- package/dist/monitor-shared-CL8T4gt1.js +0 -444
- package/dist/msteams-7FMwTvQG.js +0 -852
- package/dist/node-cli-BCjaSCZM.js +0 -2503
- package/dist/node-resolve-D5Hvcgyx.js +0 -835
- package/dist/nodes-cli-Dd_SNbkt.js +0 -1380
- package/dist/nostr-D8scBiYq.d.ts +0 -7
- package/dist/nostr-DBTFTxKs.js +0 -8744
- package/dist/npm-resolution-CYfb3MHG.js +0 -60
- package/dist/oauth-env-zPt5RywA.js +0 -10
- package/dist/onboard-BEFQQeig.js +0 -25
- package/dist/onboard-CJHNyxJh.js +0 -48
- package/dist/onboard-D_3UeLEN.js +0 -589
- package/dist/onboard-channels-B_JL0Djc.js +0 -1241
- package/dist/onboard-channels-CqZzHt2C.js +0 -205
- package/dist/onboard-custom-CER3Ggbq.js +0 -571
- package/dist/onboard-custom-bNRdGECb.js +0 -114
- package/dist/onboard-helpers-BK0Hsb7Y.js +0 -335
- package/dist/onboard-helpers-CXZ5RPoR.js +0 -113
- package/dist/onboard-hooks-1NsxEDjH.js +0 -72
- package/dist/onboard-remote-DuKhC_7W.js +0 -117
- package/dist/onboard-remote-OwRcDuB3.js +0 -181
- package/dist/onboard-search-Cy8dOq2W.js +0 -302
- package/dist/onboard-skills-D5phRa6r.js +0 -117
- package/dist/onboard-skills-c9qWCNe9.js +0 -133
- package/dist/outbound-media-CgNYEQWb.d.ts +0 -11
- package/dist/outbound-media-DYRO2vTD.js +0 -11
- package/dist/pairing-access-Dsiu5Mvl.d.ts +0 -21
- package/dist/pairing-cli-BOnv0TYn.js +0 -217
- package/dist/perplexity-EZwC3y2b.js +0 -24
- package/dist/persistent-dedupe-DMLOqJ23.d.ts +0 -26
- package/dist/pi-model-discovery-runtime-BToY3A6K.js +0 -111
- package/dist/pi-tools.before-tool-call.runtime-D_acPtld.js +0 -381
- package/dist/plugin-install-CgJpSjYd.js +0 -184
- package/dist/plugin-install-Cl1A4EF6.js +0 -117
- package/dist/plugin-install-plan-Dc2Z4DeU.js +0 -49
- package/dist/plugin-registry-B1UaWrQD.js +0 -49
- package/dist/plugin-registry-Cy8biwnn.js +0 -113
- package/dist/plugins-CXwvg50F.js +0 -111
- package/dist/plugins-cli-Uvzp2aYV.js +0 -917
- package/dist/policy-DsMBbEe7.js +0 -143
- package/dist/preflight-audio.runtime-hWsZIYvc.js +0 -116
- package/dist/probe-CNsSf1Uf.js +0 -6329
- package/dist/probe-CqOIrPhb.js +0 -47
- package/dist/probe-DH6gDw-h.js +0 -129
- package/dist/probe-DM16PLf4.js +0 -21
- package/dist/probe-DvAEEWYr.js +0 -1793
- package/dist/probe-auth-COfgCble.js +0 -48
- package/dist/probe-auth-I_5TX1Eh.js +0 -40
- package/dist/program-Dz80sgTU.js +0 -253
- package/dist/prompt-select-styled-wQehwFxK.js +0 -2673
- package/dist/provider-api-key-auth.runtime-BR9GU4ya.js +0 -121
- package/dist/provider-auth-choice-CdhA84kr.js +0 -126
- package/dist/provider-auth-choice-helpers-kabp_0zA.js +0 -48
- package/dist/provider-auth-choice-preference-se3zAM_2.js +0 -189
- package/dist/provider-auth-choice.runtime-BMc8-xNQ.js +0 -123
- package/dist/provider-auth-choices-CYsCViGi.js +0 -57
- package/dist/provider-auth-guidance-CMjUWlNf.js +0 -34
- package/dist/provider-auth-result-Cw6qIhO-.d.ts +0 -18
- package/dist/provider-models-BCId_Lfu.js +0 -2113
- package/dist/provider-models-Ok-DrSiY.d.ts +0 -867
- package/dist/provider-ollama-setup-B6XJZ0So.js +0 -314
- package/dist/provider-ollama-setup-lGDdTl0b.d.ts +0 -32
- package/dist/provider-onboard-CSPi7jOK.d.ts +0 -40
- package/dist/provider-onboard-Ca0TaNud.js +0 -139
- package/dist/provider-runtime.runtime-DwwkHw_7.js +0 -111
- package/dist/provider-self-hosted-setup-BEKLVGpj.js +0 -182
- package/dist/provider-self-hosted-setup-Df91By-J.d.ts +0 -61
- package/dist/provider-stream-DrUD69ai.js +0 -512
- package/dist/provider-usage-BgKHCnjr.js +0 -111
- package/dist/provider-usage-D8EZpFz9.js +0 -633
- package/dist/provider-wizard-DMdb-zj_.js +0 -152
- package/dist/push-apns-BPH6d4VV.js +0 -1038
- package/dist/pw-ai-DttfldtL.js +0 -1867
- package/dist/qmd-manager-CybcDUfk.js +0 -1570
- package/dist/qr-cli-8NcmJ8Ft.js +0 -369
- package/dist/qr-cli-DWe0Our3.js +0 -113
- package/dist/reactions-D6N0LR16.js +0 -281
- package/dist/read-only-account-inspect.discord.runtime-CqUWTRfl.js +0 -116
- package/dist/read-only-account-inspect.slack.runtime-9-jpln3q.js +0 -116
- package/dist/read-only-account-inspect.telegram.runtime-EKPI1D7n.js +0 -116
- package/dist/redact-snapshot-DwJEIVk9.js +0 -2663
- package/dist/register.agent-D3YdDirP.js +0 -439
- package/dist/register.backup-dR27qCuo.js +0 -625
- package/dist/register.configure-BjFhkkka.js +0 -252
- package/dist/register.maintenance-DiMQJIOa.js +0 -574
- package/dist/register.message-CdZsKYH1.js +0 -709
- package/dist/register.onboard-B0rV1eaO.js +0 -192
- package/dist/register.setup-wKMvohzo.js +0 -212
- package/dist/register.status-health-sessions-BJ68m6pt.js +0 -498
- package/dist/register.subclis-CnnrWt2a.js +0 -315
- package/dist/register.subclis-lSvTkC6z.js +0 -13
- package/dist/replies-BABt9b48.js +0 -110
- package/dist/resolve-channels-BqZFl2Ux.js +0 -262
- package/dist/resolve-channels-DjQLXb7B.js +0 -226
- package/dist/resolve-route-CSHDsa_m.js +0 -538
- package/dist/resolve-users-BG6HaSR5.js +0 -143
- package/dist/root-help-ohmaCyC_.js +0 -32
- package/dist/routes-4k2kpvoT.js +0 -7097
- package/dist/rpc-Cnwn4Q6L.js +0 -67
- package/dist/run-main-VYlacKA0.js +0 -424
- package/dist/runtime-D61jzMiI.d.ts +0 -26
- package/dist/runtime-discord-ops.runtime-DafrU-rI.js +0 -9078
- package/dist/runtime-slack-ops.runtime-CdXBKXwd.js +0 -4556
- package/dist/runtime-telegram-ops.runtime-B12sF7gE.js +0 -133
- package/dist/runtime-whatsapp-login.runtime-CqEudH37.js +0 -114
- package/dist/runtime-whatsapp-outbound.runtime-D5m2qyn-.js +0 -117
- package/dist/sandbox-cli-CHJiEWXB.js +0 -535
- package/dist/search-manager-BtNC3-i_.js +0 -16
- package/dist/search-manager-C7J7B3_a.js +0 -386
- package/dist/secrets-cli-C6yIWBbN.js +0 -2070
- package/dist/security-cli-BVu9BkjD.js +0 -575
- package/dist/send-BSreC7rr.js +0 -631
- package/dist/send-BsLHQG_B.js +0 -1025
- package/dist/send-BuNhp8PH.js +0 -283
- package/dist/send-DOCswVar.js +0 -100
- package/dist/send-Dl0LLErk.js +0 -629
- package/dist/server-node-events-Bq2067EG.js +0 -506
- package/dist/server-y38L7N5H.js +0 -107
- package/dist/sessions-BV8gXURR.js +0 -112
- package/dist/sessions-dl1Kc-Ci.js +0 -218
- package/dist/setup-BSPXdMuK.d.ts +0 -37
- package/dist/setup-DGszQH0_.js +0 -387
- package/dist/setup-binary-C17YnmA8.js +0 -406
- package/dist/setup-browser-CPx-nEsr.js +0 -70
- package/dist/setup-core-BByHN1ME.js +0 -143
- package/dist/setup-core-C0KPlBmL.js +0 -47
- package/dist/setup-core-Cq37G6of.js +0 -166
- package/dist/setup-core-uO84_Y75.js +0 -205
- package/dist/setup-surface-BEMi7Rmb.js +0 -490
- package/dist/setup-wizard-helpers-Ck9wDR0b.d.ts +0 -203
- package/dist/setup.finalize-BzPBa8zW.js +0 -522
- package/dist/setup.gateway-config-DdwkF-8e.js +0 -343
- package/dist/shared-BCw4SKjB.js +0 -96
- package/dist/shared-CjNzsULP.js +0 -75
- package/dist/shared-Cu1BE7ZE.js +0 -298
- package/dist/shared-DSClmyUn.js +0 -182
- package/dist/shared-DyJdGH6y.js +0 -102
- package/dist/signal-Dyv4NZsB.js +0 -114
- package/dist/skills-CbB5b27M.js +0 -853
- package/dist/skills-CnfI7Szw.js +0 -20
- package/dist/skills-cli-CavB1f_3.js +0 -292
- package/dist/skills-install-B1OBdgd0.js +0 -763
- package/dist/skills-status-B3gAmIbW.js +0 -169
- package/dist/skills-status-DrHhFgU9.js +0 -21
- package/dist/slack-BRzqnoAz.js +0 -114
- package/dist/slash-commands.runtime-BK88kgds.js +0 -128
- package/dist/slash-dispatch.runtime-COGywwJE.js +0 -141
- package/dist/slash-skill-commands.runtime-Ti4brxgh.js +0 -116
- package/dist/src-DUR6OQxI.js +0 -1701
- package/dist/status-C6dgQY9a.js +0 -131
- package/dist/status-CNK0Q7QH.js +0 -606
- package/dist/status-DBcX0DSC.js +0 -43
- package/dist/status-DKgFgbwv.js +0 -1599
- package/dist/status-Wn5lhNAc.js +0 -126
- package/dist/status-json-D2EkWqAl.js +0 -288
- package/dist/status.link-channel-D3ULIdEa.js +0 -143
- package/dist/status.scan.deps.runtime-BsjWTAm4.js +0 -126
- package/dist/status.scan.runtime-D4HbzROD.js +0 -119
- package/dist/status.summary-C3YxPrDK.js +0 -592
- package/dist/status.summary.runtime-DAkXPSaK.js +0 -118
- package/dist/status.update-B4NnN9P1.js +0 -77
- package/dist/subagent-orphan-recovery-QiQEBv36.js +0 -307
- package/dist/subagent-registry-runtime-BJatPQFK.js +0 -111
- package/dist/subscription-BhZORXN9.js +0 -100
- package/dist/subscription-QEUjQRMv.js +0 -33
- package/dist/subscription-cli-HrULlAgc.js +0 -134
- package/dist/synology-chat-DB76GWMN.js +0 -297
- package/dist/system-cli-D8jDwWuL.js +0 -94
- package/dist/telegram-BHiiqKkQ.js +0 -114
- package/dist/text-chunking-Baonm9Lu.js +0 -84
- package/dist/text-chunking-DzB11ONk.d.ts +0 -79
- package/dist/tlon-DLESxNgD.js +0 -433
- package/dist/tui-C75zi2Cl.js +0 -3834
- package/dist/tui-cli-DFwx5e6i.js +0 -137
- package/dist/types-BKldC9YN.d.ts +0 -22692
- package/dist/types-MeyueBE0.d.ts +0 -45
- package/dist/types.base-Cw0-zIvE.d.ts +0 -188
- package/dist/ui-B55NOIB6.js +0 -31
- package/dist/update--ojavYQ4.js +0 -1036
- package/dist/update-cli-Cvj5aWYM.js +0 -1503
- package/dist/update-offset-store-upatuWwX.js +0 -112
- package/dist/update-runner-DHkY_-76.js +0 -1496
- package/dist/upsert-with-lock-C171GLaR.js +0 -33
- package/dist/usage-N3bxnbmt.js +0 -115
- package/dist/web-RdvT7gKa.js +0 -112
- package/dist/web-shared-C2qHVxw1.d.ts +0 -45
- package/dist/webhook-request-guards-CosLyl01.d.ts +0 -76
- package/dist/webhook-targets-Bfnag-du.js +0 -181
- package/dist/webhook-targets-DP_EkQa4.d.ts +0 -106
- package/dist/webhooks-cli-ZpnXrq7G.js +0 -350
- package/dist/whatsapp-DNTAyZHt.js +0 -114
- package/dist/whatsapp-actions-o1zKQzKZ.js +0 -167
- package/dist/workspace-CpWi5wPr.js +0 -479
- package/dist/workspace-Ii7aRS7c.js +0 -289
- package/dist/workspace-dirs-x10McA9t.js +0 -2003
- package/dist/zalo-C9OQRYRw.d.ts +0 -9
- package/dist/zalo-zm_bYCKg.js +0 -415
- package/dist/zalouser-CvVEUvc5.js +0 -30911
- /package/dist/{account-id-B3YSn4hl.d.ts → account-id-B8ce6G_4.d.ts} +0 -0
- /package/dist/{acpx-CnNv70m2.d.ts → acpx-Ci50I9T2.d.ts} +0 -0
- /package/dist/{agent-media-payload-DE2pEcsz.d.ts → agent-media-payload-en-gS5p6.d.ts} +0 -0
- /package/dist/{allow-from-DPpHnT2A.d.ts → allow-from-cMeQ47Ot.d.ts} +0 -0
- /package/dist/{allowlist-resolution-CLFiZ6nE.d.ts → allowlist-resolution-DoAWbfXV.d.ts} +0 -0
- /package/dist/{bluebubbles-Duhu-Jer.d.ts → bluebubbles-C6yYmUl0.d.ts} +0 -0
- /package/dist/{boolean-param-BhFjB3gp.d.ts → boolean-param-CdO2TFTk.d.ts} +0 -0
- /package/dist/{channel-config-schema-DnnVMdjR.d.ts → channel-config-schema-Chp38wel.d.ts} +0 -0
- /package/dist/{channel-policy-Baq-Z06b.d.ts → channel-policy-g2h6AbYQ.d.ts} +0 -0
- /package/dist/{chat-type-DpiBgwuG.d.ts → chat-type-BLt59pPT.d.ts} +0 -0
- /package/dist/{command-format-vi4xq8e8.d.ts → command-format-BDJC05Jp.d.ts} +0 -0
- /package/dist/{diffs-DK7fVSDo.d.ts → diffs-D_iNKCyn.d.ts} +0 -0
- /package/dist/{directory-runtime-BTLPaysA.d.ts → directory-runtime-DhMex6HY.d.ts} +0 -0
- /package/dist/{exec-C01wtBHu.d.ts → exec-pjfUY4KM.d.ts} +0 -0
- /package/dist/{gaxios-fetch-compat-wZ38b3w3.js → gaxios-fetch-compat-B_vtINdV.js} +0 -0
- /package/dist/{history-CwXuP2TW.d.ts → history-aqSS5VGQ.d.ts} +0 -0
- /package/dist/{inbound-envelope-SggrBs9m.d.ts → inbound-envelope-C5hWuZod.d.ts} +0 -0
- /package/dist/{index-apAZHsDo.d.ts → index-DXVQFYGX.d.ts} +0 -0
- /package/dist/{json-store-r75IZGk9.d.ts → json-store-UnqQ5aV3.d.ts} +0 -0
- /package/dist/{keyed-async-queue-DHIr7yNe.d.ts → keyed-async-queue-guucpLw3.d.ts} +0 -0
- /package/dist/{links-HeQ3r_L0.d.ts → links-Bar0meEK.d.ts} +0 -0
- /package/dist/{markdown-to-line-CDb4Jy3V.d.ts → markdown-to-line-D8uH_KOj.d.ts} +0 -0
- /package/dist/{mattermost-DtCsxpgg.d.ts → mattermost-xl7jAFJL.d.ts} +0 -0
- /package/dist/{net-BATPDwdQ.d.ts → net-rGOKGds6.d.ts} +0 -0
- /package/dist/{nextcloud-talk-Bb2wHOwp.d.ts → nextcloud-talk-De2CZ9dV.d.ts} +0 -0
- /package/dist/{oauth-utils-u567CLT0.d.ts → oauth-utils-DzN1AlEH.d.ts} +0 -0
- /package/dist/{parse-finite-number-l3tNlrZh.d.ts → parse-finite-number-odgyqhi0.d.ts} +0 -0
- /package/dist/{provider-usage.types-C6061OVN.d.ts → provider-usage.types-EDE9o-H_.d.ts} +0 -0
- /package/dist/{reply-history-BDsFnZFl.d.ts → reply-history-CVuU31xe.d.ts} +0 -0
- /package/dist/{reply-payload-CCvM4W9u.d.ts → reply-payload-CHkpBYwL.d.ts} +0 -0
- /package/dist/{request-url-C54l4-xC.d.ts → request-url-DHisbiHY.d.ts} +0 -0
- /package/dist/{run-command-D3RqWcHu.d.ts → run-command-y0Cndsb1.d.ts} +0 -0
- /package/dist/{secret-input-schema-BLBt-NAP.d.ts → secret-input-schema-b1vpYDQN.d.ts} +0 -0
- /package/dist/{session-key-BQ2-bR-9.d.ts → session-key-DTHQl57f.d.ts} +0 -0
- /package/dist/{ssh-config-C4mcH9Ly.js → ssh-config-hEHBfU2_.js} +0 -0
- /package/dist/{testing-DLkhGsoz.d.ts → testing-DszuZXgK.d.ts} +0 -0
- /package/dist/{thinking-DRkjX18p.d.ts → thinking-IwXTGSeT.d.ts} +0 -0
- /package/dist/{tool-send-CMMD1uDu.d.ts → tool-send-DWHRmKpz.d.ts} +0 -0
- /package/dist/{vllm-defaults-CcGuf4hL.d.ts → vllm-defaults-CrxZgE6-.d.ts} +0 -0
- /package/dist/{wait-Daog8bxM.d.ts → wait-wDWw_MTI.d.ts} +0 -0
- /package/dist/{webhook-memory-guards-C5MrExwT.d.ts → webhook-memory-guards-DreORuJy.d.ts} +0 -0
- /package/dist/{windows-spawn-j2l-dqu8.d.ts → windows-spawn-BIzH92x2.d.ts} +0 -0
- /package/dist/{zod-schema.agent-runtime-krMrBnIn.d.ts → zod-schema.agent-runtime-CP2rmis3.d.ts} +0 -0
- /package/dist/{zod-schema.core-BNDieZDZ.d.ts → zod-schema.core-Foi1tYwi.d.ts} +0 -0
|
@@ -0,0 +1,2113 @@
|
|
|
1
|
+
import { t as createSubsystemLogger } from "./subsystem-CPmDTJ2P.js";
|
|
2
|
+
import { C as sleep } from "./utils-C7ykRPCQ.js";
|
|
3
|
+
import { o as ensureModelAllowlistEntry, r as applyProviderConfigWithDefaultModel, t as applyAgentDefaultModelPrimary } from "./provider-onboard-B9ionepI.js";
|
|
4
|
+
//#region src/infra/retry.ts
|
|
5
|
+
const DEFAULT_RETRY_CONFIG = {
|
|
6
|
+
attempts: 3,
|
|
7
|
+
minDelayMs: 300,
|
|
8
|
+
maxDelayMs: 3e4,
|
|
9
|
+
jitter: 0
|
|
10
|
+
};
|
|
11
|
+
const asFiniteNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : void 0;
|
|
12
|
+
const clampNumber = (value, fallback, min, max) => {
|
|
13
|
+
const next = asFiniteNumber(value);
|
|
14
|
+
if (next === void 0) return fallback;
|
|
15
|
+
const floor = typeof min === "number" ? min : Number.NEGATIVE_INFINITY;
|
|
16
|
+
const ceiling = typeof max === "number" ? max : Number.POSITIVE_INFINITY;
|
|
17
|
+
return Math.min(Math.max(next, floor), ceiling);
|
|
18
|
+
};
|
|
19
|
+
function resolveRetryConfig(defaults = DEFAULT_RETRY_CONFIG, overrides) {
|
|
20
|
+
const attempts = Math.max(1, Math.round(clampNumber(overrides?.attempts, defaults.attempts, 1)));
|
|
21
|
+
const minDelayMs = Math.max(0, Math.round(clampNumber(overrides?.minDelayMs, defaults.minDelayMs, 0)));
|
|
22
|
+
return {
|
|
23
|
+
attempts,
|
|
24
|
+
minDelayMs,
|
|
25
|
+
maxDelayMs: Math.max(minDelayMs, Math.round(clampNumber(overrides?.maxDelayMs, defaults.maxDelayMs, 0))),
|
|
26
|
+
jitter: clampNumber(overrides?.jitter, defaults.jitter, 0, 1)
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function applyJitter(delayMs, jitter) {
|
|
30
|
+
if (jitter <= 0) return delayMs;
|
|
31
|
+
const offset = (Math.random() * 2 - 1) * jitter;
|
|
32
|
+
return Math.max(0, Math.round(delayMs * (1 + offset)));
|
|
33
|
+
}
|
|
34
|
+
async function retryAsync(fn, attemptsOrOptions = 3, initialDelayMs = 300) {
|
|
35
|
+
if (typeof attemptsOrOptions === "number") {
|
|
36
|
+
const attempts = Math.max(1, Math.round(attemptsOrOptions));
|
|
37
|
+
let lastErr;
|
|
38
|
+
for (let i = 0; i < attempts; i += 1) try {
|
|
39
|
+
return await fn();
|
|
40
|
+
} catch (err) {
|
|
41
|
+
lastErr = err;
|
|
42
|
+
if (i === attempts - 1) break;
|
|
43
|
+
await sleep(initialDelayMs * 2 ** i);
|
|
44
|
+
}
|
|
45
|
+
throw lastErr ?? /* @__PURE__ */ new Error("Retry failed");
|
|
46
|
+
}
|
|
47
|
+
const options = attemptsOrOptions;
|
|
48
|
+
const resolved = resolveRetryConfig(DEFAULT_RETRY_CONFIG, options);
|
|
49
|
+
const maxAttempts = resolved.attempts;
|
|
50
|
+
const minDelayMs = resolved.minDelayMs;
|
|
51
|
+
const maxDelayMs = Number.isFinite(resolved.maxDelayMs) && resolved.maxDelayMs > 0 ? resolved.maxDelayMs : Number.POSITIVE_INFINITY;
|
|
52
|
+
const jitter = resolved.jitter;
|
|
53
|
+
const shouldRetry = options.shouldRetry ?? (() => true);
|
|
54
|
+
let lastErr;
|
|
55
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt += 1) try {
|
|
56
|
+
return await fn();
|
|
57
|
+
} catch (err) {
|
|
58
|
+
lastErr = err;
|
|
59
|
+
if (attempt >= maxAttempts || !shouldRetry(err, attempt)) break;
|
|
60
|
+
const retryAfterMs = options.retryAfterMs?.(err);
|
|
61
|
+
const baseDelay = typeof retryAfterMs === "number" && Number.isFinite(retryAfterMs) ? Math.max(retryAfterMs, minDelayMs) : minDelayMs * 2 ** (attempt - 1);
|
|
62
|
+
let delay = Math.min(baseDelay, maxDelayMs);
|
|
63
|
+
delay = applyJitter(delay, jitter);
|
|
64
|
+
delay = Math.min(Math.max(delay, minDelayMs), maxDelayMs);
|
|
65
|
+
options.onRetry?.({
|
|
66
|
+
attempt,
|
|
67
|
+
maxAttempts,
|
|
68
|
+
delayMs: delay,
|
|
69
|
+
err,
|
|
70
|
+
label: options.label
|
|
71
|
+
});
|
|
72
|
+
await sleep(delay);
|
|
73
|
+
}
|
|
74
|
+
throw lastErr ?? /* @__PURE__ */ new Error("Retry failed");
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
//#region src/providers/kilocode-shared.ts
|
|
78
|
+
const KILOCODE_BASE_URL = "https://api.kilo.ai/api/gateway/";
|
|
79
|
+
const KILOCODE_DEFAULT_MODEL_ID = "kilo/auto";
|
|
80
|
+
const KILOCODE_DEFAULT_MODEL_REF = `kilocode/${KILOCODE_DEFAULT_MODEL_ID}`;
|
|
81
|
+
const KILOCODE_DEFAULT_MODEL_NAME = "Kilo Auto";
|
|
82
|
+
/**
|
|
83
|
+
* Static fallback catalog — used by the sync setup path and as a
|
|
84
|
+
* fallback when dynamic model discovery from the gateway API fails.
|
|
85
|
+
* The full model list is fetched dynamically by {@link discoverKilocodeModels}
|
|
86
|
+
* in `src/agents/kilocode-models.ts`.
|
|
87
|
+
*/
|
|
88
|
+
const KILOCODE_MODEL_CATALOG = [{
|
|
89
|
+
id: KILOCODE_DEFAULT_MODEL_ID,
|
|
90
|
+
name: KILOCODE_DEFAULT_MODEL_NAME,
|
|
91
|
+
reasoning: true,
|
|
92
|
+
input: ["text", "image"],
|
|
93
|
+
contextWindow: 1e6,
|
|
94
|
+
maxTokens: 128e3
|
|
95
|
+
}];
|
|
96
|
+
const KILOCODE_DEFAULT_CONTEXT_WINDOW = 1e6;
|
|
97
|
+
const KILOCODE_DEFAULT_MAX_TOKENS = 128e3;
|
|
98
|
+
const KILOCODE_DEFAULT_COST = {
|
|
99
|
+
input: 0,
|
|
100
|
+
output: 0,
|
|
101
|
+
cacheRead: 0,
|
|
102
|
+
cacheWrite: 0
|
|
103
|
+
};
|
|
104
|
+
//#endregion
|
|
105
|
+
//#region src/agents/model-compat.ts
|
|
106
|
+
function isOpenAiCompletionsModel(model) {
|
|
107
|
+
return model.api === "openai-completions";
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Returns true only for endpoints that are confirmed to be native OpenAI
|
|
111
|
+
* infrastructure and therefore accept the `developer` message role.
|
|
112
|
+
* Azure OpenAI uses the Chat Completions API and does NOT accept `developer`.
|
|
113
|
+
* All other openai-completions backends (proxies, Qwen, GLM, DeepSeek, etc.)
|
|
114
|
+
* only support the standard `system` role.
|
|
115
|
+
*/
|
|
116
|
+
function isOpenAINativeEndpoint(baseUrl) {
|
|
117
|
+
try {
|
|
118
|
+
return new URL(baseUrl).hostname.toLowerCase() === "api.openai.com";
|
|
119
|
+
} catch {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function isAnthropicMessagesModel(model) {
|
|
124
|
+
return model.api === "anthropic-messages";
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* pi-ai constructs the Anthropic API endpoint as `${baseUrl}/v1/messages`.
|
|
128
|
+
* If a user configures `baseUrl` with a trailing `/v1` (e.g. the previously
|
|
129
|
+
* recommended format "https://api.anthropic.com/v1"), the resulting URL
|
|
130
|
+
* becomes "…/v1/v1/messages" which the Anthropic API rejects with a 404.
|
|
131
|
+
*
|
|
132
|
+
* Strip a single trailing `/v1` (with optional trailing slash) from the
|
|
133
|
+
* baseUrl for anthropic-messages models so users with either format work.
|
|
134
|
+
*/
|
|
135
|
+
function normalizeAnthropicBaseUrl(baseUrl) {
|
|
136
|
+
return baseUrl.replace(/\/v1\/?$/, "");
|
|
137
|
+
}
|
|
138
|
+
function normalizeModelCompat(model) {
|
|
139
|
+
const baseUrl = model.baseUrl ?? "";
|
|
140
|
+
if (isAnthropicMessagesModel(model) && baseUrl) {
|
|
141
|
+
const normalised = normalizeAnthropicBaseUrl(baseUrl);
|
|
142
|
+
if (normalised !== baseUrl) return {
|
|
143
|
+
...model,
|
|
144
|
+
baseUrl: normalised
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
if (!isOpenAiCompletionsModel(model)) return model;
|
|
148
|
+
const compat = model.compat ?? void 0;
|
|
149
|
+
if (!(baseUrl ? !isOpenAINativeEndpoint(baseUrl) : false)) return model;
|
|
150
|
+
const forcedDeveloperRole = compat?.supportsDeveloperRole === true;
|
|
151
|
+
const hasStreamingUsageOverride = compat?.supportsUsageInStreaming !== void 0;
|
|
152
|
+
const targetStrictMode = compat?.supportsStrictMode ?? false;
|
|
153
|
+
if (compat?.supportsDeveloperRole !== void 0 && hasStreamingUsageOverride && compat?.supportsStrictMode !== void 0) return model;
|
|
154
|
+
return {
|
|
155
|
+
...model,
|
|
156
|
+
compat: compat ? {
|
|
157
|
+
...compat,
|
|
158
|
+
supportsDeveloperRole: forcedDeveloperRole || false,
|
|
159
|
+
...hasStreamingUsageOverride ? {} : { supportsUsageInStreaming: false },
|
|
160
|
+
supportsStrictMode: targetStrictMode
|
|
161
|
+
} : {
|
|
162
|
+
supportsDeveloperRole: false,
|
|
163
|
+
supportsUsageInStreaming: false,
|
|
164
|
+
supportsStrictMode: false
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/plugins/provider-model-helpers.ts
|
|
170
|
+
function cloneFirstTemplateModel(params) {
|
|
171
|
+
const trimmedModelId = params.modelId.trim();
|
|
172
|
+
for (const templateId of [...new Set(params.templateIds)].filter(Boolean)) {
|
|
173
|
+
const template = params.ctx.modelRegistry.find(params.providerId, templateId);
|
|
174
|
+
if (!template) continue;
|
|
175
|
+
return normalizeModelCompat({
|
|
176
|
+
...template,
|
|
177
|
+
id: trimmedModelId,
|
|
178
|
+
name: trimmedModelId,
|
|
179
|
+
...params.patch
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//#endregion
|
|
184
|
+
//#region src/plugins/provider-model-primary.ts
|
|
185
|
+
function resolvePrimaryModel(model) {
|
|
186
|
+
if (typeof model === "string") return model;
|
|
187
|
+
if (model && typeof model === "object" && typeof model.primary === "string") return model.primary;
|
|
188
|
+
}
|
|
189
|
+
function applyAgentDefaultPrimaryModel(params) {
|
|
190
|
+
const current = resolvePrimaryModel(params.cfg.agents?.defaults?.model)?.trim();
|
|
191
|
+
if ((current && params.legacyModels?.has(current) ? params.model : current) === params.model) return {
|
|
192
|
+
next: params.cfg,
|
|
193
|
+
changed: false
|
|
194
|
+
};
|
|
195
|
+
return {
|
|
196
|
+
next: {
|
|
197
|
+
...params.cfg,
|
|
198
|
+
agents: {
|
|
199
|
+
...params.cfg.agents,
|
|
200
|
+
defaults: {
|
|
201
|
+
...params.cfg.agents?.defaults,
|
|
202
|
+
model: params.cfg.agents?.defaults?.model && typeof params.cfg.agents.defaults.model === "object" ? {
|
|
203
|
+
...params.cfg.agents.defaults.model,
|
|
204
|
+
primary: params.model
|
|
205
|
+
} : { primary: params.model }
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
changed: true
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function applyPrimaryModel(cfg, model) {
|
|
213
|
+
const defaults = cfg.agents?.defaults;
|
|
214
|
+
const existingModel = defaults?.model;
|
|
215
|
+
const existingModels = defaults?.models;
|
|
216
|
+
const fallbacks = typeof existingModel === "object" && existingModel !== null && "fallbacks" in existingModel ? existingModel.fallbacks : void 0;
|
|
217
|
+
return {
|
|
218
|
+
...cfg,
|
|
219
|
+
agents: {
|
|
220
|
+
...cfg.agents,
|
|
221
|
+
defaults: {
|
|
222
|
+
...defaults,
|
|
223
|
+
model: {
|
|
224
|
+
...fallbacks ? { fallbacks } : void 0,
|
|
225
|
+
primary: model
|
|
226
|
+
},
|
|
227
|
+
models: {
|
|
228
|
+
...existingModels,
|
|
229
|
+
[model]: existingModels?.[model] ?? {}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
//#endregion
|
|
236
|
+
//#region src/plugins/provider-model-defaults.ts
|
|
237
|
+
const GOOGLE_GEMINI_DEFAULT_MODEL = "google/gemini-3.1-pro-preview";
|
|
238
|
+
const OPENAI_DEFAULT_MODEL = "openai/gpt-5.1-codex";
|
|
239
|
+
const OPENCODE_GO_DEFAULT_MODEL_REF = "opencode-go/kimi-k2.5";
|
|
240
|
+
const OPENCODE_ZEN_DEFAULT_MODEL$1 = "opencode/claude-opus-4-6";
|
|
241
|
+
function applyGoogleGeminiModelDefault(cfg) {
|
|
242
|
+
return applyAgentDefaultPrimaryModel({
|
|
243
|
+
cfg,
|
|
244
|
+
model: GOOGLE_GEMINI_DEFAULT_MODEL
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
function applyOpenAIProviderConfig(cfg) {
|
|
248
|
+
const next = ensureModelAllowlistEntry({
|
|
249
|
+
cfg,
|
|
250
|
+
modelRef: OPENAI_DEFAULT_MODEL
|
|
251
|
+
});
|
|
252
|
+
const models = { ...next.agents?.defaults?.models };
|
|
253
|
+
models[OPENAI_DEFAULT_MODEL] = {
|
|
254
|
+
...models[OPENAI_DEFAULT_MODEL],
|
|
255
|
+
alias: models["openai/gpt-5.1-codex"]?.alias ?? "GPT"
|
|
256
|
+
};
|
|
257
|
+
return {
|
|
258
|
+
...next,
|
|
259
|
+
agents: {
|
|
260
|
+
...next.agents,
|
|
261
|
+
defaults: {
|
|
262
|
+
...next.agents?.defaults,
|
|
263
|
+
models
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
function applyOpenAIConfig(cfg) {
|
|
269
|
+
const next = applyOpenAIProviderConfig(cfg);
|
|
270
|
+
return {
|
|
271
|
+
...next,
|
|
272
|
+
agents: {
|
|
273
|
+
...next.agents,
|
|
274
|
+
defaults: {
|
|
275
|
+
...next.agents?.defaults,
|
|
276
|
+
model: next.agents?.defaults?.model && typeof next.agents.defaults.model === "object" ? {
|
|
277
|
+
...next.agents.defaults.model,
|
|
278
|
+
primary: OPENAI_DEFAULT_MODEL
|
|
279
|
+
} : { primary: OPENAI_DEFAULT_MODEL }
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
createSubsystemLogger("opencode-zen-models");
|
|
285
|
+
const OPENCODE_ZEN_DEFAULT_MODEL_REF = `opencode/claude-opus-4-6`;
|
|
286
|
+
//#endregion
|
|
287
|
+
//#region extensions/minimax/model-definitions.ts
|
|
288
|
+
const DEFAULT_MINIMAX_BASE_URL = "https://api.minimax.io/v1";
|
|
289
|
+
const MINIMAX_API_BASE_URL = "https://api.minimax.io/anthropic";
|
|
290
|
+
const MINIMAX_CN_API_BASE_URL = "https://api.minimaxi.com/anthropic";
|
|
291
|
+
const MINIMAX_HOSTED_MODEL_ID = "MiniMax-M2.5";
|
|
292
|
+
const MINIMAX_HOSTED_MODEL_REF = `minimax/${MINIMAX_HOSTED_MODEL_ID}`;
|
|
293
|
+
const DEFAULT_MINIMAX_CONTEXT_WINDOW = 2e5;
|
|
294
|
+
const DEFAULT_MINIMAX_MAX_TOKENS = 8192;
|
|
295
|
+
const MINIMAX_API_COST = {
|
|
296
|
+
input: .3,
|
|
297
|
+
output: 1.2,
|
|
298
|
+
cacheRead: .03,
|
|
299
|
+
cacheWrite: .12
|
|
300
|
+
};
|
|
301
|
+
const MINIMAX_HOSTED_COST = {
|
|
302
|
+
input: 0,
|
|
303
|
+
output: 0,
|
|
304
|
+
cacheRead: 0,
|
|
305
|
+
cacheWrite: 0
|
|
306
|
+
};
|
|
307
|
+
const MINIMAX_LM_STUDIO_COST = {
|
|
308
|
+
input: 0,
|
|
309
|
+
output: 0,
|
|
310
|
+
cacheRead: 0,
|
|
311
|
+
cacheWrite: 0
|
|
312
|
+
};
|
|
313
|
+
const MINIMAX_MODEL_CATALOG = {
|
|
314
|
+
"MiniMax-M2.5": {
|
|
315
|
+
name: "MiniMax M2.5",
|
|
316
|
+
reasoning: true
|
|
317
|
+
},
|
|
318
|
+
"MiniMax-M2.5-highspeed": {
|
|
319
|
+
name: "MiniMax M2.5 Highspeed",
|
|
320
|
+
reasoning: true
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
function buildMinimaxModelDefinition(params) {
|
|
324
|
+
const catalog = MINIMAX_MODEL_CATALOG[params.id];
|
|
325
|
+
return {
|
|
326
|
+
id: params.id,
|
|
327
|
+
name: params.name ?? catalog?.name ?? `MiniMax ${params.id}`,
|
|
328
|
+
reasoning: params.reasoning ?? catalog?.reasoning ?? false,
|
|
329
|
+
input: ["text"],
|
|
330
|
+
cost: params.cost,
|
|
331
|
+
contextWindow: params.contextWindow,
|
|
332
|
+
maxTokens: params.maxTokens
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
function buildMinimaxApiModelDefinition(modelId) {
|
|
336
|
+
return buildMinimaxModelDefinition({
|
|
337
|
+
id: modelId,
|
|
338
|
+
cost: MINIMAX_API_COST,
|
|
339
|
+
contextWindow: DEFAULT_MINIMAX_CONTEXT_WINDOW,
|
|
340
|
+
maxTokens: DEFAULT_MINIMAX_MAX_TOKENS
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
//#endregion
|
|
344
|
+
//#region extensions/mistral/model-definitions.ts
|
|
345
|
+
const MISTRAL_BASE_URL = "https://api.mistral.ai/v1";
|
|
346
|
+
const MISTRAL_DEFAULT_MODEL_ID = "mistral-large-latest";
|
|
347
|
+
const MISTRAL_DEFAULT_MODEL_REF = `mistral/${MISTRAL_DEFAULT_MODEL_ID}`;
|
|
348
|
+
const MISTRAL_DEFAULT_CONTEXT_WINDOW = 262144;
|
|
349
|
+
const MISTRAL_DEFAULT_MAX_TOKENS = 262144;
|
|
350
|
+
const MISTRAL_DEFAULT_COST = {
|
|
351
|
+
input: 0,
|
|
352
|
+
output: 0,
|
|
353
|
+
cacheRead: 0,
|
|
354
|
+
cacheWrite: 0
|
|
355
|
+
};
|
|
356
|
+
function buildMistralModelDefinition() {
|
|
357
|
+
return {
|
|
358
|
+
id: MISTRAL_DEFAULT_MODEL_ID,
|
|
359
|
+
name: "Mistral Large",
|
|
360
|
+
reasoning: false,
|
|
361
|
+
input: ["text", "image"],
|
|
362
|
+
cost: MISTRAL_DEFAULT_COST,
|
|
363
|
+
contextWindow: MISTRAL_DEFAULT_CONTEXT_WINDOW,
|
|
364
|
+
maxTokens: MISTRAL_DEFAULT_MAX_TOKENS
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
//#endregion
|
|
368
|
+
//#region extensions/modelstudio/model-definitions.ts
|
|
369
|
+
const MODELSTUDIO_CN_BASE_URL = "https://coding.dashscope.aliyuncs.com/v1";
|
|
370
|
+
const MODELSTUDIO_GLOBAL_BASE_URL = "https://coding-intl.dashscope.aliyuncs.com/v1";
|
|
371
|
+
const MODELSTUDIO_DEFAULT_MODEL_ID = "qwen3.5-plus";
|
|
372
|
+
const MODELSTUDIO_DEFAULT_MODEL_REF = `modelstudio/${MODELSTUDIO_DEFAULT_MODEL_ID}`;
|
|
373
|
+
const MODELSTUDIO_DEFAULT_COST = {
|
|
374
|
+
input: 0,
|
|
375
|
+
output: 0,
|
|
376
|
+
cacheRead: 0,
|
|
377
|
+
cacheWrite: 0
|
|
378
|
+
};
|
|
379
|
+
const MODELSTUDIO_MODEL_CATALOG = {
|
|
380
|
+
"qwen3.5-plus": {
|
|
381
|
+
name: "qwen3.5-plus",
|
|
382
|
+
reasoning: false,
|
|
383
|
+
input: ["text", "image"],
|
|
384
|
+
contextWindow: 1e6,
|
|
385
|
+
maxTokens: 65536
|
|
386
|
+
},
|
|
387
|
+
"qwen3-max-2026-01-23": {
|
|
388
|
+
name: "qwen3-max-2026-01-23",
|
|
389
|
+
reasoning: false,
|
|
390
|
+
input: ["text"],
|
|
391
|
+
contextWindow: 262144,
|
|
392
|
+
maxTokens: 65536
|
|
393
|
+
},
|
|
394
|
+
"qwen3-coder-next": {
|
|
395
|
+
name: "qwen3-coder-next",
|
|
396
|
+
reasoning: false,
|
|
397
|
+
input: ["text"],
|
|
398
|
+
contextWindow: 262144,
|
|
399
|
+
maxTokens: 65536
|
|
400
|
+
},
|
|
401
|
+
"qwen3-coder-plus": {
|
|
402
|
+
name: "qwen3-coder-plus",
|
|
403
|
+
reasoning: false,
|
|
404
|
+
input: ["text"],
|
|
405
|
+
contextWindow: 1e6,
|
|
406
|
+
maxTokens: 65536
|
|
407
|
+
},
|
|
408
|
+
"MiniMax-M2.5": {
|
|
409
|
+
name: "MiniMax-M2.5",
|
|
410
|
+
reasoning: false,
|
|
411
|
+
input: ["text"],
|
|
412
|
+
contextWindow: 1e6,
|
|
413
|
+
maxTokens: 65536
|
|
414
|
+
},
|
|
415
|
+
"glm-5": {
|
|
416
|
+
name: "glm-5",
|
|
417
|
+
reasoning: false,
|
|
418
|
+
input: ["text"],
|
|
419
|
+
contextWindow: 202752,
|
|
420
|
+
maxTokens: 16384
|
|
421
|
+
},
|
|
422
|
+
"glm-4.7": {
|
|
423
|
+
name: "glm-4.7",
|
|
424
|
+
reasoning: false,
|
|
425
|
+
input: ["text"],
|
|
426
|
+
contextWindow: 202752,
|
|
427
|
+
maxTokens: 16384
|
|
428
|
+
},
|
|
429
|
+
"kimi-k2.5": {
|
|
430
|
+
name: "kimi-k2.5",
|
|
431
|
+
reasoning: false,
|
|
432
|
+
input: ["text", "image"],
|
|
433
|
+
contextWindow: 262144,
|
|
434
|
+
maxTokens: 32768
|
|
435
|
+
}
|
|
436
|
+
};
|
|
437
|
+
function buildModelStudioModelDefinition(params) {
|
|
438
|
+
const catalog = MODELSTUDIO_MODEL_CATALOG[params.id];
|
|
439
|
+
return {
|
|
440
|
+
id: params.id,
|
|
441
|
+
name: params.name ?? catalog?.name ?? params.id,
|
|
442
|
+
reasoning: params.reasoning ?? catalog?.reasoning ?? false,
|
|
443
|
+
input: params.input ?? [...catalog?.input ?? ["text"]],
|
|
444
|
+
cost: params.cost ?? MODELSTUDIO_DEFAULT_COST,
|
|
445
|
+
contextWindow: params.contextWindow ?? catalog?.contextWindow ?? 262144,
|
|
446
|
+
maxTokens: params.maxTokens ?? catalog?.maxTokens ?? 65536
|
|
447
|
+
};
|
|
448
|
+
}
|
|
449
|
+
function buildModelStudioDefaultModelDefinition() {
|
|
450
|
+
return buildModelStudioModelDefinition({ id: MODELSTUDIO_DEFAULT_MODEL_ID });
|
|
451
|
+
}
|
|
452
|
+
//#endregion
|
|
453
|
+
//#region extensions/moonshot/provider-catalog.ts
|
|
454
|
+
const MOONSHOT_BASE_URL = "https://api.moonshot.ai/v1";
|
|
455
|
+
const MOONSHOT_DEFAULT_MODEL_ID = "kimi-k2.5";
|
|
456
|
+
const MOONSHOT_DEFAULT_CONTEXT_WINDOW = 256e3;
|
|
457
|
+
const MOONSHOT_DEFAULT_MAX_TOKENS = 8192;
|
|
458
|
+
const MOONSHOT_DEFAULT_COST = {
|
|
459
|
+
input: 0,
|
|
460
|
+
output: 0,
|
|
461
|
+
cacheRead: 0,
|
|
462
|
+
cacheWrite: 0
|
|
463
|
+
};
|
|
464
|
+
function buildMoonshotProvider() {
|
|
465
|
+
return {
|
|
466
|
+
baseUrl: MOONSHOT_BASE_URL,
|
|
467
|
+
api: "openai-completions",
|
|
468
|
+
models: [{
|
|
469
|
+
id: MOONSHOT_DEFAULT_MODEL_ID,
|
|
470
|
+
name: "Kimi K2.5",
|
|
471
|
+
reasoning: false,
|
|
472
|
+
input: ["text", "image"],
|
|
473
|
+
cost: MOONSHOT_DEFAULT_COST,
|
|
474
|
+
contextWindow: MOONSHOT_DEFAULT_CONTEXT_WINDOW,
|
|
475
|
+
maxTokens: MOONSHOT_DEFAULT_MAX_TOKENS
|
|
476
|
+
}]
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
//#endregion
|
|
480
|
+
//#region extensions/moonshot/onboard.ts
|
|
481
|
+
const MOONSHOT_CN_BASE_URL = "https://api.moonshot.cn/v1";
|
|
482
|
+
const MOONSHOT_DEFAULT_MODEL_REF = `moonshot/${MOONSHOT_DEFAULT_MODEL_ID}`;
|
|
483
|
+
function applyMoonshotProviderConfig(cfg) {
|
|
484
|
+
return applyMoonshotProviderConfigWithBaseUrl(cfg, MOONSHOT_BASE_URL);
|
|
485
|
+
}
|
|
486
|
+
function applyMoonshotProviderConfigCn(cfg) {
|
|
487
|
+
return applyMoonshotProviderConfigWithBaseUrl(cfg, MOONSHOT_CN_BASE_URL);
|
|
488
|
+
}
|
|
489
|
+
function applyMoonshotProviderConfigWithBaseUrl(cfg, baseUrl) {
|
|
490
|
+
const models = { ...cfg.agents?.defaults?.models };
|
|
491
|
+
models[MOONSHOT_DEFAULT_MODEL_REF] = {
|
|
492
|
+
...models[MOONSHOT_DEFAULT_MODEL_REF],
|
|
493
|
+
alias: models[MOONSHOT_DEFAULT_MODEL_REF]?.alias ?? "Kimi"
|
|
494
|
+
};
|
|
495
|
+
const defaultModel = buildMoonshotProvider().models[0];
|
|
496
|
+
if (!defaultModel) return cfg;
|
|
497
|
+
return applyProviderConfigWithDefaultModel(cfg, {
|
|
498
|
+
agentModels: models,
|
|
499
|
+
providerId: "moonshot",
|
|
500
|
+
api: "openai-completions",
|
|
501
|
+
baseUrl,
|
|
502
|
+
defaultModel,
|
|
503
|
+
defaultModelId: MOONSHOT_DEFAULT_MODEL_ID
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
function applyMoonshotConfig(cfg) {
|
|
507
|
+
return applyAgentDefaultModelPrimary(applyMoonshotProviderConfig(cfg), MOONSHOT_DEFAULT_MODEL_REF);
|
|
508
|
+
}
|
|
509
|
+
function applyMoonshotConfigCn(cfg) {
|
|
510
|
+
return applyAgentDefaultModelPrimary(applyMoonshotProviderConfigCn(cfg), MOONSHOT_DEFAULT_MODEL_REF);
|
|
511
|
+
}
|
|
512
|
+
//#endregion
|
|
513
|
+
//#region extensions/xai/model-definitions.ts
|
|
514
|
+
const XAI_BASE_URL = "https://api.x.ai/v1";
|
|
515
|
+
const XAI_DEFAULT_MODEL_ID = "grok-4";
|
|
516
|
+
const XAI_DEFAULT_MODEL_REF = `xai/${XAI_DEFAULT_MODEL_ID}`;
|
|
517
|
+
const XAI_DEFAULT_CONTEXT_WINDOW = 131072;
|
|
518
|
+
const XAI_DEFAULT_MAX_TOKENS = 8192;
|
|
519
|
+
const XAI_DEFAULT_COST = {
|
|
520
|
+
input: 0,
|
|
521
|
+
output: 0,
|
|
522
|
+
cacheRead: 0,
|
|
523
|
+
cacheWrite: 0
|
|
524
|
+
};
|
|
525
|
+
function buildXaiModelDefinition() {
|
|
526
|
+
return {
|
|
527
|
+
id: XAI_DEFAULT_MODEL_ID,
|
|
528
|
+
name: "Grok 4",
|
|
529
|
+
reasoning: false,
|
|
530
|
+
input: ["text"],
|
|
531
|
+
cost: XAI_DEFAULT_COST,
|
|
532
|
+
contextWindow: XAI_DEFAULT_CONTEXT_WINDOW,
|
|
533
|
+
maxTokens: XAI_DEFAULT_MAX_TOKENS
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
const CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF = `cloudflare-ai-gateway/claude-sonnet-4-5`;
|
|
537
|
+
const CLOUDFLARE_AI_GATEWAY_DEFAULT_CONTEXT_WINDOW = 2e5;
|
|
538
|
+
const CLOUDFLARE_AI_GATEWAY_DEFAULT_MAX_TOKENS = 64e3;
|
|
539
|
+
const CLOUDFLARE_AI_GATEWAY_DEFAULT_COST = {
|
|
540
|
+
input: 3,
|
|
541
|
+
output: 15,
|
|
542
|
+
cacheRead: .3,
|
|
543
|
+
cacheWrite: 3.75
|
|
544
|
+
};
|
|
545
|
+
function buildCloudflareAiGatewayModelDefinition(params) {
|
|
546
|
+
return {
|
|
547
|
+
id: params?.id?.trim() || "claude-sonnet-4-5",
|
|
548
|
+
name: params?.name ?? "Claude Sonnet 4.5",
|
|
549
|
+
reasoning: params?.reasoning ?? true,
|
|
550
|
+
input: params?.input ?? ["text", "image"],
|
|
551
|
+
cost: CLOUDFLARE_AI_GATEWAY_DEFAULT_COST,
|
|
552
|
+
contextWindow: CLOUDFLARE_AI_GATEWAY_DEFAULT_CONTEXT_WINDOW,
|
|
553
|
+
maxTokens: CLOUDFLARE_AI_GATEWAY_DEFAULT_MAX_TOKENS
|
|
554
|
+
};
|
|
555
|
+
}
|
|
556
|
+
function resolveCloudflareAiGatewayBaseUrl(params) {
|
|
557
|
+
const accountId = params.accountId.trim();
|
|
558
|
+
const gatewayId = params.gatewayId.trim();
|
|
559
|
+
if (!accountId || !gatewayId) return "";
|
|
560
|
+
return `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/anthropic`;
|
|
561
|
+
}
|
|
562
|
+
//#endregion
|
|
563
|
+
//#region src/agents/ollama-defaults.ts
|
|
564
|
+
const OLLAMA_DEFAULT_BASE_URL = "http://127.0.0.1:11434";
|
|
565
|
+
//#endregion
|
|
566
|
+
//#region src/agents/ollama-models.ts
|
|
567
|
+
const OLLAMA_DEFAULT_CONTEXT_WINDOW = 128e3;
|
|
568
|
+
const OLLAMA_DEFAULT_MAX_TOKENS = 8192;
|
|
569
|
+
const OLLAMA_DEFAULT_COST = {
|
|
570
|
+
input: 0,
|
|
571
|
+
output: 0,
|
|
572
|
+
cacheRead: 0,
|
|
573
|
+
cacheWrite: 0
|
|
574
|
+
};
|
|
575
|
+
const OLLAMA_SHOW_CONCURRENCY = 8;
|
|
576
|
+
/**
|
|
577
|
+
* Derive the Ollama native API base URL from a configured base URL.
|
|
578
|
+
*
|
|
579
|
+
* Users typically configure `baseUrl` with a `/v1` suffix (e.g.
|
|
580
|
+
* `http://192.168.20.14:11434/v1`) for the OpenAI-compatible endpoint.
|
|
581
|
+
* The native Ollama API lives at the root (e.g. `/api/tags`), so we
|
|
582
|
+
* strip the `/v1` suffix when present.
|
|
583
|
+
*/
|
|
584
|
+
function resolveOllamaApiBase(configuredBaseUrl) {
|
|
585
|
+
if (!configuredBaseUrl) return OLLAMA_DEFAULT_BASE_URL;
|
|
586
|
+
return configuredBaseUrl.replace(/\/+$/, "").replace(/\/v1$/i, "");
|
|
587
|
+
}
|
|
588
|
+
async function queryOllamaContextWindow(apiBase, modelName) {
|
|
589
|
+
try {
|
|
590
|
+
const response = await fetch(`${apiBase}/api/show`, {
|
|
591
|
+
method: "POST",
|
|
592
|
+
headers: { "Content-Type": "application/json" },
|
|
593
|
+
body: JSON.stringify({ name: modelName }),
|
|
594
|
+
signal: AbortSignal.timeout(3e3)
|
|
595
|
+
});
|
|
596
|
+
if (!response.ok) return;
|
|
597
|
+
const data = await response.json();
|
|
598
|
+
if (!data.model_info) return;
|
|
599
|
+
for (const [key, value] of Object.entries(data.model_info)) if (key.endsWith(".context_length") && typeof value === "number" && Number.isFinite(value)) {
|
|
600
|
+
const contextWindow = Math.floor(value);
|
|
601
|
+
if (contextWindow > 0) return contextWindow;
|
|
602
|
+
}
|
|
603
|
+
return;
|
|
604
|
+
} catch {
|
|
605
|
+
return;
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
async function enrichOllamaModelsWithContext(apiBase, models, opts) {
|
|
609
|
+
const concurrency = Math.max(1, Math.floor(opts?.concurrency ?? OLLAMA_SHOW_CONCURRENCY));
|
|
610
|
+
const enriched = [];
|
|
611
|
+
for (let index = 0; index < models.length; index += concurrency) {
|
|
612
|
+
const batch = models.slice(index, index + concurrency);
|
|
613
|
+
const batchResults = await Promise.all(batch.map(async (model) => ({
|
|
614
|
+
...model,
|
|
615
|
+
contextWindow: await queryOllamaContextWindow(apiBase, model.name)
|
|
616
|
+
})));
|
|
617
|
+
enriched.push(...batchResults);
|
|
618
|
+
}
|
|
619
|
+
return enriched;
|
|
620
|
+
}
|
|
621
|
+
/** Heuristic: treat models with "r1", "reasoning", or "think" in the name as reasoning models. */
|
|
622
|
+
function isReasoningModelHeuristic(modelId) {
|
|
623
|
+
return /r1|reasoning|think|reason/i.test(modelId);
|
|
624
|
+
}
|
|
625
|
+
/** Build a ModelDefinitionConfig for an Ollama model with default values. */
|
|
626
|
+
function buildOllamaModelDefinition(modelId, contextWindow) {
|
|
627
|
+
return {
|
|
628
|
+
id: modelId,
|
|
629
|
+
name: modelId,
|
|
630
|
+
reasoning: isReasoningModelHeuristic(modelId),
|
|
631
|
+
input: ["text"],
|
|
632
|
+
cost: OLLAMA_DEFAULT_COST,
|
|
633
|
+
contextWindow: contextWindow ?? 128e3,
|
|
634
|
+
maxTokens: OLLAMA_DEFAULT_MAX_TOKENS
|
|
635
|
+
};
|
|
636
|
+
}
|
|
637
|
+
/** Fetch the model list from a running Ollama instance. */
|
|
638
|
+
async function fetchOllamaModels(baseUrl) {
|
|
639
|
+
try {
|
|
640
|
+
const apiBase = resolveOllamaApiBase(baseUrl);
|
|
641
|
+
const response = await fetch(`${apiBase}/api/tags`, { signal: AbortSignal.timeout(5e3) });
|
|
642
|
+
if (!response.ok) return {
|
|
643
|
+
reachable: true,
|
|
644
|
+
models: []
|
|
645
|
+
};
|
|
646
|
+
return {
|
|
647
|
+
reachable: true,
|
|
648
|
+
models: ((await response.json()).models ?? []).filter((m) => m.name)
|
|
649
|
+
};
|
|
650
|
+
} catch {
|
|
651
|
+
return {
|
|
652
|
+
reachable: false,
|
|
653
|
+
models: []
|
|
654
|
+
};
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
//#endregion
|
|
658
|
+
//#region src/agents/huggingface-models.ts
|
|
659
|
+
const log$3 = createSubsystemLogger("huggingface-models");
|
|
660
|
+
/** Hugging Face Inference Providers (router) — OpenAI-compatible chat completions. */
|
|
661
|
+
const HUGGINGFACE_BASE_URL = "https://router.huggingface.co/v1";
|
|
662
|
+
/** Default cost when not in static catalog (HF pricing varies by provider). */
|
|
663
|
+
const HUGGINGFACE_DEFAULT_COST = {
|
|
664
|
+
input: 0,
|
|
665
|
+
output: 0,
|
|
666
|
+
cacheRead: 0,
|
|
667
|
+
cacheWrite: 0
|
|
668
|
+
};
|
|
669
|
+
/** Defaults for models discovered from GET /v1/models. */
|
|
670
|
+
const HUGGINGFACE_DEFAULT_CONTEXT_WINDOW = 131072;
|
|
671
|
+
const HUGGINGFACE_DEFAULT_MAX_TOKENS = 8192;
|
|
672
|
+
const HUGGINGFACE_MODEL_CATALOG = [
|
|
673
|
+
{
|
|
674
|
+
id: "deepseek-ai/DeepSeek-R1",
|
|
675
|
+
name: "DeepSeek R1",
|
|
676
|
+
reasoning: true,
|
|
677
|
+
input: ["text"],
|
|
678
|
+
contextWindow: 131072,
|
|
679
|
+
maxTokens: 8192,
|
|
680
|
+
cost: {
|
|
681
|
+
input: 3,
|
|
682
|
+
output: 7,
|
|
683
|
+
cacheRead: 3,
|
|
684
|
+
cacheWrite: 3
|
|
685
|
+
}
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
id: "deepseek-ai/DeepSeek-V3.1",
|
|
689
|
+
name: "DeepSeek V3.1",
|
|
690
|
+
reasoning: false,
|
|
691
|
+
input: ["text"],
|
|
692
|
+
contextWindow: 131072,
|
|
693
|
+
maxTokens: 8192,
|
|
694
|
+
cost: {
|
|
695
|
+
input: .6,
|
|
696
|
+
output: 1.25,
|
|
697
|
+
cacheRead: .6,
|
|
698
|
+
cacheWrite: .6
|
|
699
|
+
}
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
|
703
|
+
name: "Llama 3.3 70B Instruct Turbo",
|
|
704
|
+
reasoning: false,
|
|
705
|
+
input: ["text"],
|
|
706
|
+
contextWindow: 131072,
|
|
707
|
+
maxTokens: 8192,
|
|
708
|
+
cost: {
|
|
709
|
+
input: .88,
|
|
710
|
+
output: .88,
|
|
711
|
+
cacheRead: .88,
|
|
712
|
+
cacheWrite: .88
|
|
713
|
+
}
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
id: "openai/gpt-oss-120b",
|
|
717
|
+
name: "GPT-OSS 120B",
|
|
718
|
+
reasoning: false,
|
|
719
|
+
input: ["text"],
|
|
720
|
+
contextWindow: 131072,
|
|
721
|
+
maxTokens: 8192,
|
|
722
|
+
cost: {
|
|
723
|
+
input: 0,
|
|
724
|
+
output: 0,
|
|
725
|
+
cacheRead: 0,
|
|
726
|
+
cacheWrite: 0
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
];
|
|
730
|
+
function buildHuggingfaceModelDefinition(model) {
|
|
731
|
+
return {
|
|
732
|
+
id: model.id,
|
|
733
|
+
name: model.name,
|
|
734
|
+
reasoning: model.reasoning,
|
|
735
|
+
input: model.input,
|
|
736
|
+
cost: model.cost,
|
|
737
|
+
contextWindow: model.contextWindow,
|
|
738
|
+
maxTokens: model.maxTokens
|
|
739
|
+
};
|
|
740
|
+
}
|
|
741
|
+
/**
|
|
742
|
+
* Infer reasoning and display name from Hub-style model id (e.g. "deepseek-ai/DeepSeek-R1").
|
|
743
|
+
*/
|
|
744
|
+
function inferredMetaFromModelId(id) {
|
|
745
|
+
const base = id.split("/").pop() ?? id;
|
|
746
|
+
const reasoning = isReasoningModelHeuristic(id);
|
|
747
|
+
return {
|
|
748
|
+
name: base.replace(/-/g, " ").replace(/\b(\w)/g, (c) => c.toUpperCase()),
|
|
749
|
+
reasoning
|
|
750
|
+
};
|
|
751
|
+
}
|
|
752
|
+
/** Prefer API-supplied display name, then owned_by/id, then inferred from id. */
|
|
753
|
+
function displayNameFromApiEntry(entry, inferredName) {
|
|
754
|
+
const fromApi = typeof entry.name === "string" && entry.name.trim() || typeof entry.title === "string" && entry.title.trim() || typeof entry.display_name === "string" && entry.display_name.trim();
|
|
755
|
+
if (fromApi) return fromApi;
|
|
756
|
+
if (typeof entry.owned_by === "string" && entry.owned_by.trim()) {
|
|
757
|
+
const base = entry.id.split("/").pop() ?? entry.id;
|
|
758
|
+
return `${entry.owned_by.trim()}/${base}`;
|
|
759
|
+
}
|
|
760
|
+
return inferredName;
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
763
|
+
* Discover chat-completion models from Hugging Face Inference Providers (GET /v1/models).
|
|
764
|
+
* Requires a valid HF token. Falls back to static catalog on failure or in test env.
|
|
765
|
+
*/
|
|
766
|
+
async function discoverHuggingfaceModels(apiKey) {
|
|
767
|
+
if (process.env.VITEST === "true" || false) return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
|
|
768
|
+
const trimmedKey = apiKey?.trim();
|
|
769
|
+
if (!trimmedKey) return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
|
|
770
|
+
try {
|
|
771
|
+
const response = await fetch(`${HUGGINGFACE_BASE_URL}/models`, {
|
|
772
|
+
signal: AbortSignal.timeout(1e4),
|
|
773
|
+
headers: {
|
|
774
|
+
Authorization: `Bearer ${trimmedKey}`,
|
|
775
|
+
"Content-Type": "application/json"
|
|
776
|
+
}
|
|
777
|
+
});
|
|
778
|
+
if (!response.ok) {
|
|
779
|
+
log$3.warn(`GET /v1/models failed: HTTP ${response.status}, using static catalog`);
|
|
780
|
+
return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
|
|
781
|
+
}
|
|
782
|
+
const data = (await response.json())?.data;
|
|
783
|
+
if (!Array.isArray(data) || data.length === 0) {
|
|
784
|
+
log$3.warn("No models in response, using static catalog");
|
|
785
|
+
return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
|
|
786
|
+
}
|
|
787
|
+
const catalogById = new Map(HUGGINGFACE_MODEL_CATALOG.map((m) => [m.id, m]));
|
|
788
|
+
const seen = /* @__PURE__ */ new Set();
|
|
789
|
+
const models = [];
|
|
790
|
+
for (const entry of data) {
|
|
791
|
+
const id = typeof entry?.id === "string" ? entry.id.trim() : "";
|
|
792
|
+
if (!id || seen.has(id)) continue;
|
|
793
|
+
seen.add(id);
|
|
794
|
+
const catalogEntry = catalogById.get(id);
|
|
795
|
+
if (catalogEntry) models.push(buildHuggingfaceModelDefinition(catalogEntry));
|
|
796
|
+
else {
|
|
797
|
+
const inferred = inferredMetaFromModelId(id);
|
|
798
|
+
const name = displayNameFromApiEntry(entry, inferred.name);
|
|
799
|
+
const modalities = entry.architecture?.input_modalities;
|
|
800
|
+
const input = Array.isArray(modalities) && modalities.includes("image") ? ["text", "image"] : ["text"];
|
|
801
|
+
const contextLength = (Array.isArray(entry.providers) ? entry.providers : []).find((p) => typeof p?.context_length === "number" && p.context_length > 0)?.context_length ?? HUGGINGFACE_DEFAULT_CONTEXT_WINDOW;
|
|
802
|
+
models.push({
|
|
803
|
+
id,
|
|
804
|
+
name,
|
|
805
|
+
reasoning: inferred.reasoning,
|
|
806
|
+
input,
|
|
807
|
+
cost: HUGGINGFACE_DEFAULT_COST,
|
|
808
|
+
contextWindow: contextLength,
|
|
809
|
+
maxTokens: HUGGINGFACE_DEFAULT_MAX_TOKENS
|
|
810
|
+
});
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
return models.length > 0 ? models : HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
|
|
814
|
+
} catch (error) {
|
|
815
|
+
log$3.warn(`Discovery failed: ${String(error)}, using static catalog`);
|
|
816
|
+
return HUGGINGFACE_MODEL_CATALOG.map(buildHuggingfaceModelDefinition);
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
//#endregion
|
|
820
|
+
//#region src/agents/kilocode-models.ts
|
|
821
|
+
const log$2 = createSubsystemLogger("kilocode-models");
|
|
822
|
+
const KILOCODE_MODELS_URL = `${KILOCODE_BASE_URL}models`;
|
|
823
|
+
const DISCOVERY_TIMEOUT_MS = 5e3;
|
|
824
|
+
/**
|
|
825
|
+
* Convert per-token price (as returned by the gateway) to per-1M-token price
|
|
826
|
+
* (as stored in moldClaw's ModelDefinitionConfig.cost).
|
|
827
|
+
*
|
|
828
|
+
* Gateway/OpenRouter prices are per-token strings like "0.000005".
|
|
829
|
+
* moldClaw costs are per-1M-token numbers like 5.0.
|
|
830
|
+
*/
|
|
831
|
+
function toPricePerMillion(perToken) {
|
|
832
|
+
if (!perToken) return 0;
|
|
833
|
+
const num = Number(perToken);
|
|
834
|
+
if (!Number.isFinite(num) || num < 0) return 0;
|
|
835
|
+
return num * 1e6;
|
|
836
|
+
}
|
|
837
|
+
function parseModality(entry) {
|
|
838
|
+
const modalities = entry.architecture?.input_modalities;
|
|
839
|
+
if (!Array.isArray(modalities)) return ["text"];
|
|
840
|
+
return modalities.some((m) => typeof m === "string" && m.toLowerCase() === "image") ? ["text", "image"] : ["text"];
|
|
841
|
+
}
|
|
842
|
+
function parseReasoning(entry) {
|
|
843
|
+
const params = entry.supported_parameters;
|
|
844
|
+
if (!Array.isArray(params)) return false;
|
|
845
|
+
return params.includes("reasoning") || params.includes("include_reasoning");
|
|
846
|
+
}
|
|
847
|
+
function toModelDefinition(entry) {
|
|
848
|
+
return {
|
|
849
|
+
id: entry.id,
|
|
850
|
+
name: entry.name || entry.id,
|
|
851
|
+
reasoning: parseReasoning(entry),
|
|
852
|
+
input: parseModality(entry),
|
|
853
|
+
cost: {
|
|
854
|
+
input: toPricePerMillion(entry.pricing.prompt),
|
|
855
|
+
output: toPricePerMillion(entry.pricing.completion),
|
|
856
|
+
cacheRead: toPricePerMillion(entry.pricing.input_cache_read),
|
|
857
|
+
cacheWrite: toPricePerMillion(entry.pricing.input_cache_write)
|
|
858
|
+
},
|
|
859
|
+
contextWindow: entry.context_length || 1e6,
|
|
860
|
+
maxTokens: entry.top_provider?.max_completion_tokens ?? 128e3
|
|
861
|
+
};
|
|
862
|
+
}
|
|
863
|
+
function buildStaticCatalog() {
|
|
864
|
+
return KILOCODE_MODEL_CATALOG.map((model) => ({
|
|
865
|
+
id: model.id,
|
|
866
|
+
name: model.name,
|
|
867
|
+
reasoning: model.reasoning,
|
|
868
|
+
input: model.input,
|
|
869
|
+
cost: KILOCODE_DEFAULT_COST,
|
|
870
|
+
contextWindow: model.contextWindow ?? 1e6,
|
|
871
|
+
maxTokens: model.maxTokens ?? 128e3
|
|
872
|
+
}));
|
|
873
|
+
}
|
|
874
|
+
/**
|
|
875
|
+
* Discover models from the Kilo Gateway API with fallback to static catalog.
|
|
876
|
+
* The /api/gateway/models endpoint is public and doesn't require authentication.
|
|
877
|
+
*/
|
|
878
|
+
async function discoverKilocodeModels() {
|
|
879
|
+
if (process.env.VITEST) return buildStaticCatalog();
|
|
880
|
+
try {
|
|
881
|
+
const response = await fetch(KILOCODE_MODELS_URL, {
|
|
882
|
+
headers: { Accept: "application/json" },
|
|
883
|
+
signal: AbortSignal.timeout(DISCOVERY_TIMEOUT_MS)
|
|
884
|
+
});
|
|
885
|
+
if (!response.ok) {
|
|
886
|
+
log$2.warn(`Failed to discover models: HTTP ${response.status}, using static catalog`);
|
|
887
|
+
return buildStaticCatalog();
|
|
888
|
+
}
|
|
889
|
+
const data = await response.json();
|
|
890
|
+
if (!Array.isArray(data.data) || data.data.length === 0) {
|
|
891
|
+
log$2.warn("No models found from gateway API, using static catalog");
|
|
892
|
+
return buildStaticCatalog();
|
|
893
|
+
}
|
|
894
|
+
const models = [];
|
|
895
|
+
const discoveredIds = /* @__PURE__ */ new Set();
|
|
896
|
+
for (const entry of data.data) {
|
|
897
|
+
if (!entry || typeof entry !== "object") continue;
|
|
898
|
+
const id = typeof entry.id === "string" ? entry.id.trim() : "";
|
|
899
|
+
if (!id || discoveredIds.has(id)) continue;
|
|
900
|
+
try {
|
|
901
|
+
models.push(toModelDefinition(entry));
|
|
902
|
+
discoveredIds.add(id);
|
|
903
|
+
} catch (e) {
|
|
904
|
+
log$2.warn(`Skipping malformed model entry "${id}": ${String(e)}`);
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
const staticModels = buildStaticCatalog();
|
|
908
|
+
for (const staticModel of staticModels) if (!discoveredIds.has(staticModel.id)) models.unshift(staticModel);
|
|
909
|
+
return models.length > 0 ? models : buildStaticCatalog();
|
|
910
|
+
} catch (error) {
|
|
911
|
+
log$2.warn(`Discovery failed: ${String(error)}, using static catalog`);
|
|
912
|
+
return buildStaticCatalog();
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
//#endregion
|
|
916
|
+
//#region src/agents/synthetic-models.ts
|
|
917
|
+
const SYNTHETIC_BASE_URL = "https://api.synthetic.new/anthropic";
|
|
918
|
+
const SYNTHETIC_DEFAULT_MODEL_ID = "hf:MiniMaxAI/MiniMax-M2.5";
|
|
919
|
+
const SYNTHETIC_DEFAULT_MODEL_REF = `synthetic/${SYNTHETIC_DEFAULT_MODEL_ID}`;
|
|
920
|
+
const SYNTHETIC_DEFAULT_COST = {
|
|
921
|
+
input: 0,
|
|
922
|
+
output: 0,
|
|
923
|
+
cacheRead: 0,
|
|
924
|
+
cacheWrite: 0
|
|
925
|
+
};
|
|
926
|
+
const SYNTHETIC_MODEL_CATALOG = [
|
|
927
|
+
{
|
|
928
|
+
id: SYNTHETIC_DEFAULT_MODEL_ID,
|
|
929
|
+
name: "MiniMax M2.5",
|
|
930
|
+
reasoning: false,
|
|
931
|
+
input: ["text"],
|
|
932
|
+
contextWindow: 192e3,
|
|
933
|
+
maxTokens: 65536
|
|
934
|
+
},
|
|
935
|
+
{
|
|
936
|
+
id: "hf:moonshotai/Kimi-K2-Thinking",
|
|
937
|
+
name: "Kimi K2 Thinking",
|
|
938
|
+
reasoning: true,
|
|
939
|
+
input: ["text"],
|
|
940
|
+
contextWindow: 256e3,
|
|
941
|
+
maxTokens: 8192
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
id: "hf:zai-org/GLM-4.7",
|
|
945
|
+
name: "GLM-4.7",
|
|
946
|
+
reasoning: false,
|
|
947
|
+
input: ["text"],
|
|
948
|
+
contextWindow: 198e3,
|
|
949
|
+
maxTokens: 128e3
|
|
950
|
+
},
|
|
951
|
+
{
|
|
952
|
+
id: "hf:deepseek-ai/DeepSeek-R1-0528",
|
|
953
|
+
name: "DeepSeek R1 0528",
|
|
954
|
+
reasoning: false,
|
|
955
|
+
input: ["text"],
|
|
956
|
+
contextWindow: 128e3,
|
|
957
|
+
maxTokens: 8192
|
|
958
|
+
},
|
|
959
|
+
{
|
|
960
|
+
id: "hf:deepseek-ai/DeepSeek-V3-0324",
|
|
961
|
+
name: "DeepSeek V3 0324",
|
|
962
|
+
reasoning: false,
|
|
963
|
+
input: ["text"],
|
|
964
|
+
contextWindow: 128e3,
|
|
965
|
+
maxTokens: 8192
|
|
966
|
+
},
|
|
967
|
+
{
|
|
968
|
+
id: "hf:deepseek-ai/DeepSeek-V3.1",
|
|
969
|
+
name: "DeepSeek V3.1",
|
|
970
|
+
reasoning: false,
|
|
971
|
+
input: ["text"],
|
|
972
|
+
contextWindow: 128e3,
|
|
973
|
+
maxTokens: 8192
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
id: "hf:deepseek-ai/DeepSeek-V3.1-Terminus",
|
|
977
|
+
name: "DeepSeek V3.1 Terminus",
|
|
978
|
+
reasoning: false,
|
|
979
|
+
input: ["text"],
|
|
980
|
+
contextWindow: 128e3,
|
|
981
|
+
maxTokens: 8192
|
|
982
|
+
},
|
|
983
|
+
{
|
|
984
|
+
id: "hf:deepseek-ai/DeepSeek-V3.2",
|
|
985
|
+
name: "DeepSeek V3.2",
|
|
986
|
+
reasoning: false,
|
|
987
|
+
input: ["text"],
|
|
988
|
+
contextWindow: 159e3,
|
|
989
|
+
maxTokens: 8192
|
|
990
|
+
},
|
|
991
|
+
{
|
|
992
|
+
id: "hf:meta-llama/Llama-3.3-70B-Instruct",
|
|
993
|
+
name: "Llama 3.3 70B Instruct",
|
|
994
|
+
reasoning: false,
|
|
995
|
+
input: ["text"],
|
|
996
|
+
contextWindow: 128e3,
|
|
997
|
+
maxTokens: 8192
|
|
998
|
+
},
|
|
999
|
+
{
|
|
1000
|
+
id: "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
|
|
1001
|
+
name: "Llama 4 Maverick 17B 128E Instruct FP8",
|
|
1002
|
+
reasoning: false,
|
|
1003
|
+
input: ["text"],
|
|
1004
|
+
contextWindow: 524e3,
|
|
1005
|
+
maxTokens: 8192
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
id: "hf:moonshotai/Kimi-K2-Instruct-0905",
|
|
1009
|
+
name: "Kimi K2 Instruct 0905",
|
|
1010
|
+
reasoning: false,
|
|
1011
|
+
input: ["text"],
|
|
1012
|
+
contextWindow: 256e3,
|
|
1013
|
+
maxTokens: 8192
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
id: "hf:moonshotai/Kimi-K2.5",
|
|
1017
|
+
name: "Kimi K2.5",
|
|
1018
|
+
reasoning: true,
|
|
1019
|
+
input: ["text", "image"],
|
|
1020
|
+
contextWindow: 256e3,
|
|
1021
|
+
maxTokens: 8192
|
|
1022
|
+
},
|
|
1023
|
+
{
|
|
1024
|
+
id: "hf:openai/gpt-oss-120b",
|
|
1025
|
+
name: "GPT OSS 120B",
|
|
1026
|
+
reasoning: false,
|
|
1027
|
+
input: ["text"],
|
|
1028
|
+
contextWindow: 128e3,
|
|
1029
|
+
maxTokens: 8192
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
id: "hf:Qwen/Qwen3-235B-A22B-Instruct-2507",
|
|
1033
|
+
name: "Qwen3 235B A22B Instruct 2507",
|
|
1034
|
+
reasoning: false,
|
|
1035
|
+
input: ["text"],
|
|
1036
|
+
contextWindow: 256e3,
|
|
1037
|
+
maxTokens: 8192
|
|
1038
|
+
},
|
|
1039
|
+
{
|
|
1040
|
+
id: "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct",
|
|
1041
|
+
name: "Qwen3 Coder 480B A35B Instruct",
|
|
1042
|
+
reasoning: false,
|
|
1043
|
+
input: ["text"],
|
|
1044
|
+
contextWindow: 256e3,
|
|
1045
|
+
maxTokens: 8192
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
id: "hf:Qwen/Qwen3-VL-235B-A22B-Instruct",
|
|
1049
|
+
name: "Qwen3 VL 235B A22B Instruct",
|
|
1050
|
+
reasoning: false,
|
|
1051
|
+
input: ["text", "image"],
|
|
1052
|
+
contextWindow: 25e4,
|
|
1053
|
+
maxTokens: 8192
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
id: "hf:zai-org/GLM-4.5",
|
|
1057
|
+
name: "GLM-4.5",
|
|
1058
|
+
reasoning: false,
|
|
1059
|
+
input: ["text"],
|
|
1060
|
+
contextWindow: 128e3,
|
|
1061
|
+
maxTokens: 128e3
|
|
1062
|
+
},
|
|
1063
|
+
{
|
|
1064
|
+
id: "hf:zai-org/GLM-4.6",
|
|
1065
|
+
name: "GLM-4.6",
|
|
1066
|
+
reasoning: false,
|
|
1067
|
+
input: ["text"],
|
|
1068
|
+
contextWindow: 198e3,
|
|
1069
|
+
maxTokens: 128e3
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
id: "hf:zai-org/GLM-5",
|
|
1073
|
+
name: "GLM-5",
|
|
1074
|
+
reasoning: true,
|
|
1075
|
+
input: ["text", "image"],
|
|
1076
|
+
contextWindow: 256e3,
|
|
1077
|
+
maxTokens: 128e3
|
|
1078
|
+
},
|
|
1079
|
+
{
|
|
1080
|
+
id: "hf:deepseek-ai/DeepSeek-V3",
|
|
1081
|
+
name: "DeepSeek V3",
|
|
1082
|
+
reasoning: false,
|
|
1083
|
+
input: ["text"],
|
|
1084
|
+
contextWindow: 128e3,
|
|
1085
|
+
maxTokens: 8192
|
|
1086
|
+
},
|
|
1087
|
+
{
|
|
1088
|
+
id: "hf:Qwen/Qwen3-235B-A22B-Thinking-2507",
|
|
1089
|
+
name: "Qwen3 235B A22B Thinking 2507",
|
|
1090
|
+
reasoning: true,
|
|
1091
|
+
input: ["text"],
|
|
1092
|
+
contextWindow: 256e3,
|
|
1093
|
+
maxTokens: 8192
|
|
1094
|
+
}
|
|
1095
|
+
];
|
|
1096
|
+
function buildSyntheticModelDefinition(entry) {
|
|
1097
|
+
return {
|
|
1098
|
+
id: entry.id,
|
|
1099
|
+
name: entry.name,
|
|
1100
|
+
reasoning: entry.reasoning,
|
|
1101
|
+
input: [...entry.input],
|
|
1102
|
+
cost: SYNTHETIC_DEFAULT_COST,
|
|
1103
|
+
contextWindow: entry.contextWindow,
|
|
1104
|
+
maxTokens: entry.maxTokens
|
|
1105
|
+
};
|
|
1106
|
+
}
|
|
1107
|
+
//#endregion
|
|
1108
|
+
//#region src/agents/together-models.ts
|
|
1109
|
+
const TOGETHER_BASE_URL = "https://api.together.xyz/v1";
|
|
1110
|
+
const TOGETHER_MODEL_CATALOG = [
|
|
1111
|
+
{
|
|
1112
|
+
id: "zai-org/GLM-4.7",
|
|
1113
|
+
name: "GLM 4.7 Fp8",
|
|
1114
|
+
reasoning: false,
|
|
1115
|
+
input: ["text"],
|
|
1116
|
+
contextWindow: 202752,
|
|
1117
|
+
maxTokens: 8192,
|
|
1118
|
+
cost: {
|
|
1119
|
+
input: .45,
|
|
1120
|
+
output: 2,
|
|
1121
|
+
cacheRead: .45,
|
|
1122
|
+
cacheWrite: 2
|
|
1123
|
+
}
|
|
1124
|
+
},
|
|
1125
|
+
{
|
|
1126
|
+
id: "moonshotai/Kimi-K2.5",
|
|
1127
|
+
name: "Kimi K2.5",
|
|
1128
|
+
reasoning: true,
|
|
1129
|
+
input: ["text", "image"],
|
|
1130
|
+
cost: {
|
|
1131
|
+
input: .5,
|
|
1132
|
+
output: 2.8,
|
|
1133
|
+
cacheRead: .5,
|
|
1134
|
+
cacheWrite: 2.8
|
|
1135
|
+
},
|
|
1136
|
+
contextWindow: 262144,
|
|
1137
|
+
maxTokens: 32768
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
|
1141
|
+
name: "Llama 3.3 70B Instruct Turbo",
|
|
1142
|
+
reasoning: false,
|
|
1143
|
+
input: ["text"],
|
|
1144
|
+
contextWindow: 131072,
|
|
1145
|
+
maxTokens: 8192,
|
|
1146
|
+
cost: {
|
|
1147
|
+
input: .88,
|
|
1148
|
+
output: .88,
|
|
1149
|
+
cacheRead: .88,
|
|
1150
|
+
cacheWrite: .88
|
|
1151
|
+
}
|
|
1152
|
+
},
|
|
1153
|
+
{
|
|
1154
|
+
id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
|
|
1155
|
+
name: "Llama 4 Scout 17B 16E Instruct",
|
|
1156
|
+
reasoning: false,
|
|
1157
|
+
input: ["text", "image"],
|
|
1158
|
+
contextWindow: 1e7,
|
|
1159
|
+
maxTokens: 32768,
|
|
1160
|
+
cost: {
|
|
1161
|
+
input: .18,
|
|
1162
|
+
output: .59,
|
|
1163
|
+
cacheRead: .18,
|
|
1164
|
+
cacheWrite: .18
|
|
1165
|
+
}
|
|
1166
|
+
},
|
|
1167
|
+
{
|
|
1168
|
+
id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
|
|
1169
|
+
name: "Llama 4 Maverick 17B 128E Instruct FP8",
|
|
1170
|
+
reasoning: false,
|
|
1171
|
+
input: ["text", "image"],
|
|
1172
|
+
contextWindow: 2e7,
|
|
1173
|
+
maxTokens: 32768,
|
|
1174
|
+
cost: {
|
|
1175
|
+
input: .27,
|
|
1176
|
+
output: .85,
|
|
1177
|
+
cacheRead: .27,
|
|
1178
|
+
cacheWrite: .27
|
|
1179
|
+
}
|
|
1180
|
+
},
|
|
1181
|
+
{
|
|
1182
|
+
id: "deepseek-ai/DeepSeek-V3.1",
|
|
1183
|
+
name: "DeepSeek V3.1",
|
|
1184
|
+
reasoning: false,
|
|
1185
|
+
input: ["text"],
|
|
1186
|
+
contextWindow: 131072,
|
|
1187
|
+
maxTokens: 8192,
|
|
1188
|
+
cost: {
|
|
1189
|
+
input: .6,
|
|
1190
|
+
output: 1.25,
|
|
1191
|
+
cacheRead: .6,
|
|
1192
|
+
cacheWrite: .6
|
|
1193
|
+
}
|
|
1194
|
+
},
|
|
1195
|
+
{
|
|
1196
|
+
id: "deepseek-ai/DeepSeek-R1",
|
|
1197
|
+
name: "DeepSeek R1",
|
|
1198
|
+
reasoning: true,
|
|
1199
|
+
input: ["text"],
|
|
1200
|
+
contextWindow: 131072,
|
|
1201
|
+
maxTokens: 8192,
|
|
1202
|
+
cost: {
|
|
1203
|
+
input: 3,
|
|
1204
|
+
output: 7,
|
|
1205
|
+
cacheRead: 3,
|
|
1206
|
+
cacheWrite: 3
|
|
1207
|
+
}
|
|
1208
|
+
},
|
|
1209
|
+
{
|
|
1210
|
+
id: "moonshotai/Kimi-K2-Instruct-0905",
|
|
1211
|
+
name: "Kimi K2-Instruct 0905",
|
|
1212
|
+
reasoning: false,
|
|
1213
|
+
input: ["text"],
|
|
1214
|
+
contextWindow: 262144,
|
|
1215
|
+
maxTokens: 8192,
|
|
1216
|
+
cost: {
|
|
1217
|
+
input: 1,
|
|
1218
|
+
output: 3,
|
|
1219
|
+
cacheRead: 1,
|
|
1220
|
+
cacheWrite: 3
|
|
1221
|
+
}
|
|
1222
|
+
}
|
|
1223
|
+
];
|
|
1224
|
+
function buildTogetherModelDefinition(model) {
|
|
1225
|
+
return {
|
|
1226
|
+
id: model.id,
|
|
1227
|
+
name: model.name,
|
|
1228
|
+
api: "openai-completions",
|
|
1229
|
+
reasoning: model.reasoning,
|
|
1230
|
+
input: model.input,
|
|
1231
|
+
cost: model.cost,
|
|
1232
|
+
contextWindow: model.contextWindow,
|
|
1233
|
+
maxTokens: model.maxTokens
|
|
1234
|
+
};
|
|
1235
|
+
}
|
|
1236
|
+
//#endregion
|
|
1237
|
+
//#region src/agents/venice-models.ts
|
|
1238
|
+
const log$1 = createSubsystemLogger("venice-models");
|
|
1239
|
+
const VENICE_BASE_URL = "https://api.venice.ai/api/v1";
|
|
1240
|
+
const VENICE_DEFAULT_MODEL_REF = `venice/kimi-k2-5`;
|
|
1241
|
+
const VENICE_DEFAULT_COST = {
|
|
1242
|
+
input: 0,
|
|
1243
|
+
output: 0,
|
|
1244
|
+
cacheRead: 0,
|
|
1245
|
+
cacheWrite: 0
|
|
1246
|
+
};
|
|
1247
|
+
const VENICE_DEFAULT_CONTEXT_WINDOW = 128e3;
|
|
1248
|
+
const VENICE_DEFAULT_MAX_TOKENS = 4096;
|
|
1249
|
+
const VENICE_DISCOVERY_HARD_MAX_TOKENS = 131072;
|
|
1250
|
+
const VENICE_DISCOVERY_TIMEOUT_MS = 1e4;
|
|
1251
|
+
const VENICE_DISCOVERY_RETRYABLE_HTTP_STATUS = new Set([
|
|
1252
|
+
408,
|
|
1253
|
+
425,
|
|
1254
|
+
429,
|
|
1255
|
+
500,
|
|
1256
|
+
502,
|
|
1257
|
+
503,
|
|
1258
|
+
504
|
|
1259
|
+
]);
|
|
1260
|
+
const VENICE_DISCOVERY_RETRYABLE_NETWORK_CODES = new Set([
|
|
1261
|
+
"ECONNABORTED",
|
|
1262
|
+
"ECONNREFUSED",
|
|
1263
|
+
"ECONNRESET",
|
|
1264
|
+
"EAI_AGAIN",
|
|
1265
|
+
"ENETDOWN",
|
|
1266
|
+
"ENETUNREACH",
|
|
1267
|
+
"ENOTFOUND",
|
|
1268
|
+
"ETIMEDOUT",
|
|
1269
|
+
"UND_ERR_BODY_TIMEOUT",
|
|
1270
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
1271
|
+
"UND_ERR_CONNECT_ERROR",
|
|
1272
|
+
"UND_ERR_HEADERS_TIMEOUT",
|
|
1273
|
+
"UND_ERR_SOCKET"
|
|
1274
|
+
]);
|
|
1275
|
+
/**
|
|
1276
|
+
* Complete catalog of Venice AI models.
|
|
1277
|
+
*
|
|
1278
|
+
* Venice provides two privacy modes:
|
|
1279
|
+
* - "private": Fully private inference, no logging, ephemeral
|
|
1280
|
+
* - "anonymized": Proxied through Venice with metadata stripped (for proprietary models)
|
|
1281
|
+
*
|
|
1282
|
+
* Note: The `privacy` field is included for documentation purposes but is not
|
|
1283
|
+
* propagated to ModelDefinitionConfig as it's not part of the core model schema.
|
|
1284
|
+
* Privacy mode is determined by the model itself, not configurable at runtime.
|
|
1285
|
+
*
|
|
1286
|
+
* This catalog serves as a fallback when the Venice API is unreachable.
|
|
1287
|
+
*/
|
|
1288
|
+
const VENICE_MODEL_CATALOG = [
|
|
1289
|
+
{
|
|
1290
|
+
id: "llama-3.3-70b",
|
|
1291
|
+
name: "Llama 3.3 70B",
|
|
1292
|
+
reasoning: false,
|
|
1293
|
+
input: ["text"],
|
|
1294
|
+
contextWindow: 128e3,
|
|
1295
|
+
maxTokens: 4096,
|
|
1296
|
+
privacy: "private"
|
|
1297
|
+
},
|
|
1298
|
+
{
|
|
1299
|
+
id: "llama-3.2-3b",
|
|
1300
|
+
name: "Llama 3.2 3B",
|
|
1301
|
+
reasoning: false,
|
|
1302
|
+
input: ["text"],
|
|
1303
|
+
contextWindow: 128e3,
|
|
1304
|
+
maxTokens: 4096,
|
|
1305
|
+
privacy: "private"
|
|
1306
|
+
},
|
|
1307
|
+
{
|
|
1308
|
+
id: "hermes-3-llama-3.1-405b",
|
|
1309
|
+
name: "Hermes 3 Llama 3.1 405B",
|
|
1310
|
+
reasoning: false,
|
|
1311
|
+
input: ["text"],
|
|
1312
|
+
contextWindow: 128e3,
|
|
1313
|
+
maxTokens: 16384,
|
|
1314
|
+
supportsTools: false,
|
|
1315
|
+
privacy: "private"
|
|
1316
|
+
},
|
|
1317
|
+
{
|
|
1318
|
+
id: "qwen3-235b-a22b-thinking-2507",
|
|
1319
|
+
name: "Qwen3 235B Thinking",
|
|
1320
|
+
reasoning: true,
|
|
1321
|
+
input: ["text"],
|
|
1322
|
+
contextWindow: 128e3,
|
|
1323
|
+
maxTokens: 16384,
|
|
1324
|
+
privacy: "private"
|
|
1325
|
+
},
|
|
1326
|
+
{
|
|
1327
|
+
id: "qwen3-235b-a22b-instruct-2507",
|
|
1328
|
+
name: "Qwen3 235B Instruct",
|
|
1329
|
+
reasoning: false,
|
|
1330
|
+
input: ["text"],
|
|
1331
|
+
contextWindow: 128e3,
|
|
1332
|
+
maxTokens: 16384,
|
|
1333
|
+
privacy: "private"
|
|
1334
|
+
},
|
|
1335
|
+
{
|
|
1336
|
+
id: "qwen3-coder-480b-a35b-instruct",
|
|
1337
|
+
name: "Qwen3 Coder 480B",
|
|
1338
|
+
reasoning: false,
|
|
1339
|
+
input: ["text"],
|
|
1340
|
+
contextWindow: 256e3,
|
|
1341
|
+
maxTokens: 65536,
|
|
1342
|
+
privacy: "private"
|
|
1343
|
+
},
|
|
1344
|
+
{
|
|
1345
|
+
id: "qwen3-coder-480b-a35b-instruct-turbo",
|
|
1346
|
+
name: "Qwen3 Coder 480B Turbo",
|
|
1347
|
+
reasoning: false,
|
|
1348
|
+
input: ["text"],
|
|
1349
|
+
contextWindow: 256e3,
|
|
1350
|
+
maxTokens: 65536,
|
|
1351
|
+
privacy: "private"
|
|
1352
|
+
},
|
|
1353
|
+
{
|
|
1354
|
+
id: "qwen3-5-35b-a3b",
|
|
1355
|
+
name: "Qwen3.5 35B A3B",
|
|
1356
|
+
reasoning: true,
|
|
1357
|
+
input: ["text", "image"],
|
|
1358
|
+
contextWindow: 256e3,
|
|
1359
|
+
maxTokens: 65536,
|
|
1360
|
+
privacy: "private"
|
|
1361
|
+
},
|
|
1362
|
+
{
|
|
1363
|
+
id: "qwen3-next-80b",
|
|
1364
|
+
name: "Qwen3 Next 80B",
|
|
1365
|
+
reasoning: false,
|
|
1366
|
+
input: ["text"],
|
|
1367
|
+
contextWindow: 256e3,
|
|
1368
|
+
maxTokens: 16384,
|
|
1369
|
+
privacy: "private"
|
|
1370
|
+
},
|
|
1371
|
+
{
|
|
1372
|
+
id: "qwen3-vl-235b-a22b",
|
|
1373
|
+
name: "Qwen3 VL 235B (Vision)",
|
|
1374
|
+
reasoning: false,
|
|
1375
|
+
input: ["text", "image"],
|
|
1376
|
+
contextWindow: 256e3,
|
|
1377
|
+
maxTokens: 16384,
|
|
1378
|
+
privacy: "private"
|
|
1379
|
+
},
|
|
1380
|
+
{
|
|
1381
|
+
id: "qwen3-4b",
|
|
1382
|
+
name: "Venice Small (Qwen3 4B)",
|
|
1383
|
+
reasoning: true,
|
|
1384
|
+
input: ["text"],
|
|
1385
|
+
contextWindow: 32e3,
|
|
1386
|
+
maxTokens: 4096,
|
|
1387
|
+
privacy: "private"
|
|
1388
|
+
},
|
|
1389
|
+
{
|
|
1390
|
+
id: "deepseek-v3.2",
|
|
1391
|
+
name: "DeepSeek V3.2",
|
|
1392
|
+
reasoning: true,
|
|
1393
|
+
input: ["text"],
|
|
1394
|
+
contextWindow: 16e4,
|
|
1395
|
+
maxTokens: 32768,
|
|
1396
|
+
supportsTools: false,
|
|
1397
|
+
privacy: "private"
|
|
1398
|
+
},
|
|
1399
|
+
{
|
|
1400
|
+
id: "venice-uncensored",
|
|
1401
|
+
name: "Venice Uncensored (Dolphin-Mistral)",
|
|
1402
|
+
reasoning: false,
|
|
1403
|
+
input: ["text"],
|
|
1404
|
+
contextWindow: 32e3,
|
|
1405
|
+
maxTokens: 4096,
|
|
1406
|
+
supportsTools: false,
|
|
1407
|
+
privacy: "private"
|
|
1408
|
+
},
|
|
1409
|
+
{
|
|
1410
|
+
id: "mistral-31-24b",
|
|
1411
|
+
name: "Venice Medium (Mistral)",
|
|
1412
|
+
reasoning: false,
|
|
1413
|
+
input: ["text", "image"],
|
|
1414
|
+
contextWindow: 128e3,
|
|
1415
|
+
maxTokens: 4096,
|
|
1416
|
+
privacy: "private"
|
|
1417
|
+
},
|
|
1418
|
+
{
|
|
1419
|
+
id: "google-gemma-3-27b-it",
|
|
1420
|
+
name: "Google Gemma 3 27B Instruct",
|
|
1421
|
+
reasoning: false,
|
|
1422
|
+
input: ["text", "image"],
|
|
1423
|
+
contextWindow: 198e3,
|
|
1424
|
+
maxTokens: 16384,
|
|
1425
|
+
privacy: "private"
|
|
1426
|
+
},
|
|
1427
|
+
{
|
|
1428
|
+
id: "openai-gpt-oss-120b",
|
|
1429
|
+
name: "OpenAI GPT OSS 120B",
|
|
1430
|
+
reasoning: false,
|
|
1431
|
+
input: ["text"],
|
|
1432
|
+
contextWindow: 128e3,
|
|
1433
|
+
maxTokens: 16384,
|
|
1434
|
+
privacy: "private"
|
|
1435
|
+
},
|
|
1436
|
+
{
|
|
1437
|
+
id: "nvidia-nemotron-3-nano-30b-a3b",
|
|
1438
|
+
name: "NVIDIA Nemotron 3 Nano 30B",
|
|
1439
|
+
reasoning: false,
|
|
1440
|
+
input: ["text"],
|
|
1441
|
+
contextWindow: 128e3,
|
|
1442
|
+
maxTokens: 16384,
|
|
1443
|
+
privacy: "private"
|
|
1444
|
+
},
|
|
1445
|
+
{
|
|
1446
|
+
id: "olafangensan-glm-4.7-flash-heretic",
|
|
1447
|
+
name: "GLM 4.7 Flash Heretic",
|
|
1448
|
+
reasoning: true,
|
|
1449
|
+
input: ["text"],
|
|
1450
|
+
contextWindow: 128e3,
|
|
1451
|
+
maxTokens: 24e3,
|
|
1452
|
+
privacy: "private"
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
id: "zai-org-glm-4.6",
|
|
1456
|
+
name: "GLM 4.6",
|
|
1457
|
+
reasoning: false,
|
|
1458
|
+
input: ["text"],
|
|
1459
|
+
contextWindow: 198e3,
|
|
1460
|
+
maxTokens: 16384,
|
|
1461
|
+
privacy: "private"
|
|
1462
|
+
},
|
|
1463
|
+
{
|
|
1464
|
+
id: "zai-org-glm-4.7",
|
|
1465
|
+
name: "GLM 4.7",
|
|
1466
|
+
reasoning: true,
|
|
1467
|
+
input: ["text"],
|
|
1468
|
+
contextWindow: 198e3,
|
|
1469
|
+
maxTokens: 16384,
|
|
1470
|
+
privacy: "private"
|
|
1471
|
+
},
|
|
1472
|
+
{
|
|
1473
|
+
id: "zai-org-glm-4.7-flash",
|
|
1474
|
+
name: "GLM 4.7 Flash",
|
|
1475
|
+
reasoning: true,
|
|
1476
|
+
input: ["text"],
|
|
1477
|
+
contextWindow: 128e3,
|
|
1478
|
+
maxTokens: 16384,
|
|
1479
|
+
privacy: "private"
|
|
1480
|
+
},
|
|
1481
|
+
{
|
|
1482
|
+
id: "zai-org-glm-5",
|
|
1483
|
+
name: "GLM 5",
|
|
1484
|
+
reasoning: true,
|
|
1485
|
+
input: ["text"],
|
|
1486
|
+
contextWindow: 198e3,
|
|
1487
|
+
maxTokens: 32e3,
|
|
1488
|
+
privacy: "private"
|
|
1489
|
+
},
|
|
1490
|
+
{
|
|
1491
|
+
id: "kimi-k2-5",
|
|
1492
|
+
name: "Kimi K2.5",
|
|
1493
|
+
reasoning: true,
|
|
1494
|
+
input: ["text", "image"],
|
|
1495
|
+
contextWindow: 256e3,
|
|
1496
|
+
maxTokens: 65536,
|
|
1497
|
+
privacy: "private"
|
|
1498
|
+
},
|
|
1499
|
+
{
|
|
1500
|
+
id: "kimi-k2-thinking",
|
|
1501
|
+
name: "Kimi K2 Thinking",
|
|
1502
|
+
reasoning: true,
|
|
1503
|
+
input: ["text"],
|
|
1504
|
+
contextWindow: 256e3,
|
|
1505
|
+
maxTokens: 65536,
|
|
1506
|
+
privacy: "private"
|
|
1507
|
+
},
|
|
1508
|
+
{
|
|
1509
|
+
id: "minimax-m21",
|
|
1510
|
+
name: "MiniMax M2.1",
|
|
1511
|
+
reasoning: true,
|
|
1512
|
+
input: ["text"],
|
|
1513
|
+
contextWindow: 198e3,
|
|
1514
|
+
maxTokens: 32768,
|
|
1515
|
+
privacy: "private"
|
|
1516
|
+
},
|
|
1517
|
+
{
|
|
1518
|
+
id: "minimax-m25",
|
|
1519
|
+
name: "MiniMax M2.5",
|
|
1520
|
+
reasoning: true,
|
|
1521
|
+
input: ["text"],
|
|
1522
|
+
contextWindow: 198e3,
|
|
1523
|
+
maxTokens: 32768,
|
|
1524
|
+
privacy: "private"
|
|
1525
|
+
},
|
|
1526
|
+
{
|
|
1527
|
+
id: "claude-opus-4-5",
|
|
1528
|
+
name: "Claude Opus 4.5 (via Venice)",
|
|
1529
|
+
reasoning: true,
|
|
1530
|
+
input: ["text", "image"],
|
|
1531
|
+
contextWindow: 198e3,
|
|
1532
|
+
maxTokens: 32768,
|
|
1533
|
+
privacy: "anonymized"
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
id: "claude-opus-4-6",
|
|
1537
|
+
name: "Claude Opus 4.6 (via Venice)",
|
|
1538
|
+
reasoning: true,
|
|
1539
|
+
input: ["text", "image"],
|
|
1540
|
+
contextWindow: 1e6,
|
|
1541
|
+
maxTokens: 128e3,
|
|
1542
|
+
privacy: "anonymized"
|
|
1543
|
+
},
|
|
1544
|
+
{
|
|
1545
|
+
id: "claude-sonnet-4-5",
|
|
1546
|
+
name: "Claude Sonnet 4.5 (via Venice)",
|
|
1547
|
+
reasoning: true,
|
|
1548
|
+
input: ["text", "image"],
|
|
1549
|
+
contextWindow: 198e3,
|
|
1550
|
+
maxTokens: 64e3,
|
|
1551
|
+
privacy: "anonymized"
|
|
1552
|
+
},
|
|
1553
|
+
{
|
|
1554
|
+
id: "claude-sonnet-4-6",
|
|
1555
|
+
name: "Claude Sonnet 4.6 (via Venice)",
|
|
1556
|
+
reasoning: true,
|
|
1557
|
+
input: ["text", "image"],
|
|
1558
|
+
contextWindow: 1e6,
|
|
1559
|
+
maxTokens: 64e3,
|
|
1560
|
+
privacy: "anonymized"
|
|
1561
|
+
},
|
|
1562
|
+
{
|
|
1563
|
+
id: "openai-gpt-52",
|
|
1564
|
+
name: "GPT-5.2 (via Venice)",
|
|
1565
|
+
reasoning: true,
|
|
1566
|
+
input: ["text"],
|
|
1567
|
+
contextWindow: 256e3,
|
|
1568
|
+
maxTokens: 65536,
|
|
1569
|
+
privacy: "anonymized"
|
|
1570
|
+
},
|
|
1571
|
+
{
|
|
1572
|
+
id: "openai-gpt-52-codex",
|
|
1573
|
+
name: "GPT-5.2 Codex (via Venice)",
|
|
1574
|
+
reasoning: true,
|
|
1575
|
+
input: ["text", "image"],
|
|
1576
|
+
contextWindow: 256e3,
|
|
1577
|
+
maxTokens: 65536,
|
|
1578
|
+
privacy: "anonymized"
|
|
1579
|
+
},
|
|
1580
|
+
{
|
|
1581
|
+
id: "openai-gpt-53-codex",
|
|
1582
|
+
name: "GPT-5.3 Codex (via Venice)",
|
|
1583
|
+
reasoning: true,
|
|
1584
|
+
input: ["text", "image"],
|
|
1585
|
+
contextWindow: 4e5,
|
|
1586
|
+
maxTokens: 128e3,
|
|
1587
|
+
privacy: "anonymized"
|
|
1588
|
+
},
|
|
1589
|
+
{
|
|
1590
|
+
id: "openai-gpt-54",
|
|
1591
|
+
name: "GPT-5.4 (via Venice)",
|
|
1592
|
+
reasoning: true,
|
|
1593
|
+
input: ["text", "image"],
|
|
1594
|
+
contextWindow: 1e6,
|
|
1595
|
+
maxTokens: 131072,
|
|
1596
|
+
privacy: "anonymized"
|
|
1597
|
+
},
|
|
1598
|
+
{
|
|
1599
|
+
id: "openai-gpt-4o-2024-11-20",
|
|
1600
|
+
name: "GPT-4o (via Venice)",
|
|
1601
|
+
reasoning: false,
|
|
1602
|
+
input: ["text", "image"],
|
|
1603
|
+
contextWindow: 128e3,
|
|
1604
|
+
maxTokens: 16384,
|
|
1605
|
+
privacy: "anonymized"
|
|
1606
|
+
},
|
|
1607
|
+
{
|
|
1608
|
+
id: "openai-gpt-4o-mini-2024-07-18",
|
|
1609
|
+
name: "GPT-4o Mini (via Venice)",
|
|
1610
|
+
reasoning: false,
|
|
1611
|
+
input: ["text", "image"],
|
|
1612
|
+
contextWindow: 128e3,
|
|
1613
|
+
maxTokens: 16384,
|
|
1614
|
+
privacy: "anonymized"
|
|
1615
|
+
},
|
|
1616
|
+
{
|
|
1617
|
+
id: "gemini-3-pro-preview",
|
|
1618
|
+
name: "Gemini 3 Pro (via Venice)",
|
|
1619
|
+
reasoning: true,
|
|
1620
|
+
input: ["text", "image"],
|
|
1621
|
+
contextWindow: 198e3,
|
|
1622
|
+
maxTokens: 32768,
|
|
1623
|
+
privacy: "anonymized"
|
|
1624
|
+
},
|
|
1625
|
+
{
|
|
1626
|
+
id: "gemini-3-1-pro-preview",
|
|
1627
|
+
name: "Gemini 3.1 Pro (via Venice)",
|
|
1628
|
+
reasoning: true,
|
|
1629
|
+
input: ["text", "image"],
|
|
1630
|
+
contextWindow: 1e6,
|
|
1631
|
+
maxTokens: 32768,
|
|
1632
|
+
privacy: "anonymized"
|
|
1633
|
+
},
|
|
1634
|
+
{
|
|
1635
|
+
id: "gemini-3-flash-preview",
|
|
1636
|
+
name: "Gemini 3 Flash (via Venice)",
|
|
1637
|
+
reasoning: true,
|
|
1638
|
+
input: ["text", "image"],
|
|
1639
|
+
contextWindow: 256e3,
|
|
1640
|
+
maxTokens: 65536,
|
|
1641
|
+
privacy: "anonymized"
|
|
1642
|
+
},
|
|
1643
|
+
{
|
|
1644
|
+
id: "grok-41-fast",
|
|
1645
|
+
name: "Grok 4.1 Fast (via Venice)",
|
|
1646
|
+
reasoning: true,
|
|
1647
|
+
input: ["text", "image"],
|
|
1648
|
+
contextWindow: 1e6,
|
|
1649
|
+
maxTokens: 3e4,
|
|
1650
|
+
privacy: "anonymized"
|
|
1651
|
+
},
|
|
1652
|
+
{
|
|
1653
|
+
id: "grok-code-fast-1",
|
|
1654
|
+
name: "Grok Code Fast 1 (via Venice)",
|
|
1655
|
+
reasoning: true,
|
|
1656
|
+
input: ["text"],
|
|
1657
|
+
contextWindow: 256e3,
|
|
1658
|
+
maxTokens: 1e4,
|
|
1659
|
+
privacy: "anonymized"
|
|
1660
|
+
}
|
|
1661
|
+
];
|
|
1662
|
+
/**
|
|
1663
|
+
* Build a ModelDefinitionConfig from a Venice catalog entry.
|
|
1664
|
+
*
|
|
1665
|
+
* Note: The `privacy` field from the catalog is not included in the output
|
|
1666
|
+
* as ModelDefinitionConfig doesn't support custom metadata fields. Privacy
|
|
1667
|
+
* mode is inherent to each model and documented in the catalog/docs.
|
|
1668
|
+
*/
|
|
1669
|
+
function buildVeniceModelDefinition(entry) {
|
|
1670
|
+
return {
|
|
1671
|
+
id: entry.id,
|
|
1672
|
+
name: entry.name,
|
|
1673
|
+
reasoning: entry.reasoning,
|
|
1674
|
+
input: [...entry.input],
|
|
1675
|
+
cost: VENICE_DEFAULT_COST,
|
|
1676
|
+
contextWindow: entry.contextWindow,
|
|
1677
|
+
maxTokens: entry.maxTokens,
|
|
1678
|
+
compat: {
|
|
1679
|
+
supportsUsageInStreaming: false,
|
|
1680
|
+
..."supportsTools" in entry && !entry.supportsTools ? { supportsTools: false } : {}
|
|
1681
|
+
}
|
|
1682
|
+
};
|
|
1683
|
+
}
|
|
1684
|
+
var VeniceDiscoveryHttpError = class extends Error {
|
|
1685
|
+
constructor(status) {
|
|
1686
|
+
super(`HTTP ${status}`);
|
|
1687
|
+
this.name = "VeniceDiscoveryHttpError";
|
|
1688
|
+
this.status = status;
|
|
1689
|
+
}
|
|
1690
|
+
};
|
|
1691
|
+
function staticVeniceModelDefinitions() {
|
|
1692
|
+
return VENICE_MODEL_CATALOG.map(buildVeniceModelDefinition);
|
|
1693
|
+
}
|
|
1694
|
+
function hasRetryableNetworkCode(err) {
|
|
1695
|
+
const queue = [err];
|
|
1696
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1697
|
+
while (queue.length > 0) {
|
|
1698
|
+
const current = queue.shift();
|
|
1699
|
+
if (!current || typeof current !== "object" || seen.has(current)) continue;
|
|
1700
|
+
seen.add(current);
|
|
1701
|
+
const candidate = current;
|
|
1702
|
+
const code = typeof candidate.code === "string" ? candidate.code : typeof candidate.errno === "string" ? candidate.errno : void 0;
|
|
1703
|
+
if (code && VENICE_DISCOVERY_RETRYABLE_NETWORK_CODES.has(code)) return true;
|
|
1704
|
+
if (candidate.cause) queue.push(candidate.cause);
|
|
1705
|
+
if (Array.isArray(candidate.errors)) queue.push(...candidate.errors);
|
|
1706
|
+
}
|
|
1707
|
+
return false;
|
|
1708
|
+
}
|
|
1709
|
+
function isRetryableVeniceDiscoveryError(err) {
|
|
1710
|
+
if (err instanceof VeniceDiscoveryHttpError) return true;
|
|
1711
|
+
if (err instanceof Error && err.name === "AbortError") return true;
|
|
1712
|
+
if (err instanceof TypeError && err.message.toLowerCase() === "fetch failed") return true;
|
|
1713
|
+
return hasRetryableNetworkCode(err);
|
|
1714
|
+
}
|
|
1715
|
+
function normalizePositiveInt(value) {
|
|
1716
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) return;
|
|
1717
|
+
return Math.floor(value);
|
|
1718
|
+
}
|
|
1719
|
+
function resolveApiMaxCompletionTokens(params) {
|
|
1720
|
+
const raw = normalizePositiveInt(params.apiModel.model_spec?.maxCompletionTokens);
|
|
1721
|
+
if (!raw) return;
|
|
1722
|
+
const contextWindow = normalizePositiveInt(params.apiModel.model_spec?.availableContextTokens);
|
|
1723
|
+
const knownMaxTokens = typeof params.knownMaxTokens === "number" && Number.isFinite(params.knownMaxTokens) ? Math.floor(params.knownMaxTokens) : void 0;
|
|
1724
|
+
const hardCap = knownMaxTokens ?? VENICE_DISCOVERY_HARD_MAX_TOKENS;
|
|
1725
|
+
const fallbackContextWindow = knownMaxTokens ?? VENICE_DEFAULT_CONTEXT_WINDOW;
|
|
1726
|
+
return Math.min(raw, contextWindow ?? fallbackContextWindow, hardCap);
|
|
1727
|
+
}
|
|
1728
|
+
function resolveApiSupportsTools(apiModel) {
|
|
1729
|
+
const supportsFunctionCalling = apiModel.model_spec?.capabilities?.supportsFunctionCalling;
|
|
1730
|
+
return typeof supportsFunctionCalling === "boolean" ? supportsFunctionCalling : void 0;
|
|
1731
|
+
}
|
|
1732
|
+
/**
|
|
1733
|
+
* Discover models from Venice API with fallback to static catalog.
|
|
1734
|
+
* The /models endpoint is public and doesn't require authentication.
|
|
1735
|
+
*/
|
|
1736
|
+
async function discoverVeniceModels() {
|
|
1737
|
+
if (process.env.VITEST) return staticVeniceModelDefinitions();
|
|
1738
|
+
try {
|
|
1739
|
+
const response = await retryAsync(async () => {
|
|
1740
|
+
const currentResponse = await fetch(`${VENICE_BASE_URL}/models`, {
|
|
1741
|
+
signal: AbortSignal.timeout(VENICE_DISCOVERY_TIMEOUT_MS),
|
|
1742
|
+
headers: { Accept: "application/json" }
|
|
1743
|
+
});
|
|
1744
|
+
if (!currentResponse.ok && VENICE_DISCOVERY_RETRYABLE_HTTP_STATUS.has(currentResponse.status)) throw new VeniceDiscoveryHttpError(currentResponse.status);
|
|
1745
|
+
return currentResponse;
|
|
1746
|
+
}, {
|
|
1747
|
+
attempts: 3,
|
|
1748
|
+
minDelayMs: 300,
|
|
1749
|
+
maxDelayMs: 2e3,
|
|
1750
|
+
jitter: .2,
|
|
1751
|
+
label: "venice-model-discovery",
|
|
1752
|
+
shouldRetry: isRetryableVeniceDiscoveryError
|
|
1753
|
+
});
|
|
1754
|
+
if (!response.ok) {
|
|
1755
|
+
log$1.warn(`Failed to discover models: HTTP ${response.status}, using static catalog`);
|
|
1756
|
+
return staticVeniceModelDefinitions();
|
|
1757
|
+
}
|
|
1758
|
+
const data = await response.json();
|
|
1759
|
+
if (!Array.isArray(data.data) || data.data.length === 0) {
|
|
1760
|
+
log$1.warn("No models found from API, using static catalog");
|
|
1761
|
+
return staticVeniceModelDefinitions();
|
|
1762
|
+
}
|
|
1763
|
+
const catalogById = new Map(VENICE_MODEL_CATALOG.map((m) => [m.id, m]));
|
|
1764
|
+
const models = [];
|
|
1765
|
+
for (const apiModel of data.data) {
|
|
1766
|
+
const catalogEntry = catalogById.get(apiModel.id);
|
|
1767
|
+
const apiMaxTokens = resolveApiMaxCompletionTokens({
|
|
1768
|
+
apiModel,
|
|
1769
|
+
knownMaxTokens: catalogEntry?.maxTokens
|
|
1770
|
+
});
|
|
1771
|
+
const apiSupportsTools = resolveApiSupportsTools(apiModel);
|
|
1772
|
+
if (catalogEntry) {
|
|
1773
|
+
const definition = buildVeniceModelDefinition(catalogEntry);
|
|
1774
|
+
if (apiMaxTokens !== void 0) definition.maxTokens = apiMaxTokens;
|
|
1775
|
+
if (apiSupportsTools === false) definition.compat = {
|
|
1776
|
+
...definition.compat,
|
|
1777
|
+
supportsTools: false
|
|
1778
|
+
};
|
|
1779
|
+
models.push(definition);
|
|
1780
|
+
} else {
|
|
1781
|
+
const apiSpec = apiModel.model_spec;
|
|
1782
|
+
const isReasoning = apiSpec?.capabilities?.supportsReasoning || apiModel.id.toLowerCase().includes("thinking") || apiModel.id.toLowerCase().includes("reason") || apiModel.id.toLowerCase().includes("r1");
|
|
1783
|
+
const hasVision = apiSpec?.capabilities?.supportsVision === true;
|
|
1784
|
+
models.push({
|
|
1785
|
+
id: apiModel.id,
|
|
1786
|
+
name: apiSpec?.name || apiModel.id,
|
|
1787
|
+
reasoning: isReasoning,
|
|
1788
|
+
input: hasVision ? ["text", "image"] : ["text"],
|
|
1789
|
+
cost: VENICE_DEFAULT_COST,
|
|
1790
|
+
contextWindow: normalizePositiveInt(apiSpec?.availableContextTokens) ?? VENICE_DEFAULT_CONTEXT_WINDOW,
|
|
1791
|
+
maxTokens: apiMaxTokens ?? VENICE_DEFAULT_MAX_TOKENS,
|
|
1792
|
+
compat: {
|
|
1793
|
+
supportsUsageInStreaming: false,
|
|
1794
|
+
...apiSupportsTools === false ? { supportsTools: false } : {}
|
|
1795
|
+
}
|
|
1796
|
+
});
|
|
1797
|
+
}
|
|
1798
|
+
}
|
|
1799
|
+
return models.length > 0 ? models : staticVeniceModelDefinitions();
|
|
1800
|
+
} catch (error) {
|
|
1801
|
+
if (error instanceof VeniceDiscoveryHttpError) {
|
|
1802
|
+
log$1.warn(`Failed to discover models: HTTP ${error.status}, using static catalog`);
|
|
1803
|
+
return staticVeniceModelDefinitions();
|
|
1804
|
+
}
|
|
1805
|
+
log$1.warn(`Discovery failed: ${String(error)}, using static catalog`);
|
|
1806
|
+
return staticVeniceModelDefinitions();
|
|
1807
|
+
}
|
|
1808
|
+
}
|
|
1809
|
+
//#endregion
|
|
1810
|
+
//#region src/agents/volc-models.shared.ts
|
|
1811
|
+
const VOLC_MODEL_KIMI_K2_5 = {
|
|
1812
|
+
id: "kimi-k2-5-260127",
|
|
1813
|
+
name: "Kimi K2.5",
|
|
1814
|
+
reasoning: false,
|
|
1815
|
+
input: ["text", "image"],
|
|
1816
|
+
contextWindow: 256e3,
|
|
1817
|
+
maxTokens: 4096
|
|
1818
|
+
};
|
|
1819
|
+
const VOLC_MODEL_GLM_4_7 = {
|
|
1820
|
+
id: "glm-4-7-251222",
|
|
1821
|
+
name: "GLM 4.7",
|
|
1822
|
+
reasoning: false,
|
|
1823
|
+
input: ["text", "image"],
|
|
1824
|
+
contextWindow: 2e5,
|
|
1825
|
+
maxTokens: 4096
|
|
1826
|
+
};
|
|
1827
|
+
const VOLC_SHARED_CODING_MODEL_CATALOG = [
|
|
1828
|
+
{
|
|
1829
|
+
id: "ark-code-latest",
|
|
1830
|
+
name: "Ark Coding Plan",
|
|
1831
|
+
reasoning: false,
|
|
1832
|
+
input: ["text"],
|
|
1833
|
+
contextWindow: 256e3,
|
|
1834
|
+
maxTokens: 4096
|
|
1835
|
+
},
|
|
1836
|
+
{
|
|
1837
|
+
id: "doubao-seed-code",
|
|
1838
|
+
name: "Doubao Seed Code",
|
|
1839
|
+
reasoning: false,
|
|
1840
|
+
input: ["text"],
|
|
1841
|
+
contextWindow: 256e3,
|
|
1842
|
+
maxTokens: 4096
|
|
1843
|
+
},
|
|
1844
|
+
{
|
|
1845
|
+
id: "glm-4.7",
|
|
1846
|
+
name: "GLM 4.7 Coding",
|
|
1847
|
+
reasoning: false,
|
|
1848
|
+
input: ["text"],
|
|
1849
|
+
contextWindow: 2e5,
|
|
1850
|
+
maxTokens: 4096
|
|
1851
|
+
},
|
|
1852
|
+
{
|
|
1853
|
+
id: "kimi-k2-thinking",
|
|
1854
|
+
name: "Kimi K2 Thinking",
|
|
1855
|
+
reasoning: false,
|
|
1856
|
+
input: ["text"],
|
|
1857
|
+
contextWindow: 256e3,
|
|
1858
|
+
maxTokens: 4096
|
|
1859
|
+
},
|
|
1860
|
+
{
|
|
1861
|
+
id: "kimi-k2.5",
|
|
1862
|
+
name: "Kimi K2.5 Coding",
|
|
1863
|
+
reasoning: false,
|
|
1864
|
+
input: ["text"],
|
|
1865
|
+
contextWindow: 256e3,
|
|
1866
|
+
maxTokens: 4096
|
|
1867
|
+
}
|
|
1868
|
+
];
|
|
1869
|
+
function buildVolcModelDefinition(entry, cost) {
|
|
1870
|
+
return {
|
|
1871
|
+
id: entry.id,
|
|
1872
|
+
name: entry.name,
|
|
1873
|
+
reasoning: entry.reasoning,
|
|
1874
|
+
input: [...entry.input],
|
|
1875
|
+
cost,
|
|
1876
|
+
contextWindow: entry.contextWindow,
|
|
1877
|
+
maxTokens: entry.maxTokens
|
|
1878
|
+
};
|
|
1879
|
+
}
|
|
1880
|
+
//#endregion
|
|
1881
|
+
//#region src/agents/byteplus-models.ts
|
|
1882
|
+
const BYTEPLUS_BASE_URL = "https://ark.ap-southeast.bytepluses.com/api/v3";
|
|
1883
|
+
const BYTEPLUS_CODING_BASE_URL = "https://ark.ap-southeast.bytepluses.com/api/coding/v3";
|
|
1884
|
+
const BYTEPLUS_DEFAULT_COST = {
|
|
1885
|
+
input: 1e-4,
|
|
1886
|
+
output: 2e-4,
|
|
1887
|
+
cacheRead: 0,
|
|
1888
|
+
cacheWrite: 0
|
|
1889
|
+
};
|
|
1890
|
+
/**
|
|
1891
|
+
* Complete catalog of BytePlus ARK models.
|
|
1892
|
+
*
|
|
1893
|
+
* BytePlus ARK provides access to various models
|
|
1894
|
+
* through the ARK API. Authentication requires a BYTEPLUS_API_KEY.
|
|
1895
|
+
*/
|
|
1896
|
+
const BYTEPLUS_MODEL_CATALOG = [
|
|
1897
|
+
{
|
|
1898
|
+
id: "seed-1-8-251228",
|
|
1899
|
+
name: "Seed 1.8",
|
|
1900
|
+
reasoning: false,
|
|
1901
|
+
input: ["text", "image"],
|
|
1902
|
+
contextWindow: 256e3,
|
|
1903
|
+
maxTokens: 4096
|
|
1904
|
+
},
|
|
1905
|
+
VOLC_MODEL_KIMI_K2_5,
|
|
1906
|
+
VOLC_MODEL_GLM_4_7
|
|
1907
|
+
];
|
|
1908
|
+
function buildBytePlusModelDefinition(entry) {
|
|
1909
|
+
return buildVolcModelDefinition(entry, BYTEPLUS_DEFAULT_COST);
|
|
1910
|
+
}
|
|
1911
|
+
const BYTEPLUS_CODING_MODEL_CATALOG = VOLC_SHARED_CODING_MODEL_CATALOG;
|
|
1912
|
+
//#endregion
|
|
1913
|
+
//#region src/agents/doubao-models.ts
|
|
1914
|
+
const DOUBAO_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3";
|
|
1915
|
+
const DOUBAO_CODING_BASE_URL = "https://ark.cn-beijing.volces.com/api/coding/v3";
|
|
1916
|
+
const DOUBAO_DEFAULT_COST = {
|
|
1917
|
+
input: 1e-4,
|
|
1918
|
+
output: 2e-4,
|
|
1919
|
+
cacheRead: 0,
|
|
1920
|
+
cacheWrite: 0
|
|
1921
|
+
};
|
|
1922
|
+
/**
|
|
1923
|
+
* Complete catalog of Volcano Engine models.
|
|
1924
|
+
*
|
|
1925
|
+
* Volcano Engine provides access to models
|
|
1926
|
+
* through the API. Authentication requires a Volcano Engine API Key.
|
|
1927
|
+
*/
|
|
1928
|
+
const DOUBAO_MODEL_CATALOG = [
|
|
1929
|
+
{
|
|
1930
|
+
id: "doubao-seed-code-preview-251028",
|
|
1931
|
+
name: "doubao-seed-code-preview-251028",
|
|
1932
|
+
reasoning: false,
|
|
1933
|
+
input: ["text", "image"],
|
|
1934
|
+
contextWindow: 256e3,
|
|
1935
|
+
maxTokens: 4096
|
|
1936
|
+
},
|
|
1937
|
+
{
|
|
1938
|
+
id: "doubao-seed-1-8-251228",
|
|
1939
|
+
name: "Doubao Seed 1.8",
|
|
1940
|
+
reasoning: false,
|
|
1941
|
+
input: ["text", "image"],
|
|
1942
|
+
contextWindow: 256e3,
|
|
1943
|
+
maxTokens: 4096
|
|
1944
|
+
},
|
|
1945
|
+
VOLC_MODEL_KIMI_K2_5,
|
|
1946
|
+
VOLC_MODEL_GLM_4_7,
|
|
1947
|
+
{
|
|
1948
|
+
id: "deepseek-v3-2-251201",
|
|
1949
|
+
name: "DeepSeek V3.2",
|
|
1950
|
+
reasoning: false,
|
|
1951
|
+
input: ["text", "image"],
|
|
1952
|
+
contextWindow: 128e3,
|
|
1953
|
+
maxTokens: 4096
|
|
1954
|
+
}
|
|
1955
|
+
];
|
|
1956
|
+
function buildDoubaoModelDefinition(entry) {
|
|
1957
|
+
return buildVolcModelDefinition(entry, DOUBAO_DEFAULT_COST);
|
|
1958
|
+
}
|
|
1959
|
+
const DOUBAO_CODING_MODEL_CATALOG = [...VOLC_SHARED_CODING_MODEL_CATALOG, {
|
|
1960
|
+
id: "doubao-seed-code-preview-251028",
|
|
1961
|
+
name: "Doubao Seed Code Preview",
|
|
1962
|
+
reasoning: false,
|
|
1963
|
+
input: ["text"],
|
|
1964
|
+
contextWindow: 256e3,
|
|
1965
|
+
maxTokens: 4096
|
|
1966
|
+
}];
|
|
1967
|
+
//#endregion
|
|
1968
|
+
//#region src/agents/vllm-defaults.ts
|
|
1969
|
+
const VLLM_DEFAULT_BASE_URL = "http://127.0.0.1:8000/v1";
|
|
1970
|
+
const VLLM_PROVIDER_LABEL = "vLLM";
|
|
1971
|
+
const VLLM_DEFAULT_API_KEY_ENV_VAR = "VLLM_API_KEY";
|
|
1972
|
+
const VLLM_MODEL_PLACEHOLDER = "meta-llama/Meta-Llama-3-8B-Instruct";
|
|
1973
|
+
//#endregion
|
|
1974
|
+
//#region src/agents/sglang-defaults.ts
|
|
1975
|
+
const SGLANG_DEFAULT_BASE_URL = "http://127.0.0.1:30000/v1";
|
|
1976
|
+
const SGLANG_PROVIDER_LABEL = "SGLang";
|
|
1977
|
+
const SGLANG_DEFAULT_API_KEY_ENV_VAR = "SGLANG_API_KEY";
|
|
1978
|
+
const SGLANG_MODEL_PLACEHOLDER = "Qwen/Qwen3-8B";
|
|
1979
|
+
//#endregion
|
|
1980
|
+
//#region src/agents/vercel-ai-gateway.ts
|
|
1981
|
+
const VERCEL_AI_GATEWAY_PROVIDER_ID = "vercel-ai-gateway";
|
|
1982
|
+
const VERCEL_AI_GATEWAY_BASE_URL = "https://ai-gateway.vercel.sh";
|
|
1983
|
+
`${VERCEL_AI_GATEWAY_PROVIDER_ID}`;
|
|
1984
|
+
const VERCEL_AI_GATEWAY_DEFAULT_COST = {
|
|
1985
|
+
input: 0,
|
|
1986
|
+
output: 0,
|
|
1987
|
+
cacheRead: 0,
|
|
1988
|
+
cacheWrite: 0
|
|
1989
|
+
};
|
|
1990
|
+
const log = createSubsystemLogger("agents/vercel-ai-gateway");
|
|
1991
|
+
const STATIC_VERCEL_AI_GATEWAY_MODEL_CATALOG = [
|
|
1992
|
+
{
|
|
1993
|
+
id: "anthropic/claude-opus-4.6",
|
|
1994
|
+
name: "Claude Opus 4.6",
|
|
1995
|
+
reasoning: true,
|
|
1996
|
+
input: ["text", "image"],
|
|
1997
|
+
contextWindow: 1e6,
|
|
1998
|
+
maxTokens: 128e3,
|
|
1999
|
+
cost: {
|
|
2000
|
+
input: 5,
|
|
2001
|
+
output: 25,
|
|
2002
|
+
cacheRead: .5,
|
|
2003
|
+
cacheWrite: 6.25
|
|
2004
|
+
}
|
|
2005
|
+
},
|
|
2006
|
+
{
|
|
2007
|
+
id: "openai/gpt-5.4",
|
|
2008
|
+
name: "GPT 5.4",
|
|
2009
|
+
reasoning: true,
|
|
2010
|
+
input: ["text", "image"],
|
|
2011
|
+
contextWindow: 2e5,
|
|
2012
|
+
maxTokens: 128e3,
|
|
2013
|
+
cost: {
|
|
2014
|
+
input: 2.5,
|
|
2015
|
+
output: 15,
|
|
2016
|
+
cacheRead: .25
|
|
2017
|
+
}
|
|
2018
|
+
},
|
|
2019
|
+
{
|
|
2020
|
+
id: "openai/gpt-5.4-pro",
|
|
2021
|
+
name: "GPT 5.4 Pro",
|
|
2022
|
+
reasoning: true,
|
|
2023
|
+
input: ["text", "image"],
|
|
2024
|
+
contextWindow: 2e5,
|
|
2025
|
+
maxTokens: 128e3,
|
|
2026
|
+
cost: {
|
|
2027
|
+
input: 30,
|
|
2028
|
+
output: 180,
|
|
2029
|
+
cacheRead: 0
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
];
|
|
2033
|
+
function toPerMillionCost(value) {
|
|
2034
|
+
const numeric = typeof value === "number" ? value : typeof value === "string" ? Number.parseFloat(value) : NaN;
|
|
2035
|
+
if (!Number.isFinite(numeric) || numeric < 0) return 0;
|
|
2036
|
+
return numeric * 1e6;
|
|
2037
|
+
}
|
|
2038
|
+
function normalizeCost(pricing) {
|
|
2039
|
+
return {
|
|
2040
|
+
input: toPerMillionCost(pricing?.input),
|
|
2041
|
+
output: toPerMillionCost(pricing?.output),
|
|
2042
|
+
cacheRead: toPerMillionCost(pricing?.input_cache_read),
|
|
2043
|
+
cacheWrite: toPerMillionCost(pricing?.input_cache_write)
|
|
2044
|
+
};
|
|
2045
|
+
}
|
|
2046
|
+
function buildStaticModelDefinition(model) {
|
|
2047
|
+
return {
|
|
2048
|
+
id: model.id,
|
|
2049
|
+
name: model.name,
|
|
2050
|
+
reasoning: model.reasoning,
|
|
2051
|
+
input: model.input,
|
|
2052
|
+
contextWindow: model.contextWindow,
|
|
2053
|
+
maxTokens: model.maxTokens,
|
|
2054
|
+
cost: {
|
|
2055
|
+
...VERCEL_AI_GATEWAY_DEFAULT_COST,
|
|
2056
|
+
...model.cost
|
|
2057
|
+
}
|
|
2058
|
+
};
|
|
2059
|
+
}
|
|
2060
|
+
function getStaticFallbackModel(id) {
|
|
2061
|
+
const fallback = STATIC_VERCEL_AI_GATEWAY_MODEL_CATALOG.find((model) => model.id === id);
|
|
2062
|
+
return fallback ? buildStaticModelDefinition(fallback) : void 0;
|
|
2063
|
+
}
|
|
2064
|
+
function getStaticVercelAiGatewayModelCatalog() {
|
|
2065
|
+
return STATIC_VERCEL_AI_GATEWAY_MODEL_CATALOG.map(buildStaticModelDefinition);
|
|
2066
|
+
}
|
|
2067
|
+
function buildDiscoveredModelDefinition(model) {
|
|
2068
|
+
const id = typeof model.id === "string" ? model.id.trim() : "";
|
|
2069
|
+
if (!id) return null;
|
|
2070
|
+
const fallback = getStaticFallbackModel(id);
|
|
2071
|
+
const contextWindow = typeof model.context_window === "number" && Number.isFinite(model.context_window) ? model.context_window : fallback?.contextWindow ?? 2e5;
|
|
2072
|
+
const maxTokens = typeof model.max_tokens === "number" && Number.isFinite(model.max_tokens) ? model.max_tokens : fallback?.maxTokens ?? 128e3;
|
|
2073
|
+
const normalizedCost = normalizeCost(model.pricing);
|
|
2074
|
+
return {
|
|
2075
|
+
id,
|
|
2076
|
+
name: (typeof model.name === "string" ? model.name.trim() : "") || fallback?.name || id,
|
|
2077
|
+
reasoning: Array.isArray(model.tags) && model.tags.includes("reasoning") ? true : fallback?.reasoning ?? false,
|
|
2078
|
+
input: Array.isArray(model.tags) ? model.tags.includes("vision") ? ["text", "image"] : ["text"] : fallback?.input ?? ["text"],
|
|
2079
|
+
contextWindow,
|
|
2080
|
+
maxTokens,
|
|
2081
|
+
cost: normalizedCost.input > 0 || normalizedCost.output > 0 || normalizedCost.cacheRead > 0 || normalizedCost.cacheWrite > 0 ? normalizedCost : fallback?.cost ?? VERCEL_AI_GATEWAY_DEFAULT_COST
|
|
2082
|
+
};
|
|
2083
|
+
}
|
|
2084
|
+
async function discoverVercelAiGatewayModels() {
|
|
2085
|
+
if (process.env.VITEST || false) return getStaticVercelAiGatewayModelCatalog();
|
|
2086
|
+
try {
|
|
2087
|
+
const response = await fetch(`${VERCEL_AI_GATEWAY_BASE_URL}/v1/models`, { signal: AbortSignal.timeout(5e3) });
|
|
2088
|
+
if (!response.ok) {
|
|
2089
|
+
log.warn(`Failed to discover Vercel AI Gateway models: HTTP ${response.status}`);
|
|
2090
|
+
return getStaticVercelAiGatewayModelCatalog();
|
|
2091
|
+
}
|
|
2092
|
+
const discovered = ((await response.json()).data ?? []).map(buildDiscoveredModelDefinition).filter((entry) => entry !== null);
|
|
2093
|
+
return discovered.length > 0 ? discovered : getStaticVercelAiGatewayModelCatalog();
|
|
2094
|
+
} catch (error) {
|
|
2095
|
+
log.warn(`Failed to discover Vercel AI Gateway models: ${String(error)}`);
|
|
2096
|
+
return getStaticVercelAiGatewayModelCatalog();
|
|
2097
|
+
}
|
|
2098
|
+
}
|
|
2099
|
+
//#endregion
|
|
2100
|
+
//#region src/plugin-sdk/provider-models.ts
|
|
2101
|
+
function buildKilocodeModelDefinition() {
|
|
2102
|
+
return {
|
|
2103
|
+
id: KILOCODE_DEFAULT_MODEL_ID,
|
|
2104
|
+
name: KILOCODE_DEFAULT_MODEL_NAME,
|
|
2105
|
+
reasoning: true,
|
|
2106
|
+
input: ["text", "image"],
|
|
2107
|
+
cost: KILOCODE_DEFAULT_COST,
|
|
2108
|
+
contextWindow: KILOCODE_DEFAULT_CONTEXT_WINDOW,
|
|
2109
|
+
maxTokens: KILOCODE_DEFAULT_MAX_TOKENS
|
|
2110
|
+
};
|
|
2111
|
+
}
|
|
2112
|
+
//#endregion
|
|
2113
|
+
export { XAI_DEFAULT_MODEL_REF as $, SYNTHETIC_BASE_URL as A, applyGoogleGeminiModelDefault as At, OLLAMA_DEFAULT_COST as B, KILOCODE_DEFAULT_MODEL_NAME as Bt, VENICE_DEFAULT_MODEL_REF as C, MINIMAX_LM_STUDIO_COST as Ct, TOGETHER_BASE_URL as D, OPENAI_DEFAULT_MODEL as Dt, discoverVeniceModels as E, GOOGLE_GEMINI_DEFAULT_MODEL as Et, HUGGINGFACE_BASE_URL as F, KILOCODE_BASE_URL as Ft, isReasoningModelHeuristic as G, buildOllamaModelDefinition as H, KILOCODE_MODEL_CATALOG as Ht, HUGGINGFACE_MODEL_CATALOG as I, KILOCODE_DEFAULT_CONTEXT_WINDOW as It, CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF as J, resolveOllamaApiBase as K, buildHuggingfaceModelDefinition as L, KILOCODE_DEFAULT_COST as Lt, SYNTHETIC_MODEL_CATALOG as M, applyPrimaryModel as Mt, buildSyntheticModelDefinition as N, cloneFirstTemplateModel as Nt, TOGETHER_MODEL_CATALOG as O, OPENCODE_GO_DEFAULT_MODEL_REF as Ot, discoverKilocodeModels as P, normalizeModelCompat as Pt, XAI_DEFAULT_MODEL_ID as Q, discoverHuggingfaceModels as R, KILOCODE_DEFAULT_MAX_TOKENS as Rt, VENICE_BASE_URL as S, MINIMAX_HOSTED_MODEL_REF as St, buildVeniceModelDefinition as T, OPENCODE_ZEN_DEFAULT_MODEL_REF as Tt, enrichOllamaModelsWithContext as U, resolveRetryConfig as Ut, OLLAMA_DEFAULT_MAX_TOKENS as V, KILOCODE_DEFAULT_MODEL_REF as Vt, fetchOllamaModels as W, retryAsync as Wt, resolveCloudflareAiGatewayBaseUrl as X, buildCloudflareAiGatewayModelDefinition as Y, XAI_BASE_URL as Z, BYTEPLUS_BASE_URL as _, DEFAULT_MINIMAX_BASE_URL as _t, SGLANG_DEFAULT_BASE_URL as a, MOONSHOT_BASE_URL as at, BYTEPLUS_MODEL_CATALOG as b, MINIMAX_HOSTED_COST as bt, VLLM_DEFAULT_API_KEY_ENV_VAR as c, MODELSTUDIO_DEFAULT_MODEL_ID as ct, VLLM_PROVIDER_LABEL as d, buildModelStudioDefaultModelDefinition as dt, buildXaiModelDefinition as et, DOUBAO_BASE_URL as f, buildModelStudioModelDefinition as ft, buildDoubaoModelDefinition as g, buildMistralModelDefinition as gt, DOUBAO_MODEL_CATALOG as h, MISTRAL_DEFAULT_MODEL_REF as ht, SGLANG_DEFAULT_API_KEY_ENV_VAR as i, applyMoonshotConfigCn as it, SYNTHETIC_DEFAULT_MODEL_REF as j, applyOpenAIConfig as jt, buildTogetherModelDefinition as k, OPENCODE_ZEN_DEFAULT_MODEL$1 as kt, VLLM_DEFAULT_BASE_URL as l, MODELSTUDIO_DEFAULT_MODEL_REF as lt, DOUBAO_CODING_MODEL_CATALOG as m, MISTRAL_DEFAULT_MODEL_ID as mt, VERCEL_AI_GATEWAY_BASE_URL as n, MOONSHOT_DEFAULT_MODEL_REF as nt, SGLANG_MODEL_PLACEHOLDER as o, buildMoonshotProvider as ot, DOUBAO_CODING_BASE_URL as p, MISTRAL_BASE_URL as pt, OLLAMA_DEFAULT_BASE_URL as q, discoverVercelAiGatewayModels as r, applyMoonshotConfig as rt, SGLANG_PROVIDER_LABEL as s, MODELSTUDIO_CN_BASE_URL as st, buildKilocodeModelDefinition as t, MOONSHOT_CN_BASE_URL as tt, VLLM_MODEL_PLACEHOLDER as u, MODELSTUDIO_GLOBAL_BASE_URL as ut, BYTEPLUS_CODING_BASE_URL as v, MINIMAX_API_BASE_URL as vt, VENICE_MODEL_CATALOG as w, buildMinimaxApiModelDefinition as wt, buildBytePlusModelDefinition as x, MINIMAX_HOSTED_MODEL_ID as xt, BYTEPLUS_CODING_MODEL_CATALOG as y, MINIMAX_CN_API_BASE_URL as yt, OLLAMA_DEFAULT_CONTEXT_WINDOW as z, KILOCODE_DEFAULT_MODEL_ID as zt };
|