pub trait Server: Sync {
Show 18 methods
// Required methods
fn send(
&self,
req: SendRequest,
) -> impl Future<Output = Result<SendResponse>> + Send;
fn stream(
&self,
req: StreamRequest,
) -> impl Stream<Item = Result<StreamEvent>> + Send;
fn download(
&self,
req: DownloadRequest,
) -> impl Stream<Item = Result<DownloadEvent>> + Send;
fn ping(&self) -> impl Future<Output = Result<()>> + Send;
fn hub(
&self,
package: CompactString,
action: HubAction,
) -> impl Stream<Item = Result<DownloadEvent>> + Send;
fn list_sessions(
&self,
) -> impl Future<Output = Result<Vec<SessionInfo>>> + Send;
fn kill_session(
&self,
session: u64,
) -> impl Future<Output = Result<bool>> + Send;
fn list_tasks(&self) -> impl Future<Output = Result<Vec<TaskInfo>>> + Send;
fn kill_task(
&self,
task_id: u64,
) -> impl Future<Output = Result<bool>> + Send;
fn approve_task(
&self,
task_id: u64,
response: String,
) -> impl Future<Output = Result<bool>> + Send;
fn evaluate(
&self,
req: SendRequest,
) -> impl Future<Output = Result<bool>> + Send;
fn subscribe_tasks(&self) -> impl Stream<Item = Result<TaskEvent>> + Send;
fn list_downloads(
&self,
) -> impl Future<Output = Result<Vec<DownloadInfo>>> + Send;
fn subscribe_downloads(
&self,
) -> impl Stream<Item = Result<DownloadEvent>> + Send;
fn get_config(&self) -> impl Future<Output = Result<String>> + Send;
fn set_config(
&self,
config: String,
) -> impl Future<Output = Result<()>> + Send;
fn memory_query(
&self,
query: MemoryOp,
) -> impl Future<Output = Result<MemoryResult>> + Send;
// Provided method
fn dispatch(
&self,
msg: ClientMessage,
) -> impl Stream<Item = ServerMessage> + Send + '_ { ... }
}Expand description
Server-side protocol handler.
Each method corresponds to one ClientMessage variant. Implementations
receive typed request structs and return typed responses — no enum matching
required. Streaming operations return impl Stream.
The provided dispatch method routes a raw
ClientMessage to the appropriate handler, returning a stream of
ServerMessages.
Required Methods§
Sourcefn send(
&self,
req: SendRequest,
) -> impl Future<Output = Result<SendResponse>> + Send
fn send( &self, req: SendRequest, ) -> impl Future<Output = Result<SendResponse>> + Send
Handle Send — run agent and return complete response.
Sourcefn stream(
&self,
req: StreamRequest,
) -> impl Stream<Item = Result<StreamEvent>> + Send
fn stream( &self, req: StreamRequest, ) -> impl Stream<Item = Result<StreamEvent>> + Send
Handle Stream — run agent and stream response events.
Sourcefn download(
&self,
req: DownloadRequest,
) -> impl Stream<Item = Result<DownloadEvent>> + Send
fn download( &self, req: DownloadRequest, ) -> impl Stream<Item = Result<DownloadEvent>> + Send
Handle Download — download model files with progress.
Sourcefn hub(
&self,
package: CompactString,
action: HubAction,
) -> impl Stream<Item = Result<DownloadEvent>> + Send
fn hub( &self, package: CompactString, action: HubAction, ) -> impl Stream<Item = Result<DownloadEvent>> + Send
Handle Hub — install or uninstall a hub package.
Sourcefn list_sessions(&self) -> impl Future<Output = Result<Vec<SessionInfo>>> + Send
fn list_sessions(&self) -> impl Future<Output = Result<Vec<SessionInfo>>> + Send
Handle Sessions — list active sessions.
Sourcefn kill_session(
&self,
session: u64,
) -> impl Future<Output = Result<bool>> + Send
fn kill_session( &self, session: u64, ) -> impl Future<Output = Result<bool>> + Send
Handle Kill — close a session by ID.
Sourcefn list_tasks(&self) -> impl Future<Output = Result<Vec<TaskInfo>>> + Send
fn list_tasks(&self) -> impl Future<Output = Result<Vec<TaskInfo>>> + Send
Handle Tasks — list tasks in the task registry.
Sourcefn kill_task(&self, task_id: u64) -> impl Future<Output = Result<bool>> + Send
fn kill_task(&self, task_id: u64) -> impl Future<Output = Result<bool>> + Send
Handle KillTask — cancel a task by ID.
Sourcefn approve_task(
&self,
task_id: u64,
response: String,
) -> impl Future<Output = Result<bool>> + Send
fn approve_task( &self, task_id: u64, response: String, ) -> impl Future<Output = Result<bool>> + Send
Handle Approve — approve a blocked task’s inbox item.
Sourcefn evaluate(
&self,
req: SendRequest,
) -> impl Future<Output = Result<bool>> + Send
fn evaluate( &self, req: SendRequest, ) -> impl Future<Output = Result<bool>> + Send
Handle Evaluate — decide whether the agent should respond (DD#39).
Sourcefn subscribe_tasks(&self) -> impl Stream<Item = Result<TaskEvent>> + Send
fn subscribe_tasks(&self) -> impl Stream<Item = Result<TaskEvent>> + Send
Handle SubscribeTasks — stream task lifecycle events.
Sourcefn list_downloads(
&self,
) -> impl Future<Output = Result<Vec<DownloadInfo>>> + Send
fn list_downloads( &self, ) -> impl Future<Output = Result<Vec<DownloadInfo>>> + Send
Handle Downloads — list downloads in the registry.
Sourcefn subscribe_downloads(
&self,
) -> impl Stream<Item = Result<DownloadEvent>> + Send
fn subscribe_downloads( &self, ) -> impl Stream<Item = Result<DownloadEvent>> + Send
Handle SubscribeDownloads — stream download lifecycle events.
Sourcefn get_config(&self) -> impl Future<Output = Result<String>> + Send
fn get_config(&self) -> impl Future<Output = Result<String>> + Send
Handle GetConfig — return the full daemon config as JSON.
Sourcefn set_config(&self, config: String) -> impl Future<Output = Result<()>> + Send
fn set_config(&self, config: String) -> impl Future<Output = Result<()>> + Send
Handle SetConfig — replace the daemon config from JSON.
Sourcefn memory_query(
&self,
query: MemoryOp,
) -> impl Future<Output = Result<MemoryResult>> + Send
fn memory_query( &self, query: MemoryOp, ) -> impl Future<Output = Result<MemoryResult>> + Send
Handle MemoryQuery — query the memory graph.
Provided Methods§
Sourcefn dispatch(
&self,
msg: ClientMessage,
) -> impl Stream<Item = ServerMessage> + Send + '_
fn dispatch( &self, msg: ClientMessage, ) -> impl Stream<Item = ServerMessage> + Send + '_
Dispatch a ClientMessage to the appropriate handler method.
Returns a stream of ServerMessages. Request-response operations
yield exactly one message; streaming operations yield many.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.