/** * Upgrade Reconcile — impact manifest。 * * 读取 templates/shared/upgrade_impacts.json,推导当前项目命中的升级影响实例, * 并收集因 engine_revision / ruleset_hash 变化而失效的门禁记录。 * * 注意:loadImpactDefinitions 用 new URL 相对当前文件解析 manifest。 * 本文件位于 src/core/upgrade_reconcile/,比原单文件深一级, * 故 URL 前缀为 "../../../${IMPACT_MANIFEST_PATH}"(原文件为 "../../${...}")。 * * 职责边界: * - 负责:读升级影响清单并推导当前项目命中实例、收集 engine/ruleset 失效门禁记录、推荐起手产物 * - 不负责:升级编排放行/回退(plan.ts 编排)、不写升级状态 * * 被谁调用:upgrade_reconcile/plan.ts(deriveImpactInstances / collectStaleEvidenceViews / chooseRecommendedStart) * 调用谁:internals(readPackageVersion/projectHasUpgradeHistory/compareSemver/domainIndex/IMPACT_MANIFEST_PATH)、propagation(findArtifact)、gate/gate_engine(computeEngineRevision/computeRulesetHash)、shared/helpers(safeJsonParse) * * 数据流:manifest 定义 + 项目版本 + 契约 → 版本区间命中 + 产物定位 + 验证新鲜度比对 → UpgradeImpactInstance[] * 持久化:读 templates/shared/upgrade_impacts.json(内置资产)与 .soloforge/state/evidence 门禁记录;无写入 */ import type { DomainContract, DomainName } from "../types.js"; import type { ProjectVersionInfo } from "../../context/templates/template_manifest_io.js"; import type { UpgradeImpactDefinition, UpgradeImpactInstance, UpgradePlan } from "./types.js"; export declare function loadImpactDefinitions(): UpgradeImpactDefinition[]; export declare function deriveImpactInstances(contracts: DomainContract[], projectVersion: ProjectVersionInfo | null, projectRoot: string): UpgradeImpactInstance[]; export declare function chooseRecommendedStart(impacts: UpgradeImpactInstance[], contracts: DomainContract[]): UpgradePlan["recommended_start"]; export declare function collectStaleEvidenceViews(projectRoot: string, contracts: DomainContract[]): Promise<{ domain: DomainName; artifact_path: string; gate_name: string; stale_reasons: string[]; newly_introduced_checks?: string[]; }[]>; /** 收集因审查标准升级须重审的记录,并按变化维度生成升级计划提示。 */ export declare function collectReviewCriteriaStale(projectRoot: string): Promise<{ staleCount: number; changedDimensions: string[]; }>;