Skip to main content

tldr_cli/commands/
mod.rs

1//! CLI command implementations
2//!
3//! Each command is implemented as a separate module for maintainability.
4//! All commands follow the same pattern:
5//! 1. Define Args struct with clap derive
6//! 2. Implement run() function that calls tldr-core
7//! 3. Return Result<(), anyhow::Error>
8
9pub mod calls;
10pub mod dead;
11pub mod impact;
12pub mod structure;
13pub mod tree;
14// cfg, dfg: archived (T5 deep analysis)
15pub mod churn;
16pub mod complexity;
17pub mod context;
18pub mod debt;
19pub mod detect_patterns;
20pub mod extract;
21pub mod health;
22pub mod hubs;
23pub mod importers;
24pub mod imports;
25pub mod search;
26pub mod slice;
27pub mod smells;
28pub mod whatbreaks;
29// Session 19: Pattern Analysis commands
30pub mod change_impact;
31pub mod clones;
32pub mod deps;
33pub mod diagnostics;
34pub mod dice;
35pub mod doctor;
36pub mod inheritance;
37pub mod patterns;
38pub mod references;
39// ssa, dominators, live_vars, alias, abstract_interp: archived (T5 deep analysis)
40pub mod available;
41pub mod reaching_defs;
42pub mod taint;
43
44// Session 15: Metrics commands
45pub mod cognitive;
46pub mod coverage;
47pub mod halstead;
48pub mod hotspots;
49pub mod loc;
50
51// Session 16: Semantic search commands
52#[cfg(feature = "semantic")]
53pub mod embed;
54#[cfg(feature = "semantic")]
55pub mod semantic;
56#[cfg(feature = "semantic")]
57pub mod similar;
58
59// Daemon subsystem (Phase 1: types and error)
60pub mod daemon;
61
62// Daemon router for auto-routing commands through daemon cache
63pub mod daemon_router;
64
65// Contracts & Flow commands (Session 18) - behavioral contracts
66pub mod contracts;
67
68// API Surface command - structural contracts
69pub mod api_surface;
70
71// Remaining commands (todo, explain, secure, definition, diff, api-check)
72pub mod remaining;
73
74// Fix - error diagnosis and auto-fix system
75pub mod fix;
76
77// Bugbot - automated bug detection on code changes
78pub mod bugbot;
79
80// Re-export Args types for convenience
81pub use calls::CallsArgs;
82pub use dead::DeadArgs;
83pub use impact::ImpactArgs;
84pub use structure::StructureArgs;
85pub use tree::TreeArgs;
86// CfgArgs, DfgArgs: archived
87pub use change_impact::ChangeImpactArgs;
88pub use churn::ChurnArgs;
89pub use clones::ClonesArgs;
90pub use complexity::ComplexityArgs;
91pub use context::ContextArgs;
92pub use debt::DebtArgs;
93pub use deps::DepsArgs;
94pub use detect_patterns::PatternsArgs;
95pub use diagnostics::DiagnosticsArgs;
96pub use dice::DiceArgs;
97pub use doctor::DoctorArgs;
98pub use extract::ExtractArgs;
99pub use health::HealthArgs;
100pub use hubs::HubsArgs;
101pub use importers::ImportersArgs;
102pub use imports::ImportsArgs;
103pub use inheritance::InheritanceArgs;
104pub use references::ReferencesArgs;
105pub use search::SmartSearchArgs;
106pub use slice::SliceArgs;
107pub use smells::SmellsArgs;
108pub use whatbreaks::WhatbreaksArgs;
109// SsaArgs, DominatorsArgs, LiveVarsArgs, AliasArgs, AbstractInterpArgs: archived
110pub use available::AvailableArgs;
111pub use reaching_defs::ReachingDefsArgs;
112pub use taint::TaintArgs;
113
114// Session 15: Metrics commands
115pub use cognitive::CognitiveArgs;
116pub use coverage::CoverageArgs;
117pub use halstead::HalsteadArgs;
118pub use hotspots::HotspotsArgs;
119pub use loc::LocArgs;
120
121// Session 16: Semantic search commands
122#[cfg(feature = "semantic")]
123pub use embed::EmbedArgs;
124#[cfg(feature = "semantic")]
125pub use semantic::SemanticArgs;
126#[cfg(feature = "semantic")]
127pub use similar::SimilarArgs;
128
129// Daemon subsystem commands (Phase 5-6; v0.3.0 adds DaemonListArgs)
130pub use daemon::{
131    DaemonListArgs, DaemonNotifyArgs, DaemonQueryArgs, DaemonStartArgs, DaemonStatusArgs,
132    DaemonStopArgs,
133};
134
135// Cache commands (Phase 9)
136pub use daemon::{CacheClearArgs, CacheStatsArgs};
137
138// Warm and Stats commands (Phase 7-8)
139pub use daemon::{StatsArgs, WarmArgs};
140
141// Daemon router for auto-routing commands through daemon cache
142pub use daemon_router::{
143    is_daemon_running, params_for_dead, params_for_smells, params_with_entry_depth,
144    params_with_file, params_with_file_function, params_with_file_function_line,
145    params_with_func_depth, params_with_module, params_with_path, params_with_path_lang,
146    params_with_pattern, try_daemon_route, try_daemon_route_async,
147};
148
149// API Surface command Args
150pub use api_surface::ApiSurfaceArgs;
151
152// Contracts & Flow types (Session 18, Phase 1-4) - behavioral contracts
153pub use contracts::{
154    // Phase 6: chop command Args
155    ChopArgs,
156    ChopResult,
157    Condition,
158    // Core types
159    Confidence,
160    // Phase 3: behavioral contracts command Args
161    ContractsArgs,
162    ContractsError,
163    // Report types
164    ContractsReport,
165    ContractsResult,
166    CoverageInfo,
167    DeadStore,
168    // BoundsArgs: archived (T5 deep analysis)
169    // Phase 5: dead-stores command Args
170    DeadStoresArgs,
171    DeadStoresReport,
172    ExceptionSpec,
173    FunctionInvariants,
174    FunctionSpecs,
175    // Spec types
176    InputOutputSpec,
177    // Analysis types
178    Interval,
179    IntervalWarning,
180    Invariant,
181    InvariantKind,
182    // Phase 8: invariants command Args
183    InvariantsArgs,
184    InvariantsReport,
185    InvariantsSummary,
186    OutputFormat,
187    PropertySpec,
188    // Phase 7: specs command Args
189    SpecsArgs,
190    SpecsByType,
191    SpecsReport,
192    SpecsSummary,
193    SubAnalysisResult,
194    // Phase 9: verify command Args
195    VerifyArgs,
196    VerifyReport,
197    VerifySummary,
198};
199
200// Remaining commands (Phase 4+)
201pub use remaining::{
202    // Diff Impact types (archived - superseded by change-impact)
203    // ChangedFunction, DiffImpactReport, DiffImpactSummary,
204    // API Check types
205    APICheckReport,
206    APICheckSummary,
207    APIRule,
208    // Diff types
209    ASTChange,
210    BaseChanges,
211    // Explain types
212    CallInfo,
213    ChangeType,
214    ComplexityInfo,
215    // Graph utilities (TIGER-02)
216    CycleDetector,
217    // Definition types
218    DefinitionResult,
219    DiffGranularity,
220    DiffReport,
221    DiffSummary,
222    ExplainReport,
223    // Equivalence (GVN) types
224    // Common types
225    Location,
226    MisuseCategory,
227    MisuseFinding,
228    MisuseSeverity,
229    NodeKind,
230    ParamInfo,
231    PurityInfo,
232    RemainingError,
233    RemainingResult,
234    // Secure types
235    SecureFinding,
236    SecureReport,
237    SecureSummary,
238    Severity,
239    SignatureInfo,
240    SymbolInfo,
241    SymbolKind,
242    // Todo types
243    TodoItem,
244    TodoReport,
245    TodoSummary,
246    TraversalResult,
247};
248pub use remaining::{DefinitionArgs, DiffArgs, ExplainArgs, SecureArgs, TodoArgs};
249
250// Fix types
251pub use fix::FixArgs;
252
253// Bugbot types
254pub use bugbot::BugbotCheckArgs;