Thin connectrpc client over the generated
[polyc_proto::proto::polychrome::agent::v1::AgentServiceClient].
Both the operator CLI (polychrome send) and the reference-edge receiver dial the
external-facing AgentService with the same Connect-streaming dance: build
a connect-rust client, send one [AgentRequest], drain the
AgentResponse
stream, and render each non-empty content block to user-visible text. This
crate is the single home for that logic so the two call sites can't drift.
RPC-client concerns deliberately live here rather than in
polyc-agent (the turn-loop crate, the wrong layer for a transport
client).
For v1 the whole turn is collected into a single string and returned at
end-of-turn; incremental streaming (e.g. Slack chat.appendStream) is a
follow-up that can build on the same client.