1pub mod cli;
25pub mod client;
26pub mod input;
27
28pub mod config;
30pub mod profile;
31
32pub mod discovery;
34pub mod ignore;
35
36pub mod parser;
38
39pub mod context;
41pub mod cve_db;
42pub mod deobfuscation;
43pub mod engine;
44pub mod malware_db;
45pub mod rules;
46pub mod suppression;
47
48pub mod aggregator;
50pub mod baseline;
51pub mod scoring;
52
53pub mod output;
55pub mod reporter;
56
57pub mod error;
62pub mod external;
63pub mod runtime;
64pub mod types;
65
66pub mod feedback;
68pub mod fix;
69pub mod hooks;
70pub mod mcp_server;
71pub mod pinning;
72pub mod proxy;
73pub mod remote;
74pub mod sbom;
75pub mod trusted_domains;
76pub mod watch;
77
78pub mod handlers;
80pub mod hook_mode;
81pub mod run;
82
83#[deprecated(
84 since = "3.3.0",
85 note = "Use `crate::engine` instead. This module will be removed in v4.0.0. \
86 See migration guide in `src/scanner/mod.rs`."
87)]
88pub mod scanner;
89
90#[cfg(test)]
91pub mod test_utils;
92
93pub use cli::{
99 BadgeFormat, CheckArgs, Cli, Commands, HookAction, OutputFormat, ProxyArgs, ScanType,
100};
101pub use client::{
102 ClientType, DetectedClient, detect_client, detect_installed_clients, list_installed_clients,
103};
104
105pub use config::{Config, ConfigError, ConfigLoadResult, TextFilesConfig, WatchConfig};
107pub use profile::{Profile, profile_from_check_args};
108
109pub use discovery::{DirectoryWalker, WalkConfig};
111pub use ignore::IgnoreFilter;
112
113pub use parser::{
115 ContentParser, ContentType, DockerfileParser, FrontmatterParser, JsonParser, MarkdownParser,
116 ParsedContent, ParserRegistry, TomlParser, YamlParser,
117};
118
119pub use context::{ContentContext, ContextDetector};
121pub use cve_db::{CveDatabase, CveDbError, CveEntry};
122pub use deobfuscation::{DecodedContent, Deobfuscator};
123pub use engine::traits::{AnalysisMetadata, AnalysisResult, DetectionEngine, EngineConfig};
124pub use engine::{
125 CommandScanner, ContentScanner, DependencyScanner, DockerScanner, HookScanner, McpScanner,
126 PluginScanner, RulesDirScanner, ScanError, Scanner, ScannerConfig, SkillScanner,
127 SubagentScanner,
128};
129pub use malware_db::{MalwareDatabase, MalwareDbError};
130pub use rules::{
131 Confidence, CustomRuleError, CustomRuleLoader, DynamicRule, Finding, RuleEngine, RuleSeverity,
132 ScanResult, Severity, Summary,
133};
134
135pub use aggregator::{FindingCollector, SummaryBuilder};
137pub use baseline::{Baseline, DriftEntry, DriftReport};
138pub use scoring::{CategoryScore, RiskLevel, RiskScore, SeverityBreakdown};
139
140pub use output::OutputFormatter;
142pub use reporter::{
143 Reporter, html::HtmlReporter, json::JsonReporter, markdown::MarkdownReporter,
144 sarif::SarifReporter, terminal::TerminalReporter,
145};
146
147pub use run::{
149 ScanMode, WatchModeResult, format_result_check_args, format_result_with_config, is_text_file,
150 is_text_file_with_config, run_scan_with_check_args, run_scan_with_check_args_config,
151 scan_path_with_cve_db, scan_path_with_malware_db, setup_watch_mode, watch_iteration,
152};
153pub use runtime::{HookRunner, Pipeline, PipelineStage, ScanContext, ScanExecutor};
154
155pub use error::{AuditError, Result};
157pub use feedback::{FalsePositiveReport, ReportSubmitter, SubmitResult, SubmitTarget};
158pub use fix::{AutoFixer, Fix, FixResult};
159pub use hooks::{HookError, HookInstaller};
160pub use mcp_server::McpServer;
161pub use pinning::{PinMismatch, PinVerifyResult, PinnedTool, ToolPins};
162pub use proxy::{InterceptAction, MessageInterceptor, ProxyConfig, ProxyLogger, ProxyServer};
163pub use remote::{ClonedRepo, GitCloner, RemoteError, parse_github_url};
164pub use sbom::{
165 Component, ComponentType, CycloneDxBom, DependencyExtractor, SbomBuilder, SbomFormat,
166};
167pub use trusted_domains::{TrustedDomain, TrustedDomainMatcher};
168pub use types::{AuthToken, FileHash, GitRef, PathValidationError, RuleId, ScanTarget};
169pub use watch::FileWatcher;