Files
openclaw/extensions/venice/openclaw.plugin.json
Peter Steinberger 99ec30b44b feat(plugins): catch code-mode drift between catalogs shipping the same model (#115183)
* 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
2026-07-28 08:52:21 -04:00

297 lines
9.4 KiB
JSON

{
"id": "venice",
"activation": {
"onStartup": false
},
"enabledByDefault": true,
"providers": ["venice"],
"contracts": {
"usageProviders": ["venice"]
},
"providerAuthChoices": [
{
"provider": "venice",
"method": "api-key",
"choiceId": "venice-api-key",
"appGuidedSecret": true,
"choiceLabel": "Venice AI API key",
"groupId": "venice",
"groupLabel": "Venice AI",
"groupHint": "Privacy-focused (uncensored models)",
"optionKey": "veniceApiKey",
"cliFlag": "--venice-api-key",
"cliOption": "--venice-api-key <key>",
"cliDescription": "Venice API key"
}
],
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
},
"setup": {
"providers": [
{
"id": "venice",
"authMethods": ["api-key"],
"envVars": ["VENICE_API_KEY"]
}
]
},
"modelCatalog": {
"providers": {
"venice": {
"baseUrl": "https://api.venice.ai/api/v1",
"api": "openai-completions",
"defaultModel": "zai-org-glm-4.7",
"models": [
{
"id": "zai-org-glm-5-2",
"name": "GLM 5.2",
"reasoning": true,
"input": ["text"],
"contextWindow": 1000000,
"maxTokens": 131072,
"cost": { "input": 1.4, "output": 4.4, "cacheRead": 0.26, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "zai-org-glm-4.7",
"name": "GLM 4.7",
"reasoning": true,
"input": ["text"],
"contextWindow": 198000,
"maxTokens": 16384,
"cost": { "input": 0.55, "output": 2.65, "cacheRead": 0.11, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "venice-uncensored-1-2",
"name": "Venice Uncensored 1.2",
"reasoning": false,
"input": ["text", "image"],
"contextWindow": 128000,
"maxTokens": 8192,
"cost": { "input": 0.2, "output": 0.9, "cacheRead": 0, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "google-gemma-4-31b-it",
"name": "Google Gemma 4 31B Instruct",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 256000,
"maxTokens": 8192,
"cost": { "input": 0.12, "output": 0.36, "cacheRead": 0.09, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "kimi-k2-6",
"name": "Kimi K2.6",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 256000,
"maxTokens": 65536,
"cost": { "input": 0.75, "output": 3.5, "cacheRead": 0.16, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "deepseek-v3.2",
"name": "DeepSeek V3.2",
"reasoning": true,
"input": ["text"],
"contextWindow": 160000,
"maxTokens": 32768,
"cost": { "input": 0.33, "output": 0.48, "cacheRead": 0.16, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "qwen3-235b-a22b-thinking-2507",
"name": "Qwen3 235B Thinking",
"reasoning": true,
"input": ["text"],
"contextWindow": 128000,
"maxTokens": 16384,
"cost": { "input": 0.45, "output": 3.5, "cacheRead": 0, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "qwen3-coder-480b-a35b-instruct-turbo",
"name": "Qwen3 Coder 480B Turbo",
"reasoning": false,
"input": ["text"],
"contextWindow": 256000,
"maxTokens": 65536,
"cost": { "input": 0.35, "output": 1.5, "cacheRead": 0.04, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "qwen3-vl-235b-a22b",
"name": "Qwen3 VL 235B (Vision)",
"reasoning": false,
"input": ["text", "image"],
"contextWindow": 128000,
"maxTokens": 16384,
"cost": { "input": 0.21, "output": 1.9, "cacheRead": 0.1, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "grok-4-5",
"name": "Grok 4.5",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 500000,
"maxTokens": 32000,
"cost": { "input": 2.27, "output": 6.8, "cacheRead": 0.34, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "qwen-3-7-max",
"name": "Qwen 3.7 Max (via Venice)",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 65536,
"cost": { "input": 2.7, "output": 8.05, "cacheRead": 0.27, "cacheWrite": 3.35 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "qwen-3-7-plus",
"name": "Qwen 3.7 Plus (via Venice)",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 65536,
"cost": { "input": 0.5, "output": 2, "cacheRead": 0.05, "cacheWrite": 0.625 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "claude-fable-5",
"name": "Claude Fable 5 (via Venice)",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 128000,
"cost": { "input": 12, "output": 60, "cacheRead": 1.2, "cacheWrite": 15 },
"compat": {
"supportsUsageInStreaming": false,
"codeMode": "capable"
}
},
{
"id": "claude-opus-5",
"name": "Claude Opus 5 (via Venice)",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 128000,
"cost": { "input": 6, "output": 30, "cacheRead": 0.6, "cacheWrite": 7.5 },
"compat": {
"supportsUsageInStreaming": false,
"codeMode": "capable"
}
},
{
"id": "claude-sonnet-4-6",
"name": "Claude Sonnet 4.6 (via Venice)",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 64000,
"cost": { "input": 3.6, "output": 18, "cacheRead": 0.36, "cacheWrite": 4.5 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "openai-gpt-56-sol",
"name": "GPT-5.6 Sol (via Venice)",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 128000,
"cost": {
"input": 6.25,
"output": 37.5,
"cacheRead": 0.625,
"cacheWrite": 7.8125
},
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "zai-org-glm-4.6",
"name": "GLM 4.6",
"status": "deprecated",
"replacedBy": "zai-org-glm-4.7",
"reasoning": true,
"input": ["text"],
"contextWindow": 198000,
"maxTokens": 16384,
"cost": { "input": 0.43, "output": 1.75, "cacheRead": 0.08, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "google-gemma-3-27b-it",
"name": "Google Gemma 3 27B Instruct",
"status": "deprecated",
"replacedBy": "google-gemma-4-31b-it",
"reasoning": false,
"input": ["text", "image"],
"contextWindow": 198000,
"maxTokens": 16384,
"cost": { "input": 0.12, "output": 0.2, "cacheRead": 0, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
},
{
"id": "kimi-k2-5",
"name": "Kimi K2.5",
"status": "deprecated",
"replacedBy": "kimi-k2-6",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 256000,
"maxTokens": 65536,
"cost": { "input": 0.56, "output": 3.5, "cacheRead": 0.22, "cacheWrite": 0 },
"compat": {
"supportsUsageInStreaming": false
}
}
]
}
},
"discovery": {
"venice": "refreshable"
}
}
}