/** * adversarial_review — 审查产物收集逻辑。 * * 职责边界: * - 负责:按 contracts 收集审查产物路径(glob 展开/existsSync)+ 研讨记录 + per 模式承接对照素材 * - 不负责:不依赖 projectContracts/domain/index(contracts 由调用方传入,避免 core→domain 反向循环) * * 被谁调用:审查 handler 与交付证据判断 * 调用谁:gate/scope_resolver(discoverSourceRoots)、shared/glob_path、core/condition_evaluators * * 数据流:contracts + task scope → resolveArtifactPaths/glob 展开 → 产物路径列表 + docs/研讨记录 * 持久化:只读(existsSync/glob 扫产物文件 + docs/研讨记录 目录),不写盘 * * 收集审查所需的产物和引用内容: * - resolveArtifactPaths / collectCodeReviewArtifacts / collectDeliberationRecords:纯函数 * - findArtifactByKind / collectReviewArtifacts / collectReviewReferences:接收 contracts 参数 * 避免反向依赖 domain/index。 */ import type { DomainContract, ArtifactDeclaration } from "../types.js"; import type { TaskContext } from "../../types/index.js"; /** 解析产物路径模式为实际文件相对路径列表。 * glob 模式(如 docs/analyze/<端>/pages/<页>-原型说明.md 多端多页)展开为全部匹配文件; * 字面路径走 existsSync。照搬 loadUpstreamContent 三目——修原 collectReviewArtifacts 用 existsSync * 对含 * 路径恒 false 致 prototype_spec 永不进审查清单的不一致 bug。 */ /** brownfield override 直查(collect 接收传入 contracts,不绑定全局 resolveFilePath 派生)。 * artifact/companion/reference 路径按 kind+type 算 override key,默认用传入 path。 */ export declare function overridePath(overrides: Record | undefined, kind: string | undefined, type: "artifact" | "companion" | "reference", path: string): string | string[]; export declare function resolveArtifactPaths(projectRoot: string, pattern: string | string[]): string[]; /** finding 只能指向本次审查材料本身;目录材料允许其内部文件。 */ export declare function findingArtifactInReviewScope(artifact: string, materials: string[]): boolean; /** 跨域查找产物声明(去重 collectReviewArtifacts / loadUpstreamContent 等 produces.find 内联)。 * 接收 contracts 参数(调用方传 projectContracts(projectRoot)),避免本模块依赖 projectContracts/domain/index。 */ export declare function findArtifactByKind(contracts: DomainContract[], kind: string): { contract: DomainContract; artifact: ArtifactDeclaration; } | undefined; /** 收集审查产物:per=指定单产物 / cross=所有域所有已产出主产物;二者都额外收集研讨记录(审查充分性维度) */ export declare function collectReviewArtifacts(projectRoot: string, contracts: DomainContract[], mode: "per_artifact" | "cross_artifact", artifactKind?: string, /** per_artifact + code 时:切片级审查只收本切片文件(git diff SLC-NN)。undefined=整 code 旧模式。 */ sliceId?: string, /** cross_artifact 可按领域缩小审查范围,控制大项目单轮输入规模: * design=只审设计文档(docs/design|architecture|context)、prototype=只审原型说明(docs/analyze)、 * deliberation=只审研讨记录。undefined=全量(小项目一次审完,现有行为)。 * 交付证据判断会合并整域与分域审查覆盖。 */ crossScope?: "design" | "prototype" | "deliberation", overrides?: Record, includedKinds?: ReadonlySet): Promise; /** per 模式收集 target 产物的承接对照素材(requires 上游 + companion_files + references)。 * 审查者据此对照验证 target 是否真承接上游意图——**勿审素材本身**(承接是关系判断,需两端对照)。 * requires.when 用 meetsArtifactCondition 评估(scope 缺失=false:旧任务/无 scope 不带条件上游, * 与完整验证使用同一产物契约)。路径通过 resolveArtifactPaths 展开 glob。 */ export declare function collectReviewReferences(target: string, task: TaskContext, projectRoot: string, contracts: DomainContract[], overrides?: Record): string[];