use rmcp::{handler::server::wrapper::Parameters, model::CallToolResult, tool, tool_router};
use super::mcp_types::ResolveFlagInput;
use super::{err, ok, MoadimMcp};
use crate::routes::resolve_flag::logic;
#[tool_router(router = resolve_flag_tool_router, vis = "pub(super)")]
impl MoadimMcp {
#[tool(
description = "Resolve a routine flag by filename (as returned by create_flag/list_flags), removing it"
)]
pub(super) fn resolve_flag(
&self,
Parameters(ResolveFlagInput { id, filename }): Parameters<ResolveFlagInput>,
) -> Result<CallToolResult, rmcp::ErrorData> {
Ok(match logic::build(&self.routines, &id, &filename) {
Ok(()) => ok(serde_json::json!({ "status": "resolved" })),
Err(error) => err(error),
})
}
}
#[cfg(test)]
#[path = "mcp_tests.rs"]
mod mcp_tests;