/** * apply_project_map — 应用用户确认的 project_map override 子集到 intent.yaml。 * * 职责边界: * - 负责:加载并合并 project map override,保存 intent,并清理受影响验证记录 * - 不负责:探测(probe 模块)、影响面展示(升级探测动作返回) * * 被谁调用:升级流程的 apply_project_map 阶段 * 调用谁:intent(loadIntent/saveIntent)、(清理旧 record)、project_map(resolveFilePath 算 currentPath) * * 数据流:confirmedOverrides → merge 到 intent.project_map.overrides → saveIntent + 清理受影响旧 record * 持久化:写 intent.yaml.project_map.overrides + 删受影响旧路径 EvidenceView * * 设计: * - 清理旧 record:override 改变 artifact_path → 旧路径 record 失配(悬空),apply 时按 currentPath * 删(listByArtifact(currentPath) → delete),避免孤儿 record 导致 status/latest 误读 * apply 时已知 currentPath,可精确删除而不需要事后扫描孤儿记录。 * - merge 而非覆盖:保留用户已有的其他 override(confirmedOverrides 只含本次确认的子集) */ import { type ProjectMapOverrideValue } from "../../domain/project_map.js"; export interface ApplyProjectMapResult { success: boolean; applied: number; cleared_records: number; cleared_details?: Array<{ domain: string; gate: string; artifact_path: string; }>; error?: string; next_step: string; } /** * 应用用户确认的 project_map override 子集。 * * @param projectRoot 项目根 * @param confirmedOverrides 用户确认的 override(key→value,仅含要应用的,来自 probe 结果 + 用户选择) * @param currentOverrides 应用前的当前 override(算 currentPath 用,来自 config.project_map?.overrides) */ export declare function applyProjectMapOverrides(projectRoot: string, confirmedOverrides: Record, currentOverrides?: Record): Promise;