Skip to content

Commit 97b9c33

Browse files
committed
Merge branch 'main' into jackjackbits-optimize-core-systems
* main: (51 commits) docs: reflecting benefits of CLI providers (aaif-goose#3399) feat: fetch openrouter supported models in `goose configure` (aaif-goose#3347) Add the ability to configure rustyline to use a different edit mode (e.g. vi) (aaif-goose#2769) docs: update CLI provider guide (aaif-goose#3397) Streamable HTTP CLI flag (aaif-goose#3394) docs: Show both remote options for extensions in CLI (aaif-goose#3392) docs: fix YouTube Transcript MCP package manager (aaif-goose#3390) docs: simplify alby mcp (aaif-goose#3379) docs: add max turns (aaif-goose#3372) feat(cli): add cost estimation per provider for Goose CLI (aaif-goose#3330) feat: Allow Ollama for non-tool models for chat only (aaif-goose#3308) [cli] Add --provider and --model CLI options to run command (aaif-goose#3295) Docs: Lead/worker model in Goose Desktop (aaif-goose#3342) revert: refactor: abstract keyring logic to better enable DI (aaif-goose#3358) Drop temporal-service binary (aaif-goose#3340) docs: add fuzzy search (aaif-goose#3357) Fix name of GPT-4.1 System Prompt (aaif-goose#3348) (aaif-goose#3351) docs: add goose-mobile (aaif-goose#3315) refactor: abstract keyring logic to better enable DI (aaif-goose#3262) fix: correct tool use for anthropic (aaif-goose#3311) ...
2 parents 59a0554 + aabf066 commit 97b9c33

100 files changed

Lines changed: 3460 additions & 637 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.devcontainer/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ RUN apt-get update && apt-get install -y \
77
libdbus-1-dev \
88
gnome-keyring \
99
libxcb1-dev \
10+
protobuf-compiler \
1011
&& apt-get clean

.github/workflows/ci.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525

2626
rust-build-and-test:
2727
name: Build and Test Rust Project
28-
runs-on: ubuntu-latest
28+
runs-on: goose
2929
steps:
3030
# Add disk space cleanup before linting
3131
- name: Check disk space before build
@@ -95,7 +95,9 @@ jobs:
9595
- name: Build and Test
9696
run: |
9797
gnome-keyring-daemon --components=secrets --daemonize --unlock <<< 'foobar'
98-
source ../bin/activate-hermit && cargo test
98+
source ../bin/activate-hermit
99+
export CARGO_INCREMENTAL=0
100+
cargo test --jobs 2
99101
working-directory: crates
100102

101103
- name: Check disk space before cleanup
@@ -125,8 +127,11 @@ jobs:
125127
run: df -h
126128

127129
- name: Lint
128-
run: source ./bin/activate-hermit && cargo clippy -- -D warnings
129-
130+
run: |
131+
source ./bin/activate-hermit
132+
export CARGO_INCREMENTAL=0
133+
cargo clippy --jobs 2 -- -D warnings
134+
130135
desktop-lint:
131136
name: Lint Electron Desktop App
132137
runs-on: macos-latest

Cargo.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ resolver = "2"
44

55
[workspace.package]
66
edition = "2021"
7-
version = "1.0.32"
7+
version = "1.0.35"
88
authors = ["Block <ai-oss-tools@block.xyz>"]
99
license = "Apache-2.0"
1010
repository = "https://github.com/block/goose"

crates/goose-cli/src/cli.rs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,16 @@ enum Command {
341341
)]
342342
remote_extensions: Vec<String>,
343343

344+
/// Add streamable HTTP extensions with a URL
345+
#[arg(
346+
long = "with-streamable-http-extension",
347+
value_name = "URL",
348+
help = "Add streamable HTTP extensions (can be specified multiple times)",
349+
long_help = "Add streamable HTTP extensions from a URL. Can be specified multiple times. Format: 'url...'",
350+
action = clap::ArgAction::Append
351+
)]
352+
streamable_http_extensions: Vec<String>,
353+
344354
/// Add builtin extensions by name
345355
#[arg(
346356
long = "with-builtin",
@@ -509,6 +519,16 @@ enum Command {
509519
)]
510520
remote_extensions: Vec<String>,
511521

