Control Bus
The control bus provides a bidirectional command channel between operators, LLM agents, and edge SDKs. Commands are policy-checked, queued, and dispatched to targets via QUIC bidi streams. Domain simulators enable dry-run validation before live execution.
Command Queue
Rust Command (IssuedCommand)
auto-generated
/// A command queued by the UI, awaiting processing by the device/sim layer.
pub struct IssuedCommand {
pub id: CommandId,
/// Sim-time seconds when the command was issued.
pub issued_at: f64,
pub target: CommandTarget,
pub fields: Vec<FieldAssignment>,
pub status: CommandStatus,
/// Sim-time when the command was resolved (Acked / Failed / Timeout).
pub resolved_at: Option<f64>,
/// Human-readable description shown in the audit log.
pub label: String,
/// User or system that issued the command (backward-compat display string).
pub issued_by: String,
/// Typed principal identity (None during migration from legacy call sites).
pub principal_id: Option<PrincipalId>,
} CommandTarget Types
Entity(EntityId)— Single device or sensorGroup(GroupId)— Named entity group (e.g. "floor-3-hvac")Broadcast— All connected sources in a domain
Status Lifecycle
graph LR
P["Pending"] --> A["Acked"]
A --> C["Completed"]
P --> F["Failed"]
P --> V["Vetoed"]
A --> T["Timed Out"]
Policy Engine
- Veto rules: Block commands by action, target, or principal role
- Allow rules: Explicit allow-list overrides for specific principals
- ObjectSet expressions:
ObjectSet::Union,Intersection,Complementfor complex target scoping
Domain Simulators
HvacSimulator— Zone temp, damper, setpoint response curvesAviationSimulator— ADS-B trajectory, altitude, squawkRallySimulator— Stage splits, GPS trace, penalty timing
Bridges
The ActionBridge translates high-level TAI actions into concrete
bus commands. The SubscriptionBridge allows UI panes to subscribe
to command status updates via the event bus, enabling real-time feedback in the operator console.
Questions?
Reach out for help with integration, deployment, or custom domain codecs.