/** * System-prompt contributor that surfaces eternal-autonomy state to the * model on every turn. * * Why this exists: when the engine drives a long-running loop, the * per-iteration directive carries the rules. But the directive is a USER * message — it scrolls out of working memory after a few compactions and * the model forgets it's in autonomy mode (forgets `[GOAL_COMPLETE]`, * forgets the todo-state protocol, forgets the no-confirmation rule). * Injecting the same anchor as a CACHED system-prompt block solves that * — the rules sit next to the identity layer and survive compactions. * * Block is tagged `ephemeral` so its content (journal tail, iteration * counter) changes each turn without invalidating the upstream prefix * cache. */ import type { SystemPromptContributor } from '../types/system-prompt-contributor.js'; export interface AutonomyPromptContributorOptions { /** Absolute path to the project's `goal.json`. */ goalPath: string; /** * Gating function. The contributor consults this on every build and * returns an empty array when `false` — without this, the block would * leak into interactive runs that happen to have a goal on disk and * teach the model loop-control markers it shouldn't emit. * * Typical wiring: enable while `eternal` or `eternal-parallel` autonomy is active. */ enabled: () => boolean; /** Number of journal entries to include in the recent-tail block. Default 5. */ journalTailSize?: number | undefined; } /** * Build a contributor that renders the autonomy-state system block. * Returns `[]` when disabled, no goal exists, or the goal has been * completed/abandoned — all silent fast-paths. */ export declare function makeAutonomyPromptContributor(opts: AutonomyPromptContributorOptions): SystemPromptContributor; //# sourceMappingURL=autonomy-prompt-contributor.d.ts.map