(message: &serde_json::Map<String, Value>)
| 125 | } |
| 126 | |
| 127 | fn is_assistant_message(message: &serde_json::Map<String, Value>) -> bool { |
| 128 | matches!( |
| 129 | string_field(message, "variant") |
| 130 | .or_else(|| string_field(message, "role")) |
| 131 | .as_deref(), |
| 132 | Some("ai" | "agent" | "assistant") |
| 133 | ) |
| 134 | } |
| 135 | |
| 136 | fn extract_assistant_usage(message: &serde_json::Map<String, Value>) -> AssistantUsage { |
| 137 | let mut usage = AssistantUsage::default(); |