@roo-code/types 1.78.0 → 1.80.0

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/index.cjs CHANGED
@@ -23,7 +23,7 @@ __export(index_exports, {
23
23
  ANTHROPIC_DEFAULT_MAX_TOKENS: () => ANTHROPIC_DEFAULT_MAX_TOKENS,
24
24
  ANTHROPIC_STYLE_PROVIDERS: () => ANTHROPIC_STYLE_PROVIDERS,
25
25
  AWS_INFERENCE_PROFILE_MAPPING: () => AWS_INFERENCE_PROFILE_MAPPING,
26
- BEDROCK_CLAUDE_SONNET_4_MODEL_ID: () => BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
26
+ BEDROCK_1M_CONTEXT_MODEL_IDS: () => BEDROCK_1M_CONTEXT_MODEL_IDS,
27
27
  BEDROCK_DEFAULT_CONTEXT: () => BEDROCK_DEFAULT_CONTEXT,
28
28
  BEDROCK_DEFAULT_TEMPERATURE: () => BEDROCK_DEFAULT_TEMPERATURE,
29
29
  BEDROCK_MAX_TOKENS: () => BEDROCK_MAX_TOKENS,
@@ -67,7 +67,6 @@ __export(index_exports, {
67
67
  LMSTUDIO_DEFAULT_TEMPERATURE: () => LMSTUDIO_DEFAULT_TEMPERATURE,
68
68
  MISTRAL_DEFAULT_TEMPERATURE: () => MISTRAL_DEFAULT_TEMPERATURE,
69
69
  MODELS_BY_PROVIDER: () => MODELS_BY_PROVIDER,
70
- MODEL_ID_KEYS: () => MODEL_ID_KEYS,
71
70
  MOONSHOT_DEFAULT_TEMPERATURE: () => MOONSHOT_DEFAULT_TEMPERATURE,
72
71
  OPENAI_AZURE_AI_INFERENCE_PATH: () => OPENAI_AZURE_AI_INFERENCE_PATH,
73
72
  OPENAI_NATIVE_DEFAULT_TEMPERATURE: () => OPENAI_NATIVE_DEFAULT_TEMPERATURE,
@@ -123,6 +122,7 @@ __export(index_exports, {
123
122
  convertModelNameForVertex: () => convertModelNameForVertex,
124
123
  customModePromptsSchema: () => customModePromptsSchema,
125
124
  customModesSettingsSchema: () => customModesSettingsSchema,
125
+ customProviders: () => customProviders,
126
126
  customSupportPromptsSchema: () => customSupportPromptsSchema,
127
127
  deepInfraDefaultModelId: () => deepInfraDefaultModelId,
128
128
  deepInfraDefaultModelInfo: () => deepInfraDefaultModelInfo,
@@ -140,6 +140,7 @@ __export(index_exports, {
140
140
  extensionBridgeCommandSchema: () => extensionBridgeCommandSchema,
141
141
  extensionBridgeEventSchema: () => extensionBridgeEventSchema,
142
142
  extensionInstanceSchema: () => extensionInstanceSchema,
143
+ fauxProviders: () => fauxProviders,
143
144
  featherlessDefaultModelId: () => featherlessDefaultModelId,
144
145
  featherlessModels: () => featherlessModels,
145
146
  fireworksDefaultModelId: () => fireworksDefaultModelId,
@@ -162,26 +163,34 @@ __export(index_exports, {
162
163
  idleAsks: () => idleAsks,
163
164
  installMarketplaceItemOptionsSchema: () => installMarketplaceItemOptionsSchema,
164
165
  interactiveAsks: () => interactiveAsks,
166
+ internalProviders: () => internalProviders,
165
167
  internationalZAiDefaultModelId: () => internationalZAiDefaultModelId,
166
168
  internationalZAiModels: () => internationalZAiModels,
167
169
  ioIntelligenceDefaultBaseUrl: () => ioIntelligenceDefaultBaseUrl,
168
170
  ioIntelligenceDefaultModelId: () => ioIntelligenceDefaultModelId,
169
171
  ioIntelligenceModels: () => ioIntelligenceModels,
170
172
  ipcMessageSchema: () => ipcMessageSchema,
173
+ isCustomProvider: () => isCustomProvider,
171
174
  isDynamicProvider: () => isDynamicProvider,
175
+ isFauxProvider: () => isFauxProvider,
172
176
  isGlobalStateKey: () => isGlobalStateKey,
173
177
  isIdleAsk: () => isIdleAsk,
174
178
  isInteractiveAsk: () => isInteractiveAsk,
179
+ isInternalProvider: () => isInternalProvider,
175
180
  isLanguage: () => isLanguage,
181
+ isLocalProvider: () => isLocalProvider,
176
182
  isModelParameter: () => isModelParameter,
183
+ isProviderName: () => isProviderName,
177
184
  isResumableAsk: () => isResumableAsk,
178
185
  isSecretStateKey: () => isSecretStateKey,
186
+ isTypicalProvider: () => isTypicalProvider,
179
187
  lMStudioDefaultModelId: () => lMStudioDefaultModelId,
180
188
  lMStudioDefaultModelInfo: () => lMStudioDefaultModelInfo,
181
189
  languages: () => languages,
182
190
  languagesSchema: () => languagesSchema,
183
191
  litellmDefaultModelId: () => litellmDefaultModelId,
184
192
  litellmDefaultModelInfo: () => litellmDefaultModelInfo,
193
+ localProviders: () => localProviders,
185
194
  mainlandZAiDefaultModelId: () => mainlandZAiDefaultModelId,
186
195
  mainlandZAiModels: () => mainlandZAiModels,
187
196
  marketplaceItemSchema: () => marketplaceItemSchema,
@@ -194,6 +203,8 @@ __export(index_exports, {
194
203
  mistralModels: () => mistralModels,
195
204
  modeConfigSchema: () => modeConfigSchema,
196
205
  modeMarketplaceItemSchema: () => modeMarketplaceItemSchema,
206
+ modelIdKeys: () => modelIdKeys,
207
+ modelIdKeysByProvider: () => modelIdKeysByProvider,
197
208
  modelInfoSchema: () => modelInfoSchema,
198
209
  modelParameters: () => modelParameters,
199
210
  modelParametersSchema: () => modelParametersSchema,
@@ -261,6 +272,7 @@ __export(index_exports, {
261
272
  toolUsageSchema: () => toolUsageSchema,
262
273
  unboundDefaultModelId: () => unboundDefaultModelId,
263
274
  unboundDefaultModelInfo: () => unboundDefaultModelInfo,
275
+ usageStatsSchema: () => usageStatsSchema,
264
276
  userFeaturesSchema: () => userFeaturesSchema,
265
277
  userSettingsConfigSchema: () => userSettingsConfigSchema,
266
278
  userSettingsDataSchema: () => userSettingsDataSchema,
@@ -317,6 +329,7 @@ function isResumableAsk(ask) {
317
329
  return resumableAsks.includes(ask);
318
330
  }
319
331
  var interactiveAsks = [
332
+ "followup",
320
333
  "command",
321
334
  "tool",
322
335
  "browser_action_launch",
@@ -733,6 +746,39 @@ var codebaseIndexProviderSchema = import_zod6.z.object({
733
746
  // src/providers/anthropic.ts
734
747
  var anthropicDefaultModelId = "claude-sonnet-4-20250514";
735
748
  var anthropicModels = {
749
+ "claude-sonnet-4-5": {
750
+ maxTokens: 64e3,
751
+ // Overridden to 8k if `enableReasoningEffort` is false.
752
+ contextWindow: 2e5,
753
+ // Default 200K, extendable to 1M with beta flag 'context-1m-2025-08-07'
754
+ supportsImages: true,
755
+ supportsComputerUse: true,
756
+ supportsPromptCache: true,
757
+ inputPrice: 3,
758
+ // $3 per million input tokens (≤200K context)
759
+ outputPrice: 15,
760
+ // $15 per million output tokens (≤200K context)
761
+ cacheWritesPrice: 3.75,
762
+ // $3.75 per million tokens
763
+ cacheReadsPrice: 0.3,
764
+ // $0.30 per million tokens
765
+ supportsReasoningBudget: true,
766
+ // Tiered pricing for extended context (requires beta flag 'context-1m-2025-08-07')
767
+ tiers: [
768
+ {
769
+ contextWindow: 1e6,
770
+ // 1M tokens with beta flag
771
+ inputPrice: 6,
772
+ // $6 per million input tokens (>200K context)
773
+ outputPrice: 22.5,
774
+ // $22.50 per million output tokens (>200K context)
775
+ cacheWritesPrice: 7.5,
776
+ // $7.50 per million tokens (>200K context)
777
+ cacheReadsPrice: 0.6
778
+ // $0.60 per million tokens (>200K context)
779
+ }
780
+ ]
781
+ },
736
782
  "claude-sonnet-4-20250514": {
737
783
  maxTokens: 64e3,
738
784
  // Overridden to 8k if `enableReasoningEffort` is false.
@@ -885,6 +931,21 @@ var ANTHROPIC_DEFAULT_MAX_TOKENS = 8192;
885
931
  var bedrockDefaultModelId = "anthropic.claude-sonnet-4-20250514-v1:0";
886
932
  var bedrockDefaultPromptRouterModelId = "anthropic.claude-3-sonnet-20240229-v1:0";
887
933
  var bedrockModels = {
934
+ "anthropic.claude-sonnet-4-5-20250929-v1:0": {
935
+ maxTokens: 8192,
936
+ contextWindow: 2e5,
937
+ supportsImages: true,
938
+ supportsComputerUse: true,
939
+ supportsPromptCache: true,
940
+ supportsReasoningBudget: true,
941
+ inputPrice: 3,
942
+ outputPrice: 15,
943
+ cacheWritesPrice: 3.75,
944
+ cacheReadsPrice: 0.3,
945
+ minTokensPerCachePoint: 1024,
946
+ maxCachePoints: 4,
947
+ cachableFields: ["system", "messages", "tools"]
948
+ },
888
949
  "amazon.nova-pro-v1:0": {
889
950
  maxTokens: 5e3,
890
951
  contextWindow: 3e5,
@@ -1311,7 +1372,10 @@ var BEDROCK_REGIONS = [
1311
1372
  { value: "us-gov-east-1", label: "us-gov-east-1" },
1312
1373
  { value: "us-gov-west-1", label: "us-gov-west-1" }
1313
1374
  ].sort((a, b) => a.value.localeCompare(b.value));
1314
- var BEDROCK_CLAUDE_SONNET_4_MODEL_ID = "anthropic.claude-sonnet-4-20250514-v1:0";
1375
+ var BEDROCK_1M_CONTEXT_MODEL_IDS = [
1376
+ "anthropic.claude-sonnet-4-20250514-v1:0",
1377
+ "anthropic.claude-sonnet-4-5-20250929-v1:0"
1378
+ ];
1315
1379
 
1316
1380
  // src/providers/cerebras.ts
1317
1381
  var cerebrasDefaultModelId = "qwen-3-coder-480b-free";
@@ -1621,6 +1685,15 @@ var chutesModels = {
1621
1685
  outputPrice: 0,
1622
1686
  description: "GLM-4.5-FP8 model with 128k token context window, optimized for agent-based applications with MoE architecture."
1623
1687
  },
1688
+ "zai-org/GLM-4.5-turbo": {
1689
+ maxTokens: 32768,
1690
+ contextWindow: 131072,
1691
+ supportsImages: false,
1692
+ supportsPromptCache: false,
1693
+ inputPrice: 1,
1694
+ outputPrice: 3,
1695
+ description: "GLM-4.5-turbo model with 128K token context window, optimized for fast inference."
1696
+ },
1624
1697
  "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": {
1625
1698
  maxTokens: 32768,
1626
1699
  contextWindow: 262144,
@@ -1688,6 +1761,15 @@ function getClaudeCodeModelId(baseModelId, useVertex = false) {
1688
1761
  return useVertex ? convertModelNameForVertex(baseModelId) : baseModelId;
1689
1762
  }
1690
1763
  var claudeCodeModels = {
1764
+ "claude-sonnet-4-5": {
1765
+ ...anthropicModels["claude-sonnet-4-5"],
1766
+ supportsImages: false,
1767
+ supportsPromptCache: true,
1768
+ // Claude Code does report cache tokens
1769
+ supportsReasoningEffort: false,
1770
+ supportsReasoningBudget: false,
1771
+ requiredReasoningBudget: false
1772
+ },
1691
1773
  "claude-sonnet-4-20250514": {
1692
1774
  ...anthropicModels["claude-sonnet-4-20250514"],
1693
1775
  supportsImages: false,
@@ -2495,6 +2577,7 @@ var LITELLM_COMPUTER_USE_MODELS = /* @__PURE__ */ new Set([
2495
2577
  "vertex_ai/claude-opus-4-1@20250805",
2496
2578
  "vertex_ai/claude-opus-4@20250514",
2497
2579
  "vertex_ai/claude-sonnet-4@20250514",
2580
+ "vertex_ai/claude-sonnet-4-5@20250929",
2498
2581
  "openrouter/anthropic/claude-3.5-sonnet",
2499
2582
  "openrouter/anthropic/claude-3.5-sonnet:beta",
2500
2583
  "openrouter/anthropic/claude-3.7-sonnet",
@@ -2739,6 +2822,20 @@ var openAiNativeModels = {
2739
2822
  supportsTemperature: false,
2740
2823
  tiers: [{ name: "flex", contextWindow: 4e5, inputPrice: 0.025, outputPrice: 0.2, cacheReadsPrice: 25e-4 }]
2741
2824
  },
2825
+ "gpt-5-codex": {
2826
+ maxTokens: 128e3,
2827
+ contextWindow: 4e5,
2828
+ supportsImages: true,
2829
+ supportsPromptCache: true,
2830
+ supportsReasoningEffort: true,
2831
+ reasoningEffort: "medium",
2832
+ inputPrice: 1.25,
2833
+ outputPrice: 10,
2834
+ cacheReadsPrice: 0.13,
2835
+ description: "GPT-5-Codex: A version of GPT-5 optimized for agentic coding in Codex",
2836
+ supportsVerbosity: true,
2837
+ supportsTemperature: false
2838
+ },
2742
2839
  "gpt-4.1": {
2743
2840
  maxTokens: 32768,
2744
2841
  contextWindow: 1047576,
@@ -3003,6 +3100,7 @@ var OPEN_ROUTER_PROMPT_CACHING_MODELS = /* @__PURE__ */ new Set([
3003
3100
  "anthropic/claude-3.7-sonnet:beta",
3004
3101
  "anthropic/claude-3.7-sonnet:thinking",
3005
3102
  "anthropic/claude-sonnet-4",
3103
+ "anthropic/claude-sonnet-4.5",
3006
3104
  "anthropic/claude-opus-4",
3007
3105
  "anthropic/claude-opus-4.1",
3008
3106
  "google/gemini-2.5-flash-preview",
@@ -3022,6 +3120,7 @@ var OPEN_ROUTER_COMPUTER_USE_MODELS = /* @__PURE__ */ new Set([
3022
3120
  "anthropic/claude-3.7-sonnet:beta",
3023
3121
  "anthropic/claude-3.7-sonnet:thinking",
3024
3122
  "anthropic/claude-sonnet-4",
3123
+ "anthropic/claude-sonnet-4.5",
3025
3124
  "anthropic/claude-opus-4",
3026
3125
  "anthropic/claude-opus-4.1"
3027
3126
  ]);
@@ -3035,6 +3134,7 @@ var OPEN_ROUTER_REASONING_BUDGET_MODELS = /* @__PURE__ */ new Set([
3035
3134
  "anthropic/claude-opus-4",
3036
3135
  "anthropic/claude-opus-4.1",
3037
3136
  "anthropic/claude-sonnet-4",
3137
+ "anthropic/claude-sonnet-4.5",
3038
3138
  "google/gemini-2.5-pro-preview",
3039
3139
  "google/gemini-2.5-pro",
3040
3140
  "google/gemini-2.5-flash-preview-05-20",
@@ -3099,6 +3199,33 @@ var rooModels = {
3099
3199
  inputPrice: 0,
3100
3200
  outputPrice: 0,
3101
3201
  description: "A reasoning model that is blazing fast and excels at agentic coding, accessible for free through Roo Code Cloud for a limited time. (Note: the free prompts and completions are logged by xAI and used to improve the model.)"
3202
+ },
3203
+ "roo/code-supernova-1-million": {
3204
+ maxTokens: 3e4,
3205
+ contextWindow: 1e6,
3206
+ supportsImages: true,
3207
+ supportsPromptCache: true,
3208
+ inputPrice: 0,
3209
+ outputPrice: 0,
3210
+ description: "A versatile agentic coding stealth model with a 1M token context window that supports image inputs, accessible for free through Roo Code Cloud for a limited time. (Note: the free prompts and completions are logged by the model provider and used to improve the model.)"
3211
+ },
3212
+ "xai/grok-4-fast": {
3213
+ maxTokens: 3e4,
3214
+ contextWindow: 2e6,
3215
+ supportsImages: false,
3216
+ supportsPromptCache: false,
3217
+ inputPrice: 0,
3218
+ outputPrice: 0,
3219
+ description: "Grok 4 Fast is xAI's latest multimodal model with SOTA cost-efficiency and a 2M token context window. (Note: prompts and completions are logged by xAI and used to improve the model.)"
3220
+ },
3221
+ "deepseek/deepseek-chat-v3.1": {
3222
+ maxTokens: 16384,
3223
+ contextWindow: 163840,
3224
+ supportsImages: false,
3225
+ supportsPromptCache: false,
3226
+ inputPrice: 0,
3227
+ outputPrice: 0,
3228
+ description: "DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active). It extends the DeepSeek-V3 base with a two-phase long-context training process, reaching up to 128K tokens, and uses FP8 microscaling for efficient inference."
3102
3229
  }
3103
3230
  };
3104
3231
 
@@ -3142,6 +3269,15 @@ var sambaNovaModels = {
3142
3269
  outputPrice: 4.5,
3143
3270
  description: "DeepSeek V3 model with 32K context window."
3144
3271
  },
3272
+ "DeepSeek-V3.1": {
3273
+ maxTokens: 8192,
3274
+ contextWindow: 32768,
3275
+ supportsImages: false,
3276
+ supportsPromptCache: false,
3277
+ inputPrice: 3,
3278
+ outputPrice: 4.5,
3279
+ description: "DeepSeek V3.1 model with 32K context window."
3280
+ },
3145
3281
  "DeepSeek-R1-Distill-Llama-70B": {
3146
3282
  maxTokens: 8192,
3147
3283
  contextWindow: 131072,
@@ -3177,6 +3313,15 @@ var sambaNovaModels = {
3177
3313
  inputPrice: 0.4,
3178
3314
  outputPrice: 0.8,
3179
3315
  description: "Alibaba Qwen 3 32B model with 8K context window."
3316
+ },
3317
+ "gpt-oss-120b": {
3318
+ maxTokens: 8192,
3319
+ contextWindow: 131072,
3320
+ supportsImages: false,
3321
+ supportsPromptCache: false,
3322
+ inputPrice: 0.22,
3323
+ outputPrice: 0.59,
3324
+ description: "OpenAI gpt oss 120b model with 128k context window."
3180
3325
  }
3181
3326
  };
3182
3327
 
@@ -3194,7 +3339,7 @@ var unboundDefaultModelInfo = {
3194
3339
  };
3195
3340
 
3196
3341
  // src/providers/vertex.ts
3197
- var vertexDefaultModelId = "claude-sonnet-4@20250514";
3342
+ var vertexDefaultModelId = "claude-sonnet-4-5@20250929";
3198
3343
  var vertexModels = {
3199
3344
  "gemini-2.5-flash-preview-05-20:thinking": {
3200
3345
  maxTokens: 65535,
@@ -3365,6 +3510,18 @@ var vertexModels = {
3365
3510
  cacheReadsPrice: 0.3,
3366
3511
  supportsReasoningBudget: true
3367
3512
  },
3513
+ "claude-sonnet-4-5@20250929": {
3514
+ maxTokens: 8192,
3515
+ contextWindow: 2e5,
3516
+ supportsImages: true,
3517
+ supportsComputerUse: true,
3518
+ supportsPromptCache: true,
3519
+ inputPrice: 3,
3520
+ outputPrice: 15,
3521
+ cacheWritesPrice: 3.75,
3522
+ cacheReadsPrice: 0.3,
3523
+ supportsReasoningBudget: true
3524
+ },
3368
3525
  "claude-opus-4-1@20250805": {
3369
3526
  maxTokens: 8192,
3370
3527
  contextWindow: 2e5,
@@ -3970,6 +4127,17 @@ var internationalZAiModels = {
3970
4127
  cacheWritesPrice: 0,
3971
4128
  cacheReadsPrice: 0.03,
3972
4129
  description: "GLM-4.5-Air is the lightweight version of GLM-4.5. It balances performance and cost-effectiveness, and can flexibly switch to hybrid thinking models."
4130
+ },
4131
+ "glm-4.6": {
4132
+ maxTokens: 98304,
4133
+ contextWindow: 204800,
4134
+ supportsImages: false,
4135
+ supportsPromptCache: true,
4136
+ inputPrice: 0.6,
4137
+ outputPrice: 2.2,
4138
+ cacheWritesPrice: 0,
4139
+ cacheReadsPrice: 0.11,
4140
+ description: "GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations."
3973
4141
  }
3974
4142
  };
3975
4143
  var mainlandZAiDefaultModelId = "glm-4.5";
@@ -4035,6 +4203,43 @@ var mainlandZAiModels = {
4035
4203
  cacheReadsPrice: 0.02
4036
4204
  }
4037
4205
  ]
4206
+ },
4207
+ "glm-4.6": {
4208
+ maxTokens: 98304,
4209
+ contextWindow: 204800,
4210
+ supportsImages: false,
4211
+ supportsPromptCache: true,
4212
+ inputPrice: 0.29,
4213
+ outputPrice: 1.14,
4214
+ cacheWritesPrice: 0,
4215
+ cacheReadsPrice: 0.057,
4216
+ description: "GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations.",
4217
+ tiers: [
4218
+ {
4219
+ contextWindow: 32e3,
4220
+ inputPrice: 0.21,
4221
+ outputPrice: 1,
4222
+ cacheReadsPrice: 0.043
4223
+ },
4224
+ {
4225
+ contextWindow: 128e3,
4226
+ inputPrice: 0.29,
4227
+ outputPrice: 1.14,
4228
+ cacheReadsPrice: 0.057
4229
+ },
4230
+ {
4231
+ contextWindow: 2e5,
4232
+ inputPrice: 0.29,
4233
+ outputPrice: 1.14,
4234
+ cacheReadsPrice: 0.057
4235
+ },
4236
+ {
4237
+ contextWindow: Infinity,
4238
+ inputPrice: 0.29,
4239
+ outputPrice: 1.14,
4240
+ cacheReadsPrice: 0.057
4241
+ }
4242
+ ]
4038
4243
  }
4039
4244
  };
4040
4245
  var ZAI_DEFAULT_TEMPERATURE = 0;
@@ -4062,52 +4267,63 @@ var deepInfraDefaultModelInfo = {
4062
4267
  };
4063
4268
 
4064
4269
  // src/provider-settings.ts
4270
+ var DEFAULT_CONSECUTIVE_MISTAKE_LIMIT = 3;
4271
+ var dynamicProviders = [
4272
+ "openrouter",
4273
+ "vercel-ai-gateway",
4274
+ "huggingface",
4275
+ "litellm",
4276
+ "deepinfra",
4277
+ "io-intelligence",
4278
+ "requesty",
4279
+ "unbound",
4280
+ "glama"
4281
+ ];
4282
+ var isDynamicProvider = (key) => dynamicProviders.includes(key);
4283
+ var localProviders = ["ollama", "lmstudio"];
4284
+ var isLocalProvider = (key) => localProviders.includes(key);
4285
+ var internalProviders = ["vscode-lm"];
4286
+ var isInternalProvider = (key) => internalProviders.includes(key);
4287
+ var customProviders = ["openai"];
4288
+ var isCustomProvider = (key) => customProviders.includes(key);
4289
+ var fauxProviders = ["fake-ai", "human-relay"];
4290
+ var isFauxProvider = (key) => fauxProviders.includes(key);
4065
4291
  var providerNames = [
4292
+ ...dynamicProviders,
4293
+ ...localProviders,
4294
+ ...internalProviders,
4295
+ ...customProviders,
4296
+ ...fauxProviders,
4066
4297
  "anthropic",
4067
- "claude-code",
4068
- "glama",
4069
- "openrouter",
4070
4298
  "bedrock",
4071
- "vertex",
4072
- "openai",
4073
- "ollama",
4074
- "vscode-lm",
4075
- "lmstudio",
4299
+ "cerebras",
4300
+ "chutes",
4301
+ "claude-code",
4302
+ "doubao",
4303
+ "deepseek",
4304
+ "featherless",
4305
+ "fireworks",
4076
4306
  "gemini",
4077
4307
  "gemini-cli",
4078
- "openai-native",
4308
+ "groq",
4079
4309
  "mistral",
4080
4310
  "moonshot",
4081
- "deepseek",
4082
- "deepinfra",
4083
- "doubao",
4311
+ "openai-native",
4084
4312
  "qwen-code",
4085
- "unbound",
4086
- "requesty",
4087
- "human-relay",
4088
- "fake-ai",
4089
- "xai",
4090
- "groq",
4091
- "chutes",
4092
- "litellm",
4093
- "huggingface",
4094
- "cerebras",
4095
- "sambanova",
4096
- "zai",
4097
- "fireworks",
4098
- "featherless",
4099
- "io-intelligence",
4100
4313
  "roo",
4101
- "vercel-ai-gateway"
4314
+ "sambanova",
4315
+ "vertex",
4316
+ "xai",
4317
+ "zai"
4102
4318
  ];
4103
4319
  var providerNamesSchema = import_zod7.z.enum(providerNames);
4320
+ var isProviderName = (key) => typeof key === "string" && providerNames.includes(key);
4104
4321
  var providerSettingsEntrySchema = import_zod7.z.object({
4105
4322
  id: import_zod7.z.string(),
4106
4323
  name: import_zod7.z.string(),
4107
4324
  apiProvider: providerNamesSchema.optional(),
4108
4325
  modelId: import_zod7.z.string().optional()
4109
4326
  });
4110
- var DEFAULT_CONSECUTIVE_MISTAKE_LIMIT = 3;
4111
4327
  var baseProviderSettingsSchema = import_zod7.z.object({
4112
4328
  includeMaxTokens: import_zod7.z.boolean().optional(),
4113
4329
  diffEnabled: import_zod7.z.boolean().optional(),
@@ -4132,7 +4348,7 @@ var anthropicSchema = apiModelIdProviderModelSchema.extend({
4132
4348
  anthropicBaseUrl: import_zod7.z.string().optional(),
4133
4349
  anthropicUseAuthToken: import_zod7.z.boolean().optional(),
4134
4350
  anthropicBeta1MContext: import_zod7.z.boolean().optional()
4135
- // Enable 'context-1m-2025-08-07' beta for 1M context window
4351
+ // Enable 'context-1m-2025-08-07' beta for 1M context window.
4136
4352
  });
4137
4353
  var claudeCodeSchema = apiModelIdProviderModelSchema.extend({
4138
4354
  claudeCodePath: import_zod7.z.string().optional(),
@@ -4165,7 +4381,7 @@ var bedrockSchema = apiModelIdProviderModelSchema.extend({
4165
4381
  awsBedrockEndpointEnabled: import_zod7.z.boolean().optional(),
4166
4382
  awsBedrockEndpoint: import_zod7.z.string().optional(),
4167
4383
  awsBedrock1MContext: import_zod7.z.boolean().optional()
4168
- // Enable 'context-1m-2025-08-07' beta for 1M context window
4384
+ // Enable 'context-1m-2025-08-07' beta for 1M context window.
4169
4385
  });
4170
4386
  var vertexSchema = apiModelIdProviderModelSchema.extend({
4171
4387
  vertexKeyFile: import_zod7.z.string().optional(),
@@ -4192,7 +4408,8 @@ var openAiSchema = baseProviderSettingsSchema.extend({
4192
4408
  var ollamaSchema = baseProviderSettingsSchema.extend({
4193
4409
  ollamaModelId: import_zod7.z.string().optional(),
4194
4410
  ollamaBaseUrl: import_zod7.z.string().optional(),
4195
- ollamaApiKey: import_zod7.z.string().optional()
4411
+ ollamaApiKey: import_zod7.z.string().optional(),
4412
+ ollamaNumCtx: import_zod7.z.number().int().min(128).optional()
4196
4413
  });
4197
4414
  var vsCodeLmSchema = baseProviderSettingsSchema.extend({
4198
4415
  vsCodeLmModelSelector: import_zod7.z.object({
@@ -4304,7 +4521,7 @@ var qwenCodeSchema = apiModelIdProviderModelSchema.extend({
4304
4521
  qwenCodeOauthPath: import_zod7.z.string().optional()
4305
4522
  });
4306
4523
  var rooSchema = apiModelIdProviderModelSchema.extend({
4307
- // No additional fields needed - uses cloud authentication
4524
+ // No additional fields needed - uses cloud authentication.
4308
4525
  });
4309
4526
  var vercelAiGatewaySchema = baseProviderSettingsSchema.extend({
4310
4527
  vercelAiGatewayApiKey: import_zod7.z.string().optional(),
@@ -4397,7 +4614,7 @@ var discriminatedProviderSettingsWithIdSchema = providerSettingsSchemaDiscrimina
4397
4614
  import_zod7.z.object({ id: import_zod7.z.string().optional() })
4398
4615
  );
4399
4616
  var PROVIDER_SETTINGS_KEYS = providerSettingsSchema.keyof().options;
4400
- var MODEL_ID_KEYS = [
4617
+ var modelIdKeys = [
4401
4618
  "apiModelId",
4402
4619
  "glamaModelId",
4403
4620
  "openRouterModelId",
@@ -4414,9 +4631,44 @@ var MODEL_ID_KEYS = [
4414
4631
  "deepInfraModelId"
4415
4632
  ];
4416
4633
  var getModelId = (settings) => {
4417
- const modelIdKey = MODEL_ID_KEYS.find((key) => settings[key]);
4634
+ const modelIdKey = modelIdKeys.find((key) => settings[key]);
4418
4635
  return modelIdKey ? settings[modelIdKey] : void 0;
4419
4636
  };
4637
+ var isTypicalProvider = (key) => isProviderName(key) && !isInternalProvider(key) && !isCustomProvider(key) && !isFauxProvider(key);
4638
+ var modelIdKeysByProvider = {
4639
+ anthropic: "apiModelId",
4640
+ "claude-code": "apiModelId",
4641
+ glama: "glamaModelId",
4642
+ openrouter: "openRouterModelId",
4643
+ bedrock: "apiModelId",
4644
+ vertex: "apiModelId",
4645
+ "openai-native": "openAiModelId",
4646
+ ollama: "ollamaModelId",
4647
+ lmstudio: "lmStudioModelId",
4648
+ gemini: "apiModelId",
4649
+ "gemini-cli": "apiModelId",
4650
+ mistral: "apiModelId",
4651
+ moonshot: "apiModelId",
4652
+ deepseek: "apiModelId",
4653
+ deepinfra: "deepInfraModelId",
4654
+ doubao: "apiModelId",
4655
+ "qwen-code": "apiModelId",
4656
+ unbound: "unboundModelId",
4657
+ requesty: "requestyModelId",
4658
+ xai: "apiModelId",
4659
+ groq: "apiModelId",
4660
+ chutes: "apiModelId",
4661
+ litellm: "litellmModelId",
4662
+ huggingface: "huggingFaceModelId",
4663
+ cerebras: "apiModelId",
4664
+ sambanova: "apiModelId",
4665
+ zai: "apiModelId",
4666
+ fireworks: "apiModelId",
4667
+ featherless: "apiModelId",
4668
+ "io-intelligence": "ioIntelligenceModelId",
4669
+ roo: "apiModelId",
4670
+ "vercel-ai-gateway": "vercelAiGatewayModelId"
4671
+ };
4420
4672
  var ANTHROPIC_STYLE_PROVIDERS = ["anthropic", "claude-code", "bedrock"];
4421
4673
  var getApiProtocol = (provider, modelId) => {
4422
4674
  if (provider && ANTHROPIC_STYLE_PROVIDERS.includes(provider)) {
@@ -4523,17 +4775,6 @@ var MODELS_BY_PROVIDER = {
4523
4775
  deepinfra: { id: "deepinfra", label: "DeepInfra", models: [] },
4524
4776
  "vercel-ai-gateway": { id: "vercel-ai-gateway", label: "Vercel AI Gateway", models: [] }
4525
4777
  };
4526
- var dynamicProviders = [
4527
- "glama",
4528
- "huggingface",
4529
- "litellm",
4530
- "openrouter",
4531
- "requesty",
4532
- "unbound",
4533
- "deepinfra",
4534
- "vercel-ai-gateway"
4535
- ];
4536
- var isDynamicProvider = (key) => dynamicProviders.includes(key);
4537
4778
 
4538
4779
  // src/history.ts
4539
4780
  var import_zod8 = require("zod");
@@ -4610,11 +4851,15 @@ var TelemetryEventName = /* @__PURE__ */ ((TelemetryEventName2) => {
4610
4851
  TelemetryEventName2["ACCOUNT_CONNECT_SUCCESS"] = "Account Connect Success";
4611
4852
  TelemetryEventName2["ACCOUNT_LOGOUT_CLICKED"] = "Account Logout Clicked";
4612
4853
  TelemetryEventName2["ACCOUNT_LOGOUT_SUCCESS"] = "Account Logout Success";
4854
+ TelemetryEventName2["FEATURED_PROVIDER_CLICKED"] = "Featured Provider Clicked";
4855
+ TelemetryEventName2["UPSELL_DISMISSED"] = "Upsell Dismissed";
4856
+ TelemetryEventName2["UPSELL_CLICKED"] = "Upsell Clicked";
4613
4857
  TelemetryEventName2["SCHEMA_VALIDATION_ERROR"] = "Schema Validation Error";
4614
4858
  TelemetryEventName2["DIFF_APPLICATION_ERROR"] = "Diff Application Error";
4615
4859
  TelemetryEventName2["SHELL_INTEGRATION_ERROR"] = "Shell Integration Error";
4616
4860
  TelemetryEventName2["CONSECUTIVE_MISTAKE_ERROR"] = "Consecutive Mistake Error";
4617
4861
  TelemetryEventName2["CODE_INDEX_ERROR"] = "Code Index Error";
4862
+ TelemetryEventName2["TELEMETRY_SETTINGS_CHANGED"] = "Telemetry Settings Changed";
4618
4863
  return TelemetryEventName2;
4619
4864
  })(TelemetryEventName || {});
4620
4865
  var staticAppPropertiesSchema = import_zod10.z.object({
@@ -4689,6 +4934,9 @@ var rooCodeTelemetryEventSchema = import_zod10.z.discriminatedUnion("type", [
4689
4934
  "Account Connect Success" /* ACCOUNT_CONNECT_SUCCESS */,
4690
4935
  "Account Logout Clicked" /* ACCOUNT_LOGOUT_CLICKED */,
4691
4936
  "Account Logout Success" /* ACCOUNT_LOGOUT_SUCCESS */,
4937
+ "Featured Provider Clicked" /* FEATURED_PROVIDER_CLICKED */,
4938
+ "Upsell Dismissed" /* UPSELL_DISMISSED */,
4939
+ "Upsell Clicked" /* UPSELL_CLICKED */,
4692
4940
  "Schema Validation Error" /* SCHEMA_VALIDATION_ERROR */,
4693
4941
  "Diff Application Error" /* DIFF_APPLICATION_ERROR */,
4694
4942
  "Shell Integration Error" /* SHELL_INTEGRATION_ERROR */,
@@ -4702,6 +4950,14 @@ var rooCodeTelemetryEventSchema = import_zod10.z.discriminatedUnion("type", [
4702
4950
  ]),
4703
4951
  properties: telemetryPropertiesSchema
4704
4952
  }),
4953
+ import_zod10.z.object({
4954
+ type: import_zod10.z.literal("Telemetry Settings Changed" /* TELEMETRY_SETTINGS_CHANGED */),
4955
+ properties: import_zod10.z.object({
4956
+ ...telemetryPropertiesSchema.shape,
4957
+ previousSetting: telemetrySettingsSchema,
4958
+ newSetting: telemetrySettingsSchema
4959
+ })
4960
+ }),
4705
4961
  import_zod10.z.object({
4706
4962
  type: import_zod10.z.literal("Task Message" /* TASK_MESSAGE */),
4707
4963
  properties: import_zod10.z.object({
@@ -4863,7 +5119,8 @@ var commandIds = [
4863
5119
  "importSettings",
4864
5120
  "focusInput",
4865
5121
  "acceptInput",
4866
- "focusPanel"
5122
+ "focusPanel",
5123
+ "toggleAutoApprove"
4867
5124
  ];
4868
5125
  var languages = [
4869
5126
  "ca",
@@ -4988,6 +5245,7 @@ var globalSettingsSchema = import_zod13.z.object({
4988
5245
  enhancementApiConfigId: import_zod13.z.string().optional(),
4989
5246
  includeTaskHistoryInEnhance: import_zod13.z.boolean().optional(),
4990
5247
  historyPreviewCollapsed: import_zod13.z.boolean().optional(),
5248
+ reasoningBlockCollapsed: import_zod13.z.boolean().optional(),
4991
5249
  profileThresholds: import_zod13.z.record(import_zod13.z.string(), import_zod13.z.number()).optional(),
4992
5250
  hasOpenedModeSelector: import_zod13.z.boolean().optional(),
4993
5251
  lastModeExportPath: import_zod13.z.string().optional(),
@@ -5518,6 +5776,27 @@ var TaskSocketEvents = /* @__PURE__ */ ((TaskSocketEvents2) => {
5518
5776
  TaskSocketEvents2["RELAYED_COMMAND"] = "task:relayed_command";
5519
5777
  return TaskSocketEvents2;
5520
5778
  })(TaskSocketEvents || {});
5779
+ var usageStatsSchema = import_zod15.z.object({
5780
+ success: import_zod15.z.boolean(),
5781
+ data: import_zod15.z.object({
5782
+ dates: import_zod15.z.array(import_zod15.z.string()),
5783
+ // Array of date strings
5784
+ tasks: import_zod15.z.array(import_zod15.z.number()),
5785
+ // Array of task counts
5786
+ tokens: import_zod15.z.array(import_zod15.z.number()),
5787
+ // Array of token counts
5788
+ costs: import_zod15.z.array(import_zod15.z.number()),
5789
+ // Array of costs in USD
5790
+ totals: import_zod15.z.object({
5791
+ tasks: import_zod15.z.number(),
5792
+ tokens: import_zod15.z.number(),
5793
+ cost: import_zod15.z.number()
5794
+ // Total cost in USD
5795
+ })
5796
+ }),
5797
+ period: import_zod15.z.number()
5798
+ // Period in days (e.g., 30)
5799
+ });
5521
5800
 
5522
5801
  // src/cookie-consent.ts
5523
5802
  var CONSENT_COOKIE_NAME = "roo-code-cookie-consent";
@@ -5634,7 +5913,7 @@ var mcpExecutionStatusSchema = import_zod18.z.discriminatedUnion("status", [
5634
5913
 
5635
5914
  // src/single-file-read-models.ts
5636
5915
  function shouldUseSingleFileRead(modelId) {
5637
- return modelId.includes("grok-code-fast-1");
5916
+ return modelId.includes("grok-code-fast-1") || modelId.includes("code-supernova");
5638
5917
  }
5639
5918
 
5640
5919
  // src/todo.ts
@@ -5679,7 +5958,7 @@ var commandExecutionStatusSchema = import_zod20.z.discriminatedUnion("status", [
5679
5958
  ANTHROPIC_DEFAULT_MAX_TOKENS,
5680
5959
  ANTHROPIC_STYLE_PROVIDERS,
5681
5960
  AWS_INFERENCE_PROFILE_MAPPING,
5682
- BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
5961
+ BEDROCK_1M_CONTEXT_MODEL_IDS,
5683
5962
  BEDROCK_DEFAULT_CONTEXT,
5684
5963
  BEDROCK_DEFAULT_TEMPERATURE,
5685
5964
  BEDROCK_MAX_TOKENS,
@@ -5723,7 +6002,6 @@ var commandExecutionStatusSchema = import_zod20.z.discriminatedUnion("status", [
5723
6002
  LMSTUDIO_DEFAULT_TEMPERATURE,
5724
6003
  MISTRAL_DEFAULT_TEMPERATURE,
5725
6004
  MODELS_BY_PROVIDER,
5726
- MODEL_ID_KEYS,
5727
6005
  MOONSHOT_DEFAULT_TEMPERATURE,
5728
6006
  OPENAI_AZURE_AI_INFERENCE_PATH,
5729
6007
  OPENAI_NATIVE_DEFAULT_TEMPERATURE,
@@ -5779,6 +6057,7 @@ var commandExecutionStatusSchema = import_zod20.z.discriminatedUnion("status", [
5779
6057
  convertModelNameForVertex,
5780
6058
  customModePromptsSchema,
5781
6059
  customModesSettingsSchema,
6060
+ customProviders,
5782
6061
  customSupportPromptsSchema,
5783
6062
  deepInfraDefaultModelId,
5784
6063
  deepInfraDefaultModelInfo,
@@ -5796,6 +6075,7 @@ var commandExecutionStatusSchema = import_zod20.z.discriminatedUnion("status", [
5796
6075
  extensionBridgeCommandSchema,
5797
6076
  extensionBridgeEventSchema,
5798
6077
  extensionInstanceSchema,
6078
+ fauxProviders,
5799
6079
  featherlessDefaultModelId,
5800
6080
  featherlessModels,
5801
6081
  fireworksDefaultModelId,
@@ -5818,26 +6098,34 @@ var commandExecutionStatusSchema = import_zod20.z.discriminatedUnion("status", [
5818
6098
  idleAsks,
5819
6099
  installMarketplaceItemOptionsSchema,
5820
6100
  interactiveAsks,
6101
+ internalProviders,
5821
6102
  internationalZAiDefaultModelId,
5822
6103
  internationalZAiModels,
5823
6104
  ioIntelligenceDefaultBaseUrl,
5824
6105
  ioIntelligenceDefaultModelId,
5825
6106
  ioIntelligenceModels,
5826
6107
  ipcMessageSchema,
6108
+ isCustomProvider,
5827
6109
  isDynamicProvider,
6110
+ isFauxProvider,
5828
6111
  isGlobalStateKey,
5829
6112
  isIdleAsk,
5830
6113
  isInteractiveAsk,
6114
+ isInternalProvider,
5831
6115
  isLanguage,
6116
+ isLocalProvider,
5832
6117
  isModelParameter,
6118
+ isProviderName,
5833
6119
  isResumableAsk,
5834
6120
  isSecretStateKey,
6121
+ isTypicalProvider,
5835
6122
  lMStudioDefaultModelId,
5836
6123
  lMStudioDefaultModelInfo,
5837
6124
  languages,
5838
6125
  languagesSchema,
5839
6126
  litellmDefaultModelId,
5840
6127
  litellmDefaultModelInfo,
6128
+ localProviders,
5841
6129
  mainlandZAiDefaultModelId,
5842
6130
  mainlandZAiModels,
5843
6131
  marketplaceItemSchema,
@@ -5850,6 +6138,8 @@ var commandExecutionStatusSchema = import_zod20.z.discriminatedUnion("status", [
5850
6138
  mistralModels,
5851
6139
  modeConfigSchema,
5852
6140
  modeMarketplaceItemSchema,
6141
+ modelIdKeys,
6142
+ modelIdKeysByProvider,
5853
6143
  modelInfoSchema,
5854
6144
  modelParameters,
5855
6145
  modelParametersSchema,
@@ -5917,6 +6207,7 @@ var commandExecutionStatusSchema = import_zod20.z.discriminatedUnion("status", [
5917
6207
  toolUsageSchema,
5918
6208
  unboundDefaultModelId,
5919
6209
  unboundDefaultModelInfo,
6210
+ usageStatsSchema,
5920
6211
  userFeaturesSchema,
5921
6212
  userSettingsConfigSchema,
5922
6213
  userSettingsDataSchema,