import { type ProcessGateResult } from "./governance_process_gate.js"; import { type PresenceDomain, type TaskLifecycle } from "./presence_policy.js"; import type { GateStatus } from "./types.js"; /** deep 覆盖缺口(artifact 侧)。 */ export interface DeepArtifactGap { kind: "missing_evidence" | "orphan"; requirement_id?: string; artifact_kind: string; tier?: "A" | "B" | "C" | "D"; severity: "error" | "none"; reason: string; } /** deep 评估结果。 */ export interface DeepCoverageResult { requirementStatus: GateStatus; presence: { domain: PresenceDomain; lifecycle: TaskLifecycle; required: boolean; ok: boolean; reason: string; }; artifactCoverage: { covered: boolean; gaps: DeepArtifactGap[]; }; processGate: ProcessGateResult; /** deep 视角 deliverable(presence.ok && artifactCoverage.covered && processGate.allSatisfied)。 */ deliverable: boolean; reason?: string; } /** * deep coverage 评估(新管线)。 * @param intent task intent(派生 PresenceDomain 用) * @param lifecycle 默认 greenfield(派生规则留后续) */ export declare function evaluateDeepCoverage(projectRoot: string, taskId: string, intent: string, lifecycle?: TaskLifecycle): Promise; /** shadow/enforce 对比结果。 */ export interface ShadowEnforceCompare { shallowDecision: { requirementStatus: GateStatus; deliverable: boolean; }; deepDecision: DeepCoverageResult; diff: { requirementStatusMatch: boolean; shallowPassDeepFail: boolean; deepReason?: string; }; } /** * 构建 shadow/enforce 对比(纯函数 —— shallow 由调用方传入,避免与 runtime_service 循环依赖)。 * 调用方:算 shallow(经 consumeDeliverEvidence 或 shallow 镜像)+ deep(evaluateDeepCoverage)后调本函数。 */ export declare function buildCompare(shallow: { requirementStatus: GateStatus; deliverable: boolean; }, deep: DeepCoverageResult): ShadowEnforceCompare; /** * 单点切换:deep coverage enforce 开关。 * 默认 false(shadow —— live deliver 仍用 shallow computeRequirementStatus,不变)。 * true(enforce)时 consumeDeliverEvidence 用 deep 管线判 requirement_status。 * 可回滚:env off → 立即回 shallow。 */ export declare function deepCoverageEnforce(): boolean;