js/ai/acp/client
js/ai/acp/client.ts
internal:ai/acp/client — agent-side client for negotiated ACP v1 host capabilities.
Each instance is bound to one ACP session and borrows its owning server's JSON-RPC peer. Closing the server invalidates subsequent client operations.
Classes
class AcpClient {
Agent-side view of one negotiated ACP client.
Instances are session-bound. Besides exposing every client request in the stable protocol, the ACP server automatically converts negotiated file, terminal, and elicitation capabilities into model tools.
Getters
get capabilities(): AcpClientCapabilities
Negotiated client capabilities.
get sessionId(): string
Session id automatically attached to session-scoped client requests.
Methods
async update(update: AcpSessionUpdate, meta?: AcpMeta): Promise<void>
Send any stable session update.
async readTextFile(
path: string,
opts: { line?: number; limit?: number; meta?: AcpMeta; signal?: AbortSignal } = {},
): Promise<{ content: string; _meta?: AcpMeta }>
Read a text file through the negotiated client filesystem capability.
async writeTextFile(
path: string,
content: string,
opts: { meta?: AcpMeta; signal?: AbortSignal } = {},
): Promise<{ _meta?: AcpMeta }>
Write a text file through the negotiated client filesystem capability.
async createTerminal(
opts: AcpCreateTerminalOptions,
signal?: AbortSignal,
): Promise<{ terminalId: string; _meta?: AcpMeta }>
Create a client-hosted terminal.
async terminalOutput(terminalId: string, signal?: AbortSignal): Promise<AcpTerminalOutput>
Read current output from a client-hosted terminal.
async waitForTerminalExit(
terminalId: string,
signal?: AbortSignal,
): Promise<{ exitCode?: number | null; signal?: string | null; _meta?: AcpMeta }>
Wait until a client-hosted terminal exits.
async killTerminal(terminalId: string, signal?: AbortSignal): Promise<void>
Kill a client-hosted terminal process.
async releaseTerminal(terminalId: string, signal?: AbortSignal): Promise<void>
Release a client-hosted terminal and its retained output.
async elicit(
request: AcpElicitationRequest,
signal?: AbortSignal,
): Promise<AcpElicitationResponse>
Request negotiated structured user input.
async completeElicitation(elicitationId: string, meta?: AcpMeta): Promise<void>
Tell the client that a URL elicitation has completed.
extension(method: string, params?: unknown, signal?: AbortSignal): Promise<unknown>
Call a client extension method. Extension names must begin with _.
async notifyExtension(method: string, params?: unknown): Promise<void>
Send a client extension notification. Extension names must begin with _.