checkpoint

⚒️ Generated with [Fabro](https://fabro.sh)
This commit is contained in:
Fabro 2026-03-19 11:48:04 -04:00
parent f80f70c9c2
commit 8f54e60da8
5 changed files with 87 additions and 8 deletions

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,49 @@
diff --git a/lib/crates/fabro-llm/src/catalog.rs b/lib/crates/fabro-llm/src/catalog.rs
index da4cf748..68981179 100644
--- a/lib/crates/fabro-llm/src/catalog.rs
+++ b/lib/crates/fabro-llm/src/catalog.rs
@@ -18,18 +18,23 @@ pub fn get_model_info(model_id: &str) -> Option<ModelInfo> {
.cloned()
}
+/// Normalize provider aliases (e.g. `"open_ai"` → `"openai"`) through
+/// `Provider::from_str`. Returns the input unchanged if it's not a known alias.
+fn canonical_provider(provider: &str) -> &str {
+ provider
+ .parse::<crate::provider::Provider>()
+ .map_or(provider, |p| p.as_str())
+}
+
/// Get the default model for a provider, as marked in catalog.json.
///
/// Returns `None` if the provider has no models or none marked as default.
#[must_use]
pub fn default_model_for_provider(provider: &str) -> Option<ModelInfo> {
- // Normalize aliases like "open_ai" → "openai" through Provider::from_str.
- let canonical = provider
- .parse::<crate::provider::Provider>()
- .map_or(provider, |p| p.as_str());
+ let provider = canonical_provider(provider);
BUILT_IN_MODELS
.iter()
- .find(|m| m.provider == canonical && m.default)
+ .find(|m| m.provider == provider && m.default)
.cloned()
}
@@ -57,6 +62,7 @@ pub fn list_models(provider: Option<&str>) -> Vec<ModelInfo> {
provider.map_or_else(
|| BUILT_IN_MODELS.clone(),
|p| {
+ let p = canonical_provider(p);
BUILT_IN_MODELS
.iter()
.filter(|m| m.provider == p)
@@ -73,6 +79,7 @@ pub fn list_models(provider: Option<&str>) -> Vec<ModelInfo> {
/// Returns `None` if no model on the target provider matches all capabilities.
#[must_use]
pub fn closest_model(target_provider: &str, reference: &ModelInfo) -> Option<ModelInfo> {
+ let target_provider = canonical_provider(target_provider);
BUILT_IN_MODELS
.iter()
.filter(|m| {

View file

@ -0,0 +1,5 @@
{
"command": "cargo clippy -q --workspace -- -D warnings 2>&1 && cargo nextest run --cargo-quiet --workspace --status-level fail 2>&1",
"language": "shell",
"timeout_ms": null
}

View file

@ -0,0 +1,5 @@
{
"duration_ms": 14451,
"exit_code": 0,
"timed_out": false
}

6
nodes/verify/status.json Normal file
View file

@ -0,0 +1,6 @@
{
"status": "success",
"notes": "Script completed: cargo clippy -q --workspace -- -D warnings 2>&1 && cargo nextest run --cargo-quiet --workspace --status-level fail 2>&1",
"failure_reason": null,
"timestamp": "2026-03-19T15:48:04.646600+00:00"
}