# agent_client_protocol v0.1.0 - API Reference

## Modules

- [ACP](ACP.md): Agent Client Protocol (ACP) for Elixir.
- [ACP.Agent](ACP.Agent.md): Behaviour defining the interface that all ACP-compliant agents must implement.
- [ACP.AgentCapabilities](ACP.AgentCapabilities.md)
- [ACP.AgentNotification](ACP.AgentNotification.md): Enum of all possible notifications from the agent to the client.
- [ACP.AgentRequest](ACP.AgentRequest.md): Enum of all possible requests from the agent to the client.
- [ACP.AgentResponse](ACP.AgentResponse.md)
- [ACP.AgentSide](ACP.AgentSide.md): Agent side of an ACP connection.
- [ACP.AgentSideConnection](ACP.AgentSideConnection.md): An agent-side connection to a client.
- [ACP.AgentTypes](ACP.AgentTypes.md): Agent-side types for the Agent Client Protocol.
- [ACP.Annotations](ACP.Annotations.md): Optional annotations for the client.
- [ACP.AudioContent](ACP.AudioContent.md): Audio provided to or from an LLM.
- [ACP.AuthMethod](ACP.AuthMethod.md)
- [ACP.AuthenticateRequest](ACP.AuthenticateRequest.md)
- [ACP.AuthenticateResponse](ACP.AuthenticateResponse.md)
- [ACP.AvailableCommand](ACP.AvailableCommand.md): A command available to the user.
- [ACP.AvailableCommandInput](ACP.AvailableCommandInput.md): Input specification for an available command.
- [ACP.AvailableCommandsUpdate](ACP.AvailableCommandsUpdate.md): Update indicating the set of available commands has changed.
- [ACP.BlobResourceContents](ACP.BlobResourceContents.md): Binary resource contents.
- [ACP.CancelNotification](ACP.CancelNotification.md)
- [ACP.Client](ACP.Client.md): Behaviour defining the interface that ACP-compliant clients must implement.
- [ACP.ClientCapabilities](ACP.ClientCapabilities.md): Capabilities declared by the client.
- [ACP.ClientNotification](ACP.ClientNotification.md)
- [ACP.ClientRequest](ACP.ClientRequest.md)
- [ACP.ClientResponse](ACP.ClientResponse.md): Enum of all possible responses from the client to the agent.
- [ACP.ClientSide](ACP.ClientSide.md): Client side of an ACP connection.
- [ACP.ClientSideConnection](ACP.ClientSideConnection.md): A client-side connection to an agent.
- [ACP.ConfigOptionUpdate](ACP.ConfigOptionUpdate.md): Session configuration options have been updated. (Unstable)
- [ACP.Connection](ACP.Connection.md): GenServer managing a bidirectional JSON-RPC 2.0 connection over IO streams.
- [ACP.ContentBlock](ACP.ContentBlock.md): Content blocks represent displayable information in ACP.
- [ACP.ContentChunk](ACP.ContentChunk.md): A chunk of content in a session update.
- [ACP.CreateTerminalRequest](ACP.CreateTerminalRequest.md): Request to create a terminal session.
- [ACP.CreateTerminalResponse](ACP.CreateTerminalResponse.md): Response to a create terminal request.
- [ACP.CurrentModeUpdate](ACP.CurrentModeUpdate.md): Update indicating the current mode has changed.
- [ACP.Diff](ACP.Diff.md): A diff representing file modifications.
- [ACP.EmbeddedResource](ACP.EmbeddedResource.md): The contents of a resource, embedded into a prompt or tool call result.
- [ACP.EmbeddedResourceResource](ACP.EmbeddedResourceResource.md): Resource content that can be embedded in a message (untagged union).
- [ACP.EnvVariable](ACP.EnvVariable.md)
- [ACP.Error](ACP.Error.md): JSON-RPC error object.
- [ACP.Ext](ACP.Ext.md): Extension types for protocol extensibility.
- [ACP.ExtNotification](ACP.ExtNotification.md): Arbitrary notification not part of the ACP spec.
- [ACP.ExtRequest](ACP.ExtRequest.md): Arbitrary request not part of the ACP spec.
- [ACP.ExtResponse](ACP.ExtResponse.md): Response to an ExtRequest.
- [ACP.FileSystemCapability](ACP.FileSystemCapability.md): File system capabilities supported by the client.
- [ACP.ForkSessionRequest](ACP.ForkSessionRequest.md): Request to fork an existing session. (Unstable)
- [ACP.ForkSessionResponse](ACP.ForkSessionResponse.md): Response from forking a session. (Unstable)
- [ACP.HttpHeader](ACP.HttpHeader.md)
- [ACP.ImageContent](ACP.ImageContent.md): An image provided to or from an LLM.
- [ACP.Implementation](ACP.Implementation.md)
- [ACP.InitializeRequest](ACP.InitializeRequest.md)
- [ACP.InitializeResponse](ACP.InitializeResponse.md)
- [ACP.JSONHelpers](ACP.JSONHelpers.md): JSON serialization helpers for ACP types.
- [ACP.KillTerminalCommandRequest](ACP.KillTerminalCommandRequest.md): Request to kill a terminal command.
- [ACP.KillTerminalCommandResponse](ACP.KillTerminalCommandResponse.md): Response to a kill terminal command request.
- [ACP.ListSessionsRequest](ACP.ListSessionsRequest.md): Request to list existing sessions. (Unstable)
- [ACP.ListSessionsResponse](ACP.ListSessionsResponse.md): Response from listing sessions. (Unstable)
- [ACP.LoadSessionRequest](ACP.LoadSessionRequest.md)
- [ACP.LoadSessionResponse](ACP.LoadSessionResponse.md)
- [ACP.MaybeUndefined](ACP.MaybeUndefined.md): A three-state value type: `:undefined`, `nil` (null), or `{:value, term}`.
- [ACP.McpCapabilities](ACP.McpCapabilities.md)
- [ACP.McpServer](ACP.McpServer.md)
- [ACP.McpServerHttp](ACP.McpServerHttp.md)
- [ACP.McpServerSse](ACP.McpServerSse.md)
- [ACP.McpServerStdio](ACP.McpServerStdio.md)
- [ACP.MessageHandler](ACP.MessageHandler.md): Behaviour for handling incoming JSON-RPC requests and notifications.
- [ACP.MethodNames](ACP.MethodNames.md): JSON-RPC method names for all ACP methods.
- [ACP.ModelInfo](ACP.ModelInfo.md): Information about a selectable model. (Unstable)
- [ACP.NewSessionRequest](ACP.NewSessionRequest.md)
- [ACP.NewSessionResponse](ACP.NewSessionResponse.md)
- [ACP.PermissionOption](ACP.PermissionOption.md): An option presented to the user for a permission request.
- [ACP.PermissionOptionKind](ACP.PermissionOptionKind.md): The kind of permission option.
- [ACP.Plan](ACP.Plan.md): Execution plan for complex tasks.
- [ACP.PlanEntry](ACP.PlanEntry.md): A single entry in the execution plan.
- [ACP.PromptCapabilities](ACP.PromptCapabilities.md)
- [ACP.PromptRequest](ACP.PromptRequest.md)
- [ACP.PromptResponse](ACP.PromptResponse.md)
- [ACP.ProtocolVersion](ACP.ProtocolVersion.md): Protocol version identifier. Only bumped for breaking changes.
- [ACP.RPC](ACP.RPC.md): JSON-RPC 2.0 primitives for the Agent Client Protocol.
- [ACP.RPC.JsonRpcMessage](ACP.RPC.JsonRpcMessage.md): Wraps a JSON-RPC message with the required `jsonrpc: "2.0"` field.
- [ACP.RPC.Notification](ACP.RPC.Notification.md): JSON-RPC 2.0 Notification object (no id, no response expected).
- [ACP.RPC.Request](ACP.RPC.Request.md): JSON-RPC 2.0 Request object.
- [ACP.RPC.Response](ACP.RPC.Response.md): JSON-RPC 2.0 Response object. Either {:ok, result} or {:error, error}.
- [ACP.ReadTextFileRequest](ACP.ReadTextFileRequest.md): Request to read a text file.
- [ACP.ReadTextFileResponse](ACP.ReadTextFileResponse.md): Response to a read text file request.
- [ACP.ReleaseTerminalRequest](ACP.ReleaseTerminalRequest.md): Request to release a terminal.
- [ACP.ReleaseTerminalResponse](ACP.ReleaseTerminalResponse.md): Response to a release terminal request.
- [ACP.RequestId](ACP.RequestId.md): JSON-RPC Request ID. Can be null, integer, or string.
- [ACP.RequestPermissionOutcome](ACP.RequestPermissionOutcome.md): The outcome of a permission request.
- [ACP.RequestPermissionRequest](ACP.RequestPermissionRequest.md): Request from the agent asking the client for permission to perform a tool call.
- [ACP.RequestPermissionResponse](ACP.RequestPermissionResponse.md): Response from the client to a permission request.
- [ACP.ResourceLink](ACP.ResourceLink.md): A resource that the server is capable of reading.
- [ACP.ResumeSessionRequest](ACP.ResumeSessionRequest.md): Request to resume an existing session without replaying history. (Unstable)
- [ACP.ResumeSessionResponse](ACP.ResumeSessionResponse.md): Response from resuming a session. (Unstable)
- [ACP.Role](ACP.Role.md): The sender or recipient of messages and data in a conversation.
- [ACP.SelectedPermissionOutcome](ACP.SelectedPermissionOutcome.md): A selected permission outcome containing the chosen option.
- [ACP.SessionCapabilities](ACP.SessionCapabilities.md)
- [ACP.SessionConfigKind](ACP.SessionConfigKind.md): Type-specific session configuration option payload. (Unstable)
- [ACP.SessionConfigOption](ACP.SessionConfigOption.md): A session configuration option selector and its current state. (Unstable)
- [ACP.SessionConfigOptionCategory](ACP.SessionConfigOptionCategory.md): Semantic category for a session configuration option. (Unstable)
- [ACP.SessionConfigSelect](ACP.SessionConfigSelect.md): A single-value selector (dropdown) session configuration option payload. (Unstable)
- [ACP.SessionConfigSelectGroup](ACP.SessionConfigSelectGroup.md): A group of possible values for a session configuration option. (Unstable)
- [ACP.SessionConfigSelectOption](ACP.SessionConfigSelectOption.md): A possible value for a session configuration option. (Unstable)
- [ACP.SessionConfigSelectOptions](ACP.SessionConfigSelectOptions.md): Possible values for a session configuration option. (Unstable)
- [ACP.SessionForkCapabilities](ACP.SessionForkCapabilities.md): Capabilities for session/fork. (Unstable)
- [ACP.SessionInfo](ACP.SessionInfo.md): Information about a session returned by session/list. (Unstable)
- [ACP.SessionInfoUpdate](ACP.SessionInfoUpdate.md): Update to session metadata. (Unstable)
- [ACP.SessionListCapabilities](ACP.SessionListCapabilities.md): Capabilities for session/list. (Unstable)
- [ACP.SessionMode](ACP.SessionMode.md)
- [ACP.SessionModeState](ACP.SessionModeState.md)
- [ACP.SessionModelState](ACP.SessionModelState.md): The set of models and the one currently active. (Unstable)
- [ACP.SessionNotification](ACP.SessionNotification.md): Notification about a session update.
- [ACP.SessionResumeCapabilities](ACP.SessionResumeCapabilities.md): Capabilities for session/resume. (Unstable)
- [ACP.SessionUpdate](ACP.SessionUpdate.md): Tagged union representing different session update types.
- [ACP.SetSessionConfigOptionRequest](ACP.SetSessionConfigOptionRequest.md): Request to set a session configuration option value. (Unstable)
- [ACP.SetSessionConfigOptionResponse](ACP.SetSessionConfigOptionResponse.md): Response to session/set_config_option. (Unstable)
- [ACP.SetSessionModeRequest](ACP.SetSessionModeRequest.md)
- [ACP.SetSessionModeResponse](ACP.SetSessionModeResponse.md)
- [ACP.SetSessionModelRequest](ACP.SetSessionModelRequest.md): Request to set the model for a session. (Unstable)
- [ACP.SetSessionModelResponse](ACP.SetSessionModelResponse.md): Response to session/set_model. (Unstable)
- [ACP.Side](ACP.Side.md): Side behaviour for decoding JSON-RPC messages into typed structs.
- [ACP.StopReason](ACP.StopReason.md)
- [ACP.StreamBroadcast](ACP.StreamBroadcast.md): A broadcast mechanism for observing RPC message streams.
- [ACP.StreamMessage](ACP.StreamMessage.md): A message that flows through the RPC stream.
- [ACP.TerminalExitStatus](ACP.TerminalExitStatus.md): Exit status of a terminal command.
- [ACP.TerminalOutputRequest](ACP.TerminalOutputRequest.md): Request to get output from a terminal.
- [ACP.TerminalOutputResponse](ACP.TerminalOutputResponse.md): Response containing terminal output.
- [ACP.TextContent](ACP.TextContent.md): Text provided to or from an LLM.
- [ACP.TextResourceContents](ACP.TextResourceContents.md): Text-based resource contents.
- [ACP.ToolCall](ACP.ToolCall.md): Represents a tool call that the language model has requested.
- [ACP.ToolCallContent](ACP.ToolCallContent.md): Content produced by a tool call. Tagged union with type discriminator.
- [ACP.ToolCallContentWrapper](ACP.ToolCallContentWrapper.md): Standard content block wrapper for tool call content.
- [ACP.ToolCallLocation](ACP.ToolCallLocation.md): A file location being accessed or modified by a tool.
- [ACP.ToolCallStatus](ACP.ToolCallStatus.md): Execution status of a tool call.
- [ACP.ToolCallTerminal](ACP.ToolCallTerminal.md): Embed a terminal created with terminal/create by its id.
- [ACP.ToolCallUpdate](ACP.ToolCallUpdate.md): An update to an existing tool call.
- [ACP.ToolCallUpdateFields](ACP.ToolCallUpdateFields.md): Optional fields that can be updated in a tool call.
- [ACP.ToolKind](ACP.ToolKind.md): Categories of tools that can be invoked.
- [ACP.Unstable](ACP.Unstable.md): Unstable types that are not yet part of the ACP specification.
- [ACP.UnstructuredCommandInput](ACP.UnstructuredCommandInput.md): Unstructured input with a hint.
- [ACP.WaitForTerminalExitRequest](ACP.WaitForTerminalExitRequest.md): Request to wait for a terminal command to exit.
- [ACP.WaitForTerminalExitResponse](ACP.WaitForTerminalExitResponse.md): Response containing terminal exit status.
- [ACP.WriteTextFileRequest](ACP.WriteTextFileRequest.md): Request to write a text file.
- [ACP.WriteTextFileResponse](ACP.WriteTextFileResponse.md): Response to a write text file request.

