Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
6ff2e25
Initial work
tlongwell-block Aug 24, 2025
0ba89c5
support extension shortnames
tlongwell-block Aug 24, 2025
bff6e61
allow specifying return mode
tlongwell-block Aug 24, 2025
3b96edd
move tests
tlongwell-block Aug 24, 2025
e7bf39c
execution_mode, comment clean up
tlongwell-block Aug 24, 2025
7d80a5f
remove superfluous task tracker
tlongwell-block Aug 24, 2025
e2f665c
fmt
tlongwell-block Aug 24, 2025
928e841
system prompt addition
tlongwell-block Aug 24, 2025
3f1d1a7
system prompt tuning
tlongwell-block Aug 26, 2025
0c86db9
prompt work
tlongwell-block Aug 26, 2025
42e510f
tests
tlongwell-block Aug 26, 2025
94cd52d
use screen when developing
tlongwell-block Aug 26, 2025
7974d46
modify system prompt
tlongwell-block Aug 27, 2025
9ee4850
prompt work
tlongwell-block Aug 27, 2025
fb710de
initial work per review
tlongwell-block Aug 28, 2025
01e8824
test placement
tlongwell-block Aug 28, 2025
69ed59a
remove TextInstruction
tlongwell-block Aug 28, 2025
bbcf18d
revert per review
tlongwell-block Aug 28, 2025
499b152
Clean up recipe building per review
tlongwell-block Aug 29, 2025
2ec2809
subagent summarization instruction
tlongwell-block Aug 30, 2025
5f13cb5
prompt
tlongwell-block Aug 30, 2025
8f3d2c4
raise DEFAULT_SUBAGENT_MAX_TURNS
tlongwell-block Aug 30, 2025
25ab02d
DEFAULT_SUBAGENT_MAX_TURNS=10
tlongwell-block Sep 2, 2025
4c8328b
changes per review
tlongwell-block Sep 2, 2025
2fda8f5
better handling for extension selection via shortname
tlongwell-block Sep 2, 2025
dc5d393
fix test
tlongwell-block Sep 2, 2025
ca52472
firmer subagent system prompt
tlongwell-block Sep 3, 2025
208a194
refine prompt
tlongwell-block Sep 3, 2025
1fef55a
refine subagent and task management prompt
tlongwell-block Sep 3, 2025
9ae48df
simplify prompt after benchmarking
tlongwell-block Sep 3, 2025
556bdfc
raise max turns to allow for complex subagent tasks
tlongwell-block Sep 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 31 additions & 10 deletions crates/goose-cli/src/session/output.rs
Original file line number Diff line number Diff line change
Expand Up @@ -413,13 +413,8 @@ fn render_text_editor_request(call: &ToolCall, debug: bool) {

fn render_shell_request(call: &ToolCall, debug: bool) {
print_tool_header(call);

match call.arguments.get("command") {
Some(Value::String(s)) => {
println!("{}: {}", style("command").dim(), style(s).green());
}
_ => print_params(&call.arguments, 0, debug),
}
print_params(&call.arguments, 0, debug);
println!();
}

fn render_dynamic_task_request(call: &ToolCall, debug: bool) {
Expand All @@ -439,10 +434,36 @@ fn render_dynamic_task_request(call: &ToolCall, debug: bool) {
// For strings, print the full content without truncation
println!(" {}: {}", style(key).dim(), style(s).green());
}
Value::Array(arr) => {
// For arrays, print each item on its own line
println!(" {}:", style(key).dim());
for item in arr {
if let Value::String(s) = item {
println!(" - {}", style(s).green());
} else if let Value::Object(_) = item {
// For objects in arrays, print them with indentation
print!(" - ");
print_params(item, 3, debug);
} else {
println!(
" - {}",
style(format!("{}", item)).green()
);
}
}
}
Value::Object(_) => {
// For objects, print them with proper indentation
println!(" {}:", style(key).dim());
print_params(value, 2, debug);
}
_ => {
// For everything else, use print_params
print!(" ");
print_params(value, 0, debug);
// For other types (numbers, booleans, null)
println!(
" {}: {}",
style(key).dim(),
style(format!("{}", value)).green()
);
}
}
}
Expand Down
13 changes: 12 additions & 1 deletion crates/goose/src/agents/agent.rs
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,18 @@ impl Agent {
)
.await
} else if tool_call.name == DYNAMIC_TASK_TOOL_NAME_PREFIX {
create_dynamic_task(tool_call.arguments.clone(), &self.tasks_manager).await
// Get loaded extensions for shortname resolution
let loaded_extensions = self
.extension_manager
.list_extensions()
.await
.unwrap_or_default();
create_dynamic_task(
tool_call.arguments.clone(),
&self.tasks_manager,
loaded_extensions,
)
.await
} else if tool_call.name == PLATFORM_READ_RESOURCE_TOOL_NAME {
// Check if the tool is read_resource and handle it separately
ToolCallResult::from(
Expand Down
2 changes: 1 addition & 1 deletion crates/goose/src/agents/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub mod final_output_tool;
mod large_response_handler;
pub mod platform_tools;
pub mod prompt_manager;
mod recipe_tools;
pub mod recipe_tools;
mod reply_parts;
pub mod retry;
mod router_tool_selector;
Expand Down
Loading
Loading