import { defineWrappedResponseHandler } from "#server/utils/handler"; import { R } from "#server/utils/response"; import { getCurrentUser, getConfigGlobal } from "#server/utils/context"; import { listAllEnabledModelsForUser, getModelWithProviderByIdAny } from "#server/service/llm"; export default defineWrappedResponseHandler(async (event) => { const user = await getCurrentUser(event); const [list, globalDefaultModelId] = await Promise.all([ listAllEnabledModelsForUser(user?.id ?? null), getConfigGlobal("agentDefaultModelId"), ]); if (globalDefaultModelId && !list.some((m) => m.id === globalDefaultModelId)) { const row = await getModelWithProviderByIdAny(globalDefaultModelId); if (row) { list.unshift({ id: row.model.id, name: row.model.name, modelId: row.model.modelId, type: row.model.type, providerName: row.provider.name, providerId: row.provider.id, supportsTools: row.model.supportsTools, }); } } return R.success({ list, defaultModelId: globalDefaultModelId ?? null }); });