import type { TaskEvidenceAction } from "../task_service/evidence_requirement_policy.js"; import { type EvidenceEvaluation } from "../task_service/evidence_evaluator.js"; import { type ChangeContext } from "../change_impact_engine.js"; import type { GateStatus, DomainName } from "../types.js"; import type { TaskContext } from "../../types/index.js"; export interface V2EvidenceDiagnostic { artifact_kind: string; domain: DomainName; status: "valid" | "missing" | "invalid"; reason: string; } export interface V2EvidenceSummary { command_count: number; artifact_count: number; latest_command_passed: boolean | null; } export interface V2EvidenceEvaluation { requirement_status: GateStatus; trace_status: GateStatus; evidence_status: GateStatus; review_status: GateStatus; diagnostics: V2EvidenceDiagnostic[]; evidence_summary: V2EvidenceSummary; } /** * V2 EvidenceEvaluator:双职责(evaluateTaskEvidence 聚合状态 / evaluate V1 兼容 adapter)。 * 不替代 V1 EvidenceEvaluator( 不迁移消费者);读 V2 evidence + 复用 V1 底座。 */ export declare class V2EvidenceEvaluator { private readonly evidenceStore; private readonly executionStore; private readonly requirementStore; private readonly reviewStore; private readonly policy; private readonly runs; private readonly reviewRuns; private readonly digests; constructor(projectRoot: string); private readonly projectRoot; /** 派生任务聚合证据状态(requirement/trace/evidence/review + diagnostics + evidence_summary)。 */ evaluateTaskEvidence(task: TaskContext): Promise; private diagnosticFor; /** 占位 EvidenceView(无 V2 evidence 的 requirement)。复刻 V1 missingRecord 语义。 */ private missingRecord; /** V2 evidence view 按 (domain, gateName, artifactPath) 索引 latest。 */ private buildViewIndex; /** 评估单个 requirement:V2 evidence view → 防伪造 + stale 重算。复刻 V1 evaluateRecord,view 替代 record。 * inheritedKeys:D1 跨 task 内容锚点回填的 key 集(evaluate 构造)——继承记录跳过 input/semantic 轴 * (inputDigest 含 task scope,跨 task 结构性不可比)并挂显式审计 reason,不静默。 */ private evaluateArtifact; /** * V1 Compatibility Adapter():返回 V1 EvidenceEvaluation 兼容结构。 * * 复用 V1 底座(EvidenceRequirementPolicy/resolveConfig/computeVerificationConfigHash/staleAxes/ * VerificationRunStore/evaluateAdversarialReviewEvidence),读源改为 V2 VerificationEvidenceStore * (artifact_structure evidence → EvidenceView view)。供消费者迁移后替代 V1 EvidenceEvaluator。 * * 不迁移消费者():V1 EvidenceEvaluator 保留,消费者仍用 V1。本方法为未来迁移就绪。 */ evaluate(task: TaskContext, action: TaskEvidenceAction, changeContext?: ChangeContext): Promise; }