import type { Complexity, FailureType, Risk } from "./base.js";
/** 子任务 */
export interface SubTask {
    /** 子任务 ID */
    id: string;
    /** 标题 */
    title: string;
    /** 详细描述 */
    description: string;
    /** 子任务意图 */
    intent: string;
    /** 依赖的子任务 ID 列表 */
    depends_on: string[];
    /** 受影响的仓库列表 */
    affected_repos: string[];
    /** 预估复杂度 */
    estimated_complexity: Complexity;
    /** 输出模板 */
    output_template?: string;
    /** 输出路径 */
    output_path?: string;
    /** 建议使用的工具 */
    suggested_tools?: string[];
}
/** 规划结果 */
export interface PlanResult {
    /** 任务 ID */
    task_id: string;
    /** 原始意图 */
    original_intent: string;
    /** 子任务列表 */
    sub_tasks: SubTask[];
    /** 执行顺序（子任务 ID 列表） */
    execution_order: string[];
    /** 可并行执行的分组 */
    parallel_groups: string[][];
    /** 规划摘要 */
    summary: string;
    /** 跳过原因（当不执行拆解时） */
    skipped_reason?: string;
    /** 当前步骤索引 */
    current_step_index: number;
}
/** 作用域检查结果 */
export interface ScopeCheckResult {
    /** 是否允许通过 */
    allowed: boolean;
    /** 原因说明 */
    reason?: string;
    /** 是否包含敏感信息 */
    has_secrets: boolean;
    /** 敏感信息详情 */
    secret_details?: Array<{
        /** 文件路径 */
        file: string;
        /** 行号 */
        line: number;
        /** 敏感信息类型 */
        type: string;
    }>;
    /** 严重程度: ok=正常, warning=警告, blocked=阻止 */
    severity: "ok" | "warning" | "blocked";
}
/** 可行性等级: feasible=可行, risky=有风险, infeasible=不可行 */
export type FeasibilityLevel = "feasible" | "risky" | "infeasible";
/** 可行性评估结果 */
export interface FeasibilityResult {
    /** 可行性等级 */
    level: FeasibilityLevel;
    /** 原因列表 */
    reasons: string[];
    /** 建议列表 */
    recommendations: string[];
    /** 是否被阻止 */
    blocked: false;
}
/** 解析后的错误信息 */
export interface ParsedError {
    /** 错误类型: compilation=编译错误, test_failure=测试失败, runtime=运行时错误, unknown=未知 */
    error_type: "compilation" | "test_failure" | "runtime" | "unknown";
    /** 出错文件 */
    file?: string;
    /** 出错行号 */
    line?: number;
    /** 错误信息 */
    message: string;
    /** 调用栈帧 */
    stack_frames: string[];
}
/** 调用链条目 */
export interface CallChainItem {
    /** 文件路径 */
    file: string;
    /** 函数名 */
    function?: string;
    /** 行号 */
    line?: number;
}
/** 根因分析 */
export interface RootCauseAnalysis {
    /** 失败类型 */
    failure_type: FailureType;
    /** 发起阶段 */
    phase_origin?: string;
    /** 分析摘要 */
    summary: string;
    /** 置信度 (0-1) */
    confidence: number;
}
/** 修复方案建议 */
export interface FixProposal {
    /** 修复描述 */
    description: string;
    /** 需检查的文件列表 */
    files_to_check: string[];
    /** 修复方法 */
    approach: string;
    /** 修复风险 */
    risk: Risk;
}
/** 测试补充建议 */
export interface TestSuggestion {
    /** 测试场景 */
    scenario: string;
    /** 覆盖范围 */
    covers: string;
    /** 优先级 */
    priority: "high" | "medium" | "low";
}
/** 调试会话 */
export interface DebugSession {
    /** 任务 ID */
    task_id: string;
    /** 脱敏后的错误输出摘要（不保留 raw 原文） */
    error_output: string;
    /** 原始输出稳定哈希（用于追溯，不存原文） */
    error_output_hash?: string;
    /** 解析后的错误 */
    parsed_error: ParsedError;
    /** 调用链 */
    call_chain: CallChainItem[];
    /** 根因分析 */
    root_cause: RootCauseAnalysis;
    /** 修复方案 */
    fix_proposal: FixProposal;
    /** 测试补充建议列表 */
    test_supplement: TestSuggestion[];
}
/** 指标快照 */
export interface MetricsSnapshot {
    /** 采集时间戳 */
    timestamp: string;
    /** 任务总数 */
    total_tasks: number;
    /** 通过率 */
    pass_rate: number;
    /** 重试率 */
    retry_rate: number;
    /** 平均执行耗时（毫秒） */
    avg_duration_ms: number;
    /** 知识命中率 */
    knowledge_hit_rate: number;
}
/** 告警条目 */
export interface AlertItem {
    /** 告警级别: warning=警告, critical=严重 */
    level: "warning" | "critical";
    /** 指标名称 */
    metric: string;
    /** 当前值 */
    current: number;
    /** 阈值 */
    threshold: number;
    /** 告警信息 */
    message: string;
}
/** 可观测性报告 */
export interface ObservabilityReport {
    /** 报告周期 */
    period: {
        start: string;
        end: string;
    };
    /** 当前快照 */
    snapshot: MetricsSnapshot;
    /** 告警列表 */
    alerts: AlertItem[];
    /** 趋势数据 */
    trends: Array<{
        metric: string;
        values: number[];
    }>;
    /** 报告摘要 */
    summary: string;
}
/** 追溯子任务 */
export interface TraceSubTask {
    /** 子任务 ID */
    id: string;
    /** 子任务标题 */
    title: string;
    /** 变更文件列表 */
    changed_files: string[];
    /** 测试覆盖程度: full=完整, partial=部分, none=无 */
    test_coverage: "full" | "partial" | "none";
    /** 审查状态: passed=通过, issues=有问题, skipped=跳过 */
    review_status: "passed" | "issues" | "skipped";
    /** 是否已验证 */
    verified: boolean;
}
/** 需求追溯链 */
export interface TraceabilityChain {
    /** 任务 ID */
    task_id: string;
    /** 原始意图 */
    intent: string;
    /** 子任务追溯列表 */
    sub_tasks: TraceSubTask[];
    /** 覆盖情况 */
    coverage: {
        /** 子任务总数 */
        total_subtasks: number;
        /** 已覆盖数 */
        covered: number;
        /** 覆盖缺口 */
        gaps: string[];
    };
    /** 追溯摘要 */
    summary: string;
}
/** 迁移语句 */
export interface MigrationStatement {
    /** 行号 */
    line: number;
    /** 语句类型 */
    type: string;
    /** 涉及的表 */
    table?: string;
    /** 风险等级: safe=安全, warning=警告, critical=危险 */
    risk: "safe" | "warning" | "critical";
    /** 描述说明 */
    description: string;
}
/** 迁移分析结果 */
export interface MigrationAnalysis {
    /** 迁移文件路径 */
    file: string;
    /** 整体风险等级 */
    risk_level: "safe" | "warning" | "critical";
    /** 语句分析列表 */
    statements: MigrationStatement[];
    /** 回滚建议 */
    rollback_suggestions: string[];
    /** 分析摘要 */
    summary: string;
}
/** 测试场景 */
export interface TestScenario {
    /** 场景名称 */
    name: string;
    /** 前置条件 */
    given: string;
    /** 执行操作 */
    when: string;
    /** 预期结果 */
    then: string;
    /** 优先级 */
    priority: "high" | "medium" | "low";
}
/** 测试生成指南 */
export interface TestGenGuide {
    /** 源文件路径 */
    source_file: string;
    /** 测试类型: unit=单元测试, integration=集成测试, e2e=端到端测试 */
    test_type: "unit" | "integration" | "e2e";
    /** 建议的测试文件路径 */
    test_file_suggestion: string;
    /** 测试场景列表 */
    scenarios: TestScenario[];
    /** 所需的测试夹具 */
    fixtures_needed: string[];
    /** 需要模拟的依赖点 */
    mock_points: string[];
}
/** 测试质量检查项 */
export interface TestQualityCheck {
    /** 检查维度: assertion_density=断言密度, boundary_coverage=边界覆盖, naming=命名规范, duplication=重复度, scenario_coverage=场景覆盖 */
    dimension: "assertion_density" | "boundary_coverage" | "naming" | "duplication" | "scenario_coverage";
    /** 是否通过 */
    passed: boolean;
    /** 详细说明 */
    detail: string;
    /** 严重级别（防 AI 偷懒门禁硬化）：passed 时无 severity，未通过时为 warning */
    severity?: "warning";
}
/** 测试质量报告 */
export interface TestQualityReport {
    /** 测试文件路径 */
    file: string;
    /** 质量评分 (0-100) */
    score: number;
    /** 检查项列表 */
    checks: TestQualityCheck[];
    /** 改进建议 */
    suggestions: string[];
    /** 代码质量门禁汇总（防 AI 偷懒）：warning 级别的未通过检查数 */
    hard_fail_count?: number;
    warning_count?: number;
}
/** 漏洞条目 */
export interface VulnerabilityItem {
    /** 包名 */
    package: string;
    /** 已安装版本 */
    installed_version: string;
    /** 严重程度 */
    severity: "low" | "medium" | "high" | "critical";
    /** 漏洞描述 */
    issue: string;
    /** 修复版本 */
    fixed_in: string;
}
/** 依赖扫描结果 */
export interface DependencyScanResult {
    /** 扫描的依赖文件 */
    file: string;
    /** 扫描的依赖数量 */
    dependencies_scanned: number;
    /** 发现的漏洞列表 */
    vulnerabilities: VulnerabilityItem[];
    /** 未锁定版本的依赖列表 */
    unscoped_versions: string[];
    /** 扫描摘要 */
    summary: string;
}
/** 成本预算 */
export interface CostBudget {
    /** 每日 token 限制 */
    daily_token_limit: number;
    /** 每周 token 限制 */
    weekly_token_limit: number;
    /** 每月 token 限制 */
    monthly_token_limit: number;
}
/** 成本告警 */
export interface CostAlert {
    /** 告警级别: warning=警告, critical=严重 */
    level: "warning" | "critical";
    /** 统计周期: daily=每日, weekly=每周, monthly=每月 */
    period: "daily" | "weekly" | "monthly";
    /** 已使用量 */
    used: number;
    /** 限制量 */
    limit: number;
    /** 告警信息 */
    message: string;
}
//# sourceMappingURL=analysis.d.ts.map