feat: Phase 1 ACP adoption — Codex adapter via ACP transport (#125)#127
feat: Phase 1 ACP adoption — Codex adapter via ACP transport (#125)#127
Conversation
Add a generic ACP adapter layer that delegates agent launch/session/lifecycle to ACP (Agent Client Protocol) instead of bespoke PTY scraping. This proves the architecture described in ADR-001 with Codex as the first adapter. New files: - src/adapters/acp/acp-client.ts — ACP client wrapping the SDK's ClientSideConnection (spawn, connect, prompt, cancel, disconnect) - src/adapters/acp/acp-adapter.ts — Generic AgentAdapter implementation backed by ACP (reusable for future Claude Code, OpenCode, Pi adapters) - src/adapters/codex-acp.ts — Thin Codex config layer using @zed-industries/codex-acp as the ACP bridge - 24 new tests (512 total, all passing) The existing Codex PTY adapter remains as fallback. Users can select the ACP transport with `--adapter codex-acp`. Closes #125 (Phase 1) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Nice direction overall, and CI is green, but I don't think this is merge-ready yet. Blocker 1: Blocker 2: the ACP adapter isn't discover-first yet. Docs audit: README is stale once this lands. The CLI reference and adapter docs still list only Happy path / architecture direction looks good; I'd just fix the packaging + discoverability story before merging. |
Features: - Phase 1 ACP adoption — Codex adapter via ACP transport (#127) - Callback metadata + lifecycle webhooks (#123) - ADR-001: adopt ACP as primary agent interface (#126) - Stateless daemon core (#117) Fixes: - Eliminate pending- session IDs — resolve real ID at launch (#131) - Webhook numeric exit_status + compatible HMAC headers (#128) - Daemon env derivation at spawn time (#119) - Binary resolve util update (#121) Docs: - Full documentation audit and alignment (#132)
Features: - Phase 1 ACP adoption — Codex adapter via ACP transport (#127) - Callback metadata + lifecycle webhooks (#123) - ADR-001: adopt ACP as primary agent interface (#126) - Stateless daemon core (#117) Fixes: - Eliminate pending- session IDs — resolve real ID at launch (#131) - Webhook numeric exit_status + compatible HMAC headers (#128) - Daemon env derivation at spawn time (#119) - Binary resolve util update (#121) Docs: - Full documentation audit and alignment (#132) Co-authored-by: Doink (OpenClaw) <charlie+doink@kindo.ai>
Summary
Implements Phase 1 of ADR-001 (merged in #126): adopt ACP as the primary agent interface for agentctl.
What's included
src/adapters/acp/) — reusable ACP transport layersrc/adapters/acp/acp-client.ts) — session lifecycle management (create, send, poll, terminate)src/adapters/codex-acp.ts) — launches Codex via ACP instead of PTYcodex-acpavailable as adapter option inagentctl launchStats
Testing
Phase 1 of #125.