diff --git a/Cargo.lock b/Cargo.lock index f352e3408235..f3cd07874988 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2887,7 +2887,7 @@ dependencies = [ [[package]] name = "goose" -version = "1.19.0" +version = "1.20.0" dependencies = [ "agent-client-protocol-schema", "ahash", @@ -2974,7 +2974,7 @@ dependencies = [ [[package]] name = "goose-bench" -version = "1.19.0" +version = "1.20.0" dependencies = [ "anyhow", "async-trait", @@ -2997,7 +2997,7 @@ dependencies = [ [[package]] name = "goose-cli" -version = "1.19.0" +version = "1.20.0" dependencies = [ "anstream", "anyhow", @@ -3050,7 +3050,7 @@ dependencies = [ [[package]] name = "goose-mcp" -version = "1.19.0" +version = "1.20.0" dependencies = [ "anyhow", "async-trait", @@ -3109,7 +3109,7 @@ dependencies = [ [[package]] name = "goose-server" -version = "1.19.0" +version = "1.20.0" dependencies = [ "anyhow", "async-trait", @@ -3155,7 +3155,7 @@ dependencies = [ [[package]] name = "goose-test" -version = "1.19.0" +version = "1.20.0" dependencies = [ "clap", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index e132c781901d..5dba3e181eea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ resolver = "2" [workspace.package] edition = "2021" -version = "1.19.0" +version = "1.20.0" authors = ["Block "] license = "Apache-2.0" repository = "https://github.com/block/goose" 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 ee9c59fd76e3..d4323ac233e0 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-01-08T18:28:52.658440+00:00", + "timestamp": "2026-01-13T00:27:41.273882436+00:00", "unmapped_models": [ { "provider": "google", @@ -2505,10 +2505,6 @@ "provider": "openrouter", "model": "kwaipilot/kat-coder-pro" }, - { - "provider": "openrouter", - "model": "kwaipilot/kat-coder-pro:free" - }, { "provider": "openrouter", "model": "meta-llama/llama-3.3-70b-instruct:free" @@ -2555,7 +2551,7 @@ }, { "provider": "openrouter", - "model": "nex-agi/deepseek-v3.1-nex-n1:free" + "model": "nex-agi/deepseek-v3.1-nex-n1" }, { "provider": "openrouter", @@ -3610,6 +3606,10 @@ "provider_model": "qwen/qwen-2.5-72b-instruct", "canonical_model": "qwen/qwen-2.5-72b-instruct" }, + { + "provider_model": "qwen/qwen-2.5-7b-instruct", + "canonical_model": "qwen/qwen-2.5-7b-instruct" + }, { "provider_model": "qwen/qwen-max", "canonical_model": "qwen/qwen-max" @@ -4889,6 +4889,11 @@ "model": "qwen/qwen-2.5-72b-instruct", "canonical": "qwen/qwen-2.5-72b-instruct" }, + { + "provider": "openrouter", + "model": "qwen/qwen-2.5-7b-instruct", + "canonical": "qwen/qwen-2.5-7b-instruct" + }, { "provider": "openrouter", "model": "qwen/qwen-max", @@ -5190,6 +5195,7 @@ "openai/o4-mini-deep-research", "openai/o4-mini-high", "qwen/qwen-2.5-72b-instruct", + "qwen/qwen-2.5-7b-instruct", "qwen/qwen-max", "qwen/qwen-plus", "qwen/qwen-plus-2025-07-28:thinking", diff --git a/crates/goose/src/providers/canonical/data/canonical_models.json b/crates/goose/src/providers/canonical/data/canonical_models.json index cfe390386cb3..abc79e4f8b52 100644 --- a/crates/goose/src/providers/canonical/data/canonical_models.json +++ b/crates/goose/src/providers/canonical/data/canonical_models.json @@ -185,6 +185,7 @@ "id": "anthropic/claude-opus-4.1", "name": "Anthropic: Claude Opus 4.1", "context_length": 200000, + "max_completion_tokens": 32000, "input_modalities": [ "file", "image", @@ -205,7 +206,7 @@ "id": "anthropic/claude-opus-4.5", "name": "Anthropic: Claude Opus 4.5", "context_length": 200000, - "max_completion_tokens": 32000, + "max_completion_tokens": 64000, "input_modalities": [ "file", "image", @@ -1159,9 +1160,7 @@ "supports_tools": true, "pricing": { "prompt": 3e-7, - "completion": 9e-7, - "request": 0.0, - "image": 0.0 + "completion": 9e-7 } }, { @@ -1196,9 +1195,7 @@ "supports_tools": true, "pricing": { "prompt": 4e-7, - "completion": 2e-6, - "request": 0.0, - "image": 0.0 + "completion": 2e-6 } }, { @@ -1233,9 +1230,7 @@ "supports_tools": true, "pricing": { "prompt": 2e-7, - "completion": 2e-7, - "request": 0.0, - "image": 0.0 + "completion": 2e-7 } }, { @@ -1251,9 +1246,7 @@ "supports_tools": true, "pricing": { "prompt": 4e-8, - "completion": 4e-8, - "request": 0.0, - "image": 0.0 + "completion": 4e-8 } }, { @@ -1269,9 +1262,7 @@ "supports_tools": true, "pricing": { "prompt": 1e-7, - "completion": 1e-7, - "request": 0.0, - "image": 0.0 + "completion": 1e-7 } }, { @@ -1306,9 +1297,7 @@ "supports_tools": true, "pricing": { "prompt": 2e-6, - "completion": 6e-6, - "request": 0.0, - "image": 0.0 + "completion": 6e-6 } }, { @@ -1325,9 +1314,7 @@ "supports_tools": true, "pricing": { "prompt": 4e-7, - "completion": 2e-6, - "request": 0.0, - "image": 0.0 + "completion": 2e-6 } }, { @@ -1344,9 +1331,7 @@ "supports_tools": true, "pricing": { "prompt": 4e-7, - "completion": 2e-6, - "request": 0.0, - "image": 0.0 + "completion": 2e-6 } }, { @@ -1381,9 +1366,7 @@ "supports_tools": true, "pricing": { "prompt": 2e-7, - "completion": 6e-7, - "request": 0.0, - "image": 0.0 + "completion": 6e-7 } }, { @@ -1458,9 +1441,7 @@ "supports_tools": true, "pricing": { "prompt": 1e-7, - "completion": 3e-7, - "request": 0.0, - "image": 0.0 + "completion": 3e-7 } }, { @@ -1476,9 +1457,7 @@ "supports_tools": true, "pricing": { "prompt": 2.5e-7, - "completion": 2.5e-7, - "request": 0.0, - "image": 0.0 + "completion": 2.5e-7 } }, { @@ -1494,9 +1473,7 @@ "supports_tools": true, "pricing": { "prompt": 2e-6, - "completion": 6e-6, - "request": 0.0, - "image": 0.0 + "completion": 6e-6 } }, { @@ -1551,9 +1528,7 @@ "supports_tools": true, "pricing": { "prompt": 2e-6, - "completion": 6e-6, - "request": 0.0, - "image": 0.002888 + "completion": 6e-6 } }, { @@ -1570,9 +1545,7 @@ "supports_tools": true, "pricing": { "prompt": 1e-7, - "completion": 3e-7, - "request": 0.0, - "image": 0.0 + "completion": 3e-7 } }, { @@ -2522,7 +2495,7 @@ "output_modalities": [ "text" ], - "supports_tools": false, + "supports_tools": true, "pricing": { "prompt": 4e-8, "completion": 1e-7, diff --git a/ui/desktop/openapi.json b/ui/desktop/openapi.json index 8e0d67ce9feb..55258dea7e02 100644 --- a/ui/desktop/openapi.json +++ b/ui/desktop/openapi.json @@ -10,7 +10,7 @@ "license": { "name": "Apache-2.0" }, - "version": "1.19.0" + "version": "1.20.0" }, "paths": { "/action-required/tool-confirmation": { diff --git a/ui/desktop/package-lock.json b/ui/desktop/package-lock.json index a6bc71e9c35a..9af607797194 100644 --- a/ui/desktop/package-lock.json +++ b/ui/desktop/package-lock.json @@ -1,12 +1,12 @@ { "name": "goose-app", - "version": "1.19.0", + "version": "1.20.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "goose-app", - "version": "1.19.0", + "version": "1.20.0", "license": "Apache-2.0", "dependencies": { "@mcp-ui/client": "^5.17.3", diff --git a/ui/desktop/package.json b/ui/desktop/package.json index a6dae03943bf..f741d2b9f164 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -1,7 +1,7 @@ { "name": "goose-app", "productName": "Goose", - "version": "1.19.0", + "version": "1.20.0", "description": "Goose App", "engines": { "node": "^24.0.0" diff --git a/ui/desktop/src/components/BaseChat.tsx b/ui/desktop/src/components/BaseChat.tsx index 67e38830f729..7e6057fb5d0a 100644 --- a/ui/desktop/src/components/BaseChat.tsx +++ b/ui/desktop/src/components/BaseChat.tsx @@ -402,7 +402,15 @@ function BaseChatContent({
) : !recipe && showPopularTopics ? ( - handleSubmit(text)} /> + { + const syntheticEvent = { + detail: { value: text }, + preventDefault: () => {}, + } as unknown as React.FormEvent; + handleFormSubmit(syntheticEvent); + }} + /> ) : null} diff --git a/ui/desktop/src/components/settings/extensions/subcomponents/ExtensionList.tsx b/ui/desktop/src/components/settings/extensions/subcomponents/ExtensionList.tsx index 67bb5d469aef..a4e526a33634 100644 --- a/ui/desktop/src/components/settings/extensions/subcomponents/ExtensionList.tsx +++ b/ui/desktop/src/components/settings/extensions/subcomponents/ExtensionList.tsx @@ -1,6 +1,5 @@ import ExtensionItem from './ExtensionItem'; import builtInExtensionsData from '../../../../built-in-extensions.json'; -import { quote } from 'shell-quote'; import { ExtensionConfig } from '../../../../api'; import { FixedExtensionEntry } from '../../../ConfigContext'; @@ -136,7 +135,7 @@ export function getSubtitle(config: ExtensionConfig) { default: return { description: config.description || null, - command: 'cmd' in config ? quote([config.cmd, ...config.args]) : null, + command: 'cmd' in config ? [config.cmd, ...config.args].join(' ') : null, }; } }