Merge pull request #7197 from Kilo-Org/kirillk/no-small-model

feat(vscode): filter kilo-auto/small from model picker by default in the extension
This commit is contained in:
Kirill Kalishev
2026-03-18 09:04:14 -04:00
committed by GitHub
3 changed files with 15 additions and 3 deletions
@@ -108,6 +108,7 @@ const ProvidersTab: Component = () => {
placement="bottom-start"
allowClear
clearLabel={language.t("settings.providers.notSet")}
includeAutoSmall
/>
</SettingsRow>
</Card>
@@ -15,7 +15,7 @@ import { useProvider, EnrichedModel } from "../../context/provider"
import { useSession } from "../../context/session"
import { useLanguage } from "../../context/language"
import type { ModelSelection } from "../../types/messages"
import { KILO_GATEWAY_ID, providerSortKey, isFree, buildTriggerLabel } from "./model-selector-utils"
import { KILO_GATEWAY_ID, isSmall, providerSortKey, isFree, buildTriggerLabel } from "./model-selector-utils"
interface ModelGroup {
providerName: string
@@ -37,6 +37,8 @@ export interface ModelSelectorBaseProps {
allowClear?: boolean
/** Label shown for the clear option */
clearLabel?: string
/** Include the kilo-auto/small model in the list — defaults to false */
includeAutoSmall?: boolean
}
export const ModelSelectorBase: Component<ModelSelectorBaseProps> = (props) => {
@@ -52,10 +54,14 @@ export const ModelSelectorBase: Component<ModelSelectorBaseProps> = (props) => {
let searchRef: HTMLInputElement | undefined
let listRef: HTMLDivElement | undefined
// Only show models from Kilo Gateway or connected providers
// Only show models from Kilo Gateway or connected providers.
// kilo-auto/small is excluded unless includeAutoSmall is explicitly true.
const visibleModels = createMemo(() => {
const c = connected()
return models().filter((m) => m.providerID === KILO_GATEWAY_ID || c.includes(m.providerID))
return models().filter((m) => {
if (!props.includeAutoSmall && isSmall(m)) return false
return m.providerID === KILO_GATEWAY_ID || c.includes(m.providerID)
})
})
const hasProviders = () => visibleModels().length > 0
@@ -2,6 +2,11 @@ import type { ModelSelection } from "../../types/messages"
import type { EnrichedModel } from "../../context/provider"
export const KILO_GATEWAY_ID = "kilo"
export const KILO_AUTO_SMALL_IDS = new Set(["kilo-auto/small", "auto-small"])
export function isSmall(model: Pick<EnrichedModel, "providerID" | "id">): boolean {
return model.providerID === KILO_GATEWAY_ID && KILO_AUTO_SMALL_IDS.has(model.id)
}
export const PROVIDER_ORDER = [KILO_GATEWAY_ID, "anthropic", "openai", "google"]