From 1d40812f2ad253f899e83823b765143c4f439c8c Mon Sep 17 00:00:00 2001 From: Zoe <62722391+juls0730@users.noreply.github.com> Date: Mon, 27 Apr 2026 12:04:49 -0500 Subject: [PATCH] refactor: extract provider logic into modular registry Each AI provider now has its own module implementing a ProviderModule interface with createGateway, getAuthHeaders, and fetchModels methods. This replaces the monolithic switch statements in ai-provider.ts and models.post.ts with a clean registry pattern. --- app/components/Settings/AIServiceProvider.vue | 8 +- app/types/model.ts | 25 - .../api/provider/[providerId]/models.post.ts | 607 +----------------- server/api/providers.get.ts | 63 +- server/utils/ai-provider.ts | 191 +----- server/utils/providers/anthropic.ts | 50 ++ server/utils/providers/cerebras.ts | 44 ++ server/utils/providers/closedrouter.ts | 63 ++ server/utils/providers/cohere.ts | 80 +++ server/utils/providers/google.ts | 45 ++ server/utils/providers/helpers.ts | 123 ++++ server/utils/providers/inception.ts | 42 ++ server/utils/providers/index.ts | 89 +++ server/utils/providers/longcat.ts | 72 +++ server/utils/providers/mistral.ts | 84 +++ server/utils/providers/nvidia.ts | 44 ++ server/utils/providers/ollama.ts | 131 ++++ server/utils/providers/openai.ts | 47 ++ server/utils/providers/openrouter.ts | 119 ++++ server/utils/providers/vllm.ts | 42 ++ server/utils/providers/xiaomi.ts | 50 ++ 21 files changed, 1221 insertions(+), 798 deletions(-) create mode 100644 server/utils/providers/anthropic.ts create mode 100644 server/utils/providers/cerebras.ts create mode 100644 server/utils/providers/closedrouter.ts create mode 100644 server/utils/providers/cohere.ts create mode 100644 server/utils/providers/google.ts create mode 100644 server/utils/providers/helpers.ts create mode 100644 server/utils/providers/inception.ts create mode 100644 server/utils/providers/index.ts create mode 100644 server/utils/providers/longcat.ts create mode 100644 server/utils/providers/mistral.ts create mode 100644 server/utils/providers/nvidia.ts create mode 100644 server/utils/providers/ollama.ts create mode 100644 server/utils/providers/openai.ts create mode 100644 server/utils/providers/openrouter.ts create mode 100644 server/utils/providers/vllm.ts create mode 100644 server/utils/providers/xiaomi.ts diff --git a/app/components/Settings/AIServiceProvider.vue b/app/components/Settings/AIServiceProvider.vue index a2eb61b..65bc1dd 100644 --- a/app/components/Settings/AIServiceProvider.vue +++ b/app/components/Settings/AIServiceProvider.vue @@ -1,7 +1,7 @@