/** * EVO-1 inbox-wake — pure decision core (durable bug #3). Given the ids already * woken on and the current inbox, decide whether there is something new and * format an **h2a-tagged, human-visible wake line** to inject into an idle host. * * Pure + dep-free (no store, no clock — `nowIso` is injected). The process / * driver wiring (mcp-serve --wake hook, watch-inbox loop) lives in @sentropic/h2a * and reuses nativeBackchannelDriver + formatSignedDriveInstruction. */ import type { H2AEnvelope } from "./types.js"; export declare const H2A_WAKE_REASON_INBOX: "inbox"; export interface InboxWakeInput { /** Envelope ids already woken on (persisted across ticks). */ readonly seen: readonly string[]; readonly inbox: readonly H2AEnvelope[]; /** Reference time (ISO) stamped in the wake tag — injected for determinism. */ readonly nowIso: string; } export interface InboxWakeDecision { /** New (unseen) envelopes that triggered the wake. */ readonly fresh: H2AEnvelope[]; /** The wake line to inject (tag + neutral sentence). */ readonly wake: string; /** Updated seen set (prior + fresh ids) for the next tick. */ readonly seen: string[]; } /** * Format the wake line. The bracketed tag is machine-parseable + always visible * (no silent injection); the sentence is the neutral human reason. */ export declare function formatWakeLine(fresh: readonly H2AEnvelope[], nowIso: string): string; /** Decide a wake from new inbox envelopes; null when nothing is unseen. */ export declare function decideInboxWake(input: InboxWakeInput): InboxWakeDecision | null; //# sourceMappingURL=wake.d.ts.map