import type { WorkflowResult } from '../types.js'; export interface FileBlock { path: string; content: string; } /** * 解析文本里的"文件块"。返回 [{path, content}],按出现顺序;同路径后者覆盖前者。 */ export declare function parseFileBlocks(text: string): FileBlock[]; /** * 把候选路径规整成相对目标目录的安全路径;非法(绝对路径 / .. 逃逸 / 越界)返回 null。 */ export declare function safeRelPath(candidate: string, destDir: string): string | null; export interface MaterializeResult { destDir: string; stepId: string | null; files: string[]; skipped: string[]; } /** * 从工作流结果落盘:从后往前扫已完成步的产出,取第一个含文件块的步,把其文件写到 destDir。 * 这样 verify 等收尾步在最后也没事——会自动回退到真正出代码的 build 步。 */ export declare function materializeFromResult(result: WorkflowResult, destDir: string): MaterializeResult;