From 579368118989a2c47e8316180d4a8743e81886bb Mon Sep 17 00:00:00 2001 From: Siddharth Ganesan Date: Tue, 10 Feb 2026 13:20:17 -0800 Subject: [PATCH] Cleanup --- apps/sim/app/api/copilot/user-models/route.ts | 123 ------------------ apps/sim/stores/panel/copilot/store.ts | 3 - apps/sim/stores/panel/copilot/types.ts | 2 - 3 files changed, 128 deletions(-) delete mode 100644 apps/sim/app/api/copilot/user-models/route.ts diff --git a/apps/sim/app/api/copilot/user-models/route.ts b/apps/sim/app/api/copilot/user-models/route.ts deleted file mode 100644 index 6ead89a41..000000000 --- a/apps/sim/app/api/copilot/user-models/route.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { createLogger } from '@sim/logger' -import { eq } from 'drizzle-orm' -import { type NextRequest, NextResponse } from 'next/server' -import { getSession } from '@/lib/auth' -import type { CopilotModelId } from '@/lib/copilot/models' -import { db } from '@/../../packages/db' -import { settings } from '@/../../packages/db/schema' - -const logger = createLogger('CopilotUserModelsAPI') - -const DEFAULT_ENABLED_MODELS: Record = { - 'claude-opus-4-6': true, - 'claude-opus-4-5': true, - 'claude-sonnet-4-5': true, - 'claude-haiku-4-5': true, - 'gpt-5.2': true, - 'gpt-5.2-codex': true, - 'gemini-3-pro': true, -} - -// GET - Fetch user's enabled models -export async function GET(request: NextRequest) { - try { - const session = await getSession() - - if (!session?.user?.id) { - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } - - const userId = session.user.id - - const [userSettings] = await db - .select() - .from(settings) - .where(eq(settings.userId, userId)) - .limit(1) - - if (userSettings) { - const userModelsMap = (userSettings.copilotEnabledModels as Record) || {} - - const mergedModels = { ...DEFAULT_ENABLED_MODELS } - for (const [modelId, enabled] of Object.entries(userModelsMap)) { - if (modelId in mergedModels) { - mergedModels[modelId as CopilotModelId] = enabled - } - } - - const hasNewModels = Object.keys(DEFAULT_ENABLED_MODELS).some( - (key) => !(key in userModelsMap) - ) - - if (hasNewModels) { - await db - .update(settings) - .set({ - copilotEnabledModels: mergedModels, - updatedAt: new Date(), - }) - .where(eq(settings.userId, userId)) - } - - return NextResponse.json({ - enabledModels: mergedModels, - }) - } - - await db.insert(settings).values({ - id: userId, - userId, - copilotEnabledModels: DEFAULT_ENABLED_MODELS, - }) - - logger.info('Created new settings record with default models', { userId }) - - return NextResponse.json({ - enabledModels: DEFAULT_ENABLED_MODELS, - }) - } catch (error) { - logger.error('Failed to fetch user models', { error }) - return NextResponse.json({ error: 'Internal server error' }, { status: 500 }) - } -} - -// PUT - Update user's enabled models -export async function PUT(request: NextRequest) { - try { - const session = await getSession() - - if (!session?.user?.id) { - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } - - const userId = session.user.id - const body = await request.json() - - if (!body.enabledModels || typeof body.enabledModels !== 'object') { - return NextResponse.json({ error: 'enabledModels must be an object' }, { status: 400 }) - } - - const [existing] = await db.select().from(settings).where(eq(settings.userId, userId)).limit(1) - - if (existing) { - await db - .update(settings) - .set({ - copilotEnabledModels: body.enabledModels, - updatedAt: new Date(), - }) - .where(eq(settings.userId, userId)) - } else { - await db.insert(settings).values({ - id: userId, - userId, - copilotEnabledModels: body.enabledModels, - }) - } - - return NextResponse.json({ success: true }) - } catch (error) { - logger.error('Failed to update user models', { error }) - return NextResponse.json({ error: 'Internal server error' }, { status: 500 }) - } -} diff --git a/apps/sim/stores/panel/copilot/store.ts b/apps/sim/stores/panel/copilot/store.ts index 3eddf5429..4ef492b94 100644 --- a/apps/sim/stores/panel/copilot/store.ts +++ b/apps/sim/stores/panel/copilot/store.ts @@ -937,7 +937,6 @@ const initialState = { mode: 'build' as const, selectedModel: 'anthropic/claude-opus-4-6' as CopilotStore['selectedModel'], agentPrefetch: false, - enabledModels: null as string[] | null, // Null means not loaded yet, empty array means all disabled availableModels: [] as AvailableModel[], isLoadingModels: false, isCollapsed: false, @@ -1005,7 +1004,6 @@ export const useCopilotStore = create()( mode: get().mode, selectedModel: get().selectedModel, agentPrefetch: get().agentPrefetch, - enabledModels: get().enabledModels, availableModels: get().availableModels, isLoadingModels: get().isLoadingModels, autoAllowedTools: get().autoAllowedTools, @@ -2221,7 +2219,6 @@ export const useCopilotStore = create()( set({ selectedModel: model }) }, setAgentPrefetch: (prefetch) => set({ agentPrefetch: prefetch }), - setEnabledModels: (models) => set({ enabledModels: models }), loadAvailableModels: async () => { set({ isLoadingModels: true }) try { diff --git a/apps/sim/stores/panel/copilot/types.ts b/apps/sim/stores/panel/copilot/types.ts index 451523711..883e4a9b5 100644 --- a/apps/sim/stores/panel/copilot/types.ts +++ b/apps/sim/stores/panel/copilot/types.ts @@ -116,7 +116,6 @@ export interface CopilotState { mode: CopilotMode selectedModel: CopilotModelId agentPrefetch: boolean - enabledModels: string[] | null // Null means not loaded yet, array of model IDs when loaded availableModels: AvailableModel[] isLoadingModels: boolean isCollapsed: boolean @@ -186,7 +185,6 @@ export interface CopilotActions { setMode: (mode: CopilotMode) => void setSelectedModel: (model: CopilotStore['selectedModel']) => Promise setAgentPrefetch: (prefetch: boolean) => void - setEnabledModels: (models: string[] | null) => void loadAvailableModels: () => Promise setWorkflowId: (workflowId: string | null) => Promise