fabro(01KQRF5HY7VGQT10G3GAB9PG9Z): simplify_opus (succeeded)

Fabro-Run: 01KQRF5HY7VGQT10G3GAB9PG9Z
Fabro-Completed: 6
Fabro-Checkpoint: 6280f7b5d0

⚒️ Generated with [Fabro](https://fabro.sh)
This commit is contained in:
Fabro 2026-05-04 04:17:22 +00:00
parent 969988d74b
commit 46386b272c
9 changed files with 18 additions and 19 deletions

View file

@ -484,7 +484,7 @@ pub async fn run_with_args_and_client(
model
} else {
Catalog::builtin()
.default_for_provider(&provider.to_string())
.default_for_provider(<&str>::from(provider))
.map(|model| model.id.clone())
.ok_or_else(|| {
anyhow::anyhow!(

View file

@ -4,9 +4,8 @@ use fabro_model::{Catalog, Provider};
#[test]
fn profile_context_window_matches_catalog_for_default_models() {
for &provider in Provider::ALL {
let provider_str: &str = provider.into();
let catalog_info = Catalog::builtin()
.default_for_provider(provider_str)
.default_for_provider(<&str>::from(provider))
.cloned()
.unwrap_or_else(|| panic!("no default model for {provider:?} in catalog"));
let model = &catalog_info.id;

View file

@ -20,4 +20,4 @@ serde_json.workspace = true
strum.workspace = true
[dev-dependencies]
insta.workspace = true
insta.workspace = true

View file

@ -80,7 +80,7 @@ impl Catalog {
#[must_use]
pub fn default_from_env(&self) -> &Model {
let provider = Provider::default_from_env();
self.default_for_provider(provider.to_string().as_str())
self.default_for_provider(<&str>::from(provider))
.unwrap_or_else(|| self.default_model())
}
@ -89,7 +89,7 @@ impl Catalog {
#[must_use]
pub fn default_for_configured(&self, configured: &[Provider]) -> &Model {
let provider = Provider::default_for_configured(configured);
self.default_for_provider(provider.to_string().as_str())
self.default_for_provider(<&str>::from(provider))
.unwrap_or_else(|| self.default_model())
}

View file

@ -54,7 +54,7 @@ use fabro_llm::types::{
ContentPart, FinishReason, Message as LlmMessage, Request as LlmRequest, Role, ToolChoice,
ToolDefinition,
};
use fabro_model::{BilledModelUsage, BilledTokenCounts, Catalog, ModelTestMode, Provider};
use fabro_model::{BilledModelUsage, BilledTokenCounts, Catalog, ModelTestMode};
use fabro_redact::redact_jsonl_line;
use fabro_sandbox::daytona::{self, DaytonaSandbox};
use fabro_sandbox::reconnect::reconnect;

View file

@ -2,7 +2,7 @@ use std::sync::Arc;
use super::super::{
ApiError, AppState, FromStr, HashSet, IntoResponse, Json, MAX_PAGE_OFFSET, ModelTestMode, Path,
Provider, Query, RequiredUser, Response, Router, State, StatusCode, auth_issue_message,
Query, RequiredUser, Response, Router, State, StatusCode, auth_issue_message,
default_page_limit, error, get, post, run_model_test,
};
@ -116,14 +116,12 @@ async fn test_model(
.into_response();
}
};
if let Some((_, issue)) = llm_result
if let Some((provider_enum, issue)) = llm_result
.auth_issues
.iter()
.find(|(provider, _)| provider.to_string() == info.provider.as_str())
.find(|(provider, _)| info.provider == <&str>::from(*provider))
{
let provider_enum =
Provider::from_str(info.provider.as_str()).unwrap_or(Provider::Anthropic);
return ApiError::bad_request(auth_issue_message(provider_enum, issue)).into_response();
return ApiError::bad_request(auth_issue_message(*provider_enum, issue)).into_response();
}
let provider_name = info.provider.as_str();
if !llm_result.client.provider_names().contains(&provider_name) {

View file

@ -534,7 +534,7 @@ fn resolve_fallback_chain(
.or_default()
.push(model_ref.to_string());
}
Catalog::builtin().build_fallback_chain(&provider.to_string(), model, &by_provider)
Catalog::builtin().build_fallback_chain(<&str>::from(provider), model, &by_provider)
}
fn runtime_mcp_server(settings: &ResolvedMcpServerSettings) -> McpServerSettings {

View file

@ -27,8 +27,7 @@ pub fn billed_model_usage_from_llm(
speed,
};
let tokens = token_counts_from_llm_usage(usage);
let provider_str = provider.to_string();
let facts = billing_facts_for_stage_usage(&provider_str, &tokens);
let facts = billing_facts_for_stage_usage(model.provider.as_str(), &tokens);
let input = ModelBillingInput {
usage: ModelUsage {
model: model.clone(),
@ -39,7 +38,7 @@ pub fn billed_model_usage_from_llm(
let total_usd_micros = Catalog::builtin()
.get(model_id)
.filter(|candidate| candidate.provider == provider_str.as_str())
.filter(|candidate| candidate.provider == model.provider)
.and_then(|candidate| candidate.pricing_for(speed))
.and_then(|pricing| pricing.bill(&input))
.map(|amount| amount.0);

View file

@ -37,8 +37,11 @@ pub fn materialize_run(
let model = configured_model.or(graph_model).unwrap_or_else(|| {
provider
.as_deref()
.and_then(|value| value.parse::<Provider>().ok())
.and_then(|provider| catalog.default_for_provider(&provider.to_string()))
.and_then(|value| {
// Validate the provider string is known before looking up its default.
value.parse::<Provider>().ok()?;
catalog.default_for_provider(value)
})
.unwrap_or_else(|| catalog.default_for_configured(configured_providers))
.id
.clone()