Remove final_output tool and improve scout report handback

final_output removal:
- Remove final_output from tool definitions and dispatch
- Update system prompts to request summaries as regular text
- Remove final_output_called field from StreamingState
- Update auto_continue tests to remove final_output_called parameter
- Remove final_output test from tool_execution_test.rs
- Update planner and flock prompts to not reference final_output
- Keep backwards-compat code in feedback_extraction.rs and task_result.rs

Scout report handback:
- Change from file-based to delimiter-based report extraction
- Scout outputs report between ---SCOUT_REPORT_START/END--- markers
- Research tool extracts content between markers, strips ANSI codes
- Add comprehensive tests for extraction and ANSI stripping

657 tests pass.
This commit is contained in:
Dhanji R. Prasanna
2026-01-10 13:43:04 +11:00
parent cab2fb187a
commit 0aa1287ca6
9 changed files with 247 additions and 95 deletions

View File

@@ -2789,7 +2789,7 @@ Remember: Be clear in your review and concise in your feedback. APPROVE iff the
// We have a valid coach result, process it
let coach_result = coach_result_opt.unwrap();
// Extract the complete coach feedback from final_output
// Extract the complete coach feedback from the response
let coach_feedback_text =
extract_coach_feedback_from_logs(&coach_result, &coach_agent, &output)?;
@@ -2800,7 +2800,7 @@ Remember: Be clear in your review and concise in your feedback. APPROVE iff the
coach_result.response.len()
);
// Check if we got empty feedback (this can happen if the coach doesn't call final_output)
// Check if we got empty feedback (this can happen if the coach doesn't provide substantive feedback)
if coach_feedback_text.is_empty() {
output.print("⚠️ Coach did not provide feedback. This may be a model issue.");
coach_feedback = "The implementation needs review. Please ensure all requirements are met and the code compiles without errors.".to_string();