/** * The goal vector: what "relevant" is measured against. * * Not the whole history — that would make every message relevant to * itself — but the four things that say what the turn is for right now: * the first user message (the task), the most recent user turns (the * requirements as they were refined), the open items of the task list * when the turn keeps one, and the latest assistant text (its stated * intent). Weighted by repetition rather than a coefficient: the task * statement is included twice so a turn that has drifted into detail is * still scored against what it was asked to do. */ import type { Message } from '../../types/message/index.js'; export interface GoalSources { /** Titles of task-list items not yet completed, when the host keeps a task store. */ readonly openTasks?: readonly string[]; /** How many of the latest user turns count as live requirements. */ readonly recentUserTurns?: number; } export declare function buildGoal(messages: readonly Message[], sources?: GoalSources): string; //# sourceMappingURL=goal.d.ts.map