pub mod chunking;
pub mod constants;
pub mod content_processing;
pub mod content_transformation;
pub mod default_ignores;
pub mod filtering;
pub mod newtypes;
pub mod output;
pub mod parser;
pub mod ranking;
pub mod repomap;
pub mod scanner;
pub mod security;
pub mod types;
pub mod config;
pub mod dependencies;
pub mod git;
pub mod remote;
pub mod tokenizer;
pub mod index;
pub mod mmap_scanner;
pub mod semantic;
pub mod budget;
pub mod incremental;
pub mod bincode_safe;
pub mod error;
#[allow(dead_code)]
pub mod embedding;
pub mod audit;
pub mod exit_codes;
pub mod license;
pub mod analysis;
pub mod prelude {
pub use crate::config::Config;
pub use crate::output::{OutputFormat, OutputFormatter};
pub use crate::parser::{detect_file_language, Language, Parser};
pub use crate::repomap::{RepoMap, RepoMapGenerator};
pub use crate::security::SecurityScanner;
pub use crate::tokenizer::Tokenizer;
pub use crate::types::{
CompressionLevel, RepoFile, Repository, Symbol, SymbolKind, Visibility,
};
}
pub use chunking::{Chunk, ChunkStrategy, Chunker};
pub use constants::{
budget as budget_constants, compression as compression_constants, files as file_constants,
index as index_constants, pagerank as pagerank_constants, parser as parser_constants,
repomap as repomap_constants, security as security_constants, timeouts as timeout_constants,
};
pub use content_transformation::{
extract_key_symbols, extract_key_symbols_with_context, extract_signatures, remove_comments,
remove_empty_lines,
};
pub use filtering::{
apply_exclude_patterns, apply_include_patterns, compile_patterns, matches_exclude_pattern,
matches_include_pattern,
};
pub use newtypes::{ByteOffset, FileSize, ImportanceScore, LineNumber, SymbolId, TokenCount};
pub use output::{OutputFormat, OutputFormatter};
pub use parser::{
detect_file_language, parse_file_symbols, parse_with_language, Language, Parser, ParserError,
};
pub use ranking::{count_symbol_references, rank_files, sort_files_by_importance, SymbolRanker};
pub use repomap::{RepoMap, RepoMapGenerator};
pub use security::{SecurityError, SecurityScanner};
pub use types::*;
pub use budget::{BudgetConfig, BudgetEnforcer, EnforcementResult, TruncationStrategy};
pub use config::{
Config, OutputConfig, PerformanceConfig, ScanConfig, SecurityConfig, SymbolConfig,
};
pub use dependencies::{DependencyEdge, DependencyGraph, DependencyNode, ResolvedImport};
pub use git::{ChangedFile, Commit, FileStatus, GitError, GitRepo};
pub use incremental::{CacheError, CacheStats, CachedFile, CachedSymbol, RepoCache};
pub use mmap_scanner::{MappedFile, MmapScanner, ScanStats, ScannedFile, StreamingProcessor};
pub use remote::{GitProvider, RemoteError, RemoteRepo};
pub use semantic::{
CodeChunk,
HeuristicCompressionConfig,
HeuristicCompressor,
SemanticCompressor,
SemanticConfig,
SemanticError,
};
pub use tokenizer::TokenCounts as AccurateTokenCounts;
pub use tokenizer::Tokenizer;
pub use analysis::{
build_multi_repo_index,
build_type_hierarchy,
calculate_complexity,
calculate_complexity_from_source,
check_complexity,
detect_breaking_changes,
detect_dead_code,
detect_unreachable_code,
AncestorInfo,
AncestorKind,
BreakingChange,
BreakingChangeDetector,
BreakingChangeReport,
BreakingChangeSummary,
BreakingChangeType,
ChangeSeverity,
ComplexityCalculator,
ComplexityMetrics,
ComplexitySeverity,
ComplexityThresholds,
CrossRepoLink,
CrossRepoLinkType,
DeadCodeDetector,
DeadCodeInfo,
Documentation,
DocumentationExtractor,
Example,
GenericParam,
HalsteadMetrics,
LocMetrics,
MultiRepoIndex,
MultiRepoIndexBuilder,
MultiRepoQuery,
MultiRepoStats,
ParamDoc,
ParameterInfo,
ParameterKind,
RepoEntry,
ReturnDoc,
ThrowsDoc,
TypeHierarchy,
TypeHierarchyBuilder,
TypeInfo,
TypeSignature,
TypeSignatureExtractor,
UnifiedSymbolRef,
UnreachableCode,
UnusedExport,
UnusedImport,
UnusedSymbol,
UnusedVariable,
Variance,
};
pub use audit::{
get_global_logger,
log_event,
log_pii_detected,
log_scan_completed,
log_scan_started,
log_secret_detected,
set_global_logger,
AuditEvent,
AuditEventKind,
AuditLogger,
AuditSeverity,
FileAuditLogger,
MemoryAuditLogger,
MultiAuditLogger,
NullAuditLogger,
};
pub use embedding::{
get_hierarchy_summary,
hash_content,
needs_normalization,
normalize_for_hash,
BatchIterator,
BatchOperation,
Batches,
CancellationHandle,
ChildReference,
ChunkContext,
ChunkKind,
ChunkPart,
ChunkSource,
ChunkStream,
DiffBatch,
DiffSummary,
EmbedChunk,
EmbedChunker,
EmbedDiff,
EmbedError,
EmbedManifest,
EmbedSettings,
HashResult,
HierarchyBuilder,
HierarchyConfig,
HierarchySummary,
ManifestEntry,
ModifiedChunk,
ProgressReporter,
QuietProgress,
RemovedChunk,
RepoIdentifier,
ResourceLimits,
StreamConfig,
StreamStats,
TerminalProgress,
Visibility as EmbedVisibility,
MANIFEST_VERSION,
};
pub use error::{InfiniloomError, Result as InfiniloomResult};
pub use exit_codes::{
ExitCode,
ExitCodeCategory,
ExitResult,
ToExitCode,
};
pub use license::{
License,
LicenseFinding,
LicenseRisk,
LicenseScanConfig,
LicenseScanner,
LicenseSummary,
};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const DEFAULT_MAP_BUDGET: u32 = budget_constants::DEFAULT_MAP_BUDGET;
pub const DEFAULT_CHUNK_SIZE: u32 = budget_constants::DEFAULT_CHUNK_SIZE;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_version() {
assert!(VERSION.chars().any(|c| c.is_ascii_digit()));
}
}