mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-09-21 14:07:20 +08:00
fix(vscode): restore popular provider settings
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user