diff --git a/Cargo.lock b/Cargo.lock index 2bece72a9898..e2808819b83c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2848,7 +2848,7 @@ dependencies = [ [[package]] name = "goose" -version = "1.23.1" +version = "1.23.2" dependencies = [ "ahash", "anyhow", @@ -2933,7 +2933,7 @@ dependencies = [ [[package]] name = "goose-acp" -version = "1.23.1" +version = "1.23.2" dependencies = [ "anyhow", "assert-json-diff", @@ -2966,7 +2966,7 @@ dependencies = [ [[package]] name = "goose-bench" -version = "1.23.1" +version = "1.23.2" dependencies = [ "anyhow", "async-trait", @@ -2989,7 +2989,7 @@ dependencies = [ [[package]] name = "goose-cli" -version = "1.23.1" +version = "1.23.2" dependencies = [ "anstream", "anyhow", @@ -3036,7 +3036,7 @@ dependencies = [ [[package]] name = "goose-mcp" -version = "1.23.1" +version = "1.23.2" dependencies = [ "anyhow", "base64 0.22.1", @@ -3085,7 +3085,7 @@ dependencies = [ [[package]] name = "goose-server" -version = "1.23.1" +version = "1.23.2" dependencies = [ "anyhow", "axum 0.8.8", @@ -3129,7 +3129,7 @@ dependencies = [ [[package]] name = "goose-test" -version = "1.23.1" +version = "1.23.2" dependencies = [ "clap", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 65d7f12b95a3..853dfb23ec46 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ resolver = "2" [workspace.package] edition = "2021" -version = "1.23.1" +version = "1.23.2" authors = ["Block "] license = "Apache-2.0" repository = "https://github.com/block/goose" diff --git a/crates/goose/src/config/base.rs b/crates/goose/src/config/base.rs index 4cb55812c0e8..1bb0aff6cb25 100644 --- a/crates/goose/src/config/base.rs +++ b/crates/goose/src/config/base.rs @@ -8,7 +8,6 @@ use serde_json::Value; use serde_yaml::Mapping; use std::collections::HashMap; use std::env; -use std::ffi::OsString; use std::fs::OpenOptions; use std::io::Write; use std::path::{Path, PathBuf}; @@ -954,10 +953,10 @@ impl Config { } } -config_value!(CLAUDE_CODE_COMMAND, OsString, "claude"); -config_value!(GEMINI_CLI_COMMAND, OsString, "gemini"); -config_value!(CURSOR_AGENT_COMMAND, OsString, "cursor-agent"); -config_value!(CODEX_COMMAND, OsString, "codex"); +config_value!(CLAUDE_CODE_COMMAND, String, "claude"); +config_value!(GEMINI_CLI_COMMAND, String, "gemini"); +config_value!(CURSOR_AGENT_COMMAND, String, "cursor-agent"); +config_value!(CODEX_COMMAND, String, "codex"); config_value!(CODEX_REASONING_EFFORT, String, "high"); config_value!(CODEX_ENABLE_SKILLS, String, "true"); config_value!(CODEX_SKIP_GIT_CHECK, String, "false"); diff --git a/crates/goose/src/providers/canonical/data/canonical_mapping_report.json b/crates/goose/src/providers/canonical/data/canonical_mapping_report.json index 9d716320df6b..4993cfe48b46 100644 --- a/crates/goose/src/providers/canonical/data/canonical_mapping_report.json +++ b/crates/goose/src/providers/canonical/data/canonical_mapping_report.json @@ -1,5 +1,5 @@ { - "timestamp": "2026-02-04T17:11:39.018061820+00:00", + "timestamp": "2026-02-06T06:20:30.272556267+00:00", "unmapped_models": [ { "provider": "anthropic", @@ -7,11 +7,7 @@ }, { "provider": "anthropic", - "model": "claude-fudge-eap" - }, - { - "provider": "anthropic", - "model": "claude-fudge-eap-cc" + "model": "claude-opus-4-6" }, { "provider": "google", @@ -21,10 +17,6 @@ "provider": "google", "model": "deep-research-pro-preview-12-2025" }, - { - "provider": "google", - "model": "embedding-001" - }, { "provider": "google", "model": "gemini-2.0-flash-001" @@ -117,10 +109,6 @@ "provider": "google", "model": "nano-banana-pro-preview" }, - { - "provider": "google", - "model": "text-embedding-004" - }, { "provider": "google", "model": "veo-2.0-generate-001" @@ -2553,6 +2541,10 @@ "provider": "openrouter", "model": "anthropic/claude-3.7-sonnet:thinking" }, + { + "provider": "openrouter", + "model": "anthropic/claude-opus-4.6" + }, { "provider": "openrouter", "model": "arcee-ai/trinity-mini" @@ -2585,18 +2577,6 @@ "provider": "openrouter", "model": "cohere/command-r-plus-08-2024" }, - { - "provider": "openrouter", - "model": "deepcogito/cogito-v2-preview-llama-109b-moe" - }, - { - "provider": "openrouter", - "model": "deepcogito/cogito-v2-preview-llama-405b" - }, - { - "provider": "openrouter", - "model": "deepcogito/cogito-v2-preview-llama-70b" - }, { "provider": "openrouter", "model": "deepseek/deepseek-chat" @@ -5037,14 +5017,14 @@ } ], "model_counts": { - "anthropic": 12, + "anthropic": 11, "aws_bedrock": 0, "azure_openai": 0, "databricks": 0, "gcp_vertex_ai": 0, - "google": 47, + "google": 45, "openai": 653, - "openrouter": 231, + "openrouter": 229, "tetrate": 0, "venice": 0, "xai": 12 diff --git a/crates/goose/src/providers/canonical/data/canonical_models.json b/crates/goose/src/providers/canonical/data/canonical_models.json index 30a6011429bc..18effaa4b86b 100644 --- a/crates/goose/src/providers/canonical/data/canonical_models.json +++ b/crates/goose/src/providers/canonical/data/canonical_models.json @@ -57,6 +57,36 @@ "output": 4096 } }, + { + "id": "amazon-bedrock/amazon.nova-2-lite-v1:0", + "name": "Nova 2 Lite", + "family": "nova", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.33, + "output": 2.75 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, { "id": "amazon-bedrock/amazon.nova-lite-v1:0", "name": "Nova Lite", @@ -119,6 +149,37 @@ "output": 8192 } }, + { + "id": "amazon-bedrock/amazon.nova-premier-v1:0", + "name": "Nova Premier", + "family": "nova", + "attachment": true, + "reasoning": true, + "tool_call": true, + "temperature": true, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 2.5, + "output": 12.5 + }, + "limit": { + "context": 1000000, + "output": 16384 + } + }, { "id": "amazon-bedrock/amazon.nova-pro-v1:0", "name": "Nova Pro", @@ -151,6 +212,62 @@ "output": 8192 } }, + { + "id": "amazon-bedrock/amazon.titan-text-express-v1", + "name": "Titan Text G1 - Express", + "family": "titan", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.2, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + { + "id": "amazon-bedrock/amazon.titan-text-express-v1:0:8k", + "name": "Titan Text G1 - Express", + "family": "titan", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.2, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, { "id": "amazon-bedrock/anthropic.claude-3-haiku-20240307-v1:0", "name": "Claude Haiku 3", @@ -344,74 +461,82 @@ } }, { - "id": "amazon-bedrock/cohere.command-r-plus-v1:0", - "name": "Command R+", - "family": "command-r", - "attachment": false, + "id": "amazon-bedrock/anthropic.claude-3.7-sonnet-20250219-v1:0", + "name": "Claude Sonnet 3.7", + "family": "claude-sonnet", + "attachment": true, "reasoning": false, "tool_call": true, "temperature": true, "knowledge": "2024-04", - "release_date": "2024-04-04", - "last_updated": "2024-04-04", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { "input": 3.0, - "output": 15.0 + "output": 15.0, + "cache_read": 0.3, + "cache_write": 3.75 }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 8192 } }, { - "id": "amazon-bedrock/cohere.command-r-v1:0", - "name": "Command R", - "family": "command-r", - "attachment": false, - "reasoning": false, + "id": "amazon-bedrock/anthropic.claude-haiku-4.5-20251001-v1:0", + "name": "Claude Haiku 4.5", + "family": "claude-haiku", + "attachment": true, + "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2024-04", - "release_date": "2024-03-11", - "last_updated": "2024-03-11", + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.5, - "output": 1.5 + "input": 1.0, + "output": 5.0, + "cache_read": 0.1, + "cache_write": 1.25 }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/deepseek.v3-v1:0", - "name": "DeepSeek-V3.1", - "family": "deepseek", + "id": "amazon-bedrock/anthropic.claude-instant-v1", + "name": "Claude Instant", + "family": "claude", "attachment": false, - "reasoning": true, - "tool_call": true, + "reasoning": false, + "tool_call": false, "temperature": true, - "knowledge": "2024-07", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "knowledge": "2023-08", + "release_date": "2023-03-01", + "last_updated": "2023-03-01", "modalities": { "input": [ "text" @@ -420,27 +545,27 @@ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.58, - "output": 1.68 + "input": 0.8, + "output": 2.4 }, "limit": { - "context": 163840, - "output": 81920 + "context": 100000, + "output": 4096 } }, { - "id": "amazon-bedrock/eu.anthropic.claude-haiku-4.5-20251001-v1:0", - "name": "Claude Haiku 4.5 (EU)", - "family": "claude-haiku", + "id": "amazon-bedrock/anthropic.claude-opus-4-20250514-v1:0", + "name": "Claude Opus 4", + "family": "claude-opus", "attachment": true, "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "knowledge": "2024-04", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "modalities": { "input": [ "text", @@ -453,27 +578,27 @@ }, "open_weights": false, "cost": { - "input": 1.0, - "output": 5.0, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 15.0, + "output": 75.0, + "cache_read": 1.5, + "cache_write": 18.75 }, "limit": { "context": 200000, - "output": 64000 + "output": 32000 } }, { - "id": "amazon-bedrock/eu.anthropic.claude-opus-4.5-20251101-v1:0", - "name": "Claude Opus 4.5 (EU)", + "id": "amazon-bedrock/anthropic.claude-opus-4.1-20250805-v1:0", + "name": "Claude Opus 4.1", "family": "claude-opus", "attachment": true, "reasoning": true, "tool_call": true, "temperature": true, "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-08-01", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "modalities": { "input": [ "text", @@ -486,27 +611,27 @@ }, "open_weights": false, "cost": { - "input": 5.0, - "output": 25.0, + "input": 15.0, + "output": 75.0, "cache_read": 1.5, "cache_write": 18.75 }, "limit": { "context": 200000, - "output": 64000 + "output": 32000 } }, { - "id": "amazon-bedrock/eu.anthropic.claude-sonnet-4-20250514-v1:0", - "name": "Claude Sonnet 4 (EU)", - "family": "claude-sonnet", + "id": "amazon-bedrock/anthropic.claude-opus-4.5-20251101-v1:0", + "name": "Claude Opus 4.5", + "family": "claude-opus", "attachment": true, "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2024-04", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", "modalities": { "input": [ "text", @@ -519,10 +644,10 @@ }, "open_weights": false, "cost": { - "input": 3.0, - "output": 15.0, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 5.0, + "output": 25.0, + "cache_read": 0.5, + "cache_write": 6.25 }, "limit": { "context": 200000, @@ -530,16 +655,16 @@ } }, { - "id": "amazon-bedrock/eu.anthropic.claude-sonnet-4.5-20250929-v1:0", - "name": "Claude Sonnet 4.5 (EU)", - "family": "claude-sonnet", + "id": "amazon-bedrock/anthropic.claude-opus-4.6-v1", + "name": "Claude Opus 4.6", + "family": "claude-opus", "attachment": true, "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "knowledge": "2025-05", + "release_date": "2026-02-05", + "last_updated": "2026-02-05", "modalities": { "input": [ "text", @@ -552,85 +677,19 @@ }, "open_weights": false, "cost": { - "input": 3.0, - "output": 15.0, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 5.0, + "output": 25.0, + "cache_read": 0.5, + "cache_write": 6.25 }, "limit": { - "context": 200000, - "output": 64000 + "context": 1000000, + "output": 128000 } }, { - "id": "amazon-bedrock/global.anthropic.claude-haiku-4.5-20251001-v1:0", - "name": "Claude Haiku 4.5 (Global)", - "family": "claude-haiku", - "attachment": true, - "reasoning": true, - "tool_call": true, - "temperature": true, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", - "modalities": { - "input": [ - "text", - "image", - "pdf" - ], - "output": [ - "text" - ] - }, - "open_weights": false, - "cost": { - "input": 1.0, - "output": 5.0, - "cache_read": 0.1, - "cache_write": 1.25 - }, - "limit": { - "context": 200000, - "output": 64000 - } - }, - { - "id": "amazon-bedrock/global.anthropic.claude-opus-4.5-20251101-v1:0", - "name": "Claude Opus 4.5 (Global)", - "family": "claude-opus", - "attachment": true, - "reasoning": true, - "tool_call": true, - "temperature": true, - "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-08-01", - "modalities": { - "input": [ - "text", - "image", - "pdf" - ], - "output": [ - "text" - ] - }, - "open_weights": false, - "cost": { - "input": 5.0, - "output": 25.0, - "cache_read": 0.5, - "cache_write": 6.25 - }, - "limit": { - "context": 200000, - "output": 64000 - } - }, - { - "id": "amazon-bedrock/global.anthropic.claude-sonnet-4-20250514-v1:0", - "name": "Claude Sonnet 4 (Global)", + "id": "amazon-bedrock/anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4", "family": "claude-sonnet", "attachment": true, "reasoning": true, @@ -662,8 +721,8 @@ } }, { - "id": "amazon-bedrock/global.anthropic.claude-sonnet-4.5-20250929-v1:0", - "name": "Claude Sonnet 4.5 (Global)", + "id": "amazon-bedrock/anthropic.claude-sonnet-4.5-20250929-v1:0", + "name": "Claude Sonnet 4.5", "family": "claude-sonnet", "attachment": true, "reasoning": true, @@ -695,20 +754,19 @@ } }, { - "id": "amazon-bedrock/google.gemma-3-12b-it", - "name": "Google Gemma 3 12B", - "family": "gemma", + "id": "amazon-bedrock/anthropic.claude-v2", + "name": "Claude 2", + "family": "claude", "attachment": false, "reasoning": false, "tool_call": false, "temperature": true, - "knowledge": "2024-12", - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2023-08", + "release_date": "2023-07-11", + "last_updated": "2023-07-11", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" @@ -716,84 +774,83 @@ }, "open_weights": false, "cost": { - "input": 0.05, - "output": 0.1 + "input": 8.0, + "output": 24.0 }, "limit": { - "context": 131072, - "output": 8192 + "context": 100000, + "output": 4096 } }, { - "id": "amazon-bedrock/google.gemma-3-27b-it", - "name": "Google Gemma 3 27B Instruct", - "family": "gemma", - "attachment": true, + "id": "amazon-bedrock/anthropic.claude-v2:1", + "name": "Claude 2.1", + "family": "claude", + "attachment": false, "reasoning": false, - "tool_call": true, + "tool_call": false, "temperature": true, - "knowledge": "2025-07", - "release_date": "2025-07-27", - "last_updated": "2025-07-27", + "knowledge": "2023-08", + "release_date": "2023-11-21", + "last_updated": "2023-11-21", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.12, - "output": 0.2 + "input": 8.0, + "output": 24.0 }, "limit": { - "context": 202752, - "output": 8192 + "context": 200000, + "output": 4096 } }, { - "id": "amazon-bedrock/google.gemma-3-4b-it", - "name": "Gemma 3 4B IT", - "family": "gemma", + "id": "amazon-bedrock/cohere.command-light-text-v14", + "name": "Command Light", + "family": "command-light", "attachment": false, "reasoning": false, - "tool_call": true, + "tool_call": false, "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2023-08", + "release_date": "2023-11-01", + "last_updated": "2023-11-01", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 0.04, - "output": 0.08 + "input": 0.3, + "output": 0.6 }, "limit": { - "context": 128000, + "context": 4096, "output": 4096 } }, { - "id": "amazon-bedrock/meta.llama3-1-70b-instruct-v1:0", - "name": "Llama 3.1 70B Instruct", - "family": "llama", + "id": "amazon-bedrock/cohere.command-r-plus-v1:0", + "name": "Command R+", + "family": "command-r", "attachment": false, "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "knowledge": "2024-04", + "release_date": "2024-04-04", + "last_updated": "2024-04-04", "modalities": { "input": [ "text" @@ -804,8 +861,8 @@ }, "open_weights": true, "cost": { - "input": 0.72, - "output": 0.72 + "input": 3.0, + "output": 15.0 }, "limit": { "context": 128000, @@ -813,16 +870,16 @@ } }, { - "id": "amazon-bedrock/meta.llama3-1-8b-instruct-v1:0", - "name": "Llama 3.1 8B Instruct", - "family": "llama", + "id": "amazon-bedrock/cohere.command-r-v1:0", + "name": "Command R", + "family": "command-r", "attachment": false, "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "knowledge": "2024-04", + "release_date": "2024-03-11", + "last_updated": "2024-03-11", "modalities": { "input": [ "text" @@ -833,8 +890,8 @@ }, "open_weights": true, "cost": { - "input": 0.22, - "output": 0.22 + "input": 0.5, + "output": 1.5 }, "limit": { "context": 128000, @@ -842,16 +899,16 @@ } }, { - "id": "amazon-bedrock/meta.llama3-70b-instruct-v1:0", - "name": "Llama 3 70B Instruct", - "family": "llama", + "id": "amazon-bedrock/cohere.command-text-v14", + "name": "Command", + "family": "command", "attachment": false, "reasoning": false, "tool_call": false, "temperature": true, - "knowledge": "2023-12", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "knowledge": "2023-08", + "release_date": "2023-11-01", + "last_updated": "2023-11-01", "modalities": { "input": [ "text" @@ -862,25 +919,25 @@ }, "open_weights": true, "cost": { - "input": 2.65, - "output": 3.5 + "input": 1.5, + "output": 2.0 }, "limit": { - "context": 8192, - "output": 2048 + "context": 4096, + "output": 4096 } }, { - "id": "amazon-bedrock/meta.llama3-8b-instruct-v1:0", - "name": "Llama 3 8B Instruct", - "family": "llama", + "id": "amazon-bedrock/deepseek.r1-v1:0", + "name": "DeepSeek-R1", + "family": "deepseek-thinking", "attachment": false, - "reasoning": false, - "tool_call": false, + "reasoning": true, + "tool_call": true, "temperature": true, - "knowledge": "2023-03", - "release_date": "2024-07-23", - "last_updated": "2024-07-23", + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-05-29", "modalities": { "input": [ "text" @@ -889,26 +946,27 @@ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.3, - "output": 0.6 + "input": 1.35, + "output": 5.4 }, "limit": { - "context": 8192, - "output": 2048 + "context": 128000, + "output": 32768 } }, { - "id": "amazon-bedrock/minimax.minimax-m2", - "name": "MiniMax M2", - "family": "minimax", + "id": "amazon-bedrock/deepseek.v3-v1:0", + "name": "DeepSeek-V3.1", + "family": "deepseek", "attachment": false, "reasoning": true, "tool_call": true, "temperature": true, - "release_date": "2025-10-27", - "last_updated": "2025-10-27", + "knowledge": "2024-07", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", "modalities": { "input": [ "text" @@ -919,27 +977,30 @@ }, "open_weights": true, "cost": { - "input": 0.3, - "output": 1.2 + "input": 0.58, + "output": 1.68 }, "limit": { - "context": 204608, - "output": 128000 + "context": 163840, + "output": 81920 } }, { - "id": "amazon-bedrock/mistral.ministral-3-14b-instruct", - "name": "Ministral 14B 3.0", - "family": "ministral", - "attachment": false, - "reasoning": false, + "id": "amazon-bedrock/eu.anthropic.claude-haiku-4.5-20251001-v1:0", + "name": "Claude Haiku 4.5 (EU)", + "family": "claude-haiku", + "attachment": true, + "reasoning": true, "tool_call": true, "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" @@ -947,27 +1008,32 @@ }, "open_weights": false, "cost": { - "input": 0.2, - "output": 0.2 + "input": 1.0, + "output": 5.0, + "cache_read": 0.1, + "cache_write": 1.25 }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/mistral.ministral-3-8b-instruct", - "name": "Ministral 3 8B", - "family": "ministral", - "attachment": false, - "reasoning": false, - "tool_call": true, - "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "id": "amazon-bedrock/eu.anthropic.claude-opus-4.5-20251101-v1:0", + "name": "Claude Opus 4.5 (EU)", + "family": "claude-opus", + "attachment": true, + "reasoning": true, + "tool_call": true, + "temperature": true, + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" @@ -975,55 +1041,65 @@ }, "open_weights": false, "cost": { - "input": 0.15, - "output": 0.15 + "input": 5.0, + "output": 25.0, + "cache_read": 0.5, + "cache_write": 6.25 }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/mistral.mistral-7b-instruct-v0:2", - "name": "Mistral-7B-Instruct-v0.3", - "family": "mistral", - "attachment": false, - "reasoning": false, + "id": "amazon-bedrock/eu.anthropic.claude-opus-4.6-v1", + "name": "Claude Opus 4.6 (EU)", + "family": "claude-opus", + "attachment": true, + "reasoning": true, "tool_call": true, "temperature": true, - "release_date": "2025-04-01", - "last_updated": "2025-04-01", + "knowledge": "2025-05", + "release_date": "2026-02-05", + "last_updated": "2026-02-05", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.11, - "output": 0.11 + "input": 5.0, + "output": 25.0, + "cache_read": 0.5, + "cache_write": 6.25 }, "limit": { - "context": 127000, - "output": 127000 + "context": 1000000, + "output": 128000 } }, { - "id": "amazon-bedrock/mistral.mistral-large-2402-v1:0", - "name": "Mistral Large (24.02)", - "family": "mistral-large", - "attachment": false, - "reasoning": false, + "id": "amazon-bedrock/eu.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (EU)", + "family": "claude-sonnet", + "attachment": true, + "reasoning": true, "tool_call": true, "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2024-04", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" @@ -1031,56 +1107,65 @@ }, "open_weights": false, "cost": { - "input": 0.5, - "output": 1.5 + "input": 3.0, + "output": 15.0, + "cache_read": 0.3, + "cache_write": 3.75 }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/mistral.mixtral-8x7b-instruct-v0:1", - "name": "Mixtral-8x7B-Instruct-v0.1", - "family": "mixtral", - "attachment": false, - "reasoning": false, - "tool_call": false, + "id": "amazon-bedrock/eu.anthropic.claude-sonnet-4.5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (EU)", + "family": "claude-sonnet", + "attachment": true, + "reasoning": true, + "tool_call": true, "temperature": true, - "release_date": "2025-04-01", - "last_updated": "2025-04-01", + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.7, - "output": 0.7 + "input": 3.0, + "output": 15.0, + "cache_read": 0.3, + "cache_write": 3.75 }, "limit": { - "context": 32000, - "output": 32000 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/mistral.voxtral-mini-3b", - "name": "Voxtral Mini 3B 2507", - "family": "mistral", - "attachment": false, - "reasoning": false, + "id": "amazon-bedrock/global.anthropic.claude-haiku-4.5-20251001-v1:0", + "name": "Claude Haiku 4.5 (Global)", + "family": "claude-haiku", + "attachment": true, + "reasoning": true, "tool_call": true, "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", "modalities": { "input": [ - "audio", - "text" + "text", + "image", + "pdf" ], "output": [ "text" @@ -1088,84 +1173,98 @@ }, "open_weights": false, "cost": { - "input": 0.04, - "output": 0.04 + "input": 1.0, + "output": 5.0, + "cache_read": 0.1, + "cache_write": 1.25 }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/mistral.voxtral-small-24b", - "name": "Voxtral Small 24B 2507", - "family": "mistral", + "id": "amazon-bedrock/global.anthropic.claude-opus-4.5-20251101-v1:0", + "name": "Claude Opus 4.5 (Global)", + "family": "claude-opus", "attachment": true, - "reasoning": false, + "reasoning": true, "tool_call": true, "temperature": true, - "release_date": "2025-07-01", - "last_updated": "2025-07-01", + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", "modalities": { "input": [ "text", - "audio" + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.15, - "output": 0.35 + "input": 5.0, + "output": 25.0, + "cache_read": 0.5, + "cache_write": 6.25 }, "limit": { - "context": 32000, - "output": 8192 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/moonshot.kimi-k2-thinking", - "name": "Kimi K2 Thinking", - "attachment": false, + "id": "amazon-bedrock/global.anthropic.claude-opus-4.6-v1", + "name": "Claude Opus 4.6 (Global)", + "family": "claude-opus", + "attachment": true, "reasoning": true, "tool_call": true, "temperature": true, - "release_date": "2025-12-02", - "last_updated": "2025-12-02", + "knowledge": "2025-05", + "release_date": "2026-02-05", + "last_updated": "2026-02-05", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.6, - "output": 2.5 + "input": 5.0, + "output": 25.0, + "cache_read": 0.5, + "cache_write": 6.25 }, "limit": { - "context": 256000, - "output": 256000 + "context": 1000000, + "output": 128000 } }, { - "id": "amazon-bedrock/nvidia.nemotron-nano-12b-v2", - "name": "NVIDIA Nemotron Nano 12B v2 VL BF16", - "family": "nemotron", - "attachment": false, - "reasoning": false, + "id": "amazon-bedrock/global.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (Global)", + "family": "claude-sonnet", + "attachment": true, + "reasoning": true, "tool_call": true, "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2024-04", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" @@ -1173,27 +1272,32 @@ }, "open_weights": false, "cost": { - "input": 0.2, - "output": 0.6 + "input": 3.0, + "output": 15.0, + "cache_read": 0.3, + "cache_write": 3.75 }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/nvidia.nemotron-nano-9b-v2", - "name": "NVIDIA Nemotron Nano 9B v2", - "family": "nemotron", - "attachment": false, - "reasoning": false, + "id": "amazon-bedrock/global.anthropic.claude-sonnet-4.5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (Global)", + "family": "claude-sonnet", + "attachment": true, + "reasoning": true, "tool_call": true, "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" @@ -1201,27 +1305,31 @@ }, "open_weights": false, "cost": { - "input": 0.06, - "output": 0.23 + "input": 3.0, + "output": 15.0, + "cache_read": 0.3, + "cache_write": 3.75 }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/openai.gpt-oss-120b-1:0", - "name": "gpt-oss-120b", - "family": "gpt-oss", + "id": "amazon-bedrock/google.gemma-3-12b-it", + "name": "Google Gemma 3 12B", + "family": "gemma", "attachment": false, "reasoning": false, - "tool_call": true, + "tool_call": false, "temperature": true, + "knowledge": "2024-12", "release_date": "2024-12-01", "last_updated": "2024-12-01", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -1229,46 +1337,48 @@ }, "open_weights": false, "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.05, + "output": 0.1 }, "limit": { - "context": 128000, - "output": 4096 + "context": 131072, + "output": 8192 } }, { - "id": "amazon-bedrock/openai.gpt-oss-20b-1:0", - "name": "gpt-oss-20b", - "family": "gpt-oss", - "attachment": false, + "id": "amazon-bedrock/google.gemma-3-27b-it", + "name": "Google Gemma 3 27B Instruct", + "family": "gemma", + "attachment": true, "reasoning": false, "tool_call": true, "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2025-07", + "release_date": "2025-07-27", + "last_updated": "2025-07-27", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 0.07, - "output": 0.3 + "input": 0.12, + "output": 0.2 }, "limit": { - "context": 128000, - "output": 4096 + "context": 202752, + "output": 8192 } }, { - "id": "amazon-bedrock/openai.gpt-oss-safeguard-120b", - "name": "GPT OSS Safeguard 120B", - "family": "gpt-oss", + "id": "amazon-bedrock/google.gemma-3-4b-it", + "name": "Gemma 3 4B IT", + "family": "gemma", "attachment": false, "reasoning": false, "tool_call": true, @@ -1277,7 +1387,8 @@ "last_updated": "2024-12-01", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -1285,8 +1396,8 @@ }, "open_weights": false, "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.04, + "output": 0.08 }, "limit": { "context": 128000, @@ -1294,15 +1405,16 @@ } }, { - "id": "amazon-bedrock/openai.gpt-oss-safeguard-20b", - "name": "GPT OSS Safeguard 20B", - "family": "gpt-oss", + "id": "amazon-bedrock/meta.llama3-1-70b-instruct-v1:0", + "name": "Llama 3.1 70B Instruct", + "family": "llama", "attachment": false, "reasoning": false, "tool_call": true, "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "modalities": { "input": [ "text" @@ -1311,10 +1423,10 @@ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 0.07, - "output": 0.2 + "input": 0.72, + "output": 0.72 }, "limit": { "context": 128000, @@ -1322,16 +1434,16 @@ } }, { - "id": "amazon-bedrock/qwen.qwen3-235b-a22b-2507-v1:0", - "name": "Qwen3 235B A22B 2507", - "family": "qwen", + "id": "amazon-bedrock/meta.llama3-1-8b-instruct-v1:0", + "name": "Llama 3.1 8B Instruct", + "family": "llama", "attachment": false, "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2024-04", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "modalities": { "input": [ "text" @@ -1343,27 +1455,28 @@ "open_weights": true, "cost": { "input": 0.22, - "output": 0.88 + "output": 0.22 }, "limit": { - "context": 262144, - "output": 131072 + "context": 128000, + "output": 4096 } }, { - "id": "amazon-bedrock/qwen.qwen3-32b-v1:0", - "name": "Qwen3 32B (dense)", - "family": "qwen", - "attachment": false, - "reasoning": true, + "id": "amazon-bedrock/meta.llama3-2-11b-instruct-v1:0", + "name": "Llama 3.2 11B Instruct", + "family": "llama", + "attachment": true, + "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2024-04", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" @@ -1371,25 +1484,25 @@ }, "open_weights": true, "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.16, + "output": 0.16 }, "limit": { - "context": 16384, - "output": 16384 + "context": 128000, + "output": 4096 } }, { - "id": "amazon-bedrock/qwen.qwen3-coder-30b-a3b-v1:0", - "name": "Qwen3 Coder 30B A3B Instruct", - "family": "qwen", + "id": "amazon-bedrock/meta.llama3-2-1b-instruct-v1:0", + "name": "Llama 3.2 1B Instruct", + "family": "llama", "attachment": false, "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2024-04", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", "modalities": { "input": [ "text" @@ -1398,27 +1511,27 @@ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 0.15, - "output": 0.6 + "input": 0.1, + "output": 0.1 }, "limit": { - "context": 262144, - "output": 131072 + "context": 131000, + "output": 4096 } }, { - "id": "amazon-bedrock/qwen.qwen3-coder-480b-a35b-v1:0", - "name": "Qwen3 Coder 480B A35B Instruct", - "family": "qwen", + "id": "amazon-bedrock/meta.llama3-2-3b-instruct-v1:0", + "name": "Llama 3.2 3B Instruct", + "family": "llama", "attachment": false, "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2024-04", - "release_date": "2025-09-18", - "last_updated": "2025-09-18", + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", "modalities": { "input": [ "text" @@ -1429,247 +1542,232 @@ }, "open_weights": true, "cost": { - "input": 0.22, - "output": 1.8 + "input": 0.15, + "output": 0.15 }, "limit": { - "context": 131072, - "output": 65536 + "context": 131000, + "output": 4096 } }, { - "id": "amazon-bedrock/qwen.qwen3-next-80b-a3b", - "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", - "family": "qwen", - "attachment": false, + "id": "amazon-bedrock/meta.llama3-2-90b-instruct-v1:0", + "name": "Llama 3.2 90B Instruct", + "family": "llama", + "attachment": true, "reasoning": false, "tool_call": true, "temperature": true, - "release_date": "2025-09-18", - "last_updated": "2025-11-25", + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", "modalities": { "input": [ - "text" + "text", + "image" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 0.14, - "output": 1.4 + "input": 0.72, + "output": 0.72 }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 4096 } }, { - "id": "amazon-bedrock/qwen.qwen3-vl-235b-a22b", - "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", - "family": "qwen", - "attachment": true, + "id": "amazon-bedrock/meta.llama3-3-70b-instruct-v1:0", + "name": "Llama 3.3 70B Instruct", + "family": "llama", + "attachment": false, "reasoning": false, "tool_call": true, "temperature": true, - "release_date": "2025-10-04", - "last_updated": "2025-11-25", + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", "modalities": { "input": [ - "text", - "image" + "text" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 0.3, - "output": 1.5 + "input": 0.72, + "output": 0.72 }, "limit": { - "context": 262000, - "output": 262000 + "context": 128000, + "output": 4096 } }, { - "id": "amazon-bedrock/us.amazon.nova-2-lite-v1:0", - "name": "Nova 2 Lite (US)", - "family": "nova", + "id": "amazon-bedrock/meta.llama3-70b-instruct-v1:0", + "name": "Llama 3 70B Instruct", + "family": "llama", "attachment": false, "reasoning": false, - "tool_call": true, + "tool_call": false, "temperature": true, - "release_date": "2024-12-01", - "last_updated": "2024-12-01", + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 0.33, - "output": 2.75 + "input": 2.65, + "output": 3.5 }, "limit": { - "context": 128000, - "output": 4096 + "context": 8192, + "output": 2048 } }, { - "id": "amazon-bedrock/us.amazon.nova-premier-v1:0", - "name": "Nova Premier (US)", - "family": "nova", - "attachment": true, - "reasoning": true, - "tool_call": true, + "id": "amazon-bedrock/meta.llama3-8b-instruct-v1:0", + "name": "Llama 3 8B Instruct", + "family": "llama", + "attachment": false, + "reasoning": false, + "tool_call": false, "temperature": true, - "knowledge": "2024-10", - "release_date": "2024-12-03", - "last_updated": "2024-12-03", + "knowledge": "2023-03", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 2.5, - "output": 12.5 + "input": 0.3, + "output": 0.6 }, "limit": { - "context": 1000000, - "output": 16384 - } + "context": 8192, + "output": 2048 + } }, { - "id": "amazon-bedrock/us.anthropic.claude-3.7-sonnet-20250219-v1:0", - "name": "Claude Sonnet 3.7 (US)", - "family": "claude-sonnet", + "id": "amazon-bedrock/meta.llama4-maverick-17b-instruct-v1:0", + "name": "Llama 4 Maverick 17B Instruct", + "family": "llama", "attachment": true, "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2024-04", - "release_date": "2025-02-19", - "last_updated": "2025-02-19", + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 3.0, - "output": 15.0, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.24, + "output": 0.97 }, "limit": { - "context": 200000, - "output": 8192 + "context": 1000000, + "output": 16384 } }, { - "id": "amazon-bedrock/us.anthropic.claude-haiku-4.5-20251001-v1:0", - "name": "Claude Haiku 4.5 (US)", - "family": "claude-haiku", + "id": "amazon-bedrock/meta.llama4-scout-17b-instruct-v1:0", + "name": "Llama 4 Scout 17B Instruct", + "family": "llama", "attachment": true, - "reasoning": true, + "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2025-02-28", - "release_date": "2025-10-15", - "last_updated": "2025-10-15", + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", "modalities": { "input": [ "text", - "image", - "pdf" + "image" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 1.0, - "output": 5.0, - "cache_read": 0.1, - "cache_write": 1.25 + "input": 0.17, + "output": 0.66 }, "limit": { - "context": 200000, - "output": 64000 + "context": 3500000, + "output": 16384 } }, { - "id": "amazon-bedrock/us.anthropic.claude-opus-4-20250514-v1:0", - "name": "Claude Opus 4 (US)", - "family": "claude-opus", - "attachment": true, + "id": "amazon-bedrock/minimax.minimax-m2", + "name": "MiniMax M2", + "family": "minimax", + "attachment": false, "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2024-04", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "release_date": "2025-10-27", + "last_updated": "2025-10-27", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 15.0, - "output": 75.0, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.3, + "output": 1.2 }, "limit": { - "context": 200000, - "output": 32000 + "context": 204608, + "output": 128000 } }, { - "id": "amazon-bedrock/us.anthropic.claude-opus-4.1-20250805-v1:0", - "name": "Claude Opus 4.1 (US)", - "family": "claude-opus", - "attachment": true, - "reasoning": true, + "id": "amazon-bedrock/mistral.ministral-3-14b-instruct", + "name": "Ministral 14B 3.0", + "family": "ministral", + "attachment": false, + "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2025-03-31", - "release_date": "2025-08-05", - "last_updated": "2025-08-05", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" @@ -1677,32 +1775,27 @@ }, "open_weights": false, "cost": { - "input": 15.0, - "output": 75.0, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.2, + "output": 0.2 }, "limit": { - "context": 200000, - "output": 32000 + "context": 128000, + "output": 4096 } }, { - "id": "amazon-bedrock/us.anthropic.claude-opus-4.5-20251101-v1:0", - "name": "Claude Opus 4.5 (US)", - "family": "claude-opus", - "attachment": true, - "reasoning": true, + "id": "amazon-bedrock/mistral.ministral-3-8b-instruct", + "name": "Ministral 3 8B", + "family": "ministral", + "attachment": false, + "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2025-03-31", - "release_date": "2025-11-24", - "last_updated": "2025-08-01", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" @@ -1710,65 +1803,55 @@ }, "open_weights": false, "cost": { - "input": 5.0, - "output": 25.0, - "cache_read": 1.5, - "cache_write": 18.75 + "input": 0.15, + "output": 0.15 }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 4096 } }, { - "id": "amazon-bedrock/us.anthropic.claude-sonnet-4-20250514-v1:0", - "name": "Claude Sonnet 4 (US)", - "family": "claude-sonnet", - "attachment": true, - "reasoning": true, + "id": "amazon-bedrock/mistral.mistral-7b-instruct-v0:2", + "name": "Mistral-7B-Instruct-v0.3", + "family": "mistral", + "attachment": false, + "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2024-04", - "release_date": "2025-05-22", - "last_updated": "2025-05-22", + "release_date": "2025-04-01", + "last_updated": "2025-04-01", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 3.0, - "output": 15.0, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.11, + "output": 0.11 }, "limit": { - "context": 200000, - "output": 64000 + "context": 127000, + "output": 127000 } }, { - "id": "amazon-bedrock/us.anthropic.claude-sonnet-4.5-20250929-v1:0", - "name": "Claude Sonnet 4.5 (US)", - "family": "claude-sonnet", - "attachment": true, - "reasoning": true, + "id": "amazon-bedrock/mistral.mistral-large-2402-v1:0", + "name": "Mistral Large (24.02)", + "family": "mistral-large", + "attachment": false, + "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2025-07-31", - "release_date": "2025-09-29", - "last_updated": "2025-09-29", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" @@ -1776,27 +1859,24 @@ }, "open_weights": false, "cost": { - "input": 3.0, - "output": 15.0, - "cache_read": 0.3, - "cache_write": 3.75 + "input": 0.5, + "output": 1.5 }, "limit": { - "context": 200000, - "output": 64000 + "context": 128000, + "output": 4096 } }, { - "id": "amazon-bedrock/us.deepseek.r1-v1:0", - "name": "DeepSeek-R1 (US)", - "family": "deepseek-thinking", + "id": "amazon-bedrock/mistral.mixtral-8x7b-instruct-v0:1", + "name": "Mixtral-8x7B-Instruct-v0.1", + "family": "mixtral", "attachment": false, - "reasoning": true, - "tool_call": true, + "reasoning": false, + "tool_call": false, "temperature": true, - "knowledge": "2024-07", - "release_date": "2025-01-20", - "last_updated": "2025-05-29", + "release_date": "2025-04-01", + "last_updated": "2025-04-01", "modalities": { "input": [ "text" @@ -1805,40 +1885,39 @@ "text" ] }, - "open_weights": false, + "open_weights": true, "cost": { - "input": 1.35, - "output": 5.4 + "input": 0.7, + "output": 0.7 }, "limit": { - "context": 128000, - "output": 32768 + "context": 32000, + "output": 32000 } }, { - "id": "amazon-bedrock/us.meta.llama3-2-11b-instruct-v1:0", - "name": "Llama 3.2 11B Instruct (US)", - "family": "llama", - "attachment": true, + "id": "amazon-bedrock/mistral.voxtral-mini-3b", + "name": "Voxtral Mini 3B 2507", + "family": "mistral", + "attachment": false, "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", "modalities": { "input": [ - "text", - "image" + "audio", + "text" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.16, - "output": 0.16 + "input": 0.04, + "output": 0.04 }, "limit": { "context": 128000, @@ -1846,180 +1925,632 @@ } }, { - "id": "amazon-bedrock/us.meta.llama3-2-1b-instruct-v1:0", - "name": "Llama 3.2 1B Instruct (US)", - "family": "llama", - "attachment": false, + "id": "amazon-bedrock/mistral.voxtral-small-24b", + "name": "Voxtral Small 24B 2507", + "family": "mistral", + "attachment": true, "reasoning": false, "tool_call": true, "temperature": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "release_date": "2025-07-01", + "last_updated": "2025-07-01", "modalities": { "input": [ - "text" + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "open_weights": true, + "cost": { + "input": 0.15, + "output": 0.35 + }, + "limit": { + "context": 32000, + "output": 8192 + } + }, + { + "id": "amazon-bedrock/moonshot.kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "attachment": false, + "reasoning": true, + "tool_call": true, + "temperature": true, + "release_date": "2025-12-02", + "last_updated": "2025-12-02", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": true, + "cost": { + "input": 0.6, + "output": 2.5 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + { + "id": "amazon-bedrock/nvidia.nemotron-nano-12b-v2", + "name": "NVIDIA Nemotron Nano 12B v2 VL BF16", + "family": "nemotron", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.2, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + { + "id": "amazon-bedrock/nvidia.nemotron-nano-9b-v2", + "name": "NVIDIA Nemotron Nano 9B v2", + "family": "nemotron", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.06, + "output": 0.23 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + { + "id": "amazon-bedrock/openai.gpt-oss-120b-1:0", + "name": "gpt-oss-120b", + "family": "gpt-oss", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + { + "id": "amazon-bedrock/openai.gpt-oss-20b-1:0", + "name": "gpt-oss-20b", + "family": "gpt-oss", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.07, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + { + "id": "amazon-bedrock/openai.gpt-oss-safeguard-120b", + "name": "GPT OSS Safeguard 120B", + "family": "gpt-oss", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + { + "id": "amazon-bedrock/openai.gpt-oss-safeguard-20b", + "name": "GPT OSS Safeguard 20B", + "family": "gpt-oss", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.07, + "output": 0.2 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + { + "id": "amazon-bedrock/qwen.qwen3-235b-a22b-2507-v1:0", + "name": "Qwen3 235B A22B 2507", + "family": "qwen", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "knowledge": "2024-04", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": true, + "cost": { + "input": 0.22, + "output": 0.88 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + { + "id": "amazon-bedrock/qwen.qwen3-32b-v1:0", + "name": "Qwen3 32B (dense)", + "family": "qwen", + "attachment": false, + "reasoning": true, + "tool_call": true, + "temperature": true, + "knowledge": "2024-04", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": true, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 16384, + "output": 16384 + } + }, + { + "id": "amazon-bedrock/qwen.qwen3-coder-30b-a3b-v1:0", + "name": "Qwen3 Coder 30B A3B Instruct", + "family": "qwen", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "knowledge": "2024-04", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + { + "id": "amazon-bedrock/qwen.qwen3-coder-480b-a35b-v1:0", + "name": "Qwen3 Coder 480B A35B Instruct", + "family": "qwen", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "knowledge": "2024-04", + "release_date": "2025-09-18", + "last_updated": "2025-09-18", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": true, + "cost": { + "input": 0.22, + "output": 1.8 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + { + "id": "amazon-bedrock/qwen.qwen3-next-80b-a3b", + "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "family": "qwen", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2025-09-18", + "last_updated": "2025-11-25", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.14, + "output": 1.4 + }, + "limit": { + "context": 262000, + "output": 262000 + } + }, + { + "id": "amazon-bedrock/qwen.qwen3-vl-235b-a22b", + "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "family": "qwen", + "attachment": true, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 0.3, + "output": 1.5 + }, + "limit": { + "context": 262000, + "output": 262000 + } + }, + { + "id": "amazon-bedrock/us.anthropic.claude-haiku-4.5-20251001-v1:0", + "name": "Claude Haiku 4.5 (US)", + "family": "claude-haiku", + "attachment": true, + "reasoning": true, + "tool_call": true, + "temperature": true, + "knowledge": "2025-02-28", + "release_date": "2025-10-15", + "last_updated": "2025-10-15", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 1.0, + "output": 5.0, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + { + "id": "amazon-bedrock/us.anthropic.claude-opus-4-20250514-v1:0", + "name": "Claude Opus 4 (US)", + "family": "claude-opus", + "attachment": true, + "reasoning": true, + "tool_call": true, + "temperature": true, + "knowledge": "2024-04", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "modalities": { + "input": [ + "text", + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.1, - "output": 0.1 + "input": 15.0, + "output": 75.0, + "cache_read": 1.5, + "cache_write": 18.75 }, "limit": { - "context": 131000, - "output": 4096 + "context": 200000, + "output": 32000 } }, { - "id": "amazon-bedrock/us.meta.llama3-2-3b-instruct-v1:0", - "name": "Llama 3.2 3B Instruct (US)", - "family": "llama", - "attachment": false, - "reasoning": false, + "id": "amazon-bedrock/us.anthropic.claude-opus-4.1-20250805-v1:0", + "name": "Claude Opus 4.1 (US)", + "family": "claude-opus", + "attachment": true, + "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.15, - "output": 0.15 + "input": 15.0, + "output": 75.0, + "cache_read": 1.5, + "cache_write": 18.75 }, "limit": { - "context": 131000, - "output": 4096 + "context": 200000, + "output": 32000 } }, { - "id": "amazon-bedrock/us.meta.llama3-2-90b-instruct-v1:0", - "name": "Llama 3.2 90B Instruct (US)", - "family": "llama", + "id": "amazon-bedrock/us.anthropic.claude-opus-4.5-20251101-v1:0", + "name": "Claude Opus 4.5 (US)", + "family": "claude-opus", "attachment": true, - "reasoning": false, + "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2023-12", - "release_date": "2024-09-25", - "last_updated": "2024-09-25", + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.72, - "output": 0.72 + "input": 5.0, + "output": 25.0, + "cache_read": 0.5, + "cache_write": 6.25 }, "limit": { - "context": 128000, - "output": 4096 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/us.meta.llama3-3-70b-instruct-v1:0", - "name": "Llama 3.3 70B Instruct (US)", - "family": "llama", - "attachment": false, - "reasoning": false, + "id": "amazon-bedrock/us.anthropic.claude-opus-4.6-v1", + "name": "Claude Opus 4.6 (US)", + "family": "claude-opus", + "attachment": true, + "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2023-12", - "release_date": "2024-12-06", - "last_updated": "2024-12-06", + "knowledge": "2025-05", + "release_date": "2026-02-05", + "last_updated": "2026-02-05", "modalities": { "input": [ - "text" + "text", + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.72, - "output": 0.72 + "input": 5.0, + "output": 25.0, + "cache_read": 0.5, + "cache_write": 6.25 }, "limit": { - "context": 128000, - "output": 4096 + "context": 1000000, + "output": 128000 } }, { - "id": "amazon-bedrock/us.meta.llama4-maverick-17b-instruct-v1:0", - "name": "Llama 4 Maverick 17B Instruct (US)", - "family": "llama", + "id": "amazon-bedrock/us.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (US)", + "family": "claude-sonnet", "attachment": true, - "reasoning": false, + "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "knowledge": "2024-04", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.24, - "output": 0.97 + "input": 3.0, + "output": 15.0, + "cache_read": 0.3, + "cache_write": 3.75 }, "limit": { - "context": 1000000, - "output": 16384 + "context": 200000, + "output": 64000 } }, { - "id": "amazon-bedrock/us.meta.llama4-scout-17b-instruct-v1:0", - "name": "Llama 4 Scout 17B Instruct (US)", - "family": "llama", + "id": "amazon-bedrock/us.anthropic.claude-sonnet-4.5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (US)", + "family": "claude-sonnet", "attachment": true, - "reasoning": false, + "reasoning": true, "tool_call": true, "temperature": true, - "knowledge": "2024-08", - "release_date": "2025-04-05", - "last_updated": "2025-04-05", + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", "modalities": { "input": [ "text", - "image" + "image", + "pdf" ], "output": [ "text" ] }, - "open_weights": true, + "open_weights": false, "cost": { - "input": 0.17, - "output": 0.66 + "input": 3.0, + "output": 15.0, + "cache_read": 0.3, + "cache_write": 3.75 }, "limit": { - "context": 3500000, - "output": 16384 + "context": 200000, + "output": 64000 } }, { @@ -2385,6 +2916,39 @@ "output": 64000 } }, + { + "id": "anthropic/claude-opus-4.6", + "name": "Claude Opus 4.6", + "family": "claude-opus", + "attachment": true, + "reasoning": true, + "tool_call": true, + "temperature": true, + "knowledge": "2025-05", + "release_date": "2026-02-05", + "last_updated": "2026-02-05", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 5.0, + "output": 25.0, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, { "id": "anthropic/claude-sonnet-4", "name": "Claude Sonnet 4", @@ -8368,6 +8932,38 @@ "output": 128000 } }, + { + "id": "openai/gpt-5.3-codex", + "name": "GPT-5.3 Codex", + "family": "gpt-codex", + "attachment": true, + "reasoning": true, + "tool_call": true, + "temperature": false, + "knowledge": "2025-08-31", + "release_date": "2026-02-05", + "last_updated": "2026-02-05", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 1.75, + "output": 14.0, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, { "id": "openai/o1", "name": "o1", @@ -13891,6 +14487,37 @@ "output": 65535 } }, + { + "id": "venice/claude-opus-4.6", + "name": "Claude Opus 4.6", + "family": "claude-opus", + "attachment": true, + "reasoning": true, + "tool_call": true, + "temperature": true, + "release_date": "2026-02-05", + "last_updated": "2026-02-05", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "open_weights": false, + "cost": { + "input": 6.0, + "output": 30.0, + "cache_read": 0.6, + "cache_write": 7.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, { "id": "venice/claude-opus-45", "name": "Claude Opus 4.5", @@ -14673,6 +15300,34 @@ "output": 49500 } }, + { + "id": "venice/zai-org-glm-4.7-flash", + "name": "GLM 4.7 Flash", + "family": "glm-flash", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2026-01-29", + "last_updated": "2026-01-30", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "open_weights": true, + "cost": { + "input": 0.125, + "output": 0.5 + }, + "limit": { + "context": 128000, + "output": 32000 + } + }, { "id": "x-ai/grok-2", "name": "Grok 2 (1212)", diff --git a/crates/goose/src/providers/claude_code.rs b/crates/goose/src/providers/claude_code.rs index 1e6417c19dc7..a1e30eabcb09 100644 --- a/crates/goose/src/providers/claude_code.rs +++ b/crates/goose/src/providers/claude_code.rs @@ -2,7 +2,6 @@ use anyhow::Result; use async_trait::async_trait; use rmcp::model::Role; use serde_json::{json, Value}; -use std::ffi::OsString; use std::path::PathBuf; use std::process::Stdio; use tokio::io::{AsyncBufReadExt, BufReader}; @@ -36,8 +35,8 @@ pub struct ClaudeCodeProvider { impl ClaudeCodeProvider { pub async fn from_env(model: ModelConfig) -> Result { let config = crate::config::Config::global(); - let command: OsString = config.get_claude_code_command().unwrap_or_default().into(); - let resolved_command = SearchPaths::builder().with_npm().resolve(command)?; + let command: String = config.get_claude_code_command().unwrap_or_default().into(); + let resolved_command = SearchPaths::builder().with_npm().resolve(&command)?; Ok(Self { command: resolved_command, diff --git a/crates/goose/src/providers/codex.rs b/crates/goose/src/providers/codex.rs index 6234483a22ce..a79cda1e7adb 100644 --- a/crates/goose/src/providers/codex.rs +++ b/crates/goose/src/providers/codex.rs @@ -1,7 +1,6 @@ use anyhow::Result; use async_trait::async_trait; use serde_json::json; -use std::ffi::OsString; use std::path::PathBuf; use std::process::Stdio; use tokio::io::{AsyncBufReadExt, BufReader}; @@ -48,8 +47,8 @@ pub struct CodexProvider { impl CodexProvider { pub async fn from_env(model: ModelConfig) -> Result { let config = Config::global(); - let command: OsString = config.get_codex_command().unwrap_or_default().into(); - let resolved_command = SearchPaths::builder().with_npm().resolve(command)?; + let command: String = config.get_codex_command().unwrap_or_default().into(); + let resolved_command = SearchPaths::builder().with_npm().resolve(&command)?; // Get reasoning effort from config, default to "high" let reasoning_effort = config diff --git a/crates/goose/src/providers/cursor_agent.rs b/crates/goose/src/providers/cursor_agent.rs index cadd7f97a363..ad593f158bf0 100644 --- a/crates/goose/src/providers/cursor_agent.rs +++ b/crates/goose/src/providers/cursor_agent.rs @@ -2,7 +2,6 @@ use anyhow::Result; use async_trait::async_trait; use rmcp::model::Role; use serde_json::{json, Value}; -use std::ffi::OsString; use std::path::PathBuf; use std::process::Stdio; use tokio::io::{AsyncBufReadExt, BufReader}; @@ -36,8 +35,8 @@ pub struct CursorAgentProvider { impl CursorAgentProvider { pub async fn from_env(model: ModelConfig) -> Result { let config = crate::config::Config::global(); - let command: OsString = config.get_cursor_agent_command().unwrap_or_default().into(); - let resolved_command = SearchPaths::builder().with_npm().resolve(command)?; + let command: String = config.get_cursor_agent_command().unwrap_or_default().into(); + let resolved_command = SearchPaths::builder().with_npm().resolve(&command)?; Ok(Self { command: resolved_command, diff --git a/crates/goose/src/providers/gemini_cli.rs b/crates/goose/src/providers/gemini_cli.rs index 4adf8b7925bc..b2c6ff829797 100644 --- a/crates/goose/src/providers/gemini_cli.rs +++ b/crates/goose/src/providers/gemini_cli.rs @@ -1,7 +1,6 @@ use anyhow::Result; use async_trait::async_trait; use serde_json::json; -use std::ffi::OsString; use std::path::PathBuf; use std::process::Stdio; use tokio::io::{AsyncBufReadExt, BufReader}; @@ -42,8 +41,8 @@ pub struct GeminiCliProvider { impl GeminiCliProvider { pub async fn from_env(model: ModelConfig) -> Result { let config = Config::global(); - let command: OsString = config.get_gemini_cli_command().unwrap_or_default().into(); - let resolved_command = SearchPaths::builder().with_npm().resolve(command)?; + let command: String = config.get_gemini_cli_command().unwrap_or_default().into(); + let resolved_command = SearchPaths::builder().with_npm().resolve(&command)?; Ok(Self { command: resolved_command, diff --git a/crates/goose/src/providers/tetrate.rs b/crates/goose/src/providers/tetrate.rs index ba31a28cfdcd..5dbf55f8559c 100644 --- a/crates/goose/src/providers/tetrate.rs +++ b/crates/goose/src/providers/tetrate.rs @@ -254,8 +254,10 @@ impl Provider for TetrateProvider { { Ok(response) => response, Err(e) => { - tracing::warn!("Failed to fetch models from Tetrate Agent Router Service API: {}, falling back to manual model entry", e); - return Ok(None); + return Err(ProviderError::ExecutionError(format!( + "Failed to fetch models from Tetrate API: {}. Please check your API key and account at {}", + e, TETRATE_DOC_URL + ))); } }; @@ -278,7 +280,10 @@ impl Provider for TetrateProvider { "Tetrate Agent Router Service API returned an error: {}", msg ); - return Ok(None); + return Err(ProviderError::ExecutionError(format!( + "Tetrate API error: {}. Please check your API key and account at {}", + msg, TETRATE_DOC_URL + ))); } // The response format from /v1/models is expected to be OpenAI-compatible @@ -294,39 +299,21 @@ impl Provider for TetrateProvider { let mut models: Vec = data .iter() .filter_map(|model| { - // Get the model ID let id = model.get("id").and_then(|v| v.as_str())?; - - // Check if the model supports computer_use (which indicates tool/function support) - // The Tetrate API uses "supports_computer_use" instead of "supported_parameters" - let supported_params = - match model.get("supported_parameters").and_then(|v| v.as_array()) { - Some(params) => params, - None => { - tracing::debug!( - "Model '{}' missing supported_parameters field, skipping", - id - ); - return None; - } - }; - - let has_tool_support = supported_params - .iter() - .any(|param| param.as_str() == Some("tools")); - - if has_tool_support { + let supports_computer_use = model + .get("supports_computer_use") + .and_then(|v| v.as_bool()) + .unwrap_or(false); + if supports_computer_use { Some(id.to_string()) } else { - tracing::debug!("Model '{}' does not support tools, skipping", id); None } }) .collect(); - // If no models with tool support were found, fall back to manual entry if models.is_empty() { - tracing::warn!("No models with tool support found in Tetrate Agent Router Service API response, falling back to manual model entry"); + tracing::warn!("No models found in Tetrate Agent Router Service API response, falling back to manual model entry"); return Ok(None); } diff --git a/ui/desktop/openapi.json b/ui/desktop/openapi.json index 23f2e17b8d18..e68874fa2738 100644 --- a/ui/desktop/openapi.json +++ b/ui/desktop/openapi.json @@ -10,7 +10,7 @@ "license": { "name": "Apache-2.0" }, - "version": "1.23.1" + "version": "1.23.2" }, "paths": { "/action-required/tool-confirmation": { diff --git a/ui/desktop/package-lock.json b/ui/desktop/package-lock.json index 11d122d984d7..1a65518ab806 100644 --- a/ui/desktop/package-lock.json +++ b/ui/desktop/package-lock.json @@ -1,12 +1,12 @@ { "name": "goose-app", - "version": "1.23.1", + "version": "1.23.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "goose-app", - "version": "1.23.1", + "version": "1.23.2", "license": "Apache-2.0", "dependencies": { "@mcp-ui/client": "^5.17.3", diff --git a/ui/desktop/package.json b/ui/desktop/package.json index dd3656840f66..a4ad7a7c66d0 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -1,7 +1,7 @@ { "name": "goose-app", "productName": "Goose", - "version": "1.23.1", + "version": "1.23.2", "description": "Goose App", "engines": { "node": "^24.10.0",