/** * sf_plan 工具(V2)— 生成 ExecutionPlan + governance 接入 + 决策记录(Step9I 完整链路)。 * * Governance 链路: * PolicyProvider(FilePolicySource 加载声明式 Policy) → governanceInput → * generateExecutionPlan → ExecutionPlan.governance → GovernanceDecisionStore.save(审计) * * 失败策略(fail-close): * - Policy 加载失败(PolicyDefinitionError) → throw(拒绝生成 governance plan) * - governance conflict(GovernanceGenerationError) → throw * - DecisionStore 写失败 → throw(治理记录属可信证据链,不 catch 继续) */ import type { ToolRegistrationContext } from "./middleware.js"; import type { ExecutionPlan } from "../../core/execution/execution_types.js"; import type { RequirementContract } from "../../core/types.js"; import type { ChangeContextProvider, PolicyProvider } from "../../core/governance/providers/index.js"; import { GovernanceDecisionStore } from "../../core/governance/decision_store.js"; import { RequirementStore } from "../../core/requirement_store.js"; import type { TaskContext as GovernanceTaskContext } from "../../core/governance/types.js"; /** sf_plan 可注入的 providers(测试 mock;生产用默认)。 */ export interface SfPlanProviders { changeProvider?: ChangeContextProvider; policyProvider?: PolicyProvider; taskLoader?: (taskId: string) => Promise; decisionStore?: GovernanceDecisionStore; requirementStore?: RequirementStore; } /** * sf_plan 核心编排(可测):governance 接入 + 生成 ExecutionPlan + 决策记录 + 持久化。 * Governance 激活:change/task 缺失 → 旧 Plan;governance conflict → fail-close; * DecisionStore 写失败 → fail-close(治理记录属可信证据链)。 */ export declare function runSfPlan(taskId: string, requirements: RequirementContract[], projectPath: string, providers?: SfPlanProviders): Promise; export declare function registerSfPlanTools(ctx: ToolRegistrationContext): Promise;