refactor: improve readability of streaming parser and JSON filter
Agent: carmack
Changes:
- streaming_parser.rs: Unified find_first/last_tool_call_start into single
find_tool_call_start with SearchDirection enum, reducing duplication.
Simplified is_json_invalidated from 45 to 20 lines with clearer logic.
Fixed redundant !escape_next check in find_complete_json_object_end.
- filter_json.rs: Simplified check_tool_pattern from 40 to 24 lines.
Replaced repetitive prefix checks with loop over ["t", "to", "too", "tool"].
Reduced trailing return statements with direct expression returns.
- ui_writer_impl.rs: Added ansi module for duration color constants.
Simplified duration_color function by removing redundant comments.
- language_prompts.rs: Fixed test assertions to match actual prompt content
("obvious, readable Racket" instead of "RACKET-SPECIFIC GUIDANCE").
All 174+ tests pass. No behavior changes.
This commit is contained in:
@@ -224,7 +224,7 @@ mod tests {
|
||||
fn test_carmack_racket_prompt_embedded() {
|
||||
let prompt = get_agent_language_prompt("carmack", "racket");
|
||||
assert!(prompt.is_some());
|
||||
assert!(prompt.unwrap().contains("RACKET-SPECIFIC GUIDANCE"));
|
||||
assert!(prompt.unwrap().contains("obvious, readable Racket"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -242,6 +242,6 @@ mod tests {
|
||||
let prompts = get_agent_language_prompts_for_workspace(temp_dir.path(), "carmack");
|
||||
assert!(prompts.is_some());
|
||||
let content = prompts.unwrap();
|
||||
assert!(content.contains("RACKET-SPECIFIC GUIDANCE"));
|
||||
assert!(content.contains("obvious, readable Racket"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user