Skip to main content

fabryk_cli/
lib.rs

1//! CLI framework for Fabryk-based applications.
2//!
3//! This crate provides a generic CLI structure that domain applications
4//! can extend with their own commands.
5//!
6//! # Key Abstractions
7//!
8//! - [`FabrykCli<C>`]: Generic CLI parameterized over config provider
9//! - [`CliExtension`]: Trait for adding domain-specific subcommands
10//! - Built-in graph commands (validate, stats, query)
11
12pub mod app;
13pub mod cli;
14pub mod config;
15pub mod config_handlers;
16pub mod config_loader;
17pub mod config_sections;
18pub mod config_utils;
19pub mod graph_handlers;
20#[cfg(feature = "vector-fastembed")]
21pub mod vectordb_handlers;
22
23// Re-exports — CLI types
24pub use cli::{
25    BaseCommand, CliArgs, CliExtension, ConfigAction, ConfigCommand, GraphCommand, GraphSubcommand,
26};
27#[cfg(feature = "vector-fastembed")]
28pub use cli::{VectordbAction, VectordbCommand};
29
30// Re-exports — application
31pub use app::FabrykCli;
32
33// Re-exports — configuration
34pub use config::FabrykConfig;
35pub use config_loader::ConfigLoaderBuilder;
36pub use config_sections::{OAuthConfig, TlsConfig};
37
38// Re-exports — graph handler types
39pub use graph_handlers::{BuildOptions, QueryOptions};