ServerContext are not components in this sense. They are runtime context passed into the components.
Channel Manager
The Channel Manager owns the boundary between Hiro Server and channel plugins. It starts enabled channel plugins as subprocesses, accepts their local WebSocket connections, and routes plugin messages into the server. The mandatorydevices channel plugin bridges device nodes through Hiro Gate.
Inputs: Plugin registration, inbound UnifiedMessage payloads, channel events, and outbound messages from the Communication Manager.
Outputs: Plugin configuration, outbound channel.send messages, channel events, and stop signals during shutdown.
Communication Manager
The Communication Manager is the internal message router. It sits between the Channel Manager and the Agent Manager. It validates inbound messages, routes requests and events, runs message adaptation, queues agent-ready messages, and sends outbound messages back to channels. Inputs: Raw inbound message dictionaries from the Channel Manager, plus outboundUnifiedMessage objects from the Agent Manager and other server services.
Outputs: Adapted messages on the Agent Manager inbound queue, request responses, events such as message.received, and outbound messages to the Channel Manager.
Agent Manager
The Agent Manager runs the assistant side of Hiro Server. It consumes prepared inbound messages from the Communication Manager, resolves the conversation and character, invokes the LLM agent, and sends replies back through the Communication Manager. Inputs: Agent-readyUnifiedMessage objects, workspace preferences, character configuration, conversation history, and available tools.
Outputs: Text replies, saved conversation messages, and optional message.voiced events when voice replies are available.
