import type { MessageProvenance } from "@kenkaiiii/gg-ai"; import { type GoalRecord } from "./goals-store.js"; import type { SessionManager } from "./session-manager.js"; /** The kickoff/resume instruction is runtime-authored and never shown as a user bubble. */ export declare const GOAL_RUNTIME_PROVENANCE: MessageProvenance; /** One row of the app's goal list. */ export interface GoalSummary { id: string; name: string; goal: string; context: GoalRecord["context"]; path: string; createdAt: string; lastActiveMs: number; lastActiveDisplay: string; /** Newest non-empty session to resume; null opens a fresh coordinator session. */ latestSessionPath: string | null; /** * Where the goal stands, for the goal list: briefing (not started yet), * running (working right now), paused (by the user), or idle (started, * not working: done, or waiting to be opened again). */ status: "briefing" | "running" | "paused" | "interrupted" | "idle"; } /** A summary plus the newest session's id, for callers that address sessions by id. */ export type GoalSummaryWithSessionId = GoalSummary & { latestSessionId: string | null; }; /** A goal's status for the list (see GoalSummary.status). */ export declare function goalListStatus(record: GoalRecord, busy: boolean, cutOff?: boolean): GoalSummary["status"]; /** Summarize one goal for a list, from its record and its coordinator sessions. */ export declare function summarizeGoal(sessions: SessionManager, dir: string, record: GoalRecord, busy?: boolean): Promise;