/** * verify_runner — 完整验证的无状态评估器。 * * 职责边界: * - 负责:执行域门禁、产物完整性校验、构建尚未持久化的 EvidenceView * - 不负责:EvidenceView 写入、retry、任务状态推进(统一由 VerificationService 负责) * - 不负责:不 import domain/engine_helpers(避免 gate/scope_resolver 循环);contracts 仅用于 cross-val 方向判定(一致性裁决 MVP),不做产物解析 * * 被谁调用:src/core/verification/execution/validator_runner.ts * 调用谁:gate_engine(loadGatesForDomain/evaluateGate/computeRulesetHash/computeEngineRevision)、context/config/resolver、artifact_contract_registry(getArtifactDefaults) * * 数据流:VerifyRunnerInput(artifact/hash/exists/task)→ loadGatesForDomain + evaluateGate → 未持久化 EvidenceView * 持久化:无;只读产物 references/companion_files * * 该模块只构造尚未持久化的验证结果。retry 与恢复顺序由验证应用层负责。 */ import type { ResolvedConfig } from "../context/config/resolver.js"; import type { EvidenceView, DomainContract, DomainName } from "../core/types.js"; import type { TaskContext } from "../types/index.js"; import type { ArtifactDeclaration } from "../core/types.js"; export type VerifyRunnerInput = { domain: DomainName; task: TaskContext; projectRoot: string; artifact: ArtifactDeclaration; artifactGitHash: string; artifactExists: boolean; artifactPath: string; projectMapOverrides?: Record; techStack?: ResolvedConfig["tech_stack"] | null; deploymentMethod?: NonNullable["method"]; buildCommands: ResolvedConfig["build_commands"]; verifyTimeout?: ResolvedConfig["verify_timeout"]; /** 源码扫描排除(intent.scan_exclude;透传给源码集扫描 executor)。 */ scanExclude?: string[]; /** 按 taskId 查任务状态(工具层注入;D3 done 冻结用)。 */ taskStatusLookup?: (taskId: string) => Promise; /** 全契约集(一致性裁决 MVP:cross-val check 方向判定,反向降级 warning 不阻断振荡)。 */ contracts: DomainContract[]; }; export type VerifyRunnerResult = { passed: boolean; record: EvidenceView; skippedSliceChecks: string[]; recoverySummary: string; }; /** 一致性裁决 MVP:反向 cross-val check(验证上游对照下游)降级为 warning severity——evaluateGate 便不计入 blocking, * 治循环网"修下游→重审→指回上游→修上游→回流"的振荡。正向/本地/判不出 → 原样(默认改被验证产物)。 * 详见 docs/研讨记录/一致性裁决/全局裁决治循环网不收敛.md 第十节。 */ export declare function downgradeReverseCrossValChecks(checks: C[], verifiedDomain: string, verifiedKind: string, contracts: DomainContract[]): C[]; /** 按产物路由 check;声明 required_artifact 的规则只在验证对应产物时执行。 * 无 required_artifact→域级全跑;required_artifact 匹配 path_pattern 或 CROSS_VALIDATION_ARTIFACT_PATHS 映射→跑。 * export 供测试守护核心合约(避免测试复制 filter 逻辑致不同步——若改此逻辑,测试自动同步)。 */ export declare function filterChecksForArtifact(checks: C[], artifactPath: string, overrides?: Record, artifactKind?: string): C[]; export declare function evaluateVerification(input: VerifyRunnerInput): Promise;