pub async fn complete_provider_with_tools<F>(
handler: Arc<dyn ExtensionHandler>,
params: ProviderCompleteParams,
registry: &ToolRegistry,
hook_bus: &Arc<HookBus>,
context_factory: F,
max_tool_output: usize,
max_iterations: usize,
) -> Result<ProviderCompleteResult, String>where
F: FnMut() -> ToolContext,