/** * 24h MODE — and ONLY the 24h mode. * * `24h` is the single mode that may be set without an explicit user pick * (the T1–T5 triggers, and `peaks code run --24h`). Every other mode * still requires the Step-1 hard-pause AskUserQuestion * (`mode-gate.shouldPauseAtGate` keeps `step-1-mode-select` in * `HARD_PAUSE_STEPS`). * * Before this slice the auto-engage paths wrote only * `.peaks/_runtime//24h-state.json`; the presence lease kept * whatever mode it had (or none), so `24h` was invisible to the mode * gate and `strict` + `24H_ACTIVE` still paused every gate. This module * is the single place that closes that gap, and the single guard that * refuses to stamp any other mode. */ export declare const AUTO_ENGAGE_PRESENCE_MODE: "24h"; export type AutoEngagePresenceResult = { applied: true; mode: typeof AUTO_ENGAGE_PRESENCE_MODE; updated: number; } | { applied: false; mode: string; reason: 'mode-not-auto-settable' | 'no-in-flight-lease' | 'stamp-failed'; }; /** * Stamp the 24h mode onto every in-flight presence lease of the bound * session. Fail-soft: never throws — a missing lease / unreadable store * degrades to `{ applied: false }` so the auto-engage caller can still * report the 24h-state transition. */ export declare function applyAutoEngagePresenceMode(input: { projectRoot: string; sessionId: string; /** Defaults to `24h`; any other value is refused. */ mode?: string; }): AutoEngagePresenceResult; /** * Turn a presence-mode stamp result into envelope-level `warnings` / * `nextActions`, so a `{ applied: false }` is SEEN rather than merely * present in `data`. * * Slice H3 (rid=h3-24h-threshold-not-wired): `no-in-flight-lease` is * the common case in practice — entering `24H_ACTIVE` before any skill * workflow has a lease — and it used to be reported only inside * `data.presenceMode`, where nothing read it. * * WHAT THIS ADVISORY SAYS ABOUT THE COMPACTION PROFILE: nothing that * contradicts the product. The auto-compact profile is a PUBLIC choice * (`autoCompactProfile` in `.peaks/preferences.json`, or an explicit * `--mode`), and the 24h state machine does not derive it — so the * advisory reports the PRESENCE MODE, and says that the profile is the * project's own setting. The claim it must not make is that the * thresholds "are still derived from the 24h state machine": that turned * false the moment the profile became a public, explicitly settable * choice, and the wording below states the truth instead. * * `nextActions` address the LLM driver (it runs the CLI on the user's * behalf); they never ask the user to type a verb. */ export declare function presenceModeAdvisory(result: AutoEngagePresenceResult): { readonly warnings: readonly string[]; readonly nextActions: readonly string[]; };