ai_agent/utils/
content_array.rs1use serde_json::Value;
6
7pub fn insert_block_after_tool_results(content: &mut Vec<Value>, block: Value) {
14 let mut last_tool_result_index: isize = -1;
16 for (i, item) in content.iter().enumerate() {
17 if let Some(obj) = item.as_object() {
18 if let Some(type_val) = obj.get("type") {
19 if type_val == "tool_result" {
20 last_tool_result_index = i as isize;
21 }
22 }
23 }
24 }
25
26 if last_tool_result_index >= 0 {
27 let insert_pos = (last_tool_result_index + 1) as usize;
28 content.insert(insert_pos, block);
29 if insert_pos == content.len() - 1 {
31 let text_block = serde_json::json!({
32 "type": "text",
33 "text": "."
34 });
35 content.push(text_block);
36 }
37 } else {
38 let insert_index = content.len().saturating_sub(1);
40 content.insert(insert_index, block);
41 }
42}