From bab6228748a901de9434db7cceddf2c6c922a0a6 Mon Sep 17 00:00:00 2001 From: erin2722 <16248113+erin2722@users.noreply.github.com> Date: Fri, 7 Aug 2026 10:23:37 +0000 Subject: [PATCH 1/2] chore: update model catalog from bot issues --- packages/proxy/schema/index.ts | 4 +++- packages/proxy/schema/model_list.json | 31 ++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/packages/proxy/schema/index.ts b/packages/proxy/schema/index.ts index f42837f6..8f2a1aee 100644 --- a/packages/proxy/schema/index.ts +++ b/packages/proxy/schema/index.ts @@ -863,7 +863,7 @@ export const AvailableEndpointTypes: { [name: string]: ModelEndpointType[] } = { "databricks-gpt-oss-20b": ["databricks"], "databricks-qwen35-122b-a10b": ["databricks"], "databricks-qwen3-next-80b-a3b-instruct": ["databricks"], - "thinkingmachines/inkling": ["baseten"], + "thinkingmachines/inkling": ["baseten", "openrouter", "together"], "thinkingmachines/inkling-small": ["baseten", "openrouter", "together"], "databricks-claude-opus-4-8": ["databricks"], "databricks-gpt-oss-120b": ["databricks"], @@ -1350,6 +1350,8 @@ export const AvailableEndpointTypes: { [name: string]: ModelEndpointType[] } = { "databricks-claude-opus-5": ["databricks"], "databricks-gemini-3-5-flash-lite": ["databricks"], "accounts/fireworks/models/inkling": ["fireworks"], + "perplexity/kimi-k3": ["perplexity"], + "perplexity/glm-5.2": ["perplexity"], }; const modelEndpointAvailableModels = getAvailableModels(); diff --git a/packages/proxy/schema/model_list.json b/packages/proxy/schema/model_list.json index 1e9718ba..cfe858f9 100644 --- a/packages/proxy/schema/model_list.json +++ b/packages/proxy/schema/model_list.json @@ -10746,7 +10746,8 @@ "max_input_tokens": 1048576, "available_providers": [ "baseten", - "openrouter" + "openrouter", + "together" ] }, "mistral-large-latest": { @@ -13331,6 +13332,34 @@ "openrouter" ] }, + "perplexity/kimi-k3": { + "format": "openai", + "flavor": "chat", + "multimodal": true, + "input_cost_per_mil_tokens": 3, + "output_cost_per_mil_tokens": 15, + "input_cache_read_cost_per_mil_tokens": 0.3, + "displayName": "Perplexity: Kimi K3", + "reasoning": true, + "max_input_tokens": 1048576, + "available_providers": [ + "perplexity" + ] + }, + "perplexity/glm-5.2": { + "format": "openai", + "flavor": "chat", + "input_cost_per_mil_tokens": 1.4, + "output_cost_per_mil_tokens": 4.4, + "input_cache_read_cost_per_mil_tokens": 0.26, + "displayName": "Perplexity: GLM 5.2", + "reasoning": true, + "max_input_tokens": 262144, + "max_output_tokens": 128000, + "available_providers": [ + "perplexity" + ] + }, "deepcogito/cogito-v2.1-671b": { "format": "openai", "flavor": "chat", From da9dc1ca27d9ed4efc342e0ce60947543337f19c Mon Sep 17 00:00:00 2001 From: Erin McNulty Date: Fri, 7 Aug 2026 13:51:31 +0000 Subject: [PATCH 2/2] Drop unroutable Perplexity Gateway models + fix inkling index.ts (BT-5895) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two fixes on this bot-issues PR: 1. Remove perplexity/kimi-k3 and perplexity/glm-5.2. These are Perplexity *Gateway* (router) models — third-party Kimi/GLM served by Perplexity — which are only reachable at https://api.perplexity.ai/router/v1/chat/completions (per the Perplexity gateway quickstart). But the `perplexity` provider points at the standard https://api.perplexity.ai in BOTH the TS proxy (EndpointProviderToBaseURL.perplexity) and lingua (providers/openai.rs: url "https://api.perplexity.ai"), which only serves Sonar. So these ids cannot be routed to the gateway endpoint and are not invocable. (Confirms the codex P1/P2.) Could not invocation-validate either way: the CI Perplexity secret is currently quota-exhausted (401 "exceeded your current quota" on every perplexity model incl. the sonar control), so this is also blocked on env. Removed from model_list.json + index.ts and added to MANUAL_SYNC_EXCLUDED_MODELS so the daily bot does not re-add them until a perplexity-router base URL/provider exists. Same pattern as the mythos (bedrock-mantle) and Vertex-MaaS exclusions. 2. thinkingmachines/inkling index.ts mapping: the PR set it to ["baseten", "openrouter", "together"], but per BT-5895 openrouter must be excluded from a native model's direct AvailableEndpointTypes when other providers exist (providersForExactModelName filters it). Corrected to ["baseten", "together"] (model_list available_providers keeps openrouter). + tests for both exclusions. Co-Authored-By: Claude Opus 4.8 --- packages/proxy/schema/index.ts | 4 +--- packages/proxy/schema/model_list.json | 28 ---------------------- packages/proxy/scripts/sync_models.test.ts | 8 +++++++ packages/proxy/scripts/sync_models.ts | 8 +++++++ 4 files changed, 17 insertions(+), 31 deletions(-) diff --git a/packages/proxy/schema/index.ts b/packages/proxy/schema/index.ts index 00b0b330..8a0bcdd2 100644 --- a/packages/proxy/schema/index.ts +++ b/packages/proxy/schema/index.ts @@ -863,7 +863,7 @@ export const AvailableEndpointTypes: { [name: string]: ModelEndpointType[] } = { "databricks-gpt-oss-20b": ["databricks"], "databricks-qwen35-122b-a10b": ["databricks"], "databricks-qwen3-next-80b-a3b-instruct": ["databricks"], - "thinkingmachines/inkling": ["baseten", "openrouter", "together"], + "thinkingmachines/inkling": ["baseten", "together"], "thinkingmachines/inkling-small": ["baseten", "openrouter", "together"], "databricks-claude-opus-4-8": ["databricks"], "databricks-gpt-oss-120b": ["databricks"], @@ -1350,8 +1350,6 @@ export const AvailableEndpointTypes: { [name: string]: ModelEndpointType[] } = { "databricks-claude-opus-5": ["databricks"], "databricks-gemini-3-5-flash-lite": ["databricks"], "accounts/fireworks/models/inkling": ["fireworks"], - "perplexity/kimi-k3": ["perplexity"], - "perplexity/glm-5.2": ["perplexity"], }; const modelEndpointAvailableModels = getAvailableModels(); diff --git a/packages/proxy/schema/model_list.json b/packages/proxy/schema/model_list.json index cfe858f9..8824a62f 100644 --- a/packages/proxy/schema/model_list.json +++ b/packages/proxy/schema/model_list.json @@ -13332,34 +13332,6 @@ "openrouter" ] }, - "perplexity/kimi-k3": { - "format": "openai", - "flavor": "chat", - "multimodal": true, - "input_cost_per_mil_tokens": 3, - "output_cost_per_mil_tokens": 15, - "input_cache_read_cost_per_mil_tokens": 0.3, - "displayName": "Perplexity: Kimi K3", - "reasoning": true, - "max_input_tokens": 1048576, - "available_providers": [ - "perplexity" - ] - }, - "perplexity/glm-5.2": { - "format": "openai", - "flavor": "chat", - "input_cost_per_mil_tokens": 1.4, - "output_cost_per_mil_tokens": 4.4, - "input_cache_read_cost_per_mil_tokens": 0.26, - "displayName": "Perplexity: GLM 5.2", - "reasoning": true, - "max_input_tokens": 262144, - "max_output_tokens": 128000, - "available_providers": [ - "perplexity" - ] - }, "deepcogito/cogito-v2.1-671b": { "format": "openai", "flavor": "chat", diff --git a/packages/proxy/scripts/sync_models.test.ts b/packages/proxy/scripts/sync_models.test.ts index 393bf582..ef2828b4 100644 --- a/packages/proxy/scripts/sync_models.test.ts +++ b/packages/proxy/scripts/sync_models.test.ts @@ -618,6 +618,14 @@ describe("isModelExcludedFromSync", () => { // auto-added by the daily bot. expect(isModelExcludedFromSync("anthropic.claude-mythos-5")).toBe(true); }); + + it("excludes the Perplexity Gateway (router) models", () => { + // Perplexity gateway third-party ids need the /router/v1 endpoint; the + // perplexity provider points at the standard api.perplexity.ai, so they are + // not invocable until router routing exists. + expect(isModelExcludedFromSync("perplexity/kimi-k3")).toBe(true); + expect(isModelExcludedFromSync("perplexity/glm-5.2")).toBe(true); + }); }); describe("convertBasetenToLocalModel", () => { diff --git a/packages/proxy/scripts/sync_models.ts b/packages/proxy/scripts/sync_models.ts index 7c872f8b..fd4ca52f 100644 --- a/packages/proxy/scripts/sync_models.ts +++ b/packages/proxy/scripts/sync_models.ts @@ -220,6 +220,14 @@ const MANUAL_SYNC_EXCLUDED_MODELS: ReadonlyArray = [ // Bedrock runtime (InvokeModel/Converse), so this id is not invocable via the // gateway and must not be auto-added until Mantle routing exists. "anthropic.claude-mythos-5", + // Perplexity Gateway (router) models: these third-party ids (Kimi/GLM served + // by Perplexity's gateway) are only reachable at + // https://api.perplexity.ai/router/v1/chat/completions, but the `perplexity` + // provider (TS proxy EndpointProviderToBaseURL + lingua) points at the standard + // https://api.perplexity.ai, which only serves Sonar. Not invocable until a + // perplexity-router base URL/provider exists. (Perplexity gateway quickstart.) + "perplexity/kimi-k3", + "perplexity/glm-5.2", ]; // The full exclusion set: manual quirks above + the provider-confirmed