(message: &ConversationMessage)
| 279 | } |
| 280 | |
| 281 | fn first_text_block(message: &ConversationMessage) -> Option<&str> { |
| 282 | message.blocks.iter().find_map(|block| match block { |
| 283 | ContentBlock::Text { text } if !text.trim().is_empty() => Some(text.as_str()), |
| 284 | ContentBlock::ToolUse { .. } |
| 285 | | ContentBlock::ToolResult { .. } |
| 286 | | ContentBlock::Text { .. } => None, |
| 287 | }) |
| 288 | } |
| 289 | |
| 290 | fn has_interesting_extension(candidate: &str) -> bool { |
| 291 | std::path::Path::new(candidate) |
no test coverage detected