import type { WorkflowResult } from '../types.js'; import type { DAGNode } from '../types.js'; /** * 保存工作流执行结果到文件 */ export declare function saveResults(result: WorkflowResult, outputDir: string): string; /** * 打印一个步骤的完整结果(标题 + 内容),模拟公司讨论 */ export declare function printStepResult(node: DAGNode, stepIndex: number, totalSteps: number): void; /** * 打印正在运行的步骤提示,并启动计时器每 10 秒更新耗时 */ export declare function printStepRunning(nodes: DAGNode[]): void; /** * 清除"执行中"提示行和计时器 */ export declare function clearRunningLine(): void; /** * 从上一次运行的输出目录中加载步骤结果,重建 context * 用于 --resume 场景:加载已完成步骤的输出变量到 context */ export declare function loadPreviousContext(outputDir: string): Map; /** * 读取上一次运行中某个步骤的产出正文(用于 --feedback 对话式返工:把"上一版产出" * 交回给同一专家,让它带着用户意见在原稿基础上修改,而不是从零重写)。 * 找不到 / 无内容时返回 null(调用方退化为纯反馈,不附旧稿)。 */ export declare function loadStepOutput(outputDir: string, stepId: string): string | null; /** * 获取上一次运行的步骤 ID 列表(已完成的) */ export declare function getCompletedStepIds(outputDir: string): string[]; /** * 计算 resume 时应跳过的 step id 集合(纯函数,便于测试)。 * - 无 fromStep:跳过上次所有已完成的步骤(继续没跑完的部分)。 * - 有 fromStep:只跳过 fromStep 所在 DAG 层级**之前**且已完成的步骤, * fromStep 本层及其下游全部重跑(用上游已恢复的输出)。 * @param dag 仅需 levels(拓扑分层),用结构化类型避免耦合完整 DAG * @throws fromStep 不在任何层级时抛错 */ export declare function computeResumeSkipIds(dag: { levels: string[][]; }, completedIds: string[], fromStep?: string): Set; /** * 查找最近一次运行的输出目录 */ export declare function findLatestOutput(baseDir: string, workflowName?: string): string | null; export declare function printSummary(result: WorkflowResult, outputPath: string, workflowPath?: string): void;