mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-09 22:33:37 +00:00
feat(model): add Claude Opus 5 to OpenRouter
This commit is contained in:
parent
c914fbbbe0
commit
4666f51d98
4 changed files with 49 additions and 3 deletions
|
|
@ -40,7 +40,7 @@ When a run resumes after a node was cancelled or lost mid-flight, the replay now
|
|||
</Accordion>
|
||||
|
||||
<Accordion title="Improvements">
|
||||
- Added `claude-opus-5` to the first-party Anthropic model catalog; the `opus` and `claude-opus` aliases now resolve to Opus 5
|
||||
- Added `claude-opus-5` to the first-party Anthropic and optional OpenRouter model catalogs; the `opus` and `claude-opus` aliases now resolve to Opus 5
|
||||
- Added `gpt-sol`, `gpt-terra`, and `gpt-luna` aliases for GPT-5.6 offerings
|
||||
- Added portable `glm`, `glm52`, `glm5.2`, `deepseek`, and `deepseek-flash` aliases across direct and OpenRouter offerings
|
||||
</Accordion>
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ The built-in catalog gives OpenRouter offerings the same human-facing model slug
|
|||
|
||||
| Fabro model slug | OpenRouter API ID / notes |
|
||||
| --- | --- |
|
||||
| `claude-fable-5`, `claude-opus-4-8`, `claude-opus-4-7` | Matching `anthropic/...` API IDs; Anthropic-style cache billing |
|
||||
| `claude-fable-5`, `claude-opus-5`, `claude-opus-4-8`, `claude-opus-4-7` | Matching `anthropic/...` API IDs; Anthropic-style cache billing |
|
||||
| `claude-sonnet-4-6` | `anthropic/claude-sonnet-4.6`; provider default |
|
||||
| `claude-haiku-4-5` | `anthropic/claude-haiku-4.5`; provider small default |
|
||||
| `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-5.4`, `gpt-5.5` | Matching `openai/...` API IDs |
|
||||
|
|
|
|||
|
|
@ -3083,6 +3083,19 @@ enabled = true
|
|||
false,
|
||||
BillingPolicy::OpenAi,
|
||||
),
|
||||
(
|
||||
"claude-opus-5",
|
||||
"anthropic/claude-opus-5",
|
||||
"claude-5",
|
||||
1_000_000,
|
||||
5.0,
|
||||
25.0,
|
||||
0.5,
|
||||
ReasoningEffortFeature::Levels,
|
||||
false,
|
||||
true,
|
||||
BillingPolicy::Anthropic,
|
||||
),
|
||||
(
|
||||
"claude-opus-4-8",
|
||||
"anthropic/claude-opus-4.8",
|
||||
|
|
@ -3161,6 +3174,13 @@ enabled = true
|
|||
"{id}"
|
||||
);
|
||||
}
|
||||
|
||||
for alias in ["opus", "claude-opus"] {
|
||||
let model = catalog
|
||||
.resolve_on_provider(&ProviderId::new("openrouter"), alias)
|
||||
.unwrap_or_else(|error| panic!("{alias} should resolve on OpenRouter: {error}"));
|
||||
assert_eq!(model.id, "claude-opus-5", "{alias}");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
|
|
@ -58,6 +58,33 @@ input_cost_per_mtok = 10.0
|
|||
output_cost_per_mtok = 50.0
|
||||
cache_input_cost_per_mtok = 1.0
|
||||
|
||||
[providers.openrouter.models."claude-opus-5"]
|
||||
api_id = "anthropic/claude-opus-5"
|
||||
display_name = "Claude Opus 5 (via OpenRouter)"
|
||||
family = "claude-5"
|
||||
billing_policy = "anthropic"
|
||||
training = "2026-05-01"
|
||||
knowledge_cutoff = "May 2026"
|
||||
aliases = ["opus", "claude-opus"]
|
||||
|
||||
[providers.openrouter.models."claude-opus-5".limits]
|
||||
context_window = 1000000
|
||||
max_output = 128000
|
||||
|
||||
[providers.openrouter.models."claude-opus-5".features]
|
||||
tools = true
|
||||
vision = true
|
||||
reasoning = true
|
||||
reasoning_effort = "levels"
|
||||
prompt_cache = true
|
||||
cache_control_breakpoints = true
|
||||
sampling_params = false
|
||||
|
||||
[providers.openrouter.models."claude-opus-5".costs]
|
||||
input_cost_per_mtok = 5.0
|
||||
output_cost_per_mtok = 25.0
|
||||
cache_input_cost_per_mtok = 0.5
|
||||
|
||||
[providers.openrouter.models."claude-opus-4-8"]
|
||||
api_id = "anthropic/claude-opus-4.8"
|
||||
display_name = "Claude Opus 4.8 (via OpenRouter)"
|
||||
|
|
@ -65,7 +92,6 @@ family = "claude-4"
|
|||
billing_policy = "anthropic"
|
||||
training = "2026-01-01"
|
||||
knowledge_cutoff = "Jan 2026"
|
||||
aliases = ["opus", "claude-opus"]
|
||||
|
||||
[providers.openrouter.models."claude-opus-4-8".limits]
|
||||
context_window = 1000000
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue