mod bare;
mod native_json;
mod streaming;
mod syntax;
mod tagged;
#[cfg(test)]
pub(crate) use bare::parse_bare_calls_in_body;
#[cfg(test)]
pub(crate) use native_json::parse_native_json_tool_calls;
pub(crate) use streaming::StreamingToolCallDetector;
pub(crate) use syntax::ident_length;
pub(crate) use syntax::unescape_heredoc_body;
pub(crate) use syntax::{scan_heredoc, HeredocError};
pub(crate) use tagged::parse_text_tool_calls_with_tools;
pub(crate) struct TextToolParseResult {
pub calls: Vec<serde_json::Value>,
pub errors: Vec<String>,
pub prose: String,
pub user_response: Option<String>,
pub violations: Vec<String>,
pub done_marker: Option<String>,
pub canonical: String,
}