fix(vscode): restore popular provider settings

This commit is contained in:
kirillk
2026-06-16 22:02:19 -04:00
parent 6e69bac728
commit 9b73bf91e4
3 changed files with 43 additions and 4 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"kilo-code": patch
---
Restore popular provider suggestions in the VS Code provider settings panel when provider metadata is unavailable.
@@ -0,0 +1,32 @@
import { describe, expect, it } from "bun:test"
import type { Provider } from "../../webview-ui/src/types/messages"
import { isPopularProvider, popularProviderIndex, sortProviders } from "../../webview-ui/src/components/settings/provider-catalog"
function provider(id: string, metadata?: Provider["metadata"]): Provider {
return {
id,
name: id,
models: {},
metadata,
}
}
describe("provider catalog", () => {
it("treats known provider objects as popular when metadata is unavailable", () => {
expect(isPopularProvider(provider("openai"))).toBe(true)
expect(isPopularProvider(provider("anthropic"))).toBe(true)
expect(isPopularProvider(provider("unknown"))).toBe(false)
})
it("uses fallback ordering for provider objects without metadata", () => {
const items = [provider("openai"), provider("anthropic"), provider("unknown")]
const ids = sortProviders(items).map((item) => item.id)
expect(ids).toEqual(["anthropic", "openai", "unknown"])
})
it("prefers metadata priority over fallback ordering", () => {
expect(popularProviderIndex(provider("openai", { priority: 1 }))).toBe(1)
})
})
@@ -12,13 +12,15 @@ export const CUSTOM_PROVIDER_ID = "_custom"
const fallback = new Set<string>(FALLBACK_PROVIDER_IDS)
export function isPopularProvider(provider: Provider | string) {
if (typeof provider !== "string") return provider.metadata?.priority !== undefined
return fallback.has(provider)
const id = typeof provider === "string" ? provider : provider.id
if (typeof provider !== "string" && provider.metadata?.priority !== undefined) return true
return fallback.has(id)
}
export function popularProviderIndex(provider: Provider | string) {
if (typeof provider !== "string") return provider.metadata?.priority ?? Number.MAX_SAFE_INTEGER
return providerOrderIndex(provider, FALLBACK_PROVIDER_IDS)
const id = typeof provider === "string" ? provider : provider.id
if (typeof provider !== "string" && provider.metadata?.priority !== undefined) return provider.metadata.priority
return providerOrderIndex(id, FALLBACK_PROVIDER_IDS)
}
function validIcon(id: string | undefined): IconName | undefined {