mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-01 11:06:03 +00:00
* feat(plugins): catch code-mode drift between catalogs sharing one model Adds a contract test that groups bundled catalog rows by shared upstream model and requires every row in a group to declare compat.codeMode once any sibling does. Rows sharing a model id group automatically; rows under different ids opt in with the new manifest-only `upstreamModel` marker. Moves the kimi catalog into its manifest so the scan can see it, and records the tier reseller catalogs were silently missing as explicit "capable". * docs: regenerate docs map for the shared-model code-mode section
289 lines
9.6 KiB
JSON
289 lines
9.6 KiB
JSON
{
|
|
"id": "github-copilot",
|
|
"activation": {
|
|
"onStartup": false
|
|
},
|
|
"enabledByDefault": true,
|
|
"providers": ["github-copilot"],
|
|
"providerEndpoints": [
|
|
{
|
|
"endpointClass": "github-copilot-native",
|
|
"hostSuffixes": [".githubcopilot.com"]
|
|
}
|
|
],
|
|
"providerRequest": {
|
|
"providers": {
|
|
"github-copilot": {
|
|
"family": "github-copilot"
|
|
}
|
|
}
|
|
},
|
|
"modelCatalog": {
|
|
"providers": {
|
|
"github-copilot": {
|
|
"baseUrl": "https://api.individual.githubcopilot.com",
|
|
"api": "openai-responses",
|
|
"models": [
|
|
{
|
|
"id": "claude-fable-5",
|
|
"name": "Claude Fable 5",
|
|
"api": "anthropic-messages",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1000000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 10, "output": 50, "cacheRead": 1, "cacheWrite": 12.5 },
|
|
"compat": { "codeMode": "capable" }
|
|
},
|
|
{
|
|
"id": "claude-opus-5",
|
|
"name": "Claude Opus 5",
|
|
"api": "anthropic-messages",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1000000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 5, "output": 25, "cacheRead": 0.5, "cacheWrite": 6.25 },
|
|
"compat": { "codeMode": "capable" }
|
|
},
|
|
{
|
|
"id": "claude-sonnet-5",
|
|
"name": "Claude Sonnet 5",
|
|
"api": "anthropic-messages",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1000000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 2, "output": 10, "cacheRead": 0.2, "cacheWrite": 2.5 },
|
|
"compat": { "codeMode": "capable" }
|
|
},
|
|
{
|
|
"id": "claude-haiku-4.5",
|
|
"name": "Claude Haiku 4.5",
|
|
"api": "anthropic-messages",
|
|
"input": ["text", "image"],
|
|
"contextWindow": 200000,
|
|
"maxTokens": 64000,
|
|
"cost": { "input": 1, "output": 5, "cacheRead": 0.1, "cacheWrite": 1.25 }
|
|
},
|
|
{
|
|
"id": "claude-opus-4.8",
|
|
"name": "Claude Opus 4.8",
|
|
"api": "anthropic-messages",
|
|
"status": "deprecated",
|
|
"replacedBy": "claude-opus-5",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1000000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 5, "output": 25, "cacheRead": 0.5, "cacheWrite": 6.25 }
|
|
},
|
|
{
|
|
"id": "claude-sonnet-4.6",
|
|
"name": "Claude Sonnet 4.6",
|
|
"api": "anthropic-messages",
|
|
"status": "deprecated",
|
|
"replacedBy": "claude-sonnet-5",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1000000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 3, "output": 15, "cacheRead": 0.3, "cacheWrite": 3.75 }
|
|
},
|
|
{
|
|
"id": "gemini-3.6-flash",
|
|
"name": "Gemini 3.6 Flash",
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1048576,
|
|
"maxTokens": 65536,
|
|
"cost": { "input": 1.5, "output": 7.5, "cacheRead": 0.15, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "gemini-3.1-pro-preview",
|
|
"name": "Gemini 3.1 Pro Preview",
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1048576,
|
|
"maxTokens": 65536,
|
|
"cost": { "input": 2, "output": 12, "cacheRead": 0.2, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "gemini-3.5-flash",
|
|
"name": "Gemini 3.5 Flash",
|
|
"status": "deprecated",
|
|
"replacedBy": "gemini-3.6-flash",
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1048576,
|
|
"maxTokens": 65536,
|
|
"cost": { "input": 1.5, "output": 9, "cacheRead": 0.15, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "gemini-2.5-pro",
|
|
"name": "Gemini 2.5 Pro",
|
|
"status": "deprecated",
|
|
"replacedBy": "gemini-3.1-pro-preview",
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1048576,
|
|
"maxTokens": 65536,
|
|
"cost": { "input": 1.25, "output": 10, "cacheRead": 0.125, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "gpt-5.6-sol",
|
|
"name": "GPT-5.6 Sol",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 922000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 5, "output": 30, "cacheRead": 0.5, "cacheWrite": 0 },
|
|
"compat": { "codeMode": "capable" }
|
|
},
|
|
{
|
|
"id": "gpt-5.6-terra",
|
|
"name": "GPT-5.6 Terra",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 922000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 2.5, "output": 15, "cacheRead": 0.25, "cacheWrite": 0 },
|
|
"compat": { "codeMode": "capable" }
|
|
},
|
|
{
|
|
"id": "gpt-5.6-luna",
|
|
"name": "GPT-5.6 Luna",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 922000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 1, "output": 6, "cacheRead": 0.1, "cacheWrite": 0 },
|
|
"compat": { "codeMode": "capable" }
|
|
},
|
|
{
|
|
"id": "gpt-5.3-codex",
|
|
"name": "GPT-5.3-Codex",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 400000,
|
|
"contextTokens": 272000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 1.75, "output": 14, "cacheRead": 0.175, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "gpt-5.4",
|
|
"name": "GPT-5.4",
|
|
"status": "deprecated",
|
|
"replacedBy": "gpt-5.6-terra",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 2.5, "output": 15, "cacheRead": 0.25, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "gpt-5.5",
|
|
"name": "GPT-5.5",
|
|
"status": "deprecated",
|
|
"replacedBy": "gpt-5.6-sol",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 272000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 5, "output": 30, "cacheRead": 0.5, "cacheWrite": 0 },
|
|
"compat": { "codeMode": "capable" }
|
|
},
|
|
{
|
|
"id": "gpt-5.4-mini",
|
|
"name": "GPT-5.4 mini",
|
|
"status": "deprecated",
|
|
"replacedBy": "gpt-5.6-luna",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 400000,
|
|
"contextTokens": 272000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 0.75, "output": 4.5, "cacheRead": 0.075, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "raptor-mini",
|
|
"name": "Raptor mini",
|
|
"input": ["text"],
|
|
"contextWindow": 128000,
|
|
"maxTokens": 8192,
|
|
"cost": { "input": 0.25, "output": 2, "cacheRead": 0.025, "cacheWrite": 0 }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"discovery": {
|
|
"github-copilot": "refreshable"
|
|
}
|
|
},
|
|
"contracts": {
|
|
"memoryEmbeddingProviders": ["github-copilot"],
|
|
"usageProviders": ["github-copilot"]
|
|
},
|
|
"setup": {
|
|
"providers": [
|
|
{
|
|
"id": "github-copilot",
|
|
"envVars": ["COPILOT_GITHUB_TOKEN", "GH_TOKEN", "GITHUB_TOKEN"]
|
|
}
|
|
]
|
|
},
|
|
"providerAuthChoices": [
|
|
{
|
|
"provider": "github-copilot",
|
|
"method": "device",
|
|
"choiceId": "github-copilot",
|
|
"appGuidedAuth": "device-code",
|
|
"appGuidedSecret": true,
|
|
"choiceLabel": "GitHub Copilot",
|
|
"choiceHint": "Device login with your GitHub account",
|
|
"assistantPriority": 1,
|
|
"groupId": "copilot",
|
|
"groupLabel": "Copilot",
|
|
"groupHint": "GitHub, GitHub Enterprise + Local Proxy",
|
|
"optionKey": "githubCopilotToken",
|
|
"cliFlag": "--github-copilot-token",
|
|
"cliOption": "--github-copilot-token <token>",
|
|
"cliDescription": "GitHub Copilot OAuth token"
|
|
},
|
|
{
|
|
"provider": "github-copilot",
|
|
"method": "device-enterprise",
|
|
"choiceId": "github-copilot-enterprise",
|
|
"appGuidedAuth": "device-code",
|
|
"choiceLabel": "GitHub Copilot (Enterprise / data residency)",
|
|
"choiceHint": "Device login against your GitHub Enterprise (*.ghe.com) tenant",
|
|
"assistantPriority": 2,
|
|
"groupId": "copilot",
|
|
"groupLabel": "Copilot",
|
|
"groupHint": "GitHub, GitHub Enterprise + Local Proxy"
|
|
}
|
|
],
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"discovery": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"enabled": { "type": "boolean" }
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"uiHints": {
|
|
"discovery": {
|
|
"label": "Model Discovery",
|
|
"help": "Plugin-owned controls for GitHub Copilot model auto-discovery."
|
|
},
|
|
"discovery.enabled": {
|
|
"label": "Enable Discovery",
|
|
"help": "When false, OpenClaw keeps the GitHub Copilot plugin available but skips implicit startup discovery from ambient Copilot credentials."
|
|
}
|
|
}
|
|
}
|