//! Tool registration. Every GoingsOn operation is a kberg `Tool`; this module //! wires them into a single `ToolRegistry`. use std::sync::Arc; use kberg::ToolRegistry; use crate::context::Ctx; mod project; mod task; pub use project::{CreateProject, ListProjects, UpdateProjectTool}; pub use task::{BulkImportTasks, CompleteTask, CreateTask, GetTask, ListTasks, UpdateTaskTool}; /// Build the full go-mcp tool surface over a shared context. pub fn registry(ctx: Arc) -> ToolRegistry { let mut r = ToolRegistry::new(); // Reads (small-model safe). r.register(ListProjects(ctx.clone())); r.register(ListTasks(ctx.clone())); r.register(GetTask(ctx.clone())); // Writes (capability-gated). r.register(CreateProject(ctx.clone())); r.register(UpdateProjectTool(ctx.clone())); r.register(CreateTask(ctx.clone())); r.register(BulkImportTasks(ctx.clone())); r.register(UpdateTaskTool(ctx.clone())); r.register(CompleteTask(ctx)); r }