Skip to main content

Module session

Module session 

Source
Expand description

Server-side session state — shared across all connections.

Structs§

ApprovalGate
Builder for constructing a ServerState with embedder-supplied dependencies. Embedders (e.g. tokhn-daemon) use this to inject their own memgine handle and other shared infrastructure; the Approval-gate policy for high-risk WS methods.
ChatSession
In-flight agents.chat session bookkeeping. Created when a host client calls agents.chat, removed when the agent emits a terminal agent.chat.event (kind: "done" or "error"), when either side disconnects, or when the host cancels via agents.chat.cancel.
ClientSession
Per-client session.
ServerState
Global server state shared across all connections.
ServerStateConfig
standalone car-server binary uses ServerState::standalone which calls with_config under the hood.
WsChannel
Shared write half of the WebSocket, plus pending callback channels. write is type-erased via WsSink so the dispatcher can run against any transport-specific WebSocketStream (TCP or UDS today; axum-bridged in future) without templatizing every consumer.
WsMemgineIngestSink
Per-meeting fanout sink that ingests transcript text into a session-scoped memgine using the Arc<tokio::sync::Mutex<...>> wrapper, then forwards every event upstream untouched.
WsToolExecutor
Tool executor that sends callbacks to the client over WebSocket.
WsVoiceEventSink
Voice event sink that forwards events to a specific WebSocket client as voice.event JSON-RPC notifications.

Enums§

A2aRouteAuth
Server-side credentials for continuing an A2A-owned A2UI surface.

Type Aliases§

WsSink
Type-erased WebSocket sink. The dispatch loop accepts either a WebSocketStream<TcpStream> (the legacy car-server TCP listener) or a WebSocketStream<UnixStream> (the daemon-as-default UDS listener) — both implement Sink<Message, Error = WsError> after the tungstenite handshake. Erasing the type here avoids cascading a generic parameter through every WsChannel / Session / ServerState touchpoint in the dispatcher.