Skip to main content

ggen_cli_lib/cmds/
mod.rs

1//! Command Router Module - clap-noun-verb v26.5.19 Auto-Discovery
2//!
3//! This module provides the entry point for clap-noun-verb auto-discovery.
4//! All noun modules with `\[verb\]` functions are automatically discovered and registered.
5//!
6//! ## Architecture
7//! ```text
8//! cmds (router) -> auto-discovery -> [verb] functions -> domain (async logic)
9//! ```
10//!
11//! ## Removed Commands
12//!
13//! The following commands were removed in v26.5.19:
14//! - `ggen generate` → Use `ggen sync`
15//! - `ggen validate` → Use `ggen sync --validate-only`
16//! - `ggen template *` → Use `ggen sync`
17//! - `ggen project *` → Add back in v26.5.19+
18//! - `ggen graph *` → Add back in v26.5.19+
19//! - `ggen ontology *` → Add back in v26.5.19+
20//! - `ggen marketplace *` → Add back in v26.5.19+
21//! - `ggen ai *` → Add back in v26.5.19+
22//! - `ggen test *` → Add back in v26.5.19+
23//! - `ggen utils *` → Add back in v26.5.19+
24//! - `ggen ci *` → Add back in v26.5.19+
25//! - `ggen workflow *` → Add back in v26.5.19+
26
27// Shared helpers for command modules
28pub mod helpers;
29
30// Core commands: ggen sync & ggen init & ggen wizard
31pub mod git_hooks;
32pub mod init;
33pub mod sync;
34pub mod wizard;
35
36// Command modules - clap-noun-verb auto-discovery
37pub mod doctor;
38pub mod framework; // Framework bridge commands (LangChain, etc.)
39pub mod graph;
40pub mod pack; // Singular alias for `packs` noun (golden-path: ggen pack add <name>)
41pub mod policy;
42pub mod template;
43pub mod utils;
44
45use crate::prelude::*;
46
47/// Setup and run the command router using clap-noun-verb v26.5.19 auto-discovery
48pub fn run_cli() -> Result<()> {
49    // Handle --version flag before delegating to clap-noun-verb
50    let args: Vec<String> = std::env::args().collect();
51    if args.iter().any(|arg| arg == "--version" || arg == "-V") {
52        log::info!("ggen {}", env!("CARGO_PKG_VERSION"));
53        return Ok(());
54    }
55
56    // Use clap-noun-verb's auto-discovery to find all [verb] functions
57    clap_noun_verb::run().map_err(GgenError::from_clap_error)?;
58    Ok(())
59}