Spaces:
Configuration error
Configuration error
| import type { ModelDefinitionConfig } from "../config/types.js"; | |
| const DEFAULT_CONTEXT_WINDOW = 128_000; | |
| const DEFAULT_MAX_TOKENS = 8192; | |
| // Copilot model ids vary by plan/org and can change. | |
| // We keep this list intentionally broad; if a model isn't available Copilot will | |
| // return an error and users can remove it from their config. | |
| const DEFAULT_MODEL_IDS = [ | |
| "gpt-4o", | |
| "gpt-4.1", | |
| "gpt-4.1-mini", | |
| "gpt-4.1-nano", | |
| "o1", | |
| "o1-mini", | |
| "o3-mini", | |
| ] as const; | |
| export function getDefaultCopilotModelIds(): string[] { | |
| return [...DEFAULT_MODEL_IDS]; | |
| } | |
| export function buildCopilotModelDefinition(modelId: string): ModelDefinitionConfig { | |
| const id = modelId.trim(); | |
| if (!id) throw new Error("Model id required"); | |
| return { | |
| id, | |
| name: id, | |
| // pi-coding-agent's registry schema doesn't know about a "github-copilot" API. | |
| // We use OpenAI-compatible responses API, while keeping the provider id as | |
| // "github-copilot" (pi-ai uses that to attach Copilot-specific headers). | |
| api: "openai-responses", | |
| reasoning: false, | |
| input: ["text", "image"], | |
| cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, | |
| contextWindow: DEFAULT_CONTEXT_WINDOW, | |
| maxTokens: DEFAULT_MAX_TOKENS, | |
| }; | |
| } | |