Files
memind/goal-run-context.mjs
T

43 lines
1.4 KiB
JavaScript
Raw Normal View History

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');
}