teknium1
|
e80786cc94
|
feat: add ACP (Agent Client Protocol) server for editor integration
Adds full ACP support enabling hermes-agent to work as a coding agent
inside VS Code (via vscode-acp extension), Zed, JetBrains IDEs, and
any ACP-compatible editor.
## New module: acp_adapter/
- server.py: HermesACPAgent implementing all 15 Agent protocol methods
(initialize, authenticate, new/load/list/fork/resume session, prompt,
cancel, set mode/model/config, on_connect)
- session.py: Thread-safe SessionManager with per-session AIAgent lifecycle
- events.py: Callback factories translating hermes callbacks to ACP
session_update notifications (tool_call, agent_thought, agent_message)
- tools.py: Tool kind mapping (20+ tools → read/edit/execute/search/fetch/think)
and content builders (diffs for file edits, terminal output, text previews)
- permissions.py: Bridges hermes approval_callback to ACP requestPermission
RPC for dangerous command approval dialogs in the editor
- auth.py: Provider credential verification
- entry.py: CLI entry point with .env loading and stderr logging
## Integration points
- run_agent.py: ACP tool bridge hook in _execute_tool_calls() for
delegating file/terminal operations to the editor
- hermes_cli/main.py: 'hermes acp' subcommand
- pyproject.toml: [acp] optional dependency, hermes-acp entry point,
included in [all] extras (auto-installed via install.sh)
## Supporting files
- acp_registry/agent.json: ACP Registry manifest
- acp_registry/icon.svg: Hermes caduceus icon
- docs/acp-setup.md: User-facing setup guide for VS Code, Zed, JetBrains
## Tests
- 41 new tests across 5 test files covering tools, sessions, permissions,
server lifecycle, and auth
- Full test suite: 2901 passed, 0 failures
## User flow
1. hermes is already installed (install.sh)
2. Install 'ACP Client' extension in VS Code
3. Configure: command='hermes', args=['acp']
4. Chat with Hermes in the editor — diffs, terminals, approval
dialogs, thinking blocks all rendered natively
|
2026-03-10 08:41:11 -07:00 |
|