rait-09_obsidian-agent-client/docs/reference/acp-support.md

106 lines
3.4 KiB
Markdown

# ACP Protocol Support
This page documents which Agent Client Protocol (ACP) features are supported by this plugin.
## What is ACP?
The [Agent Client Protocol (ACP)](https://agentclientprotocol.com/) is an open standard for communication between AI agents and client applications. It defines how clients send prompts, receive responses, handle permissions, and manage sessions.
Agent Client implements ACP as a **client**, communicating with ACP-compatible agents like Claude Code, Codex, and Gemini CLI.
## Methods
### Client → Agent
Methods the plugin can call on agents.
| Method | Status | Notes |
|--------|--------|-------|
| `initialize` | ✅ Supported | |
| `authenticate` | ✅ Supported | |
| `session/new` | ✅ Supported | |
| `session/prompt` | ✅ Supported | |
| `session/cancel` | ✅ Supported | |
| `session/set_mode` | ✅ Supported | |
| `session/load` | ✅ Supported | |
| `session/set_model` | ✅ Supported | Unstable API |
| `session/list` | ✅ Supported | Unstable API |
| `session/resume` | ✅ Supported | Unstable API |
| `session/fork` | ✅ Supported | Unstable API |
::: tip
Methods marked "Unstable API" may change in future ACP versions. They are prefixed with `unstable_` in the SDK.
:::
### Agent → Client (Notifications)
Session updates the plugin can receive from agents via `session/update`.
| Update Type | Status | Notes |
|-------------|--------|-------|
| `agent_message_chunk` | ✅ Supported | Text only |
| `agent_thought_chunk` | ✅ Supported | Text only |
| `user_message_chunk` | ✅ Supported | Text only; used for session history replay |
| `tool_call` | ✅ Supported | |
| `tool_call_update` | ✅ Supported | |
| `plan` | ✅ Supported | |
| `available_commands_update` | ✅ Supported | |
| `current_mode_update` | ✅ Supported | |
### Agent → Client (Requests)
Requests agents can make to the plugin.
| Method | Status | Notes |
|--------|--------|-------|
| `session/request_permission` | ✅ Supported | |
| `terminal/create` | ✅ Supported | |
| `terminal/output` | ✅ Supported | |
| `terminal/wait_for_exit` | ✅ Supported | |
| `terminal/kill` | ✅ Supported | |
| `terminal/release` | ✅ Supported | |
| `fs/read_text_file` | — | Agents use their own Read tools |
| `fs/write_text_file` | — | Agents use their own Write tools |
## Content Types
### Prompt Content (Client → Agent)
Content types the plugin can send in `session/prompt`.
| Type | Status | Notes |
|------|--------|-------|
| `text` | ✅ Supported | |
| `image` | ✅ Supported | Requires agent support |
| `audio` | ❌ Not supported | |
| `resource_link` | ❌ Not supported | |
| `resource` | ✅ Supported | Embedded context; requires agent support |
### Tool Call Content (Agent → Client)
Content types the plugin can display in tool calls.
| Type | Status | Notes |
|------|--------|-------|
| `diff` | ✅ Supported | |
| `terminal` | ✅ Supported | |
| `content` | ❌ Not supported | |
## Client Capabilities
Capabilities advertised to agents during initialization.
| Capability | Value |
|------------|-------|
| `fs.readTextFile` | `false` |
| `fs.writeTextFile` | `false` |
| `terminal` | `true` |
::: info
The plugin does not implement filesystem operations (`fs/read_text_file`, `fs/write_text_file`). Agents handle file operations through their own tools.
:::
## See Also
- [Agent Client Protocol Specification](https://agentclientprotocol.com/)
- [ACP Schema Reference](https://agentclientprotocol.com/protocol/schema)