mirror of
https://github.com/mikeyobrien/ralph-orchestrator.git
synced 2026-04-25 07:05:57 +03:00
[PR #5] [MERGED] feat(acp): Add ACP (Agent Communication Protocol) adapter for CLI agents #82
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/ralph-orchestrator#82
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/mikeyobrien/ralph-orchestrator/pull/5
Author: @mikeyobrien
Created: 12/14/2025
Status: ✅ Merged
Merged: 12/14/2025
Merged by: @mikeyobrien
Base:
main← Head:feature/acp-support📝 Commits (10+)
9878b7bfeat(acp): add ACPProtocol class for JSON-RPC 2.0 handling9dbbf74feat(acp): add ACPMessage data models for typed message handling640b984docs: update progress tracking for ACP Step 2 completionb44c95afeat(acp): add ACPClient subprocess managera1afdf9docs: update progress tracking for ACP Step 3 completion6ffdce3feat(acp): implement basic ACPAdapter with initialize/session flow2549553feat(acp): implement session/prompt and streaming update handlingc98fcbddocs: update progress tracking for ACP Step 5 completion4e05d46Ralph checkpoint 5099ac0dfeat(acp): implement permission handler with four modes📊 Changes
30 files changed (+9040 additions, -43 deletions)
View changed files
➕
.agent/scratchpad.md(+12 -0)📝
.gitignore(+1 -0)📝
PROMPT.md(+457 -1)📝
README.md(+118 -8)📝
docs/api/cli.md(+26 -3)📝
docs/changelog.md(+45 -0)📝
docs/guide/agents.md(+214 -10)📝
docs/guide/configuration.md(+73 -1)📝
docs/index.md(+8 -5)📝
docs/quick-start.md(+13 -1)📝
src/ralph_orchestrator/__main__.py(+33 -2)📝
src/ralph_orchestrator/adapters/__init__.py(+9 -2)➕
src/ralph_orchestrator/adapters/acp.py(+750 -0)➕
src/ralph_orchestrator/adapters/acp_client.py(+328 -0)➕
src/ralph_orchestrator/adapters/acp_handlers.py(+890 -0)➕
src/ralph_orchestrator/adapters/acp_models.py(+522 -0)➕
src/ralph_orchestrator/adapters/acp_protocol.py(+214 -0)📝
src/ralph_orchestrator/main.py(+2 -1)📝
src/ralph_orchestrator/metrics.py(+4 -0)📝
src/ralph_orchestrator/orchestrator.py(+36 -9)...and 10 more files
📄 Description
Summary
auto_approve,deny_all,allowlist, andinteractive-a acp,--acp-agent,--acp-permission-mode) and configuration (ralph.yml)Changes
New Files (6 source, 9 test):
src/ralph_orchestrator/adapters/acp.py- Main ACPAdapter classsrc/ralph_orchestrator/adapters/acp_protocol.py- JSON-RPC 2.0 message handlingsrc/ralph_orchestrator/adapters/acp_client.py- Subprocess manager with async I/Osrc/ralph_orchestrator/adapters/acp_models.py- Typed data models for ACP messagessrc/ralph_orchestrator/adapters/acp_handlers.py- Permission, file, and terminal handlerstests/test_acp_*.py- 305 unit tests covering all functionalityModified Files:
src/ralph_orchestrator/__main__.py- CLI argument parsing for ACP optionssrc/ralph_orchestrator/main.py- Added ACP to AgentType enumsrc/ralph_orchestrator/orchestrator.py- ACPAdapter initializationsrc/ralph_orchestrator/metrics.py- ACP cost tracking entry (zero cost - billing via underlying agent)README.md- Updated documentation with ACP usageFeatures
initialize→session/new→session/promptflowagent_message_chunk,agent_thought_chunk,tool_callnotificationsfs/read_text_file,fs/write_text_filewith security validationterminal/create,terminal/output,terminal/wait_for_exit,terminal/kill,terminal/releaseralph.ymland environment variables (RALPH_ACP_AGENT,RALPH_ACP_PERMISSION_MODE,RALPH_ACP_TIMEOUT)Usage
Test plan
Breaking Changes
None - this is an additive feature.
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.