* Sanitizes provider values by resetting unknown apiProvider values. * Active and retired providers are preserved.
(values: RooCodeSettings)
| 477 | * Active and retired providers are preserved. |
| 478 | */ |
| 479 | private sanitizeProviderValues(values: RooCodeSettings): RooCodeSettings { |
| 480 | const { config: rooSanitizedValues } = downgradeLegacyRooConfig(values as Record<string, unknown>) |
| 481 | let sanitizedValues = rooSanitizedValues as RooCodeSettings |
| 482 | |
| 483 | // Remove legacy Claude Code CLI wrapper keys that may still exist in global state. |
| 484 | // These keys were used by a removed local CLI runner and are no longer part of ProviderSettings. |
| 485 | const legacyKeys = ["claudeCodePath", "claudeCodeMaxOutputTokens"] as const |
| 486 | |
| 487 | for (const key of legacyKeys) { |
| 488 | if (key in sanitizedValues) { |
| 489 | const copy = { ...sanitizedValues } as Record<string, unknown> |
| 490 | delete copy[key as string] |
| 491 | sanitizedValues = copy as RooCodeSettings |
| 492 | } |
| 493 | } |
| 494 | |
| 495 | const isKnownProvider = |
| 496 | typeof sanitizedValues.apiProvider === "string" && |
| 497 | (isProviderName(sanitizedValues.apiProvider) || isRetiredProvider(sanitizedValues.apiProvider)) |
| 498 | |
| 499 | if (sanitizedValues.apiProvider !== undefined && !isKnownProvider) { |
| 500 | logger.info( |
| 501 | `[ContextProxy] Sanitizing invalid provider "${sanitizedValues.apiProvider}" - resetting to undefined`, |
| 502 | ) |
| 503 | // Return a new values object without the invalid apiProvider |
| 504 | const { apiProvider, ...restValues } = sanitizedValues |
| 505 | return restValues as RooCodeSettings |
| 506 | } |
| 507 | return sanitizedValues |
| 508 | } |
| 509 | |
| 510 | public async setProviderSettings(values: ProviderSettings) { |
| 511 | // Explicitly clear out any old API configuration values before that |
no test coverage detected