diff --git a/open-sse/config/providerRegistry.ts b/open-sse/config/providerRegistry.ts index 7ce5046418..58779d8a91 100644 --- a/open-sse/config/providerRegistry.ts +++ b/open-sse/config/providerRegistry.ts @@ -933,6 +933,43 @@ export const REGISTRY: Record = { ], }, + "github-models": { + id: "github-models", + alias: "ghm", + format: "openai", + executor: "default", + baseUrl: "https://models.github.ai/inference/chat/completions", + modelsUrl: "https://models.github.ai/inference/models", + authType: "apikey", + authHeader: "Authorization", + authPrefix: "Bearer", + headers: { + "X-GitHub-Api-Version": "2022-11-28", + Accept: "application/vnd.github+json", + }, + defaultContextLength: 128000, + models: [ + { id: "openai/gpt-4.1", name: "GPT-4.1 (Free)", contextLength: 1047576 }, + { id: "openai/gpt-4o", name: "GPT-4o (Free)", contextLength: 128000 }, + { id: "openai/gpt-4o-mini", name: "GPT-4o Mini (Free)", contextLength: 128000 }, + { id: "openai/o1", name: "o1 (Free)", contextLength: 200000 }, + { id: "openai/o3", name: "o3 (Free)", contextLength: 200000 }, + { id: "openai/o4-mini", name: "o4-mini (Free)", contextLength: 200000 }, + { id: "deepseek/DeepSeek-R1", name: "DeepSeek R1 (Free)", contextLength: 131072 }, + { + id: "meta/Llama-4-Maverick-17B-128E-Instruct", + name: "Llama 4 Maverick (Free)", + contextLength: 131072, + }, + { id: "xai/grok-3", name: "Grok 3 (Free)", contextLength: 131072 }, + { id: "mistral-ai/Mistral-Medium-3", name: "Mistral Medium 3 (Free)", contextLength: 128000 }, + { id: "cohere/Cohere-command-a", name: "Cohere Command A (Free)", contextLength: 128000 }, + { id: "microsoft/Phi-4", name: "Phi-4 (Free)", contextLength: 16384 }, + { id: "openai/text-embedding-3-large", name: "Text Embedding 3 Large (Free)" }, + { id: "openai/text-embedding-3-small", name: "Text Embedding 3 Small (Free)" }, + ], + }, + kiro: { id: "kiro", alias: "kr", diff --git a/src/shared/constants/providers.ts b/src/shared/constants/providers.ts index 0d34f43e6f..a51e6d883a 100644 --- a/src/shared/constants/providers.ts +++ b/src/shared/constants/providers.ts @@ -876,6 +876,18 @@ export const APIKEY_PROVIDERS = { passthroughModels: true, authHint: "No auth required. API accepts any non-empty string as key for identification.", }, + "github-models": { + id: "github-models", + alias: "ghm", + name: "GitHub Models", + icon: "code", + color: "#238636", + textIcon: "GH", + website: "https://github.com/marketplace/models", + hasFree: true, + freeNote: "Free GPT-5, o-series, DeepSeek-R1, Llama 4, Grok 3 — GitHub account only.", + authHint: "Create a GitHub PAT with 'models: read' scope at github.com/settings/tokens", + }, "cloudflare-ai": { id: "cloudflare-ai", alias: "cf",