/** * Personas give diablo's three tiers a face on stdout: the planner sketches, the * worker builds, the verifier pokes holes. This is the "cute words" layer — it * is purely cosmetic and stdout-only (the Telegram sink keeps neutral wording), * gated by the `fun` capability the caller resolves. Pure (no I/O) so it is * unit-tested directly. * * Rotation is DETERMINISTIC on (stage, bucket): the caller passes a bucket * derived from a coarse time slice (e.g. floor(elapsedMs / 15000)) so the phrase * changes every ~15s but never flickers on the 1s heartbeat tick. The verifier * phrasing stays skeptical, echoing the engine's anti-sycophancy posture. */ /** The tier whose work a heartbeat/running event describes. */ export type PersonaTier = "design" | "worker" | "verifier"; export declare const PERSONA_GLYPHS: Record; /** A persona-flavored "this tier is working" line: `🔨 stage-1: wiring it up`. */ export declare function personaLine(tier: PersonaTier, stage: string, bucket: number): string; /** A verdict line with personality (semantics preserved by the caller's log). */ export declare function verdictLine(verdict: "pass" | "fail", stage: string): string; /** A retry line with personality, naming the attempt. */ export declare function retryLine(stage: string, attempt: number): string; /** Rotating flavor text for the heartbeat fallback (no known activity). */ export declare function flavorText(stage: string, bucket: number): string;