522+
/// Add streamable HTTP extensions
523+
#[arg(
524+
long = "with-streamable-http-extension",
525+
value_name = "URL",
526+
help = "Add streamable HTTP extensions (can be specified multiple times)",
527+
long_help = "Add streamable HTTP extensions. Can be specified multiple times. Format: 'url...'",
528+
action = clap::ArgAction::Append
529+
)]
530+
streamable_http_extensions: Vec<String>,
531+
512532
/// Add builtin extensions by name
513533
#[arg(
514534
long = "with-builtin",
@@ -546,6 +566,24 @@ enum Command {
546566
action = clap::ArgAction::Append
547567
)]
548568
additional_sub_recipes: Vec<String>,
569+
570+
/// Provider to use for this run (overrides environment variable)
571+
#[arg(
572+
long = "provider",
573+
value_name = "PROVIDER",
574+
help = "Specify the LLM provider to use (e.g., 'openai', 'anthropic')",
575+
long_help = "Override the GOOSE_PROVIDER environment variable for this run. Available providers include openai, anthropic, ollama, databricks, gemini-cli, claude-code, and others."
576+
)]
577+
provider: Option<String>,
578+
579+
/// Model to use for this run (overrides environment variable)
580+
#[arg(
581+
long = "model",
582+
value_name = "MODEL",
583+
help = "Specify the model to use (e.g., 'gpt-4o', 'claude-3.5-sonnet')",
584+
long_help = "Override the GOOSE_MODEL environment variable for this run. The model must be supported by the specified provider."
585+
)]
586+
model: Option<String>,
549587
},
550588

551589
/// Recipe utilities for validation and deeplinking
@@ -656,6 +694,7 @@ pub async fn cli() -> Result<()> {
656694
max_turns,
657695
extensions,
658696
remote_extensions,
697+
streamable_http_extensions,
659698
builtins,
660699
}) => {
661700
return match command {
@@ -696,10 +735,13 @@ pub async fn cli() -> Result<()> {
696735
no_session: false,
697736
extensions,
698737
remote_extensions,
738+
streamable_http_extensions,
699739
builtins,
700740
extensions_override: None,
701741
additional_system_prompt: None,
702742
settings: None,
743+
provider: None,
744+
model: None,
703745
debug,
704746
max_tool_repetitions,
705747
max_turns,
@@ -754,13 +796,16 @@ pub async fn cli() -> Result<()> {
754796
max_turns,
755797
extensions,
756798
remote_extensions,
799+
streamable_http_extensions,
757800
builtins,
758801
params,
759802
explain,
760803
render_recipe,
761804
scheduled_job_id,
762805
quiet,
763806
additional_sub_recipes,
807+
provider,
808+
model,
764809
}) => {
765810
let (input_config, session_settings, sub_recipes, final_output_response) = match (
766811
instructions,
@@ -841,10 +886,13 @@ pub async fn cli() -> Result<()> {
841886
no_session,
842887
extensions,
843888
remote_extensions,
889+
streamable_http_extensions,
844890
builtins,
845891
extensions_override: input_config.extensions_override,
846892
additional_system_prompt: input_config.additional_system_prompt,
847893
settings: session_settings,
894+
provider,
895+
model,
848896
debug,
849897
max_tool_repetitions,
850898
max_turns,
@@ -966,10 +1014,13 @@ pub async fn cli() -> Result<()> {
9661014
no_session: false,
9671015
extensions: Vec::new(),
9681016
remote_extensions: Vec::new(),
1017+
streamable_http_extensions: Vec::new(),
9691018
builtins: Vec::new(),
9701019
extensions_override: None,
9711020
additional_system_prompt: None,
9721021
settings: None::<SessionSettings>,
1022+
provider: None,
1023+
model: None,
9731024
debug: false,
9741025
max_tool_repetitions: None,
9751026
max_turns: None,

crates/goose-cli/src/commands/bench.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,13 @@ pub async fn agent_generator(
3737
no_session: false,
3838
extensions: requirements.external,
3939
remote_extensions: requirements.remote,
40+
streamable_http_extensions: Vec::new(),
4041
builtins: requirements.builtin,
4142
extensions_override: None,
4243
additional_system_prompt: None,
4344
settings: None,
45+
provider: None,
46+
model: None,
4447
debug: false,
4548
max_tool_repetitions: None,
4649
interactive: false, // Benchmarking is non-interactive

0 commit comments

Comments
 (0)