Skip to main content

ConductorImpl

Struct ConductorImpl 

Source
pub struct ConductorImpl<Host: ConductorHostRole> { /* private fields */ }
Expand description

The conductor manages the proxy chain lifecycle and message routing.

It maintains connections to all components in the chain and routes messages bidirectionally between the editor, components, and agent.

Implementations§

Source§

impl<Host: ConductorHostRole> ConductorImpl<Host>

Source

pub fn new( host: Host, name: impl ToString, instantiator: Host::Instantiator, mcp_bridge_mode: McpBridgeMode, ) -> Self

Source§

impl ConductorImpl<Agent>

Source

pub fn new_agent( name: impl ToString, instantiator: impl InstantiateProxiesAndAgent + 'static, mcp_bridge_mode: McpBridgeMode, ) -> Self

Create a conductor in agent mode (the last component is an agent).

Source§

impl ConductorImpl<Proxy>

Source

pub fn new_proxy( name: impl ToString, instantiator: impl InstantiateProxies + 'static, mcp_bridge_mode: McpBridgeMode, ) -> Self

Create a conductor in proxy mode (forwards to another conductor).

Source§

impl<Host: ConductorHostRole> ConductorImpl<Host>

Source

pub fn trace_to(self, dest: impl WriteEvent) -> Self

Enable trace logging to a custom destination.

Use sacp-trace-viewer to view the trace as an interactive sequence diagram.

Source

pub fn trace_to_path(self, path: impl AsRef<Path>) -> Result<Self>

Enable trace logging to a file path.

Events will be written as newline-delimited JSON (.jsons format). Use sacp-trace-viewer to view the trace as an interactive sequence diagram.

Source

pub fn with_trace_writer(self, writer: TraceWriter) -> Self

Enable trace logging with an existing TraceWriter.

Source

pub async fn run(self, transport: impl ConnectTo<Host>) -> Result<(), Error>

Run the conductor with a transport.

Trait Implementations§

Source§

impl<Host: ConductorHostRole> ConnectTo<<Host as Role>::Counterpart> for ConductorImpl<Host>

Source§

async fn connect_to(self, client: impl ConnectTo<Host>) -> Result<(), Error>

Serve this component by forwarding to a client component. Read more
Source§

fn into_channel_and_future( self, ) -> (Channel, Pin<Box<dyn Future<Output = Result<(), Error>> + Send>>)
where Self: Sized,

Convert this component into a channel endpoint and server future. Read more

Auto Trait Implementations§

§

impl<Host> Freeze for ConductorImpl<Host>
where <Host as Role>::Counterpart: Sized, Host: Freeze, <Host as ConductorHostRole>::Instantiator: Freeze,

§

impl<Host> !RefUnwindSafe for ConductorImpl<Host>

§

impl<Host> Send for ConductorImpl<Host>
where <Host as Role>::Counterpart: Sized,

§

impl<Host> !Sync for ConductorImpl<Host>

§

impl<Host> Unpin for ConductorImpl<Host>
where <Host as Role>::Counterpart: Sized, Host: Unpin, <Host as ConductorHostRole>::Instantiator: Unpin,

§

impl<Host> UnsafeUnpin for ConductorImpl<Host>

§

impl<Host> !UnwindSafe for ConductorImpl<Host>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoMaybeUndefined<T> for T

Source§

impl<T> IntoOption<T> for T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,