@fudrouter/fsrouter 0.6.72 → 0.6.74
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/lib/headroom/detect.js +97 -7
- package/dist/lib/headroom/process.js +136 -4
- package/dist/open-sse/config/appConstants.js +23 -79
- package/dist/open-sse/config/cliFingerprints.js +1 -1
- package/dist/open-sse/config/errorConfig.js +0 -11
- package/dist/open-sse/config/grokCli.js +10 -0
- package/dist/open-sse/config/kiroConstants.js +99 -46
- package/dist/open-sse/config/runtimeConfig.js +2 -0
- package/dist/open-sse/config/ttsModels.js +2 -0
- package/dist/open-sse/executors/antigravity.js +250 -164
- package/dist/open-sse/executors/base.js +16 -11
- package/dist/open-sse/executors/codex.js +269 -1108
- package/dist/open-sse/executors/commandCode.js +1 -1
- package/dist/open-sse/executors/commandcode.js +10 -4
- package/dist/open-sse/executors/cursor.js +96 -203
- package/dist/open-sse/executors/default.js +146 -244
- package/dist/open-sse/executors/github.js +128 -73
- package/dist/open-sse/executors/grok-cli.js +527 -94
- package/dist/open-sse/executors/grok-web.js +5 -7
- package/dist/open-sse/executors/index.js +12 -0
- package/dist/open-sse/executors/kiro.js +150 -61
- package/dist/open-sse/executors/opencode-go.js +12 -4
- package/dist/open-sse/executors/opencode.js +1 -1
- package/dist/open-sse/executors/perplexity-web.js +20 -96
- package/dist/open-sse/executors/qoder.js +28 -18
- package/dist/open-sse/executors/vertex.js +53 -7
- package/dist/open-sse/executors/xiaomi-tokenplan.js +6 -5
- package/dist/open-sse/handlers/chatCore/nonStreamingHandler.js +97 -85
- package/dist/open-sse/handlers/chatCore/requestDetail.js +32 -8
- package/dist/open-sse/handlers/chatCore/sseToJsonHandler.js +13 -7
- package/dist/open-sse/handlers/chatCore/streamingHandler.js +74 -25
- package/dist/open-sse/handlers/chatCore.js +35 -41
- package/dist/open-sse/handlers/embeddingProviders/index.js +1 -0
- package/dist/open-sse/handlers/embeddingProviders/openai.js +8 -16
- package/dist/open-sse/handlers/imageProviders/blackForestLabs.js +2 -21
- package/dist/open-sse/handlers/imageProviders/cloudflareAi.js +2 -30
- package/dist/open-sse/handlers/imageProviders/codex.js +2 -20
- package/dist/open-sse/handlers/imageProviders/comfyui.js +5 -18
- package/dist/open-sse/handlers/imageProviders/falAi.js +2 -22
- package/dist/open-sse/handlers/imageProviders/gemini.js +2 -16
- package/dist/open-sse/handlers/imageProviders/huggingface.js +2 -17
- package/dist/open-sse/handlers/imageProviders/index.js +3 -4
- package/dist/open-sse/handlers/imageProviders/leonardo.js +1 -1
- package/dist/open-sse/handlers/imageProviders/nanobanana.js +4 -23
- package/dist/open-sse/handlers/imageProviders/openai.js +15 -43
- package/dist/open-sse/handlers/imageProviders/runwayml.js +2 -26
- package/dist/open-sse/handlers/imageProviders/sdwebui.js +4 -20
- package/dist/open-sse/handlers/imageProviders/stabilityAi.js +2 -26
- package/dist/open-sse/handlers/imageProviders/weavy.js +1 -1
- package/dist/open-sse/handlers/search/chatSearch.js +60 -14
- package/dist/open-sse/handlers/ttsProviders/gemini.js +14 -3
- package/dist/open-sse/handlers/ttsProviders/index.js +4 -2
- package/dist/open-sse/handlers/ttsProviders/openai.js +4 -1
- package/dist/open-sse/handlers/ttsProviders/openrouter.js +7 -4
- package/dist/open-sse/handlers/videoCore.js +166 -0
- package/dist/open-sse/handlers/videoProviders/weavy.js +1 -1
- package/dist/open-sse/mcp-server/catalog.js +1 -1
- package/dist/open-sse/mcp-server/server.js +2 -2
- package/dist/open-sse/mcp-server/tools/advancedTools.js +2 -2
- package/dist/open-sse/mcp-server/tools/agentSkillTools.js +1 -1
- package/dist/open-sse/mcp-server/tools/compressionTools.js +4 -4
- package/dist/open-sse/mcp-server/tools/gamificationTools.js +10 -10
- package/dist/open-sse/mcp-server/tools/githubSkillTools.js +1 -1
- package/dist/open-sse/mcp-server/tools/memoryTools.js +3 -3
- package/dist/open-sse/mcp-server/tools/notionTools.js +2 -2
- package/dist/open-sse/mcp-server/tools/obsidianTools.js +2 -2
- package/dist/open-sse/mcp-server/tools/pickFastestModel.js +1 -1
- package/dist/open-sse/mcp-server/tools/pluginTools.js +4 -4
- package/dist/open-sse/mcp-server/tools/skillTools.js +2 -2
- package/dist/open-sse/providers/capabilities.js +24 -4
- package/dist/open-sse/providers/registry/alicode-intl.js +1 -1
- package/dist/open-sse/providers/registry/anthropic.js +1 -8
- package/dist/open-sse/providers/registry/codex.js +0 -9
- package/dist/open-sse/providers/registry/cohere.js +0 -2
- package/dist/open-sse/providers/registry/gemini.js +0 -2
- package/dist/open-sse/providers/registry/github.js +9 -6
- package/dist/open-sse/providers/registry/grok-cli.js +28 -18
- package/dist/open-sse/providers/registry/index.js +74 -80
- package/dist/open-sse/providers/registry/kiro.js +12 -0
- package/dist/open-sse/providers/registry/mistral.js +0 -3
- package/dist/open-sse/providers/registry/openai.js +0 -3
- package/dist/open-sse/providers/registry/perplexity.js +0 -2
- package/dist/open-sse/providers/registry/xai.js +5 -3
- package/dist/open-sse/rtk/autodetect.js +10 -2
- package/dist/open-sse/rtk/caveman.js +2 -93
- package/dist/open-sse/rtk/cavemanPrompts.js +34 -2
- package/dist/open-sse/rtk/constants.js +7 -2
- package/dist/open-sse/rtk/headroom.js +133 -0
- package/dist/open-sse/rtk/ponytail.js +1 -1
- package/dist/open-sse/rtk/registry.js +2 -0
- package/dist/open-sse/services/accountFallback.js +0 -108
- package/dist/open-sse/services/combo/quotaExhaustionCutoff.js +2 -2
- package/dist/open-sse/services/combo/quotaShareStrategy.js +1 -1
- package/dist/open-sse/services/combo/resolveAutoStrategy.js +1 -1
- package/dist/open-sse/services/combo/sessionStickiness.js +1 -1
- package/dist/open-sse/services/combo/targetSorters.js +2 -2
- package/dist/open-sse/services/combo/validateQuality.js +1 -1
- package/dist/open-sse/services/comboConfig.js +1 -1
- package/dist/open-sse/services/emergencyFallback.js +1 -1
- package/dist/open-sse/services/grokCliModels.js +127 -0
- package/dist/open-sse/services/model.js +7 -1
- package/dist/open-sse/services/provider.js +1 -1
- package/dist/open-sse/services/proxyAutoSelector.js +1 -1
- package/dist/open-sse/services/tokenRefresh/providers.js +3 -3
- package/dist/open-sse/services/usage/codex.js +148 -214
- package/dist/open-sse/services/usage/grok-cli.js +61 -7
- package/dist/open-sse/services/usage/misc.js +0 -19
- package/dist/open-sse/services/usage.js +0 -2
- package/dist/open-sse/translator/concerns/paramSupport.js +2 -2
- package/dist/open-sse/translator/concerns/thinkingUnified.js +6 -0
- package/dist/open-sse/translator/index.js +97 -59
- package/dist/open-sse/translator/request/claude-to-kiro.js +67 -40
- package/dist/open-sse/translator/request/openai-responses.js +1 -0
- package/dist/open-sse/translator/request/openai-to-commandcode.js +0 -4
- package/dist/open-sse/translator/request/openai-to-kiro.js +49 -20
- package/dist/open-sse/translator/response/commandcode-to-openai.js +0 -4
- package/dist/open-sse/utils/bypassHandler.js +18 -3
- package/dist/open-sse/utils/claudeCloaking.js +15 -5
- package/dist/open-sse/utils/cursorImages.js +1 -1
- package/dist/open-sse/utils/error.js +0 -17
- package/dist/open-sse/utils/keepaliveThreshold.js +4 -4
- package/dist/open-sse/utils/kiroSessionReplay.js +125 -0
- package/dist/open-sse/utils/noThinkingAlias.js +1 -1
- package/dist/open-sse/utils/proxyFetch.js +0 -1
- package/dist/open-sse/utils/reasoningContentInjector.js +4 -7
- package/dist/open-sse/utils/responsesStatePolicy.js +1 -1
- package/dist/open-sse/utils/responsesStreamHelpers.js +1 -0
- package/dist/open-sse/utils/sessionManager.js +49 -22
- package/dist/open-sse/utils/stream.js +54 -77
- package/dist/open-sse/utils/streamHandler.js +19 -15
- package/dist/open-sse/utils/streamHelpers.js +2 -17
- package/dist/open-sse/utils/usageTracking.js +103 -12
- package/dist/routes/headroom/extras/route.js +58 -0
- package/dist/routes/headroom/restart/route.js +33 -0
- package/open-sse/config/appConstants.js +23 -79
- package/open-sse/config/errorConfig.js +0 -11
- package/open-sse/config/grokCli.js +10 -0
- package/open-sse/config/kiroConstants.js +99 -46
- package/open-sse/config/runtimeConfig.js +2 -0
- package/open-sse/config/ttsModels.js +2 -0
- package/open-sse/executors/antigravity.js +250 -164
- package/open-sse/executors/base.js +16 -11
- package/open-sse/executors/codex.js +269 -1108
- package/open-sse/executors/commandcode.js +10 -4
- package/open-sse/executors/cursor.js +96 -203
- package/open-sse/executors/default.js +146 -244
- package/open-sse/executors/github.js +128 -73
- package/open-sse/executors/grok-cli.js +527 -94
- package/open-sse/executors/grok-web.js +5 -7
- package/open-sse/executors/index.js +12 -0
- package/open-sse/executors/kiro.js +150 -61
- package/open-sse/executors/opencode-go.js +12 -4
- package/open-sse/executors/opencode.js +1 -1
- package/open-sse/executors/perplexity-web.js +20 -96
- package/open-sse/executors/qoder.js +28 -18
- package/open-sse/executors/vertex.js +53 -7
- package/open-sse/executors/xiaomi-tokenplan.js +6 -5
- package/open-sse/handlers/chatCore/nonStreamingHandler.js +97 -85
- package/open-sse/handlers/chatCore/requestDetail.js +32 -8
- package/open-sse/handlers/chatCore/sseToJsonHandler.js +13 -7
- package/open-sse/handlers/chatCore/streamingHandler.js +74 -25
- package/open-sse/handlers/chatCore.js +35 -41
- package/open-sse/handlers/embeddingProviders/index.js +1 -0
- package/open-sse/handlers/embeddingProviders/openai.js +8 -16
- package/open-sse/handlers/imageProviders/blackForestLabs.js +2 -21
- package/open-sse/handlers/imageProviders/cloudflareAi.js +2 -30
- package/open-sse/handlers/imageProviders/codex.js +2 -20
- package/open-sse/handlers/imageProviders/comfyui.js +5 -18
- package/open-sse/handlers/imageProviders/falAi.js +2 -22
- package/open-sse/handlers/imageProviders/gemini.js +2 -16
- package/open-sse/handlers/imageProviders/huggingface.js +2 -17
- package/open-sse/handlers/imageProviders/index.js +3 -4
- package/open-sse/handlers/imageProviders/leonardo.js +1 -1
- package/open-sse/handlers/imageProviders/nanobanana.js +4 -23
- package/open-sse/handlers/imageProviders/openai.js +15 -43
- package/open-sse/handlers/imageProviders/runwayml.js +2 -26
- package/open-sse/handlers/imageProviders/sdwebui.js +4 -20
- package/open-sse/handlers/imageProviders/stabilityAi.js +2 -26
- package/open-sse/handlers/imageProviders/weavy.js +1 -1
- package/open-sse/handlers/search/chatSearch.js +60 -14
- package/open-sse/handlers/ttsProviders/gemini.js +14 -3
- package/open-sse/handlers/ttsProviders/index.js +4 -2
- package/open-sse/handlers/ttsProviders/openai.js +4 -1
- package/open-sse/handlers/ttsProviders/openrouter.js +7 -4
- package/open-sse/handlers/videoCore.js +166 -0
- package/open-sse/handlers/videoProviders/weavy.js +1 -1
- package/open-sse/mcp-server/audit.js +1 -1
- package/open-sse/mcp-server/catalog.js +2 -2
- package/open-sse/mcp-server/descriptionCompressor.js +1 -1
- package/open-sse/mcp-server/mcpCallerIdentity.js +1 -1
- package/open-sse/mcp-server/schemas/tools.js +1 -1
- package/open-sse/mcp-server/server.js +4 -4
- package/open-sse/mcp-server/tools/advancedTools.js +5 -5
- package/open-sse/mcp-server/tools/agentSkillTools.js +1 -1
- package/open-sse/mcp-server/tools/compressionTools.js +4 -4
- package/open-sse/mcp-server/tools/gamificationTools.js +10 -10
- package/open-sse/mcp-server/tools/githubSkillTools.js +1 -1
- package/open-sse/mcp-server/tools/memoryTools.js +3 -3
- package/open-sse/mcp-server/tools/notionTools.js +2 -2
- package/open-sse/mcp-server/tools/obsidianTools.js +2 -2
- package/open-sse/mcp-server/tools/pickFastestModel.js +3 -3
- package/open-sse/mcp-server/tools/pluginTools.js +4 -4
- package/open-sse/mcp-server/tools/skillTools.js +2 -2
- package/open-sse/providers/capabilities.js +24 -4
- package/open-sse/providers/registry/alicode-intl.js +1 -1
- package/open-sse/providers/registry/anthropic.js +1 -8
- package/open-sse/providers/registry/codex.js +0 -9
- package/open-sse/providers/registry/cohere.js +0 -2
- package/open-sse/providers/registry/gemini.js +0 -2
- package/open-sse/providers/registry/github.js +9 -6
- package/open-sse/providers/registry/grok-cli.js +28 -18
- package/open-sse/providers/registry/index.js +74 -80
- package/open-sse/providers/registry/kiro.js +12 -0
- package/open-sse/providers/registry/mistral.js +0 -3
- package/open-sse/providers/registry/openai.js +0 -3
- package/open-sse/providers/registry/perplexity.js +0 -2
- package/open-sse/providers/registry/xai.js +5 -3
- package/open-sse/rtk/autodetect.js +10 -2
- package/open-sse/rtk/caveman.js +2 -93
- package/open-sse/rtk/cavemanPrompts.js +34 -2
- package/open-sse/rtk/constants.js +7 -2
- package/open-sse/rtk/headroom.js +133 -0
- package/open-sse/rtk/ponytail.js +1 -1
- package/open-sse/rtk/registry.js +2 -0
- package/open-sse/services/accountFallback.js +0 -108
- package/open-sse/services/combo/quotaExhaustionCutoff.js +2 -2
- package/open-sse/services/combo/quotaShareStrategy.js +1 -1
- package/open-sse/services/combo/resolveAutoStrategy.js +1 -1
- package/open-sse/services/combo/sessionStickiness.js +1 -1
- package/open-sse/services/combo/shadowRouting.js +1 -1
- package/open-sse/services/combo/targetSorters.js +4 -4
- package/open-sse/services/combo/validateQuality.js +1 -1
- package/open-sse/services/evalRouting.js +1 -1
- package/open-sse/services/grokCliModels.js +127 -0
- package/open-sse/services/model.js +7 -1
- package/open-sse/services/modelCapabilities.js +1 -1
- package/open-sse/services/modelFamilyFallback.js +1 -1
- package/open-sse/services/provider.js +1 -1
- package/open-sse/services/providerCooldownTracker.js +1 -1
- package/open-sse/services/rateLimitManager.js +1 -1
- package/open-sse/services/tokenRefresh/providers.js +3 -3
- package/open-sse/services/usage/codex.js +148 -214
- package/open-sse/services/usage/grok-cli.js +61 -7
- package/open-sse/services/usage/misc.js +0 -19
- package/open-sse/services/usage.js +0 -2
- package/open-sse/translator/concerns/paramSupport.js +2 -2
- package/open-sse/translator/concerns/thinkingUnified.js +6 -0
- package/open-sse/translator/index.js +97 -59
- package/open-sse/translator/request/claude-to-kiro.js +67 -40
- package/open-sse/translator/request/openai-responses.js +1 -0
- package/open-sse/translator/request/openai-to-commandcode.js +0 -4
- package/open-sse/translator/request/openai-to-kiro.js +49 -20
- package/open-sse/translator/response/commandcode-to-openai.js +0 -4
- package/open-sse/utils/bypassHandler.js +18 -3
- package/open-sse/utils/claudeCloaking.js +15 -5
- package/open-sse/utils/error.js +0 -17
- package/open-sse/utils/kiroSessionReplay.js +125 -0
- package/open-sse/utils/logger.js +1 -1
- package/open-sse/utils/proxyFetch.js +0 -1
- package/open-sse/utils/reasoningContentInjector.js +4 -7
- package/open-sse/utils/responsesStreamHelpers.js +1 -0
- package/open-sse/utils/sessionManager.js +49 -22
- package/open-sse/utils/stream.js +54 -77
- package/open-sse/utils/streamHandler.js +19 -15
- package/open-sse/utils/streamHelpers.js +2 -17
- package/open-sse/utils/usageTracking.js +103 -12
- package/package.json +4 -7
- package/public/assets/EndpointPageClient.C2WMTYy0.js +6 -0
- package/public/assets/{Loading.Bj-WGl4k.js → Loading.BHPtQ9vj.js} +1 -1
- package/public/assets/{NoAuthProxyCard.qAv57b-0.js → NoAuthProxyCard.BDcXaWvM.js} +1 -1
- package/public/assets/index.Be3gbrBl.js +89 -0
- package/public/assets/index.COMgQZYj.css +1 -0
- package/public/assets/{page.CbkENBd5.js → page.-lpNgYAw.js} +1 -1
- package/public/assets/{page.CssmrzTT.js → page.11hpNKmq.js} +1 -1
- package/public/assets/{page.C72FTTJr.js → page.B-LxsnqU.js} +1 -1
- package/public/assets/{page.sOFOrxqq.js → page.B-dzeIUC.js} +1 -1
- package/public/assets/{page.CsxWmPoI.js → page.B-nBR75u.js} +1 -1
- package/public/assets/{page.Dx_GRRdT.js → page.B3QqvLep.js} +1 -1
- package/public/assets/{page.DPyOkPVo.js → page.B8xdkCWA.js} +1 -1
- package/public/assets/{page.DUI8kqOY.js → page.BFb7yUd8.js} +1 -1
- package/public/assets/page.BbPPdoas.js +1 -0
- package/public/assets/page.BdS20a1O.js +1 -0
- package/public/assets/{page.DibhF7f-.js → page.BfmI9KYe.js} +1 -1
- package/public/assets/{page.DX4Nno6M.js → page.BgGJovOg.js} +1 -1
- package/public/assets/{page.BnmTC5jG.js → page.C0gBvR4O.js} +1 -1
- package/public/assets/{page.D5gj98Oe.js → page.C6bYizL7.js} +1 -1
- package/public/assets/{page.vla5Mzki.js → page.C8sLEMa6.js} +1 -1
- package/public/assets/{page.CXd_R9yU.js → page.CCNsZBXp.js} +1 -1
- package/public/assets/{page.CQlVGoXg.js → page.CF_YSLwP.js} +1 -1
- package/public/assets/{page.BbO1pspY.js → page.CPTtRDxw.js} +1 -1
- package/public/assets/{page.D1oKew1j.js → page.CdMmlUEm.js} +1 -1
- package/public/assets/{page.DxMDTbSx.js → page.Cged1bOZ.js} +1 -1
- package/public/assets/{page.Cj5h09Zo.js → page.Ch647dVk.js} +1 -1
- package/public/assets/{page.DVIHRbxB.js → page.CpvXDkQF.js} +1 -1
- package/public/assets/{page.i4KDuWcM.js → page.CrBl7f8N.js} +1 -1
- package/public/assets/{page.BSLJ4tx5.js → page.CrP7niA2.js} +1 -1
- package/public/assets/{page.CnTop8Zt.js → page.CvUFZzXr.js} +1 -1
- package/public/assets/{page.O2ddJYoT.js → page.CyUqJPmx.js} +1 -1
- package/public/assets/{page.DBhu4Arl.js → page.D8Rp8fFR.js} +1 -1
- package/public/assets/{page.CPZav1_c.js → page.Df9qtrdG.js} +1 -1
- package/public/assets/{page.Qkkv8roc.js → page.DiL4Gwqe.js} +1 -1
- package/public/assets/{page.BdmJ3yY3.js → page.Dl1apZE2.js} +1 -1
- package/public/assets/{page.1qjqvrwX.js → page.HV0w1d5C.js} +1 -1
- package/public/assets/{page.ChX1NqmC.js → page.N1x4YL8_.js} +1 -1
- package/public/assets/{page.Dh5f0XJC.js → page.P2Ny5veR.js} +1 -1
- package/public/assets/{page.CSs3-gdt.js → page.fOOCr18J.js} +1 -1
- package/public/assets/{page.Ir7KvKcF.js → page.sUIPWIiF.js} +1 -1
- package/public/assets/{page.CzlQTyAL.js → page.tE7PpWYW.js} +1 -1
- package/public/assets/{page.DzZLqI5Q.js → page.uziaGZsT.js} +1 -1
- package/public/index.html +2 -2
- package/public/assets/EndpointPageClient.LyNNvZ4z.js +0 -6
- package/public/assets/index.BuPfZebu.css +0 -1
- package/public/assets/index.CShjRV_B.js +0 -89
- package/public/assets/page.DD_czjjP.js +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { resolve, normalize, isAbsolute } from "path";
|
|
3
|
-
import { listPlugins, getPluginByName, updatePluginConfig } from '
|
|
4
|
-
import { pluginManager } from '
|
|
5
|
-
import { validatePluginConfig } from '
|
|
3
|
+
import { listPlugins, getPluginByName, updatePluginConfig } from '../../../dist/lib/db/plugins.js';
|
|
4
|
+
import { pluginManager } from '../../../dist/lib/plugins/manager.js';
|
|
5
|
+
import { validatePluginConfig } from '../../../dist/lib/plugins/manifest.js';
|
|
6
6
|
function validatePluginPath(path) {
|
|
7
7
|
if (path.includes("\0")) {
|
|
8
8
|
throw new Error("Invalid path: contains null bytes");
|
|
@@ -151,7 +151,7 @@ const pluginTools = [
|
|
|
151
151
|
limit: z.number().min(1).max(100).default(20).describe("Max results to return")
|
|
152
152
|
}),
|
|
153
153
|
handler: async (args) => {
|
|
154
|
-
const { getPluginAnalytics, getPluginAnalyticsSummary } = await import('
|
|
154
|
+
const { getPluginAnalytics, getPluginAnalyticsSummary } = await import('../../../dist/lib/db/plugins.js');
|
|
155
155
|
const limit = args.limit || 20;
|
|
156
156
|
if (args.name) {
|
|
157
157
|
const rows = getPluginAnalytics(args.name).slice(0, limit);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { skillRegistry } from '
|
|
3
|
-
import { skillExecutor } from '
|
|
2
|
+
import { skillRegistry } from '../../../dist/lib/skills/registry.js';
|
|
3
|
+
import { skillExecutor } from '../../../dist/lib/skills/executor.js';
|
|
4
4
|
const SkillListSchema = z.object({
|
|
5
5
|
apiKeyId: z.string().optional(),
|
|
6
6
|
name: z.string().optional(),
|
|
@@ -98,6 +98,8 @@ export const MODEL_CAPABILITIES = {
|
|
|
98
98
|
"coder-model": { reasoning: true, thinkingFormat: "qwen", contextWindow: 1000000 },
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
+
const KIRO_GPT_5_6_CAPABILITIES = { vision: true, reasoning: true, search: true, thinkingFormat: "openai", contextWindow: 272000, maxOutput: 128000 };
|
|
102
|
+
|
|
101
103
|
/**
|
|
102
104
|
* Provider-specific capability overrides. Keyed by provider alias/id.
|
|
103
105
|
*/
|
|
@@ -111,6 +113,20 @@ export const PROVIDER_CAPABILITIES = {
|
|
|
111
113
|
"deepseek-ai/deepseek-v4-pro": { reasoning: true, thinkingFormat: "openai", contextWindow: 1000000, maxOutput: 65536 },
|
|
112
114
|
"deepseek-ai/deepseek-v4-flash": { reasoning: true, thinkingFormat: "openai", contextWindow: 1000000, maxOutput: 65536 },
|
|
113
115
|
},
|
|
116
|
+
"kiro": {
|
|
117
|
+
"gpt-5.6-sol": KIRO_GPT_5_6_CAPABILITIES,
|
|
118
|
+
"gpt-5.6-terra": KIRO_GPT_5_6_CAPABILITIES,
|
|
119
|
+
"gpt-5.6-luna": KIRO_GPT_5_6_CAPABILITIES,
|
|
120
|
+
"gpt-5.6-sol-thinking": KIRO_GPT_5_6_CAPABILITIES,
|
|
121
|
+
"gpt-5.6-terra-thinking": KIRO_GPT_5_6_CAPABILITIES,
|
|
122
|
+
"gpt-5.6-luna-thinking": KIRO_GPT_5_6_CAPABILITIES,
|
|
123
|
+
"gpt-5.6-sol-agentic": KIRO_GPT_5_6_CAPABILITIES,
|
|
124
|
+
"gpt-5.6-terra-agentic": KIRO_GPT_5_6_CAPABILITIES,
|
|
125
|
+
"gpt-5.6-luna-agentic": KIRO_GPT_5_6_CAPABILITIES,
|
|
126
|
+
"gpt-5.6-sol-thinking-agentic": KIRO_GPT_5_6_CAPABILITIES,
|
|
127
|
+
"gpt-5.6-terra-thinking-agentic": KIRO_GPT_5_6_CAPABILITIES,
|
|
128
|
+
"gpt-5.6-luna-thinking-agentic": KIRO_GPT_5_6_CAPABILITIES,
|
|
129
|
+
},
|
|
114
130
|
// CodeBuddy.cn — authoritative per-model metadata from the gateway's model
|
|
115
131
|
// config (contextWindow=maxInputTokens, maxOutput=maxOutputTokens, vision=
|
|
116
132
|
// supportsImages). Every model reasons via OpenAI-style reasoning_effort
|
|
@@ -271,13 +287,17 @@ export const PATTERN_CAPABILITIES = [
|
|
|
271
287
|
export function getCapabilitiesForModel(provider, model) {
|
|
272
288
|
if (!model) return { ...DEFAULT_CAPABILITIES };
|
|
273
289
|
|
|
290
|
+
// Canonical exact lookup strips vendor prefix: "anthropic/claude-opus-4.7" -> "claude-opus-4.7".
|
|
291
|
+
const baseModel = model.includes("/") ? model.split("/").pop() : model;
|
|
292
|
+
|
|
274
293
|
// 1. Provider-specific override
|
|
275
|
-
if (provider
|
|
276
|
-
|
|
294
|
+
if (provider) {
|
|
295
|
+
const providerCaps = PROVIDER_CAPABILITIES[provider];
|
|
296
|
+
if (providerCaps?.[model]) return { ...DEFAULT_CAPABILITIES, ...providerCaps[model] };
|
|
297
|
+
if (providerCaps?.[baseModel]) return { ...DEFAULT_CAPABILITIES, ...providerCaps[baseModel] };
|
|
277
298
|
}
|
|
278
299
|
|
|
279
|
-
// 2. Canonical exact
|
|
280
|
-
const baseModel = model.includes("/") ? model.split("/").pop() : model;
|
|
300
|
+
// 2. Canonical exact
|
|
281
301
|
if (MODEL_CAPABILITIES[baseModel]) return { ...DEFAULT_CAPABILITIES, ...MODEL_CAPABILITIES[baseModel] };
|
|
282
302
|
if (MODEL_CAPABILITIES[model]) return { ...DEFAULT_CAPABILITIES, ...MODEL_CAPABILITIES[model] };
|
|
283
303
|
|
|
@@ -14,7 +14,7 @@ export default {
|
|
|
14
14
|
},
|
|
15
15
|
category: "apikey",
|
|
16
16
|
transport: {
|
|
17
|
-
baseUrl: "https://
|
|
17
|
+
baseUrl: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",
|
|
18
18
|
headers: {},
|
|
19
19
|
quirks: { preserveCacheControl: true },
|
|
20
20
|
},
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { CLAUDE_API_HEADERS } from "../shared.js";
|
|
2
|
-
|
|
3
1
|
export default {
|
|
4
2
|
id: "anthropic",
|
|
5
3
|
priority: 30,
|
|
@@ -19,18 +17,13 @@ export default {
|
|
|
19
17
|
baseUrl: "https://api.anthropic.com/v1/messages",
|
|
20
18
|
format: "claude",
|
|
21
19
|
headers: {
|
|
22
|
-
"
|
|
20
|
+
"anthropic-version": "2023-06-01",
|
|
23
21
|
"Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14",
|
|
24
22
|
},
|
|
25
23
|
},
|
|
26
24
|
models: [
|
|
27
25
|
{ id: "claude-sonnet-4-20250514", name: "Claude Sonnet 4" },
|
|
28
26
|
{ id: "claude-opus-4-20250514", name: "Claude Opus 4" },
|
|
29
|
-
{ id: "claude-opus-4-7", name: "Claude Opus 4.7" },
|
|
30
|
-
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
|
|
31
|
-
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
|
|
32
|
-
{ id: "claude-fable-5", name: "Claude Fable 5" },
|
|
33
|
-
{ id: "claude-haiku-4-5", name: "Claude Haiku 4.5" },
|
|
34
27
|
{ id: "claude-3-5-sonnet-20241022", name: "Claude 3.5 Sonnet" },
|
|
35
28
|
],
|
|
36
29
|
serviceKinds: ["llm","imageToText"],
|
|
@@ -56,15 +56,6 @@ export default {
|
|
|
56
56
|
{ id: "gpt-5.4", name: "GPT 5.4" },
|
|
57
57
|
{ id: "gpt-5.4-review", name: "GPT 5.4 Review", upstreamModelId: "gpt-5.4", quotaFamily: "review" },
|
|
58
58
|
{ id: "gpt-5.4-mini", name: "GPT 5.4 Mini" },
|
|
59
|
-
{ id: "gpt-5.3-codex", name: "GPT 5.3 Codex" },
|
|
60
|
-
{ id: "gpt-5.5-xhigh", name: "GPT 5.5 (xHigh)" },
|
|
61
|
-
{ id: "gpt-5.5-high", name: "GPT 5.5 (High)" },
|
|
62
|
-
{ id: "gpt-5.5-medium", name: "GPT 5.5 (Medium)" },
|
|
63
|
-
{ id: "gpt-5.5-low", name: "GPT 5.5 (Low)" },
|
|
64
|
-
{ id: "gpt-5.4-xhigh", name: "GPT 5.4 (xHigh)" },
|
|
65
|
-
{ id: "gpt-5.4-high", name: "GPT 5.4 (High)" },
|
|
66
|
-
{ id: "gpt-5.4-medium", name: "GPT 5.4 (Medium)" },
|
|
67
|
-
{ id: "gpt-5.4-low", name: "GPT 5.4 (Low)" },
|
|
68
59
|
{ id: "gpt-5.4-mini-review", name: "GPT 5.4 Mini Review", upstreamModelId: "gpt-5.4-mini", quotaFamily: "review" },
|
|
69
60
|
{ id: "gpt-5.3-codex-spark", name: "GPT 5.3 Codex Spark" },
|
|
70
61
|
{ id: "gpt-5.3-codex-spark-review", name: "GPT 5.3 Codex Spark Review", upstreamModelId: "gpt-5.3-codex-spark", quotaFamily: "review" },
|
|
@@ -19,8 +19,6 @@ export default {
|
|
|
19
19
|
},
|
|
20
20
|
models: [
|
|
21
21
|
{ id: "command-r-plus-08-2024", name: "Command R+ (Aug 2024)" },
|
|
22
|
-
{ id: "command-a-reasoning", name: "Command A Reasoning" },
|
|
23
|
-
{ id: "command-a-vision", name: "Command A Vision" },
|
|
24
22
|
{ id: "command-r-08-2024", name: "Command R (Aug 2024)" },
|
|
25
23
|
{ id: "command-a-03-2025", name: "Command A (Mar 2025)" },
|
|
26
24
|
],
|
|
@@ -36,8 +36,6 @@ export default {
|
|
|
36
36
|
models: [
|
|
37
37
|
{ id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro Preview" },
|
|
38
38
|
{ id: "gemini-3.1-flash-lite-preview", name: "Gemini 3.1 Flash Lite Preview" },
|
|
39
|
-
{ id: "gemini-3.1-flash-lite", name: "Gemini 3.1 Flash Lite" },
|
|
40
|
-
{ id: "gemini-3.5-flash", name: "Gemini 3.5 Flash" },
|
|
41
39
|
{ id: "gemini-3-flash-preview", name: "Gemini 3 Flash Preview" },
|
|
42
40
|
{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro" },
|
|
43
41
|
{ id: "gemini-2.5-flash", name: "Gemini 2.5 Flash" },
|
|
@@ -18,6 +18,7 @@ export default {
|
|
|
18
18
|
transport: {
|
|
19
19
|
baseUrl: "https://api.githubcopilot.com/chat/completions",
|
|
20
20
|
responsesUrl: "https://api.githubcopilot.com/responses",
|
|
21
|
+
messagesUrl: "https://api.githubcopilot.com/v1/messages",
|
|
21
22
|
headers: {
|
|
22
23
|
"copilot-integration-id": "vscode-chat",
|
|
23
24
|
"editor-version": "vscode/1.110.0",
|
|
@@ -42,16 +43,18 @@ export default {
|
|
|
42
43
|
},
|
|
43
44
|
models: [
|
|
44
45
|
{ id: "gpt-5.2", name: "GPT-5.2" },
|
|
45
|
-
{ id: "gpt-5.5", name: "GPT 5.5" },
|
|
46
|
-
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
|
|
47
|
-
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
|
|
48
|
-
{ id: "claude-fable-5", name: "Claude Fable 5" },
|
|
49
|
-
{ id: "gemini-3.5-flash", name: "Gemini 3.5 Flash" },
|
|
50
|
-
{ id: "kimi-k2.7-code", name: "Kimi K2.7 Code" },
|
|
51
46
|
{ id: "gpt-5.2-codex", name: "GPT-5.2 Codex" },
|
|
52
47
|
{ id: "gpt-5.3-codex", name: "GPT-5.3 Codex" },
|
|
53
48
|
{ id: "gpt-5.4", name: "GPT-5.4" },
|
|
54
49
|
{ id: "gpt-5.4-mini", name: "GPT-5.4 Mini" },
|
|
50
|
+
// Note: routing to Copilot's Anthropic-native /v1/messages shim (see
|
|
51
|
+
// executors/github.js) is decided by model-NAME pattern at request time, not by
|
|
52
|
+
// a static targetFormat field here — Copilot's live model catalog (see
|
|
53
|
+
// services/copilotModels.js) regularly exposes claude-* models this static list
|
|
54
|
+
// hasn't caught up with yet (e.g. claude-opus-4.8), and a static per-entry
|
|
55
|
+
// targetFormat would silently miss those while also double-translating requests
|
|
56
|
+
// for models that ARE listed here (chatCore.js would pre-translate to Claude
|
|
57
|
+
// shape, then the executor would translate again). Keep these as plain entries.
|
|
55
58
|
{ id: "claude-haiku-4.5", name: "Claude Haiku 4.5" },
|
|
56
59
|
{ id: "claude-opus-4.5", name: "Claude Opus 4.5" },
|
|
57
60
|
{ id: "claude-sonnet-4.5", name: "Claude Sonnet 4.5" },
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Grok CLI / Grok Build (cli-chat-proxy.grok.com)
|
|
3
3
|
*
|
|
4
|
-
* Source of truth:
|
|
4
|
+
* Source of truth: wire capture of official @xai-official/grok 0.2.99
|
|
5
5
|
* talking to https://cli-chat-proxy.grok.com (OpenAI Responses API).
|
|
6
6
|
*
|
|
7
7
|
* Distinct from:
|
|
8
|
-
* - `xai` → api.x.ai (API key /
|
|
8
|
+
* - `xai` → api.x.ai (API key / xAI API OAuth PKCE)
|
|
9
9
|
* - `grok-web` → grok.com web SSO cookie
|
|
10
10
|
*/
|
|
11
|
+
import {
|
|
12
|
+
GROK_CLI_BASE_URL,
|
|
13
|
+
GROK_CLI_CLIENT_IDENTIFIER,
|
|
14
|
+
GROK_CLI_MODEL,
|
|
15
|
+
GROK_CLI_USER_AGENT,
|
|
16
|
+
GROK_CLI_VERSION,
|
|
17
|
+
} from "../../config/grokCli.js";
|
|
18
|
+
|
|
11
19
|
export default {
|
|
12
20
|
id: "grok-cli",
|
|
13
21
|
priority: 275,
|
|
@@ -29,32 +37,28 @@ export default {
|
|
|
29
37
|
authModes: ["oauth"],
|
|
30
38
|
hasOAuth: true,
|
|
31
39
|
thinkingConfig: {
|
|
32
|
-
options: ["low", "medium", "high"],
|
|
40
|
+
options: ["low", "medium", "high", "xhigh"],
|
|
33
41
|
defaultMode: "high",
|
|
34
42
|
},
|
|
35
43
|
transport: {
|
|
36
|
-
baseUrl:
|
|
44
|
+
baseUrl: `${GROK_CLI_BASE_URL}/responses`,
|
|
37
45
|
format: "openai-responses",
|
|
38
46
|
forceStream: true,
|
|
39
|
-
modelsUrl:
|
|
40
|
-
userUrl:
|
|
41
|
-
billingUrl:
|
|
42
|
-
clientVersion:
|
|
43
|
-
clientIdentifier:
|
|
47
|
+
modelsUrl: `${GROK_CLI_BASE_URL}/models`,
|
|
48
|
+
userUrl: `${GROK_CLI_BASE_URL}/user`,
|
|
49
|
+
billingUrl: `${GROK_CLI_BASE_URL}/billing`,
|
|
50
|
+
clientVersion: GROK_CLI_VERSION,
|
|
51
|
+
clientIdentifier: GROK_CLI_CLIENT_IDENTIFIER,
|
|
44
52
|
tokenAuth: "xai-grok-cli",
|
|
45
53
|
headers: {
|
|
46
|
-
"User-Agent":
|
|
47
|
-
"x-
|
|
48
|
-
"x-grok-client-
|
|
49
|
-
"x-grok-client-version": "0.2.93",
|
|
50
|
-
"x-authenticateresponse": "authenticate-response",
|
|
54
|
+
"User-Agent": GROK_CLI_USER_AGENT,
|
|
55
|
+
"x-grok-client-identifier": GROK_CLI_CLIENT_IDENTIFIER,
|
|
56
|
+
"x-grok-client-version": GROK_CLI_VERSION,
|
|
51
57
|
},
|
|
52
|
-
// Compaction threshold mirrored from CLI (x-compaction-at)
|
|
53
|
-
compactionAt: 400000,
|
|
54
58
|
// Quota tracker: official CLI polls billing?format=credits + user?include=subscription
|
|
55
59
|
usage: {
|
|
56
|
-
url:
|
|
57
|
-
userUrl:
|
|
60
|
+
url: `${GROK_CLI_BASE_URL}/billing?format=credits`,
|
|
61
|
+
userUrl: `${GROK_CLI_BASE_URL}/user?include=subscription`,
|
|
58
62
|
},
|
|
59
63
|
retry: {
|
|
60
64
|
429: { attempts: 2, delayMs: 2000 },
|
|
@@ -63,6 +67,12 @@ export default {
|
|
|
63
67
|
},
|
|
64
68
|
},
|
|
65
69
|
models: [
|
|
70
|
+
{
|
|
71
|
+
id: GROK_CLI_MODEL,
|
|
72
|
+
name: "Grok Build",
|
|
73
|
+
contextLength: 500000,
|
|
74
|
+
maxOutputTokens: 64000,
|
|
75
|
+
},
|
|
66
76
|
{ id: "grok-4.5", name: "Grok 4.5" },
|
|
67
77
|
{ id: "grok-4.5-high", name: "Grok 4.5 (High)", upstreamModelId: "grok-4.5" },
|
|
68
78
|
{ id: "grok-4.5-medium", name: "Grok 4.5 (Medium)", upstreamModelId: "grok-4.5" },
|
|
@@ -26,83 +26,81 @@ import p23 from "./coqui.js";
|
|
|
26
26
|
import p24 from "./cursor.js";
|
|
27
27
|
import p25 from "./deepgram.js";
|
|
28
28
|
import p26 from "./deepseek.js";
|
|
29
|
-
import p27 from "./
|
|
30
|
-
import p28 from "./
|
|
31
|
-
import p29 from "./
|
|
32
|
-
import p30 from "./
|
|
33
|
-
import p31 from "./
|
|
34
|
-
import p32 from "./
|
|
35
|
-
import p33 from "./
|
|
36
|
-
import p34 from "./
|
|
37
|
-
import p35 from "./gemini
|
|
38
|
-
import p36 from "./
|
|
39
|
-
import p37 from "./
|
|
40
|
-
import p38 from "./
|
|
41
|
-
import p39 from "./glm
|
|
42
|
-
import p40 from "./
|
|
43
|
-
import p41 from "./google-
|
|
44
|
-
import p42 from "./
|
|
45
|
-
import p43 from "./grok-
|
|
46
|
-
import p44 from "./
|
|
47
|
-
import p45 from "./
|
|
48
|
-
import p46 from "./
|
|
49
|
-
import p47 from "./
|
|
50
|
-
import p48 from "./
|
|
51
|
-
import p49 from "./
|
|
52
|
-
import p50 from "./
|
|
53
|
-
import p51 from "./
|
|
54
|
-
import p52 from "./
|
|
55
|
-
import p53 from "./
|
|
56
|
-
import p54 from "./
|
|
57
|
-
import p55 from "./
|
|
58
|
-
import p56 from "./
|
|
59
|
-
import p57 from "./
|
|
60
|
-
import p58 from "./
|
|
61
|
-
import p59 from "./
|
|
62
|
-
import p60 from "./
|
|
63
|
-
import p61 from "./
|
|
64
|
-
import p62 from "./
|
|
65
|
-
import p63 from "./
|
|
66
|
-
import p64 from "./
|
|
67
|
-
import p65 from "./
|
|
68
|
-
import p66 from "./
|
|
69
|
-
import p67 from "./
|
|
70
|
-
import p68 from "./
|
|
71
|
-
import p69 from "./
|
|
72
|
-
import p70 from "./
|
|
73
|
-
import p71 from "./
|
|
74
|
-
import p72 from "./
|
|
75
|
-
import p73 from "./
|
|
29
|
+
import p27 from "./edge-tts.js";
|
|
30
|
+
import p28 from "./elevenlabs.js";
|
|
31
|
+
import p29 from "./exa.js";
|
|
32
|
+
import p30 from "./fal-ai.js";
|
|
33
|
+
import p31 from "./featherless.js";
|
|
34
|
+
import p32 from "./firecrawl.js";
|
|
35
|
+
import p33 from "./fireworks.js";
|
|
36
|
+
import p34 from "./gemini-cli.js";
|
|
37
|
+
import p35 from "./gemini.js";
|
|
38
|
+
import p36 from "./github.js";
|
|
39
|
+
import p37 from "./gitlab.js";
|
|
40
|
+
import p38 from "./glm-cn.js";
|
|
41
|
+
import p39 from "./glm.js";
|
|
42
|
+
import p40 from "./google-pse.js";
|
|
43
|
+
import p41 from "./google-tts.js";
|
|
44
|
+
import p42 from "./grok-cli.js";
|
|
45
|
+
import p43 from "./grok-web.js";
|
|
46
|
+
import p44 from "./groq.js";
|
|
47
|
+
import p45 from "./huggingface.js";
|
|
48
|
+
import p46 from "./hyperbolic.js";
|
|
49
|
+
import p47 from "./iflow.js";
|
|
50
|
+
import p48 from "./inworld.js";
|
|
51
|
+
import p49 from "./jina-ai.js";
|
|
52
|
+
import p50 from "./jina-reader.js";
|
|
53
|
+
import p51 from "./kilocode.js";
|
|
54
|
+
import p52 from "./kimchi.js";
|
|
55
|
+
import p53 from "./kimi-coding.js";
|
|
56
|
+
import p54 from "./kimi.js";
|
|
57
|
+
import p55 from "./kiro.js";
|
|
58
|
+
import p56 from "./linkup.js";
|
|
59
|
+
import p57 from "./local-device.js";
|
|
60
|
+
import p58 from "./mimo-free.js";
|
|
61
|
+
import p59 from "./minimax-cn.js";
|
|
62
|
+
import p60 from "./minimax.js";
|
|
63
|
+
import p61 from "./mistral.js";
|
|
64
|
+
import p62 from "./mmf.js";
|
|
65
|
+
import p63 from "./nanobanana.js";
|
|
66
|
+
import p64 from "./nebius.js";
|
|
67
|
+
import p65 from "./nvidia.js";
|
|
68
|
+
import p66 from "./ollama-local.js";
|
|
69
|
+
import p67 from "./ollama.js";
|
|
70
|
+
import p68 from "./openai.js";
|
|
71
|
+
import p69 from "./opencode-go.js";
|
|
72
|
+
import p70 from "./opencode.js";
|
|
73
|
+
import p71 from "./openrouter.js";
|
|
74
|
+
import p72 from "./perplexity-web.js";
|
|
75
|
+
import p73 from "./perplexity.js";
|
|
76
76
|
import p74 from "./perplexity-agent.js";
|
|
77
|
-
import p75 from "./
|
|
78
|
-
import p76 from "./
|
|
79
|
-
import p77 from "./
|
|
80
|
-
import p78 from "./
|
|
81
|
-
import p79 from "./
|
|
82
|
-
import p80 from "./
|
|
83
|
-
import p81 from "./
|
|
84
|
-
import p82 from "./
|
|
85
|
-
import p83 from "./
|
|
86
|
-
import p84 from "./
|
|
87
|
-
import p85 from "./
|
|
88
|
-
import p86 from "./
|
|
89
|
-
import p87 from "./
|
|
90
|
-
import p88 from "./
|
|
91
|
-
import p89 from "./
|
|
92
|
-
import p90 from "./
|
|
93
|
-
import p91 from "./
|
|
94
|
-
import p92 from "./
|
|
95
|
-
import p93 from "./
|
|
96
|
-
import p94 from "./
|
|
97
|
-
import p95 from "./
|
|
98
|
-
import p96 from "./
|
|
99
|
-
import p97 from "./
|
|
100
|
-
import p98 from "./
|
|
101
|
-
import p99 from "./
|
|
102
|
-
import p100 from "./xiaomi-tokenplan.js";
|
|
103
|
-
import p101 from "./youcom.js";
|
|
77
|
+
import p75 from "./playht.js";
|
|
78
|
+
import p76 from "./qoder.js";
|
|
79
|
+
import p77 from "./qwen.js";
|
|
80
|
+
import p78 from "./recraft.js";
|
|
81
|
+
import p79 from "./runwayml.js";
|
|
82
|
+
import p80 from "./sdwebui.js";
|
|
83
|
+
import p81 from "./searchapi.js";
|
|
84
|
+
import p82 from "./searxng.js";
|
|
85
|
+
import p83 from "./serper.js";
|
|
86
|
+
import p84 from "./siliconflow.js";
|
|
87
|
+
import p85 from "./stability-ai.js";
|
|
88
|
+
import p86 from "./tavily.js";
|
|
89
|
+
import p87 from "./together.js";
|
|
90
|
+
import p88 from "./topaz.js";
|
|
91
|
+
import p89 from "./tortoise.js";
|
|
92
|
+
import p90 from "./venice.js";
|
|
93
|
+
import p91 from "./vercel-ai-gateway.js";
|
|
94
|
+
import p92 from "./vertex-partner.js";
|
|
95
|
+
import p93 from "./vertex.js";
|
|
96
|
+
import p94 from "./volcengine-ark.js";
|
|
97
|
+
import p95 from "./voyage-ai.js";
|
|
98
|
+
import p96 from "./xai.js";
|
|
99
|
+
import p97 from "./xiaomi-mimo.js";
|
|
100
|
+
import p98 from "./xiaomi-tokenplan.js";
|
|
101
|
+
import p99 from "./youcom.js";
|
|
104
102
|
|
|
105
|
-
export
|
|
103
|
+
export default [
|
|
106
104
|
p0,
|
|
107
105
|
p1,
|
|
108
106
|
p2,
|
|
@@ -202,9 +200,5 @@ export const REGISTRY = [
|
|
|
202
200
|
p96,
|
|
203
201
|
p97,
|
|
204
202
|
p98,
|
|
205
|
-
p99
|
|
206
|
-
p100,
|
|
207
|
-
p101
|
|
203
|
+
p99
|
|
208
204
|
];
|
|
209
|
-
|
|
210
|
-
export default REGISTRY;
|
|
@@ -65,18 +65,30 @@ export default {
|
|
|
65
65
|
{ id: "qwen3-coder-next", name: "Qwen3 Coder Next", strip: ["image","audio"] },
|
|
66
66
|
{ id: "glm-5", name: "GLM 5" },
|
|
67
67
|
{ id: "MiniMax-M2.5", name: "MiniMax M2.5" },
|
|
68
|
+
{ id: "gpt-5.6-sol", name: "GPT 5.6 Sol", contextLength: 272000, rateMultiplier: 2.4, upstreamModelId: "gpt-5.6-sol", description: "Experimental preview of OpenAI GPT 5.6 Sol with 272k context window" },
|
|
69
|
+
{ id: "gpt-5.6-terra", name: "GPT 5.6 Terra", contextLength: 272000, rateMultiplier: 1.2, upstreamModelId: "gpt-5.6-terra", description: "Experimental preview of OpenAI GPT 5.6 Terra with 272k context window" },
|
|
70
|
+
{ id: "gpt-5.6-luna", name: "GPT 5.6 Luna", contextLength: 272000, rateMultiplier: 0.6, upstreamModelId: "gpt-5.6-luna", description: "Experimental preview of OpenAI GPT 5.6 Luna with 272k context window" },
|
|
68
71
|
// Thinking variants
|
|
69
72
|
{ id: "claude-sonnet-5-thinking", name: "Claude Sonnet 5 (Thinking)" },
|
|
70
73
|
{ id: "claude-sonnet-4.5-thinking", name: "Claude Sonnet 4.5 (Thinking)" },
|
|
71
74
|
{ id: "claude-haiku-4.5-thinking", name: "Claude Haiku 4.5 (Thinking)" },
|
|
75
|
+
{ id: "gpt-5.6-sol-thinking", name: "GPT 5.6 Sol (Thinking)", contextLength: 272000, rateMultiplier: 2.4, upstreamModelId: "gpt-5.6-sol", description: "Experimental preview of OpenAI GPT 5.6 Sol with 272k context window" },
|
|
76
|
+
{ id: "gpt-5.6-terra-thinking", name: "GPT 5.6 Terra (Thinking)", contextLength: 272000, rateMultiplier: 1.2, upstreamModelId: "gpt-5.6-terra", description: "Experimental preview of OpenAI GPT 5.6 Terra with 272k context window" },
|
|
77
|
+
{ id: "gpt-5.6-luna-thinking", name: "GPT 5.6 Luna (Thinking)", contextLength: 272000, rateMultiplier: 0.6, upstreamModelId: "gpt-5.6-luna", description: "Experimental preview of OpenAI GPT 5.6 Luna with 272k context window" },
|
|
72
78
|
// Agentic variants
|
|
73
79
|
{ id: "claude-sonnet-5-agentic", name: "Claude Sonnet 5 (Agentic)" },
|
|
74
80
|
{ id: "claude-sonnet-4.5-agentic", name: "Claude Sonnet 4.5 (Agentic)" },
|
|
75
81
|
{ id: "claude-haiku-4.5-agentic", name: "Claude Haiku 4.5 (Agentic)" },
|
|
82
|
+
{ id: "gpt-5.6-sol-agentic", name: "GPT 5.6 Sol (Agentic)", contextLength: 272000, rateMultiplier: 2.4, upstreamModelId: "gpt-5.6-sol", description: "Experimental preview of OpenAI GPT 5.6 Sol with 272k context window" },
|
|
83
|
+
{ id: "gpt-5.6-terra-agentic", name: "GPT 5.6 Terra (Agentic)", contextLength: 272000, rateMultiplier: 1.2, upstreamModelId: "gpt-5.6-terra", description: "Experimental preview of OpenAI GPT 5.6 Terra with 272k context window" },
|
|
84
|
+
{ id: "gpt-5.6-luna-agentic", name: "GPT 5.6 Luna (Agentic)", contextLength: 272000, rateMultiplier: 0.6, upstreamModelId: "gpt-5.6-luna", description: "Experimental preview of OpenAI GPT 5.6 Luna with 272k context window" },
|
|
76
85
|
// Thinking + Agentic variants
|
|
77
86
|
{ id: "claude-sonnet-5-thinking-agentic", name: "Claude Sonnet 5 (Thinking + Agentic)" },
|
|
78
87
|
{ id: "claude-sonnet-4.5-thinking-agentic", name: "Claude Sonnet 4.5 (Thinking + Agentic)" },
|
|
79
88
|
{ id: "claude-haiku-4.5-thinking-agentic", name: "Claude Haiku 4.5 (Thinking + Agentic)" },
|
|
89
|
+
{ id: "gpt-5.6-sol-thinking-agentic", name: "GPT 5.6 Sol (Thinking + Agentic)", contextLength: 272000, rateMultiplier: 2.4, upstreamModelId: "gpt-5.6-sol", description: "Experimental preview of OpenAI GPT 5.6 Sol with 272k context window" },
|
|
90
|
+
{ id: "gpt-5.6-terra-thinking-agentic", name: "GPT 5.6 Terra (Thinking + Agentic)", contextLength: 272000, rateMultiplier: 1.2, upstreamModelId: "gpt-5.6-terra", description: "Experimental preview of OpenAI GPT 5.6 Terra with 272k context window" },
|
|
91
|
+
{ id: "gpt-5.6-luna-thinking-agentic", name: "GPT 5.6 Luna (Thinking + Agentic)", contextLength: 272000, rateMultiplier: 0.6, upstreamModelId: "gpt-5.6-luna", description: "Experimental preview of OpenAI GPT 5.6 Luna with 272k context window" },
|
|
80
92
|
],
|
|
81
93
|
oauth: {
|
|
82
94
|
ssoOidcEndpoint: "https://oidc.us-east-1.amazonaws.com",
|
|
@@ -24,9 +24,6 @@ export default {
|
|
|
24
24
|
{ id: "mistral-large-latest", name: "Mistral Large 3" },
|
|
25
25
|
{ id: "codestral-latest", name: "Codestral" },
|
|
26
26
|
{ id: "mistral-medium-latest", name: "Mistral Medium 3" },
|
|
27
|
-
{ id: "mistral-medium-3-5", name: "Mistral Medium 3.5" },
|
|
28
|
-
{ id: "mistral-small-latest", name: "Mistral Small Latest" },
|
|
29
|
-
{ id: "devstral-latest", name: "Devstral Latest" },
|
|
30
27
|
{ id: "mistral-embed", name: "Mistral Embed", kind: "embedding" },
|
|
31
28
|
],
|
|
32
29
|
serviceKinds: ["llm","imageToText","embedding"],
|
|
@@ -32,9 +32,6 @@ export default {
|
|
|
32
32
|
{ id: "gpt-5.4-mini", name: "GPT-5.4 Mini" },
|
|
33
33
|
{ id: "gpt-5.4-nano", name: "GPT-5.4 Nano" },
|
|
34
34
|
{ id: "gpt-5.2", name: "GPT-5.2" },
|
|
35
|
-
{ id: "gpt-5.4-pro", name: "GPT 5.4 Pro" },
|
|
36
|
-
{ id: "gpt-5.5", name: "GPT 5.5" },
|
|
37
|
-
{ id: "gpt-5.5-pro", name: "GPT 5.5 Pro" },
|
|
38
35
|
{ id: "gpt-5.1", name: "GPT-5.1" },
|
|
39
36
|
{ id: "gpt-5", name: "GPT-5" },
|
|
40
37
|
{ id: "gpt-5-mini", name: "GPT-5 Mini" },
|
|
@@ -24,8 +24,6 @@ export default {
|
|
|
24
24
|
},
|
|
25
25
|
models: [
|
|
26
26
|
{ id: "sonar-pro", name: "Sonar Pro" },
|
|
27
|
-
{ id: "sonar-deep-research", name: "Sonar Deep Research" },
|
|
28
|
-
{ id: "sonar-reasoning-pro", name: "Sonar Reasoning Pro" },
|
|
29
27
|
{ id: "sonar", name: "Sonar" },
|
|
30
28
|
],
|
|
31
29
|
serviceKinds: ["llm","webSearch"],
|
|
@@ -28,15 +28,17 @@ export default {
|
|
|
28
28
|
},
|
|
29
29
|
models: [
|
|
30
30
|
{ id: "grok-4", name: "Grok 4" },
|
|
31
|
-
{ id: "grok-4.3", name: "Grok 4.3" },
|
|
32
|
-
{ id: "grok-build-0.1", name: "Grok Build 0.1" },
|
|
33
31
|
{ id: "grok-4-fast-reasoning", name: "Grok 4 Fast Reasoning" },
|
|
34
32
|
{ id: "grok-code-fast-1", name: "Grok Code Fast" },
|
|
35
33
|
{ id: "grok-3", name: "Grok 3" },
|
|
36
34
|
{ id: "grok-2-image-1212", name: "Grok 2 Image", params: ["n","response_format"], kind: "image" },
|
|
35
|
+
{ id: "grok-imagine-video", name: "Grok Imagine Video", params: ["duration","aspect_ratio","resolution"], kind: "video" },
|
|
37
36
|
],
|
|
38
|
-
serviceKinds: ["llm","imageToText","webSearch","image"],
|
|
37
|
+
serviceKinds: ["llm","imageToText","webSearch","image","video"],
|
|
39
38
|
imageConfig: { baseUrl: "https://api.x.ai/v1/images/generations", bodyFields: ["model","prompt","n","response_format"] },
|
|
39
|
+
// Async video jobs (POST returns { request_id }, GET polls until done/failed).
|
|
40
|
+
// Docs: https://docs.x.ai/developers/rest-api-reference/inference/videos
|
|
41
|
+
videoConfig: { baseUrl: "https://api.x.ai/v1/videos" },
|
|
40
42
|
searchViaChat: {
|
|
41
43
|
defaultModel: "grok-4.20-reasoning",
|
|
42
44
|
endpoint: "https://api.x.ai/v1/responses",
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Port of auto_detect_filter (rtk/src/cmds/system/pipe_cmd.rs:132-188) + JS extras
|
|
2
|
-
//
|
|
3
|
-
//
|
|
2
|
+
// Detection order: git-log → git-diff → git-status → build-output → grep → find → tree → ls → search-list
|
|
3
|
+
// → read-numbered → dedup-log → smart-truncate → null
|
|
4
4
|
import { DETECT_WINDOW, READ_NUMBERED_MIN_HIT_RATIO, SMART_TRUNCATE_MIN_LINES } from "./constants.js";
|
|
5
5
|
import { gitDiff } from "./filters/gitDiff.js";
|
|
6
6
|
import { gitStatus } from "./filters/gitStatus.js";
|
|
7
|
+
import { gitLog } from "./filters/gitLog.js";
|
|
7
8
|
import { buildOutput } from "./filters/buildOutput.js";
|
|
8
9
|
import { grep } from "./filters/grep.js";
|
|
9
10
|
import { find } from "./filters/find.js";
|
|
@@ -17,6 +18,7 @@ import { searchList, SEARCH_LIST_HEADER_RE } from "./filters/searchList.js";
|
|
|
17
18
|
const RE_GIT_DIFF = /^diff --git /m;
|
|
18
19
|
const RE_GIT_DIFF_HUNK = /^@@ /m;
|
|
19
20
|
const RE_GIT_STATUS = /^On branch |^nothing to commit|^Changes (not |to be )|^Untracked files:/m;
|
|
21
|
+
const RE_GIT_LOG = /^[*|/\\ ]*commit [0-9a-f]{7,40}$/m;
|
|
20
22
|
const RE_PORCELAIN = /^[ MADRCU?!][ MADRCU?!] \S/m;
|
|
21
23
|
const RE_BUILD_OUTPUT = /^(npm (warn|error|ERR!)|yarn (warn|error)|\s*Compiling\s+\S+|\s*Downloading\s+\S+|added \d+ package|\[ERROR\]|BUILD (SUCCESS|FAILED)|\s*Finished\s+|Successfully (installed|built)|ERROR:)/im;
|
|
22
24
|
const RE_TREE_GLYPH = /[├└]──|│ /;
|
|
@@ -27,6 +29,7 @@ export function autoDetectFilter(text) {
|
|
|
27
29
|
// Rust: floor_char_boundary to avoid UTF-8 split — JS .slice() by char is safe
|
|
28
30
|
const head = text.length > DETECT_WINDOW ? text.slice(0, DETECT_WINDOW) : text;
|
|
29
31
|
|
|
32
|
+
if (RE_GIT_LOG.test(head)) return gitLog;
|
|
30
33
|
if (RE_GIT_DIFF.test(head) || RE_GIT_DIFF_HUNK.test(head)) return gitDiff;
|
|
31
34
|
if (RE_GIT_STATUS.test(head)) return gitStatus;
|
|
32
35
|
|
|
@@ -81,6 +84,11 @@ function isGrepLine(line) {
|
|
|
81
84
|
function isPathLike(line) {
|
|
82
85
|
const t = line.trim();
|
|
83
86
|
if (t.length === 0) return false;
|
|
87
|
+
// A drive-letter prefix (e.g. "C:\Users\me" or "C:/Users/me") marks a
|
|
88
|
+
// Windows absolute path, so treat the whole line as path-like. Trailing
|
|
89
|
+
// colons (e.g. "C:\path\file.js:10") are tolerated, matching grep-style
|
|
90
|
+
// suffixes on Windows dumps.
|
|
91
|
+
if (/^[A-Za-z]:[\\/]/.test(t)) return true;
|
|
84
92
|
if (t.includes(":")) return false;
|
|
85
93
|
return t.startsWith(".") || t.startsWith("/") || t.includes("/");
|
|
86
94
|
}
|