diff --git a/containers/api-proxy/model-api-mapping.json b/containers/api-proxy/model-api-mapping.json index 5feb40d60..f3776155f 100644 --- a/containers/api-proxy/model-api-mapping.json +++ b/containers/api-proxy/model-api-mapping.json @@ -1,7 +1,7 @@ { "title": "Model-to-API Endpoint Mapping", "description": "Maps AI model families to their supported API endpoints. Used to determine which endpoint (chat/completions vs responses vs messages) a model requires.", - "lastUpdated": "2026-07-25T06:01:17Z", + "lastUpdated": "2026-08-12T05:43:00Z", "sources": { "openai": "https://platform.openai.com/docs/models", "anthropic": "https://docs.anthropic.com/en/docs/about-claude/models" @@ -19,11 +19,23 @@ } }, "models": [ + { + "family": "gpt-daybreak", + "patterns": ["gpt-daybreak-blue-latest", "gpt-daybreak-red-latest"], + "endpoints": ["responses"], + "notes": "Responses API only (ResponsesModel-only Literal). Experimental/preview aliases not present in ChatModel." + }, + { + "family": "gpt-5.6-cyber", + "patterns": ["gpt-5.6-cyber*"], + "endpoints": ["responses"], + "notes": "Responses API only (ResponsesModel-only Literal, not in ChatModel). More specific than gpt-5.6* pattern below." + }, { "family": "gpt-5.6", "patterns": ["gpt-5.6*"], "endpoints": ["chat_completions", "responses"], - "notes": "Supports both endpoints. Includes gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna per OpenAI SDK ChatModel." + "notes": "Supports both endpoints. Includes gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna per OpenAI SDK ChatModel. gpt-5.6-cyber is responses-only (see separate entry above)." }, { "family": "gpt-5.5", diff --git a/containers/api-proxy/model-api-mapping.test.js b/containers/api-proxy/model-api-mapping.test.js index 897114763..2a66dadef 100644 --- a/containers/api-proxy/model-api-mapping.test.js +++ b/containers/api-proxy/model-api-mapping.test.js @@ -136,7 +136,7 @@ describe('model-api-mapping', () => { expect(reflect.available).toBe(true); expect(reflect.providers).toContain('openai'); expect(reflect.providers).toContain('anthropic'); - expect(reflect.last_updated).toBe('2026-07-25T06:01:17Z'); + expect(reflect.last_updated).toBe('2026-08-12T05:43:00Z'); expect(reflect.models.anthropic.models[0].family).toBe('claude-opus-5'); expect(reflect.error).toBeNull(); }); diff --git a/docs/model-api-mapping.json b/docs/model-api-mapping.json index cc48bc04d..f3776155f 100644 --- a/docs/model-api-mapping.json +++ b/docs/model-api-mapping.json @@ -1,7 +1,7 @@ { "title": "Model-to-API Endpoint Mapping", "description": "Maps AI model families to their supported API endpoints. Used to determine which endpoint (chat/completions vs responses vs messages) a model requires.", - "lastUpdated": "2026-08-05T06:03:21Z", + "lastUpdated": "2026-08-12T05:43:00Z", "sources": { "openai": "https://platform.openai.com/docs/models", "anthropic": "https://docs.anthropic.com/en/docs/about-claude/models" @@ -19,11 +19,23 @@ } }, "models": [ + { + "family": "gpt-daybreak", + "patterns": ["gpt-daybreak-blue-latest", "gpt-daybreak-red-latest"], + "endpoints": ["responses"], + "notes": "Responses API only (ResponsesModel-only Literal). Experimental/preview aliases not present in ChatModel." + }, + { + "family": "gpt-5.6-cyber", + "patterns": ["gpt-5.6-cyber*"], + "endpoints": ["responses"], + "notes": "Responses API only (ResponsesModel-only Literal, not in ChatModel). More specific than gpt-5.6* pattern below." + }, { "family": "gpt-5.6", "patterns": ["gpt-5.6*"], "endpoints": ["chat_completions", "responses"], - "notes": "Supports both endpoints. Includes gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna per OpenAI SDK ChatModel." + "notes": "Supports both endpoints. Includes gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna per OpenAI SDK ChatModel. gpt-5.6-cyber is responses-only (see separate entry above)." }, { "family": "gpt-5.5", diff --git a/src/copilot-model-catalog-sync.test.ts b/src/copilot-model-catalog-sync.test.ts index 991918fbe..6e4cdd966 100644 --- a/src/copilot-model-catalog-sync.test.ts +++ b/src/copilot-model-catalog-sync.test.ts @@ -75,6 +75,8 @@ const SUPPORTED_WITHOUT_CURATED_PRICING = new Set([ ]); const MAPPING_FAMILIES_NOT_EXPOSED_BY_COPILOT_CLI = new Set([ + 'gpt-daybreak', // responses-only preview aliases; not in the Copilot CLI model picker + 'gpt-5-6-cyber', // responses-only gpt-5.6 variant; not in the Copilot CLI model picker 'gpt-5-1-codex-max', 'gpt-5-codex/pro', 'o4-mini-deep-research',