@pouchy_ai/companion-sdk - v0.78.1
    Preparing search index...

    Interface HelloAck

    interface HelloAck {
        droppedTools?: DroppedToolDecl[];
        grantedScopes: string[];
        modalities: string[];
        pendingToolCalls: PendingToolCall[];
        representative: boolean;
        resumeCursor: number;
        session: string;
        visitorPaired: boolean;
    }
    Index
    droppedTools?: DroppedToolDecl[]

    Declared tools the handshake refused (0.77.0) — present only when one was. index is the position in the tools you sent; reason is missing_name (no string name), duplicate_name (collides with an earlier tool once mapped to the provider's 64-char name rule) or over_cap (past the 32-tool cap). A refused tool is never offered to the model, so this is the one place a typo'd decl shows up. A duplicate_name entry also carries name (the refused tool) and collidesWith (the earlier tool it maps onto).

    grantedScopes: string[]
    modalities: string[]
    pendingToolCalls: PendingToolCall[]

    Outstanding tool calls of a turn that paused before this handshake — non-empty only when resuming mid-pause (0.37.0). Unless replayPendingToolCalls: false, each is also re-emitted to onToolCall with replayed: true right after connect() resolves.

    representative: boolean

    True when this is a representative (visitor-facing) session — i.e. a visitor was supplied and the token holds represent.

    resumeCursor: number
    session: string
    visitorPaired: boolean

    Representative sessions only: whether this visitor is already paired with the owner (their two companions are friends). Lets you skip offering a "pair" affordance to an already-connected visitor.