Skip to main content

Module acp

Module acp 

Source
Expand description

The ACP client transport (ADR-0007 §2).

A thin shell around crate::protocol::Translator, which holds all the protocol logic and none of the I/O. This file owns only the parts that cannot be tested without a process: spawning the agent, three threads, and the channel back into the app.

Follows ADR-0005’s worker template rather than deviating from it — blocking calls on a dedicated thread, results delivered as AppMessage. One subprocess with two pipes is not a concurrency problem that needs a reactor, which is why tokio is still not in the tree.

  stdout reader ──┐
                  ├─► worker (owns Translator + stdin) ──► sink ──► AppMessage::Agent
  AgentRequest ───┘
  stderr drain ─────► log            (drained, never blocked — see `spawn`)

Structs§

AcpAgent
A running ACP agent subprocess.