Skip to main content

winx_code_agent/tools/
mod.rs

1//! Tools module for the Winx application.
2//!
3//! This module hosts the individual MCP tool implementations (shell, file IO,
4//! image, context save). The live service that wires them to the MCP protocol
5//! is [`crate::server::WinxService`].
6
7pub mod apply_patch;
8pub mod background_shell;
9pub mod bash_command;
10pub mod code_map;
11pub mod context_save;
12pub mod edit_files;
13pub mod file_write_or_edit;
14pub mod herdr;
15pub mod initialize;
16pub mod multi_file_edit;
17pub mod outline;
18pub mod read_files;
19pub mod read_image;
20pub mod references;
21pub mod undo_edit;
22
23/// Serialize a tool's structured output to JSON for the MCP result's
24/// `structuredContent`, mapping the (practically impossible) failure to a domain
25/// error instead of panicking. Used by the read-only `CodeMap` handlers.
26pub(crate) fn structured_json<T: serde::Serialize>(
27    value: &T,
28) -> crate::errors::Result<serde_json::Value> {
29    serde_json::to_value(value).map_err(|e| {
30        crate::errors::WinxError::SerializationError(format!("structured output: {e}"))
31    })
32}