/** What notes injection may add to a first message. */ export declare const NOTES_BUDGET = 4000; /** The longest single entry; a longer one is rejected, not cut. */ export declare const MAX_NOTE_CHARS = 4000; export type NoteKind = 'note' | 'current_state'; export interface NoteEntry { at: string; kind: NoteKind; text: string; } /** `/notes/.md`, with the role id reduced to a safe file name. */ export declare function notesPath(orgDir: string, role: string): string; /** Append one entry. Throws for an empty or over-long text, writing nothing. */ export declare function appendNote(orgDir: string, role: string, text: string, kind: NoteKind, at?: Date): void; /** The entries of a role's notes, oldest first; a missing file or a torn final entry reads as what is whole. */ export declare function readNotes(orgDir: string, role: string): NoteEntry[]; export interface NotesSelection { /** The text to inject; empty when nothing fits or there is nothing. */ block: string; included: NoteEntry[]; /** Entries left out: older than the current state, or past the budget. */ omitted: number; } /** The last current state plus the appends after it (or, with none, the most * recent entries), newest dropped last, whole entries only, within `budget`. */ export declare function selectNotes(entries: NoteEntry[], budget: number): NotesSelection; export declare const NOTE_APPEND_HELP = "Append an entry to your own notes file, which carries across your tasks and into every fresh session you start. Append-only: you cannot edit or delete an earlier entry. To curate, append a new entry with current_state: true that restates what still matters; the next session starts with your last current state and the notes after it. Keep entries short (at most 4000 characters, never truncated) and put detail in a file you name."; //# sourceMappingURL=notes.d.ts.map