import { defineEventHandler } from 'h3'; import { buildClaudeAgentEnv, getClaudeAgentDebugFilePath, } from '../../utils/resolve-claude-agent-env'; interface ModelInfo { value: string; displayName: string; description: string; } let cachedModels: ModelInfo[] | null = null; /** * Returns the list of available AI models via Claude Agent SDK. * Used as a fallback when no providers are explicitly connected. */ export default defineEventHandler(async () => { if (cachedModels) { return { models: cachedModels }; } try { const { query } = await import('@anthropic-ai/claude-agent-sdk'); const env = buildClaudeAgentEnv(); const debugFile = getClaudeAgentDebugFilePath(); const q = query({ prompt: '', options: { maxTurns: 1, tools: [], permissionMode: 'plan', persistSession: false, env, ...(debugFile ? { debugFile } : {}), }, }); const models = await q.supportedModels(); cachedModels = models; q.close(); return { models }; } catch (error) { const message = error instanceof Error ? error.message : 'Unknown error'; return { models: [], error: message }; } });