Per-resource state machine
Every bridge runs a per-resource state machine for each topic, service, action, or tool it mediates.SUSPENDED state. Re-authorization requires a fresh token bound to the current session. This allows real-time revocation without a restart.
The twelve bridges
bridge-mcp
MCP tool calls with risk classification. Security-enforcing proxy that sits between an AI agent and any number of downstream MCP servers.
bridge-ros2
ROS 2 topics, services, actions with physics extraction. Maps velocity, force, and position to SintCapabilityToken constraints.
bridge-a2a
Google A2A Protocol bridge for multi-agent coordination.
bridge-iot
Generic MQTT/CoAP edge IoT bridge with gateway session interception.
bridge-mqtt-sparkplug
MQTT Sparkplug profile with industrial command-tiering defaults.
bridge-opcua
OPC UA node and method mapping with safety-critical write/call promotion.
bridge-open-rmf
Open-RMF fleet and facility mapping for warehouse dispatch workflows.
bridge-grpc
gRPC service and method profile mapping with default tier assignment.
bridge-mavlink
MAVLink drone and UAV command bridge. Armed-state cross-system policy integration.
bridge-swarm
SwarmCoordinator for multi-robot collective constraints.
bridge-economy
Economy bridge with balance, budget, trust, and billing ports. Cost-aware routing.
bridge-hal
Hardware Abstraction Layer — auto-detect hardware, select deployment profile.
Bridge anatomy
Every bridge implements the same interface:Cross-system policies
See architecture for the mechanics of cross-system policies. Canonical examples:| Policy | When active | Denies |
|---|---|---|
no-fs-while-moving | robot.moving (from bridge-ros2) | File writes via bridge-mcp |
no-deploy-while-active | cmd_vel active (from bridge-ros2) | Deploys via bridge-mcp |
no-network-while-armed | drone.armed (from bridge-mavlink) | Network calls via bridge-mcp |
no-reboot-during-surgery | patient.connected (from a custom bridge) | System reboot via bridge-mcp |
Writing a new bridge
Implement the Bridge interface
Create
packages/bridge-yourprotocol/ with a class implementing discover, translate, enforce, and getStateMachine.Define the resource schema
Map your protocol’s identifiers to SINT resource URIs. E.g.
opcua://node/ns=2;i=1234.Add tier defaults
Provide a default tier map — which operations in your protocol are T0/T1/T2/T3 by default.
Add conformance tests
Every bridge needs a conformance-test suite in
packages/conformance-tests/. See conformance.