SheetXL - v1.0.2
    Preparing search index...

    Interface PresenceSnapshot

    Everything the views read, for the bound session. Immutable; a new object on every change.

    interface PresenceSnapshot {
        current: RangeAnnotation | null;
        findings: readonly RangeAnnotation[];
        log: readonly PresenceLogEntry[];
        navigable: readonly RangeAnnotation[];
        needsAttention: boolean;
        position: number;
        prompt: PresencePrompt | null;
        promptAnchor: { x: number; y: number } | undefined;
        promptAnswers: readonly (PresencePromptQuestionAnswer | undefined)[];
        promptQuestion: PresencePromptQuestion | null;
        promptStep: number;
        sessionId: string | null;
        sheetInView: string | null;
        status: PresenceStatus;
        workbook: IWorkbook | null;
        working: RangeAnnotation | null;
    }
    Index
    current: RangeAnnotation | null

    The navigator's current finding, when it is one of the session's.

    findings: readonly RangeAnnotation[]

    Every finding for the session (all intents, open and stale), in review order. Only the session's own annotations: other writers' are not presence.

    log: readonly PresenceLogEntry[]

    Every finding the agent raised this session, open or dismissed, newest first.

    navigable: readonly RangeAnnotation[]

    The session's findings the navigator walks: open finding and question, in review order.

    needsAttention: boolean

    The agent is waiting on the user — a prompt is pending. Distinct from findings: a prompt needs the user now, findings wait for them. Never counted together, and tool calls never count.

    position: number

    1-based position of current in navigable; 0 when there is none.

    prompt: PresencePrompt | null

    The pending prompt, if the agent is waiting on the user.

    promptAnchor: { x: number; y: number } | undefined

    Where the prompt's dialog opens: just below the first question's cells, in viewport pixels. undefined until a grid pane has measured them (or forever, when it cannot — then centered).

    promptAnswers: readonly (PresencePromptQuestionAnswer | undefined)[]

    What the user has chosen so far, by step; undefined for a step not yet answered.

    promptQuestion: PresencePromptQuestion | null

    The question on screen: prompt.questions[promptStep].

    promptStep: number

    The step of prompt on screen (0-based).

    sessionId: string | null

    The session the views are showing. null before a workbook is bound.

    sheetInView: string | null

    The name of the sheet in view — decides whether a prompt pins to its cells or centers.

    workbook: IWorkbook | null
    working: RangeAnnotation | null

    The agent's working cursor (where it is about to write) while it is up.