diff --git a/archon-ui-main/src/services/openrouterService.ts b/archon-ui-main/src/services/openrouterService.ts index 4693e58f..b70cf3ad 100644 --- a/archon-ui-main/src/services/openrouterService.ts +++ b/archon-ui-main/src/services/openrouterService.ts @@ -23,7 +23,7 @@ export interface OpenRouterModelListResponse { } class OpenRouterService { - private baseUrl = getApiUrl(); + private getBaseUrl = () => getApiUrl(); private cacheKey = "openrouter_models_cache"; private cacheTTL = 5 * 60 * 1000; // 5 minutes @@ -101,7 +101,7 @@ class OpenRouterService { return cached; } - const response = await fetch(`${this.baseUrl}/api/openrouter/models`, { + const response = await fetch(`${this.getBaseUrl()}/api/openrouter/models`, { method: "GET", headers: { "Content-Type": "application/json", @@ -115,6 +115,11 @@ class OpenRouterService { const data = await response.json(); + // Validate response structure + if (!data.embedding_models || !Array.isArray(data.embedding_models)) { + throw new Error("Invalid response structure from OpenRouter API"); + } + // Cache the successful response this.cacheModels(data);