Skip to main content

AgentService

Trait AgentService 

Source
pub trait AgentService: Send {
    // Required methods
    fn integration(&self) -> AgentIntegration;
    fn send(&mut self, request: AgentRequest);
    fn poll(&mut self) -> Vec<AgentEvent>;

    // Provided method
    fn capabilities(&self) -> ClientCapabilities { ... }
}
Expand description

The ACP client surface.

Behind a trait so the wire format is isolated (ADR-0003’s spec-churn mitigation), so a non-ACP backend could be substituted, and — most usefully day to day — so the whole review loop is testable against a scripted agent replaying a recorded stream.

Required Methods§

Source

fn integration(&self) -> AgentIntegration

Source

fn send(&mut self, request: AgentRequest)

Queue work for the agent. Never blocks the caller.

Source

fn poll(&mut self) -> Vec<AgentEvent>

Take whatever the agent has produced since the last call.

A drain rather than a callback so the single state owner stays in control of when events are applied (ARCHITECTURE.md §7.1).

Provided Methods§

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§