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)
130pub use daemon::{
131    DaemonNotifyArgs, DaemonQueryArgs, DaemonStartArgs, DaemonStatusArgs, DaemonStopArgs,
132};
133
134// Cache commands (Phase 9)
135pub use daemon::{CacheClearArgs, CacheStatsArgs};
136
137// Warm and Stats commands (Phase 7-8)
138pub use daemon::{StatsArgs, WarmArgs};
139
140// Daemon router for auto-routing commands through daemon cache
141pub use daemon_router::{
142    is_daemon_running, params_for_dead, params_with_entry_depth, params_with_file,
143    params_with_file_function, params_with_file_function_line, params_with_func_depth,
144    params_with_module, params_with_path, params_with_path_lang, params_with_pattern,
145    try_daemon_route, try_daemon_route_async,
146};
147
148// API Surface command Args
149pub use api_surface::ApiSurfaceArgs;
150
151// Contracts & Flow types (Session 18, Phase 1-4) - behavioral contracts
152pub use contracts::{
153    // Phase 6: chop command Args
154    ChopArgs,
155    ChopResult,
156    Condition,
157    // Core types
158    Confidence,
159    // Phase 3: behavioral contracts command Args
160    ContractsArgs,
161    ContractsError,
162    // Report types
163    ContractsReport,
164    ContractsResult,
165    CoverageInfo,
166    DeadStore,
167    // BoundsArgs: archived (T5 deep analysis)
168    // Phase 5: dead-stores command Args
169    DeadStoresArgs,
170    DeadStoresReport,
171    ExceptionSpec,
172    FunctionInvariants,
173    FunctionSpecs,
174    // Spec types
175    InputOutputSpec,
176    // Analysis types
177    Interval,
178    IntervalWarning,
179    Invariant,
180    InvariantKind,
181    // Phase 8: invariants command Args
182    InvariantsArgs,
183    InvariantsReport,
184    InvariantsSummary,
185    OutputFormat,
186    PropertySpec,
187    // Phase 7: specs command Args
188    SpecsArgs,
189    SpecsByType,
190    SpecsReport,
191    SpecsSummary,
192    SubAnalysisResult,
193    // Phase 9: verify command Args
194    VerifyArgs,
195    VerifyReport,
196    VerifySummary,
197};
198
199// Remaining commands (Phase 4+)
200pub use remaining::{
201    // Diff Impact types (archived - superseded by change-impact)
202    // ChangedFunction, DiffImpactReport, DiffImpactSummary,
203    // API Check types
204    APICheckReport,
205    APICheckSummary,
206    APIRule,
207    // Diff types
208    ASTChange,
209    BaseChanges,
210    // Explain types
211    CallInfo,
212    ChangeType,
213    ComplexityInfo,
214    // Graph utilities (TIGER-02)
215    CycleDetector,
216    // Definition types
217    DefinitionResult,
218    DiffGranularity,
219    DiffReport,
220    DiffSummary,
221    ExplainReport,
222    // Equivalence (GVN) types
223    // Common types
224    Location,
225    MisuseCategory,
226    MisuseFinding,
227    MisuseSeverity,
228    NodeKind,
229    ParamInfo,
230    PurityInfo,
231    RemainingError,
232    RemainingResult,
233    // Secure types
234    SecureFinding,
235    SecureReport,
236    SecureSummary,
237    Severity,
238    SignatureInfo,
239    SymbolInfo,
240    SymbolKind,
241    // Todo types
242    TodoItem,
243    TodoReport,
244    TodoSummary,
245    TraversalResult,
246};
247pub use remaining::{DefinitionArgs, DiffArgs, ExplainArgs, SecureArgs, TodoArgs};
248
249// Fix types
250pub use fix::FixArgs;
251
252// Bugbot types
253pub use bugbot::BugbotCheckArgs;