import { type HarnessWindowSyncResult } from '../context/harness-window-config.js'; import type { ConvergencePlan } from '../context/auto-compact-types.js'; /** * What the caller is told to do next. The harness-window notice rides along because * the run also rewrites the harness's own settings, so it says so too: the user * accepted that write on the condition 要告知, and a write only one of the two * syncing commands reports is not a notice. */ export declare function compactNextActions(isRedLine: boolean, harnessWindow: HarnessWindowSyncResult | null): readonly string[]; /** * Append a one-row convergence decision to the LLM-readable log. * The LLM reads this on the post-compact turn to pick up exactly * where it left off (vs. blindly trusting the IDE's compressed * transcript). */ export declare function appendAutoDecisionLog(input: { readonly projectRoot: string; readonly sessionId: string; readonly plan: ConvergencePlan; }): void; /** * main-session compact intent so the main-session LLM picks it up on * its next turn and fires `/compact` in-band. Without this file the * orchestrator's "main-session compact" request is invisible to the * main Claude Code window (defeats the whole point of auto-compact * for the main context). * * The file is gitignored under `.peaks/_runtime//txt/` and * is one-shot: the LLM should `mv` it to `.consumed` after firing * `/compact`. A re-run will overwrite. * * write survives, but nothing consumes the file, and its `nextAction` asks * for a `/compact` the model cannot invoke (the Skill tool exposes only * `/init` and `/security-review`; hooks can observe or veto, never initiate). * Retained deliberately for the sibling A2 slice, which owns harness-side * state re-injection. Not a capability peaks-loop has today. */ export declare function writeMainSessionCompactIntent(input: { readonly projectRoot: string; readonly sessionId: string; readonly ratio: number; readonly redLine: boolean; readonly now: Date; }): void; /** * Write a pre-compact checkpoint. The shape mirrors `peaks session * checkpoint` so D7's post-compact-detect picks it up unchanged. */ export declare function writePreCompactCheckpoint(input: { readonly projectRoot: string; readonly sessionId: string; readonly now: Date; readonly redLine?: boolean; }): string;