const CHECKPOINT_STATUS_LABELS = { pending: '待开始', running: '进行中', awaiting_approval: '待确认', approved: '已完成', skipped: '已跳过', failed: '失败', }; export function buildGoalContextEnvelope(goal) { if (!goal) return ''; const checkpoints = Array.isArray(goal.checkpoints) ? goal.checkpoints : []; const current = checkpoints.find((item) => item.id === goal.currentCheckpointId) ?? checkpoints.find((item) => item.status === 'running') ?? checkpoints.find((item) => item.status === 'pending'); const completed = checkpoints.filter((item) => ['approved', 'awaiting_approval'].includes(item.status)); const awaiting = checkpoints.find((item) => item.status === 'awaiting_approval'); const lines = [ '【Goal Context】', `目标:${goal.title}`, ]; if (current) { const statusLabel = CHECKPOINT_STATUS_LABELS[current.status] ?? current.status; lines.push(`当前阶段:${current.title}(${statusLabel})`); } if (completed.length) { lines.push('已完成摘要:'); for (const checkpoint of completed) { if (checkpoint.outputSummary) { lines.push(`- ${checkpoint.outputSummary}`); } else { lines.push(`- ${checkpoint.title}`); } } } if (awaiting) { lines.push(`待你确认:${awaiting.description || awaiting.title}`); } return lines.join('\n'); }