Read paths from an interactive & login shell (#5774)

This commit is contained in:
Jack Amadeo
2025-11-18 19:24:49 -05:00
committed by GitHub
parent 662d79b97e
commit 5ba636f45f
10 changed files with 249 additions and 71 deletions
+19 -9
View File
@@ -2,6 +2,10 @@ use anyhow::Result;
use clap::{Args, Parser, Subcommand};
use goose::config::{Config, ExtensionConfig};
use goose_mcp::mcp_server_runner::{serve, McpCommand};
use goose_mcp::{
AutoVisualiserRouter, ComputerControllerServer, DeveloperServer, MemoryServer, TutorialServer,
};
use crate::commands::acp::run_acp_agent;
use crate::commands::bench::agent_generator;
@@ -420,7 +424,10 @@ enum Command {
/// Manage system prompts and behaviors
#[command(about = "Run one of the mcp servers bundled with goose")]
Mcp { name: String },
Mcp {
#[arg(value_parser = clap::value_parser!(McpCommand))]
server: McpCommand,
},
/// Run goose as an ACP (Agent Client Protocol) agent
#[command(about = "Run goose as an ACP agent server on stdio")]
@@ -877,15 +884,18 @@ pub async fn cli() -> anyhow::Result<()> {
);
match cli.command {
Some(Command::Configure {}) => {
handle_configure().await?;
}
Some(Command::Info { verbose }) => {
handle_info(verbose)?;
}
Some(Command::Mcp { name }) => {
Some(Command::Configure {}) => handle_configure().await?,
Some(Command::Info { verbose }) => handle_info(verbose)?,
Some(Command::Mcp { server }) => {
let name = server.name();
crate::logging::setup_logging(Some(&format!("mcp-{name}")), None)?;
goose_mcp::mcp_server_runner::run_mcp_server(&name).await?;
match server {
McpCommand::AutoVisualiser => serve(AutoVisualiserRouter::new()).await?,
McpCommand::ComputerController => serve(ComputerControllerServer::new()).await?,
McpCommand::Memory => serve(MemoryServer::new()).await?,
McpCommand::Tutorial => serve(TutorialServer::new()).await?,
McpCommand::Developer => serve(DeveloperServer::new()).await?,
}
}
Some(Command::Acp {}) => {
run_acp_agent().await?;