#![allow(unused)]
#![cfg_attr(coverage_nightly, coverage(off))]
use crate::models::mcp::{McpResponse, ToolCallParams};
use serde_json::{json, Value};
use tracing::info;
pub const VECTORIZED_TOOLS: &[&str] = &[
"analyze_duplicates_vectorized",
"analyze_graph_metrics_vectorized",
"analyze_name_similarity_vectorized",
"analyze_symbol_table_vectorized",
"analyze_incremental_coverage_vectorized",
"analyze_big_o_vectorized",
"generate_enhanced_report",
];
#[must_use]
#[provable_contracts_macros::contract("pmat-core.yaml", equation = "check_compliance")]
pub fn is_vectorized_tool(tool_name: &str) -> bool {
VECTORIZED_TOOLS.contains(&tool_name)
}
#[provable_contracts_macros::contract("pmat-core.yaml", equation = "check_compliance")]
pub async fn handle_vectorized_tools(
request_id: Value,
tool_params: ToolCallParams,
) -> McpResponse {
info!("⚡ Executing vectorized tool: {}", tool_params.name);
match tool_params.name.as_str() {
"analyze_duplicates_vectorized" => {
handle_duplicates_vectorized(request_id, Some(tool_params.arguments)).await
}
"analyze_graph_metrics_vectorized" => {
handle_graph_metrics_vectorized(request_id, Some(tool_params.arguments)).await
}
"analyze_name_similarity_vectorized" => {
handle_name_similarity_vectorized(request_id, Some(tool_params.arguments)).await
}
"analyze_symbol_table_vectorized" => {
handle_symbol_table_vectorized(request_id, Some(tool_params.arguments)).await
}
"analyze_incremental_coverage_vectorized" => {
handle_incremental_coverage_vectorized(request_id, Some(tool_params.arguments)).await
}
"analyze_big_o_vectorized" => {
handle_big_o_vectorized(request_id, Some(tool_params.arguments)).await
}
"generate_enhanced_report" => {
handle_enhanced_report(request_id, Some(tool_params.arguments)).await
}
_ => McpResponse::error(
request_id,
-32602,
format!("Unknown vectorized tool: {}", tool_params.name),
),
}
}
include!("vectorized_tools_handlers.rs");
include!("vectorized_tools_info.rs");
#[cfg(all(test, feature = "broken-tests"))]
#[path = "tests.rs"]
mod tests;
#[cfg(all(test, feature = "broken-tests"))]
#[path = "property_tests.rs"]
mod property_tests;
#[cfg_attr(coverage_nightly, coverage(off))]
#[cfg(test)]
#[path = "coverage_tests.rs"]
mod coverage_tests;