From 6d03cc6baf3f24305ed16863d23921fd45023cbf Mon Sep 17 00:00:00 2001 From: Dan Levy Date: Thu, 8 Oct 2026 16:09:46 -0600 Subject: [PATCH] Curate current model presets while preserving explicit model routes --- src/app/api/model-config/route.ts | 8 +- src/components/AgentModelsDialog.tsx | 5 + src/components/ChatComposer.tsx | 2 +- src/components/chat/ModelPicker.tsx | 15 ++- src/lib/models/picker.ts | 45 +++++++++ src/lib/models/registry.ts | 70 +++++++++++++- tests/integration/model-config-api.test.ts | 102 +++++++++++++-------- 7 files changed, 197 insertions(+), 50 deletions(-) create mode 100644 src/lib/models/picker.ts diff --git a/src/app/api/model-config/route.ts b/src/app/api/model-config/route.ts index 815505370..d5533e1a3 100644 --- a/src/app/api/model-config/route.ts +++ b/src/app/api/model-config/route.ts @@ -1,4 +1,5 @@ -import { DEFAULT_MODEL_REGISTRY } from "../../../lib/models"; +import { getModelPickerOptions } from "../../../lib/models/picker"; +import { DEFAULT_MODEL_REGISTRY } from "../../../lib/models/registry"; import { getModelConfig, readModelConfigScopeFromParams, @@ -11,9 +12,10 @@ export const dynamic = "force-dynamic"; export async function GET(request: Request) { try { const url = new URL(request.url); + const modelConfig = await getModelConfig(readModelConfigScopeFromParams(url.searchParams)); return ok({ - modelConfig: await getModelConfig(readModelConfigScopeFromParams(url.searchParams)), - availableModels: Object.values(DEFAULT_MODEL_REGISTRY), + modelConfig, + availableModels: getModelPickerOptions(modelConfig, DEFAULT_MODEL_REGISTRY), }); } catch (error) { return handleApiError(error); diff --git a/src/components/AgentModelsDialog.tsx b/src/components/AgentModelsDialog.tsx index 0f88396b4..cc22d6546 100644 --- a/src/components/AgentModelsDialog.tsx +++ b/src/components/AgentModelsDialog.tsx @@ -531,6 +531,11 @@ export function AgentModelsDialog({ void handleSelectModel(entry.target, event.target.value) } > + {activeUri && !matchedOptionUri ? ( + + ) : null} {entry.target !== "default" ? (