batuta/tui/graph/mod.rs
1//! Graph TUI Visualization Module
2//!
3//! Terminal-based graph visualization with Toyota Way principles.
4//!
5//! ## Design Principles (per spec docs/batuta-graph-viz-tui-spec.md)
6//!
7//! - **Genchi Genbutsu**: Graph data at source, no duplication
8//! - **Jidoka**: Built-in quality via layout convergence tests
9//! - **Heijunka**: Single layout engine, multiple output backends
10//! - **Mieruka**: Semantic colors for instant status recognition
11//! - **Respect for People**: Accessibility via shapes (not just color)
12//!
13//! ## Academic References
14//!
15//! - Fruchterman & Reingold (1991) - Force-directed layout
16//! - Kamada & Kawai (1989) - Spring-based layout
17//! - Sugiyama et al. (1981) - Hierarchical DAG layout
18//!
19//! ## Performance Constraints (Muri Prevention)
20//!
21//! - Hard limit: 500 nodes maximum for TUI rendering
22//! - Default visible: Top 20 nodes by centrality (Mieruka)
23
24mod filtering;
25mod graph_core;
26mod rendering;
27mod types;
28
29#[cfg(test)]
30mod tests_analytics;
31#[cfg(test)]
32mod tests_core;
33#[cfg(test)]
34mod tests_filtering;
35#[cfg(test)]
36mod tests_layout;
37
38// Re-export all public types from types module
39pub use types::{
40 Edge, Node, NodeShape, NodeStatus, Position, DEFAULT_VISIBLE_NODES, MAX_TUI_NODES,
41};
42
43// Re-export Graph from graph_core module
44pub use graph_core::Graph;
45
46// Re-export rendering types
47pub use rendering::{GraphRenderer, RenderMode, RenderedGraph};
48
49// Re-export layout types from graph_layout module (sibling module)
50pub use super::graph_layout::{LayoutAlgorithm, LayoutConfig, LayoutEngine};
51
52// Re-export analytics types from graph_analytics module (sibling module)
53pub use super::graph_analytics::{GraphAnalytics, GraphAnalyticsExt, COMMUNITY_COLORS};