mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-06 02:48:25 +00:00
Update default Gemini model to gemini-3.1-pro-preview and print model name on startup
Updates the default Gemini model from gemini-3-pro-preview to gemini-3.1-pro-preview across agent, attractor, and ullm CLIs. Adds "Using model:" output to stderr in both agent and ullm CLIs so users can see which model is being used. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
366643d6ef
commit
f4f58078de
6 changed files with 18 additions and 12 deletions
|
|
@ -51,8 +51,8 @@ enum PermissionLevel {
|
|||
|
||||
fn default_model(provider: &str) -> &'static str {
|
||||
match provider {
|
||||
"openai" => "gpt-5.2",
|
||||
"gemini" => "gemini-3-pro-preview",
|
||||
"openai" => "gpt-5.2-codex",
|
||||
"gemini" => "gemini-3.1-pro-preview",
|
||||
// anthropic and unknown providers
|
||||
_ => "claude-opus-4-6",
|
||||
}
|
||||
|
|
@ -308,6 +308,10 @@ pub async fn run() -> anyhow::Result<()> {
|
|||
.model
|
||||
.as_deref()
|
||||
.unwrap_or_else(|| default_model(&cli.provider));
|
||||
eprintln!(
|
||||
"{}Using model: {model}{}",
|
||||
styles.dim, styles.reset,
|
||||
);
|
||||
let profile = build_profile(&cli.provider, model);
|
||||
|
||||
// Build execution environment
|
||||
|
|
@ -458,12 +462,12 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn default_model_openai() {
|
||||
assert_eq!(default_model("openai"), "gpt-5.2");
|
||||
assert_eq!(default_model("openai"), "gpt-5.2-codex");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn default_model_gemini() {
|
||||
assert_eq!(default_model("gemini"), "gemini-3-pro-preview");
|
||||
assert_eq!(default_model("gemini"), "gemini-3.1-pro-preview");
|
||||
}
|
||||
|
||||
// validate_api_key tests
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ pub async fn run_command(args: RunArgs, styles: &'static Styles) -> anyhow::Resu
|
|||
})
|
||||
.unwrap_or_else(|| match provider.as_deref() {
|
||||
Some("openai") => "gpt-5.2".to_string(),
|
||||
Some("gemini") => "gemini-3-pro-preview".to_string(),
|
||||
Some("gemini") => "gemini-3.1-pro-preview".to_string(),
|
||||
_ => "claude-sonnet-4-5".to_string(),
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ pub async fn serve_command(args: ServeArgs, styles: &'static Styles) -> anyhow::
|
|||
let provider = args.provider;
|
||||
let model = args.model.unwrap_or_else(|| match provider.as_deref() {
|
||||
Some("openai") => "gpt-5.2".to_string(),
|
||||
Some("gemini") => "gemini-3-pro-preview".to_string(),
|
||||
Some("gemini") => "gemini-3.1-pro-preview".to_string(),
|
||||
_ => "claude-sonnet-4-5".to_string(),
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -180,6 +180,8 @@ async fn run_prompt(args: PromptArgs) -> Result<()> {
|
|||
let prompt_text = resolve_prompt(args.prompt, stdin_prompt)?;
|
||||
let (model_id, provider) = resolve_model(args.model);
|
||||
|
||||
eprintln!("Using model: {model_id}");
|
||||
|
||||
let mut params = GenerateParams::new(&model_id).prompt(&prompt_text);
|
||||
if let Some(p) = provider {
|
||||
params = params.provider(&p);
|
||||
|
|
@ -284,7 +286,7 @@ mod tests {
|
|||
.stdout(predicate::str::contains("claude-opus-4-6"))
|
||||
.stdout(predicate::str::contains("claude-sonnet-4-5"))
|
||||
.stdout(predicate::str::contains("gpt-5.2"))
|
||||
.stdout(predicate::str::contains("gemini-3-pro-preview"))
|
||||
.stdout(predicate::str::contains("gemini-3.1-pro-preview"))
|
||||
.stdout(predicate::str::contains("anthropic"))
|
||||
.stdout(predicate::str::contains("openai"))
|
||||
.stdout(predicate::str::contains("gemini"));
|
||||
|
|
@ -303,7 +305,7 @@ mod tests {
|
|||
// Should NOT contain other providers
|
||||
assert
|
||||
.stdout(predicate::str::contains("gpt-5.2").not())
|
||||
.stdout(predicate::str::contains("gemini-3-pro-preview").not());
|
||||
.stdout(predicate::str::contains("gemini-3.1-pro-preview").not());
|
||||
}
|
||||
|
||||
// Step 3: models list --query does substring match on id/name/aliases
|
||||
|
|
@ -344,7 +346,7 @@ mod tests {
|
|||
.success()
|
||||
.stdout(predicate::str::contains("claude-opus-4-6"))
|
||||
.stdout(predicate::str::contains("gpt-5.2"))
|
||||
.stdout(predicate::str::contains("gemini-3-pro-preview"));
|
||||
.stdout(predicate::str::contains("gemini-3.1-pro-preview"));
|
||||
}
|
||||
|
||||
// Step 5: prompt requires prompt text (errors when no prompt and stdin is tty)
|
||||
|
|
|
|||
|
|
@ -65,9 +65,9 @@
|
|||
"aliases": ["codex"]
|
||||
},
|
||||
{
|
||||
"id": "gemini-3-pro-preview",
|
||||
"id": "gemini-3.1-pro-preview",
|
||||
"provider": "gemini",
|
||||
"display_name": "Gemini 3 Pro (Preview)",
|
||||
"display_name": "Gemini 3.1 Pro (Preview)",
|
||||
"context_window": 1048576,
|
||||
"max_output": 65536,
|
||||
"supports_tools": true,
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ mod tests {
|
|||
assert_eq!(model.id, "gpt-5.2");
|
||||
|
||||
let model = get_latest_model("gemini", None).unwrap();
|
||||
assert_eq!(model.id, "gemini-3-pro-preview");
|
||||
assert_eq!(model.id, "gemini-3.1-pro-preview");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue