pub async fn send_chat_request_with_tool_execution(
client: &LLMClient,
model: &str,
prompt: &str,
history: &[ChatEntry],
system_prompt: Option<&str>,
max_tokens: Option<u32>,
temperature: Option<f32>,
_provider_name: &str,
tools: Option<Vec<Tool>>,
mcp_server_names: &[&str],
) -> Result<(String, Option<i32>, Option<i32>)>