fix(venice): sync model catalog with live Venice API#38281
fix(venice): sync model catalog with live Venice API#38281powermaster888 wants to merge 1 commit intoopenclaw:mainfrom
Conversation
… models, update context windows
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 61c2e31722
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // Anthropic (via Venice) | ||
| { | ||
| id: "claude-opus-45", | ||
| id: "claude-opus-4-5", |
There was a problem hiding this comment.
Preserve aliases for renamed Venice Claude model IDs
Renaming the catalog IDs to claude-opus-4-5/claude-sonnet-4-5 without keeping claude-opus-45/claude-sonnet-45 aliases breaks backward compatibility for existing configs that still pin the old Venice model refs; there is no Venice-specific normalization path (only Anthropic normalization exists in normalizeProviderModelId), so when /models discovery falls back to this static catalog those users lose catalog matches and can hit model-not-found/capability-metadata regressions despite previously valid config values.
Useful? React with 👍 / 👎.
Greptile SummaryThis PR syncs the Venice model static fallback catalog (
Confidence Score: 4/5
Last reviewed commit: 61c2e31 |
| id: "openai-gpt-4o-2024-11-20", | ||
| name: "GPT-4o (via Venice)", | ||
| reasoning: false, | ||
| input: ["text"], | ||
| contextWindow: 128000, | ||
| maxTokens: 8192, | ||
| privacy: "anonymized", | ||
| }, | ||
| { | ||
| id: "openai-gpt-4o-mini-2024-07-18", | ||
| name: "GPT-4o Mini (via Venice)", | ||
| reasoning: false, | ||
| input: ["text"], | ||
| contextWindow: 128000, | ||
| maxTokens: 8192, | ||
| privacy: "anonymized", |
There was a problem hiding this comment.
Missing vision capability for GPT-4o models
Both openai-gpt-4o-2024-11-20 and openai-gpt-4o-mini-2024-07-18 are declared with input: ["text"] only. However, GPT-4o and GPT-4o Mini are multimodal models that support image input. The existing openai-gpt-52-codex entry in this same section already includes "image" in its input array.
If Venice's proxy for these versioned endpoints supports vision (which is worth confirming against the live API), omitting "image" here would silently prevent users from sending images to these models in offline/fallback scenarios.
| id: "openai-gpt-4o-2024-11-20", | |
| name: "GPT-4o (via Venice)", | |
| reasoning: false, | |
| input: ["text"], | |
| contextWindow: 128000, | |
| maxTokens: 8192, | |
| privacy: "anonymized", | |
| }, | |
| { | |
| id: "openai-gpt-4o-mini-2024-07-18", | |
| name: "GPT-4o Mini (via Venice)", | |
| reasoning: false, | |
| input: ["text"], | |
| contextWindow: 128000, | |
| maxTokens: 8192, | |
| privacy: "anonymized", | |
| { | |
| id: "openai-gpt-4o-2024-11-20", | |
| name: "GPT-4o (via Venice)", | |
| reasoning: false, | |
| input: ["text", "image"], | |
| contextWindow: 128000, | |
| maxTokens: 8192, | |
| privacy: "anonymized", | |
| }, | |
| { | |
| id: "openai-gpt-4o-mini-2024-07-18", | |
| name: "GPT-4o Mini (via Venice)", | |
| reasoning: false, | |
| input: ["text", "image"], | |
| contextWindow: 128000, | |
| maxTokens: 8192, | |
| privacy: "anonymized", | |
| }, |
This is worth verifying against curl https://api.venice.ai/api/v1/models (which is also the unchecked item in the PR test plan).
Prompt To Fix With AI
This is a comment left during a code review.
Path: src/agents/venice-models.ts
Line: 327-342
Comment:
**Missing vision capability for GPT-4o models**
Both `openai-gpt-4o-2024-11-20` and `openai-gpt-4o-mini-2024-07-18` are declared with `input: ["text"]` only. However, GPT-4o and GPT-4o Mini are multimodal models that support image input. The existing `openai-gpt-52-codex` entry in this same section already includes `"image"` in its `input` array.
If Venice's proxy for these versioned endpoints supports vision (which is worth confirming against the live API), omitting `"image"` here would silently prevent users from sending images to these models in offline/fallback scenarios.
```suggestion
{
id: "openai-gpt-4o-2024-11-20",
name: "GPT-4o (via Venice)",
reasoning: false,
input: ["text", "image"],
contextWindow: 128000,
maxTokens: 8192,
privacy: "anonymized",
},
{
id: "openai-gpt-4o-mini-2024-07-18",
name: "GPT-4o Mini (via Venice)",
reasoning: false,
input: ["text", "image"],
contextWindow: 128000,
maxTokens: 8192,
privacy: "anonymized",
},
```
This is worth verifying against `curl https://api.venice.ai/api/v1/models` (which is also the unchecked item in the PR test plan).
How can I resolve this? If you propose a fix, please make it concise.|
Thanks for the catalog sync work here. I folded the live Venice catalog refresh into the consolidated replacement PR at #38306 alongside the #38168 runtime fixes, so we only have one active Venice fix branch to review. Closing this as subsumed by #38306 to keep the queue clean, but the changelog credit for the catalog sync is preserved there. If you see a catalog-only detail from this branch that did not make it into #38306, call it out and I'll re-check it. |
Summary
Syncs the Venice model static catalog (
venice-models.ts) with current Venice API data. The fallback catalog was stale — several models launched since the last update were missing, and context window values had drifted from reality.Changes
Added 15 missing models:
claude-opus-4-6,claude-sonnet-4-6(Anthropic 4.6 series)openai-gpt-54,openai-gpt-53-codex,openai-gpt-4o-2024-11-20,openai-gpt-4o-mini-2024-07-18gemini-3-1-pro-previewkimi-k2-5,minimax-m25qwen3-5-35b-a3b,qwen3-coder-480b-a35b-instruct-turbozai-org-glm-4.6,zai-org-glm-4.7-flash,zai-org-glm-5Updated context windows to match live API:
grok-41-fast: 262144 → 1000000claude-opus-4-5: 202752 → 198000Updated model IDs to match current Venice API:
claude-opus-45→claude-opus-4-5(Venice now uses dash-separated format)claude-sonnet-45→claude-sonnet-4-5Why
When the Venice API is unreachable, OpenClaw falls back to the static catalog. Missing entries mean users can't use newly available models in offline/degraded scenarios. Stale context windows can cause unnecessary truncation or over-allocation. Relates to #38168.
Test plan
vitest run src/agents/venice-models.test.ts— all 3 tests passcurl https://api.venice.ai/api/v1/models🤖 Generated with Claude Code