/** * Where the in-page HUD sits and what was switched, for HUD_USED events. * * Kept apart from the control list in `hud-controls.ts`: the wire schema needs these small enums on * every page load, and the list is only needed by the HUD itself and by the daemon that counts it. */ /** How the HUD sits on the page: the round bubble, the bare toolbar, or open on a panel. */ export declare const HudView: { readonly BUBBLE: "bubble"; readonly COLLAPSED: "collapsed"; readonly EXPANDED: "expanded"; }; export type HudView = (typeof HudView)[keyof typeof HudView]; /** * Which page is showing, when the HUD is open: the Agent Log (`chat`), the Flows, Notes and Harness * pages inside it, Impact (`report`), Settings, or the account menu open over any of them. Timed per * page, so how long somebody spends on each is a number rather than a guess. * * `harness` and `account` were missing, so the Harness page was timed as `chat` (it opens over the * Agent Log) and an open account menu was not seen at all. */ export declare const HudPanel: { readonly CHAT: "chat"; readonly FLOWS: "flows"; readonly NOTES: "notes"; readonly HARNESS: "harness"; readonly SETTINGS: "settings"; readonly REPORT: "report"; readonly ACCOUNT: "account"; readonly NONE: "none"; }; export type HudPanel = (typeof HudPanel)[keyof typeof HudPanel]; /** * Where the HUD asked somebody to sign in or link this project: the rail card under every page, the * Harness page's own sign-in / link control, or the header's "Save runs for your team". */ export declare const HudPromptSurface: { readonly RAIL: "rail"; readonly HARNESS: "harness"; readonly HEADER: "header"; }; export type HudPromptSurface = (typeof HudPromptSurface)[keyof typeof HudPromptSurface]; /** What a toggle was switched to; absent for a plain press. */ export declare const HudToggle: { readonly ON: "on"; readonly OFF: "off"; }; export type HudToggle = (typeof HudToggle)[keyof typeof HudToggle]; /** * What an agent may do with the HUD when it sits over what it has to test (reticle_session tune). * `removed` takes it off the page until the next reload; `hidden` keeps it ready to come back. */ export declare const HudVisibility: { readonly SHOWN: "shown"; readonly HIDDEN: "hidden"; readonly REMOVED: "removed"; }; export type HudVisibility = (typeof HudVisibility)[keyof typeof HudVisibility]; /** The corner an agent can move the HUD to; `bottom-right` is where it docks by default. */ export declare const HudCorner: { readonly TOP_LEFT: "top-left"; readonly TOP_RIGHT: "top-right"; readonly BOTTOM_LEFT: "bottom-left"; readonly BOTTOM_RIGHT: "bottom-right"; }; export type HudCorner = (typeof HudCorner)[keyof typeof HudCorner]; /** Where a replay the human started from the HUD stands, for the chip's progress bar. */ export declare const FlowProgressStatus: { readonly PLAYING: "playing"; readonly PASSED: "passed"; readonly FAILED: "failed"; }; export type FlowProgressStatus = (typeof FlowProgressStatus)[keyof typeof FlowProgressStatus]; /** Where one part of a Harness drive plan stands. */ export declare const ScriptStatus: { readonly PENDING: "pending"; readonly RUNNING: "running"; readonly PASSED: "passed"; readonly FAILED: "failed"; /** Never started: something it needed failed. */ readonly BLOCKED: "blocked"; /** * A branch case whose condition did not hold, or a step the destructive-action guard stopped * because nobody acknowledged it. Not a failure. */ readonly NOT_TAKEN: "not-taken"; /** * Ran, and decided nothing: its end was on the page before it acted, or it reached its goal with * no check that could have gone red. Neither proved nor a failure. */ readonly UNDECIDED: "undecided"; }; export type ScriptStatus = (typeof ScriptStatus)[keyof typeof ScriptStatus]; /** The HUD's picture of a drive plan: lanes side by side, journeys in order, steps inside. */ export interface PlanView { /** Lanes that may run at once. */ parallel: number; lanes: { id: string; journeys: { id: string; title: string; persona?: string; /** Journeys in earlier lanes this one waits on. */ waitsOn: string[]; status: ScriptStatus; /** Why it did not pass, when there is more to say than its status. */ why?: string; steps: { label: string; status: ScriptStatus; }[]; }[]; }[]; }