mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-30 16:53:34 +00:00
* fix(opencode): restore Zen model catalog * fix(opencode): restore Zen transport routing * fix(opencode): broaden Zen fallback catalog * fix(opencode): correct Zen family routing * fix(opencode): route Zen MiniMax through Anthropic * fix(opencode): filter Zen live-only catalog rows * fix(opencode): route MiniMax through Zen chat completions * fix(opencode): omit unverified Zen model costs * fix(opencode): align sampled Zen costs * fix(opencode): keep Zen cost metadata required * fix(opencode): keep Zen docs examples resolvable * fix(opencode): move Zen catalog to provider discovery * test(opencode): cover Zen discovery cache isolation * fix(opencode): add Zen GLM-5.2 catalog coverage * test(opencode): detect Zen catalog drift Signed-off-by: sallyom <somalley@redhat.com> --------- Signed-off-by: sallyom <somalley@redhat.com> Co-authored-by: sallyom <somalley@redhat.com>
230 lines
5.8 KiB
JSON
230 lines
5.8 KiB
JSON
{
|
|
"id": "opencode",
|
|
"icon": "https://cdn.simpleicons.org/opencode",
|
|
"activation": {
|
|
"onStartup": false
|
|
},
|
|
"providerCatalogEntry": "./provider-discovery.ts",
|
|
"enabledByDefault": true,
|
|
"providers": [
|
|
"opencode"
|
|
],
|
|
"providerEndpoints": [
|
|
{
|
|
"endpointClass": "opencode-native",
|
|
"hostSuffixes": [
|
|
"opencode.ai"
|
|
]
|
|
}
|
|
],
|
|
"providerRequest": {
|
|
"providers": {
|
|
"opencode": {
|
|
"family": "opencode"
|
|
}
|
|
}
|
|
},
|
|
"modelCatalog": {
|
|
"providers": {
|
|
"opencode": {
|
|
"baseUrl": "https://opencode.ai/zen/v1",
|
|
"api": "openai-completions",
|
|
"models": [
|
|
{
|
|
"id": "claude-opus-4-8",
|
|
"name": "Claude Opus 4.8",
|
|
"api": "anthropic-messages",
|
|
"provider": "opencode",
|
|
"baseUrl": "https://opencode.ai/zen",
|
|
"reasoning": true,
|
|
"input": [
|
|
"text",
|
|
"image"
|
|
],
|
|
"cost": {
|
|
"input": 5,
|
|
"output": 25,
|
|
"cacheRead": 0.5,
|
|
"cacheWrite": 6.25
|
|
},
|
|
"contextWindow": 200000,
|
|
"maxTokens": 65536,
|
|
"compat": {
|
|
"supportsUsageInStreaming": true,
|
|
"supportsReasoningEffort": true,
|
|
"maxTokensField": "max_tokens"
|
|
}
|
|
},
|
|
{
|
|
"id": "gpt-5.5",
|
|
"name": "GPT-5.5",
|
|
"api": "openai-responses",
|
|
"provider": "opencode",
|
|
"baseUrl": "https://opencode.ai/zen/v1",
|
|
"reasoning": true,
|
|
"input": [
|
|
"text",
|
|
"image"
|
|
],
|
|
"cost": {
|
|
"input": 5,
|
|
"output": 30,
|
|
"cacheRead": 0.5,
|
|
"cacheWrite": 0,
|
|
"tieredPricing": [
|
|
{
|
|
"input": 5,
|
|
"output": 30,
|
|
"cacheRead": 0.5,
|
|
"cacheWrite": 0,
|
|
"range": [
|
|
0,
|
|
272000
|
|
]
|
|
},
|
|
{
|
|
"input": 10,
|
|
"output": 45,
|
|
"cacheRead": 1,
|
|
"cacheWrite": 0,
|
|
"range": [
|
|
272000
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"contextWindow": 400000,
|
|
"maxTokens": 128000,
|
|
"compat": {
|
|
"supportsUsageInStreaming": true,
|
|
"supportsReasoningEffort": true,
|
|
"maxTokensField": "max_tokens"
|
|
}
|
|
},
|
|
{
|
|
"id": "gemini-3.1-pro",
|
|
"name": "Gemini 3.1 Pro",
|
|
"api": "google-generative-ai",
|
|
"provider": "opencode",
|
|
"baseUrl": "https://opencode.ai/zen/v1",
|
|
"reasoning": true,
|
|
"input": [
|
|
"text",
|
|
"image"
|
|
],
|
|
"cost": {
|
|
"input": 2,
|
|
"output": 12,
|
|
"cacheRead": 0.2,
|
|
"cacheWrite": 0,
|
|
"tieredPricing": [
|
|
{
|
|
"input": 2,
|
|
"output": 12,
|
|
"cacheRead": 0.2,
|
|
"cacheWrite": 0,
|
|
"range": [
|
|
0,
|
|
200000
|
|
]
|
|
},
|
|
{
|
|
"input": 4,
|
|
"output": 18,
|
|
"cacheRead": 0.4,
|
|
"cacheWrite": 0,
|
|
"range": [
|
|
200000
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"contextWindow": 1048576,
|
|
"maxTokens": 65536,
|
|
"compat": {
|
|
"supportsUsageInStreaming": true,
|
|
"supportsReasoningEffort": true,
|
|
"maxTokensField": "max_tokens"
|
|
}
|
|
},
|
|
{
|
|
"id": "minimax-m2.7",
|
|
"name": "MiniMax M2.7",
|
|
"api": "openai-completions",
|
|
"provider": "opencode",
|
|
"baseUrl": "https://opencode.ai/zen/v1",
|
|
"reasoning": true,
|
|
"input": [
|
|
"text"
|
|
],
|
|
"cost": {
|
|
"input": 0.3,
|
|
"output": 1.2,
|
|
"cacheRead": 0.06,
|
|
"cacheWrite": 0.375
|
|
},
|
|
"contextWindow": 204800,
|
|
"maxTokens": 131072,
|
|
"compat": {
|
|
"supportsUsageInStreaming": true,
|
|
"supportsReasoningEffort": true,
|
|
"maxTokensField": "max_tokens",
|
|
"supportsDeveloperRole": false,
|
|
"supportsStrictMode": false
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"discovery": {
|
|
"opencode": "runtime"
|
|
}
|
|
},
|
|
"setup": {
|
|
"providers": [
|
|
{
|
|
"id": "opencode",
|
|
"envVars": [
|
|
"OPENCODE_API_KEY",
|
|
"OPENCODE_ZEN_API_KEY"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"providerAuthChoices": [
|
|
{
|
|
"provider": "opencode",
|
|
"method": "api-key",
|
|
"choiceId": "opencode-zen",
|
|
"choiceLabel": "OpenCode Zen catalog",
|
|
"groupId": "opencode",
|
|
"groupLabel": "OpenCode",
|
|
"groupHint": "Shared API key for Zen + Go catalogs",
|
|
"optionKey": "opencodeZenApiKey",
|
|
"cliFlag": "--opencode-zen-api-key",
|
|
"cliOption": "--opencode-zen-api-key <key>",
|
|
"cliDescription": "OpenCode API key (Zen catalog)"
|
|
}
|
|
],
|
|
"contracts": {
|
|
"mediaUnderstandingProviders": [
|
|
"opencode"
|
|
]
|
|
},
|
|
"mediaUnderstandingProviderMetadata": {
|
|
"opencode": {
|
|
"capabilities": [
|
|
"image"
|
|
],
|
|
"defaultModels": {
|
|
"image": "gpt-5-nano"
|
|
}
|
|
}
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {}
|
|
}
|
|
}
|