API Reference agent_client_protocol v#0.1.0

Copy Markdown View Source

Modules

ACP

Agent Client Protocol (ACP) for Elixir.

Behaviour defining the interface that all ACP-compliant agents must implement.

Enum of all possible notifications from the agent to the client.

Enum of all possible requests from the agent to the client.

Agent side of an ACP connection.

An agent-side connection to a client.

Agent-side types for the Agent Client Protocol.

Optional annotations for the client.

Audio provided to or from an LLM.

A command available to the user.

Input specification for an available command.

Update indicating the set of available commands has changed.

Binary resource contents.

Behaviour defining the interface that ACP-compliant clients must implement.

Capabilities declared by the client.

Enum of all possible responses from the client to the agent.

Client side of an ACP connection.

A client-side connection to an agent.

Session configuration options have been updated. (Unstable)

GenServer managing a bidirectional JSON-RPC 2.0 connection over IO streams.

Content blocks represent displayable information in ACP.

A chunk of content in a session update.

Request to create a terminal session.

Response to a create terminal request.

Update indicating the current mode has changed.

A diff representing file modifications.

The contents of a resource, embedded into a prompt or tool call result.

Resource content that can be embedded in a message (untagged union).

JSON-RPC error object.

Extension types for protocol extensibility.

Arbitrary notification not part of the ACP spec.

Arbitrary request not part of the ACP spec.

Response to an ExtRequest.

File system capabilities supported by the client.

Request to fork an existing session. (Unstable)

Response from forking a session. (Unstable)

An image provided to or from an LLM.

JSON serialization helpers for ACP types.

Request to kill a terminal command.

Response to a kill terminal command request.

Request to list existing sessions. (Unstable)

Response from listing sessions. (Unstable)

A three-state value type: :undefined, nil (null), or {:value, term}.

Behaviour for handling incoming JSON-RPC requests and notifications.

JSON-RPC method names for all ACP methods.

Information about a selectable model. (Unstable)

An option presented to the user for a permission request.

The kind of permission option.

Execution plan for complex tasks.

A single entry in the execution plan.

Protocol version identifier. Only bumped for breaking changes.

JSON-RPC 2.0 primitives for the Agent Client Protocol.

Wraps a JSON-RPC message with the required jsonrpc: "2.0" field.

JSON-RPC 2.0 Notification object (no id, no response expected).

JSON-RPC 2.0 Request object.

JSON-RPC 2.0 Response object. Either {:ok, result} or {:error, error}.

Request to read a text file.

Response to a read text file request.

Request to release a terminal.

Response to a release terminal request.

JSON-RPC Request ID. Can be null, integer, or string.

The outcome of a permission request.

Request from the agent asking the client for permission to perform a tool call.

Response from the client to a permission request.

A resource that the server is capable of reading.

Request to resume an existing session without replaying history. (Unstable)

Response from resuming a session. (Unstable)

The sender or recipient of messages and data in a conversation.

A selected permission outcome containing the chosen option.

Type-specific session configuration option payload. (Unstable)

A session configuration option selector and its current state. (Unstable)

Semantic category for a session configuration option. (Unstable)

A single-value selector (dropdown) session configuration option payload. (Unstable)

A group of possible values for a session configuration option. (Unstable)

A possible value for a session configuration option. (Unstable)

Possible values for a session configuration option. (Unstable)

Capabilities for session/fork. (Unstable)

Information about a session returned by session/list. (Unstable)

Update to session metadata. (Unstable)

Capabilities for session/list. (Unstable)

The set of models and the one currently active. (Unstable)

Notification about a session update.

Capabilities for session/resume. (Unstable)

Tagged union representing different session update types.

Request to set a session configuration option value. (Unstable)

Response to session/set_config_option. (Unstable)

Request to set the model for a session. (Unstable)

Response to session/set_model. (Unstable)

Side behaviour for decoding JSON-RPC messages into typed structs.

A broadcast mechanism for observing RPC message streams.

A message that flows through the RPC stream.

Exit status of a terminal command.

Request to get output from a terminal.

Response containing terminal output.

Text provided to or from an LLM.

Text-based resource contents.

Represents a tool call that the language model has requested.

Content produced by a tool call. Tagged union with type discriminator.

Standard content block wrapper for tool call content.

A file location being accessed or modified by a tool.

Execution status of a tool call.

Embed a terminal created with terminal/create by its id.

An update to an existing tool call.

Optional fields that can be updated in a tool call.

Categories of tools that can be invoked.

Unstable types that are not yet part of the ACP specification.

Unstructured input with a hint.

Request to wait for a terminal command to exit.

Response containing terminal exit status.

Request to write a text file.

Response to a write text file request.