ACP v2 TypeScript SDK — EXPERIMENTAL DRAFT - v2.0.0
    Preparing search index...

    Type Alias TerminalUpdateExperimental

    An upsert for the stored state of an agent-owned terminal.

    Only [TerminalUpdate::terminal_id] is required. Other fields have patch semantics: omitted fields leave the stored value unchanged, null clears it, and concrete values replace it. A concrete _meta object instead patches the stored metadata by top-level key. When the terminal ID is new, omitted fields start unknown.

    type TerminalUpdate = {
        terminalId: TerminalId;
        command?: string | null;
        cwd?: AbsolutePath | null;
        output?: TerminalOutput | null;
        exitStatus?: TerminalExitStatus | null;
        _meta?: { [key: string]: unknown } | null;
    }
    Index
    terminalId: TerminalId

    Unique identifier for this terminal within the session.

    command?: string | null

    The command being run.

    cwd?: AbsolutePath | null

    The absolute working directory of the command.

    output?: TerminalOutput | null

    An authoritative replacement snapshot of terminal output bytes.

    exitStatus?: TerminalExitStatus | null

    Exit information. A concrete object marks the terminal as exited.

    _meta?: { [key: string]: unknown } | null

    The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Omitted leaves the stored metadata unchanged; null clears it. An object patches the stored metadata by top-level key: keys it omits are unchanged, a key set to null is removed, and any other value replaces that key's stored value without merging nested objects. Beyond this patch rule, implementations MUST NOT make assumptions about values at these keys.

    See protocol docs: Metadata Patches