pub fn module() -> ModuleDescriptorExpand description
The canonical declaration of the reasoning module: its six capabilities with every
projection each is exposed through. The MCP tools and resources, HTTP routes, CLI
paths and the generated OpenAPI are read from here and nowhere else (ADR 0004).
use majordomus_cli::capability::builtin::reasoning::{module, REASONING_URI};
let m = module();
let ids: Vec<&str> = m.capabilities.iter().map(|e| e.capability.id.as_str()).collect();
assert_eq!(ids, [
"reasoning.advisors", "reasoning.plan", "reasoning.record",
"reasoning.status", "reasoning.explain", "reasoning.check",
]);
let status = &m.capabilities[3].capability.exposure;
let resource = status.mcp.as_ref().and_then(|m| m.resource.as_ref()).unwrap();
assert_eq!(resource.uri, REASONING_URI);