@cavell/kit API
    Preparing search index...

    Interface CavellCompanion

    interface CavellCompanion {
        agentId: string;
        awaitingHuman: boolean;
        booting: boolean;
        capabilities: CavellCapabilities;
        clientOutdated: boolean;
        conversationContext: Record<string, unknown>;
        conversationLoading: boolean;
        feedbackSent: Record<string, true>;
        followups: string[];
        hostContext: Record<string, unknown>;
        listSessions: (page: number, pageSize?: number) => Promise<SessionListPage>;
        locale: string;
        localSessions: LiveSessionEntry[];
        newConversation: () => void;
        openConversation: (threadId: string) => Promise<void>;
        pendingHostPatient: { value: PatientHint | null } | null;
        pendingHostProblem: { value: ProblemHint | null } | null;
        phase: CompanionPhase;
        respondToApproval: (
            approvalId: string,
            approved: boolean,
            modifications?: Record<string, unknown>,
        ) => Promise<void>;
        respondToInteraction: (
            interactionId: string,
            answers: QuestionAnswer[] | null,
        ) => Promise<void>;
        runActive: boolean;
        runError: string | null;
        send: (text: string) => Promise<void>;
        sendFeedback: (payload: FeedbackPayload) => void;
        sessionContext: Record<string, unknown>;
        sessionExpired: boolean;
        sessionListVersion: number;
        starters: Starter[];
        startersLoading: boolean;
        stop: () => void;
        stopped: boolean;
        threadId: string;
        timeline: TimelineEntry[];
    }
    Index
    agentId: string
    awaitingHuman: boolean

    True while a human-gated call (approval / question) is unresolved — blocks the composer.

    booting: boolean
    capabilities: CavellCapabilities

    Resolved Cavell-profile feature gates (ADR 0006 D4).

    clientOutdated: boolean

    The backend refused the run: this kit build needs an update (ADR 0007 D3).

    conversationContext: Record<string, unknown>

    The LIVE conversation context only ({} while a switch replays) — per-conversation state like the problem-in-focus must not leak across conversations via the cache.

    conversationLoading: boolean

    True while an opened conversation's replay is in flight — show the loading state.

    feedbackSent: Record<string, true>
    followups: string[]
    hostContext: Record<string, unknown>

    The host-declared context (provider context prop).

    listSessions: (page: number, pageSize?: number) => Promise<SessionListPage>
    locale: string

    Effective UI locale: host-declared, else the backend-resolved conversation locale, else 'en'.

    localSessions: LiveSessionEntry[]

    Conversations created in this page load — history rows the REST list cannot know about yet.

    newConversation: () => void
    openConversation: (threadId: string) => Promise<void>
    pendingHostPatient: { value: PatientHint | null } | null

    Host patient declaration/change not yet absorbed by a server snapshot (null value = cleared).

    pendingHostProblem: { value: ProblemHint | null } | null

    Host problem declaration/change not yet absorbed by a server snapshot (null value = cleared).

    phase: CompanionPhase
    respondToApproval: (
        approvalId: string,
        approved: boolean,
        modifications?: Record<string, unknown>,
    ) => Promise<void>
    respondToInteraction: (
        interactionId: string,
        answers: QuestionAnswer[] | null,
    ) => Promise<void>
    runActive: boolean
    runError: string | null
    send: (text: string) => Promise<void>
    sendFeedback: (payload: FeedbackPayload) => void
    sessionContext: Record<string, unknown>

    Identity view of the context (live, else session cache) — salutation/patient chip.

    sessionExpired: boolean
    sessionListVersion: number
    starters: Starter[]
    startersLoading: boolean
    stop: () => void
    stopped: boolean
    threadId: string
    timeline: TimelineEntry[]