#![cfg_attr(coverage_nightly, coverage(off))]
use crate::models::unified_ast::AstDag;
use crate::services::{
unified_ast_engine::UnifiedAstEngine,
code_intelligence::{CodeIntelligence, AnalysisRequest as CodeAnalysisRequest},
cache::{unified_manager::UnifiedCacheManager, unified::UnifiedCacheConfig, config::CacheConfig},
};
use anyhow::Result;
use std::{
path::PathBuf,
sync::Arc,
time::Instant,
};
use tokio::sync::Semaphore;
use tracing::{info, debug};
use dashmap::DashMap;
pub struct DeepContextOrchestrator {
ast_engine: Arc<UnifiedAstEngine>,
intelligence: Arc<CodeIntelligence>,
cache_manager: Arc<UnifiedCacheManager>,
max_concurrency: usize,
}
#[derive(Debug, Clone)]
pub struct DeepContextConfig {
pub project_path: PathBuf,
pub include_patterns: Vec<String>,
pub exclude_patterns: Vec<String>,
pub features: FeatureFlags,
pub cache_strategy: CacheStrategy,
pub performance_mode: PerformanceMode,
}
#[derive(Debug, Clone, Copy)]
pub struct FeatureFlags {
pub ast_analysis: bool,
pub complexity_analysis: bool,
pub churn_analysis: bool,
pub satd_analysis: bool,
pub provability_analysis: bool,
pub dead_code_analysis: bool,
pub dependency_analysis: bool,
pub hotspot_detection: bool,
}
#[derive(Debug, Clone, Copy)]
pub enum CacheStrategy {
Aggressive,
Normal,
Minimal,
None,
}
#[derive(Debug, Clone, Copy)]
pub enum PerformanceMode {
Fast,
Balanced,
Memory,
}
pub struct OrchestrationRequest {
pub dag: Arc<AstDag>,
pub features: FeatureFlags,
pub performance_hint: PerformanceMode,
}
#[derive(Debug)]
pub struct DeepContextReport {
pub file_count: usize,
pub analysis_duration: std::time::Duration,
pub ast_nodes: usize,
pub dependencies: usize,
pub complexity_summary: ComplexitySummary,
pub hotspots: Vec<CodeHotspot>,
pub recommendations: Vec<Recommendation>,
}
#[derive(Debug)]
pub struct ComplexitySummary {
pub total_functions: usize,
pub high_complexity_functions: usize,
pub avg_cyclomatic: f64,
pub avg_cognitive: f64,
pub complexity_distribution: Vec<(u32, usize)>, }
#[derive(Debug)]
pub struct CodeHotspot {
pub file_path: PathBuf,
pub function_name: String,
pub hotspot_type: HotspotType,
pub severity: HotspotSeverity,
pub metrics: HotspotMetrics,
}
#[derive(Debug)]
pub enum HotspotType {
HighComplexity,
HighChurn,
LargeFunction,
DeepNesting,
ManyParameters,
PotentialDefect,
}
#[derive(Debug)]
pub enum HotspotSeverity {
Critical,
High,
Medium,
Low,
}
#[derive(Debug)]
pub struct HotspotMetrics {
pub complexity_score: f64,
pub defect_probability: f64,
pub maintenance_cost: f64,
}
#[derive(Debug)]
pub struct Recommendation {
pub category: RecommendationCategory,
pub title: String,
pub description: String,
pub impact: RecommendationImpact,
pub effort: RecommendationEffort,
}
#[derive(Debug)]
pub enum RecommendationCategory {
Refactoring,
Performance,
Maintainability,
Testing,
Architecture,
}
#[derive(Debug)]
pub enum RecommendationImpact {
High,
Medium,
Low,
}
#[derive(Debug)]
pub enum RecommendationEffort {
High,
Medium,
Low,
}
include!("deep_context_orchestrator_pipeline.rs");
include!("deep_context_orchestrator_factory.rs");
include!("deep_context_orchestrator_tests.rs");