arcature-cli 2026.2.0

Developer lifecycle CLI for Arcature applications.
Documentation
//! Dispatch for the `arc mcp` command — the CLI entry point (AP2.1-9).
//!
//! Builds the capability set from the CLI flags (safe defaults; destructive
//! writes off unless `--allow-destructive-writes`), and runs the stdio
//! JSON-RPC loop with the read-only UAG-reading and docs tools registered.
//!
//! One file = one responsibility (AGENTS.md §1): this file owns the CLI
//! entry point only — not the wire types ([`transport`]), request routing
//! ([`dispatch`]), the capability model ([`capability`]), or the stdio
//! loop ([`server`]); each lives in its own file.

use crate::cli::McpOptions;

use super::capability;
use super::server;

/// The entry point invoked by the CLI dispatcher for `arc mcp`.
///
/// Builds the capability set from the CLI flags (safe defaults; destructive
/// writes off unless `--allow-destructive-writes`), and runs the stdio
/// JSON-RPC loop with the read-only UAG-reading and docs tools registered.
pub(crate) fn execute(options: McpOptions) -> Result<(), crate::error::CommandError> {
    let capabilities = capability::CapabilitySet::from_options(&options);
    server::run_stdio(capabilities).map_err(crate::error::CommandError::from)
}