Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ stop: |

capabilities:
- name: robonix/primitive/health/state
transport: grpc
- name: robonix/primitive/health/stream
transport: grpc
- name: robonix/primitive/health/driver
transport: grpc

depends: []
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,24 @@ stop: |

capabilities:
- name: robonix/primitive/camera/snapshot
transport: mcp
- name: robonix/primitive/camera/depth_snapshot
transport: mcp
# ROS2 streams (data plane). Topic names are runtime-resolved
# through atlas — consumers (scene 3D fusion, mapping RGBD ingest)
# discover them via QueryCapabilities, they never read the topic
# strings declared in the driver source.
- name: robonix/primitive/camera/rgb
transport: ros2
- name: robonix/primitive/camera/depth
transport: ros2
# Compatibility `base_link → camera_optical` transform. Scene uses the
# complete TF tree first and composes pose + this latched transform only
# when that authoritative lookup is unavailable.
- name: robonix/primitive/camera/extrinsics
transport: ros2
# Static pinhole intrinsics (sensor_msgs/CameraInfo, latched). Lets
# scene back-project depth with the real camera's K instead of a
# hardcoded default — see capabilities/primitive/camera/intrinsics.v1.toml.
- name: robonix/primitive/camera/intrinsics
transport: ros2
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,8 @@ stop: |

capabilities:
- name: robonix/primitive/chassis/move
transport: grpc
- name: robonix/primitive/chassis/odom
transport: ros2
- name: robonix/primitive/chassis/twist_in
transport: ros2
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,8 @@ stop: |

capabilities:
- name: robonix/primitive/health/state
transport: grpc
- name: robonix/primitive/health/stream
transport: grpc
- name: robonix/lifecycle/driver
transport: grpc
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,6 @@ stop: |

capabilities:
- name: robonix/primitive/lidar/lidar
transport: ros2
- name: robonix/primitive/lidar/snapshot
transport: mcp
3 changes: 3 additions & 0 deletions examples/webots/services/simple_nav/package_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,8 @@ stop: |

capabilities:
- name: robonix/service/navigation/navigate
transport: mcp
- name: robonix/service/navigation/navigate/status
transport: mcp
- name: robonix/service/navigation/navigate/cancel
transport: mcp
3 changes: 3 additions & 0 deletions services/memory/package_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,8 @@ start: |

capabilities:
- name: robonix/service/memory/remember
transport: mcp
- name: robonix/service/memory/hybrid_search
transport: mcp
- name: robonix/service/memory/promote
transport: mcp
4 changes: 4 additions & 0 deletions services/memsearch/package_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ stop: |

capabilities:
- name: robonix/service/memory/driver
transport: grpc
- name: robonix/service/memory/save
transport: mcp
- name: robonix/service/memory/search
transport: mcp
- name: robonix/service/memory/compact
transport: mcp
9 changes: 9 additions & 0 deletions services/speech/package_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,20 @@ stop: |

capabilities:
- name: robonix/service/speech/driver
transport: grpc
- name: robonix/service/speech/asr
transport: grpc
- name: robonix/service/speech/asr_stream
transport: grpc
- name: robonix/service/speech/wake_word
transport: grpc
- name: robonix/service/speech/tts
transport: grpc
- name: robonix/service/speech/tts_stream
transport: grpc
- name: robonix/service/speech/dialog
transport: grpc
- name: robonix/service/speech/list_speakers
transport: mcp
- name: robonix/service/speech/speak
transport: mcp
3 changes: 2 additions & 1 deletion services/verifiers/scene_verifier/package_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ build: bash scripts/build.sh
start: bash scripts/start.sh

capabilities:
- name: robonix/service/verifier/verify
- name: robonix/service/verifier/verify
transport: mcp
1 change: 1 addition & 0 deletions services/verifiers/vlm_verifier/package_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ build: bash scripts/build.sh
start: bash scripts/start.sh
capabilities:
- name: robonix/service/verifier/verify
transport: mcp
5 changes: 5 additions & 0 deletions services/voiceprint/package_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,12 @@ stop: |

capabilities:
- name: robonix/service/voiceprint/driver
transport: grpc
- name: robonix/service/voiceprint/identify
transport: grpc
- name: robonix/service/voiceprint/enroll
transport: grpc
- name: robonix/service/voiceprint/list
transport: [grpc, mcp]
- name: robonix/service/voiceprint/delete
transport: grpc
18 changes: 18 additions & 0 deletions system/scene/package_manifest.jetson-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,31 @@ start: ROBONIX_SCENE_FORCE=docker bash scripts/start.sh

capabilities:
- name: robonix/system/scene/list_objects
transport: mcp
- name: robonix/system/scene/get_robot_context
transport: mcp
- name: robonix/system/scene/list_regions
transport: mcp
- name: robonix/system/scene/goal_near
transport: mcp
- name: robonix/system/scene/goal_region
transport: mcp
# Deprecated alias of goal_region, kept for older callers.
- name: robonix/system/scene/goal_room
transport: mcp
- name: robonix/system/scene/find
transport: mcp
- name: robonix/system/scene/get_scene_graph
transport: mcp
- name: robonix/system/scene/get_object_context
transport: mcp
- name: robonix/system/scene/list_relations
transport: mcp
- name: robonix/system/scene/update_object_label
transport: mcp
- name: robonix/system/scene/update_object_geometry
transport: mcp
- name: robonix/system/scene/delete_object
transport: mcp
- name: robonix/system/scene/flush_objects
transport: mcp
18 changes: 18 additions & 0 deletions system/scene/package_manifest.jetson-native.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,31 @@ start: ROBONIX_SCENE_FORCE=native bash scripts/start.sh

capabilities:
- name: robonix/system/scene/list_objects
transport: mcp
- name: robonix/system/scene/get_robot_context
transport: mcp
- name: robonix/system/scene/list_regions
transport: mcp
- name: robonix/system/scene/goal_near
transport: mcp
- name: robonix/system/scene/goal_region
transport: mcp
# Deprecated alias of goal_region, kept for older callers.
- name: robonix/system/scene/goal_room
transport: mcp
- name: robonix/system/scene/find
transport: mcp
- name: robonix/system/scene/get_scene_graph
transport: mcp
- name: robonix/system/scene/get_object_context
transport: mcp
- name: robonix/system/scene/list_relations
transport: mcp
- name: robonix/system/scene/update_object_label
transport: mcp
- name: robonix/system/scene/update_object_geometry
transport: mcp
- name: robonix/system/scene/delete_object
transport: mcp
- name: robonix/system/scene/flush_objects
transport: mcp
14 changes: 14 additions & 0 deletions system/scene/package_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,31 @@ stop: docker rm -f "${ROBONIX_SCENE_CONTAINER:-robonix_scene}"

capabilities:
- name: robonix/system/scene/list_objects
transport: mcp
- name: robonix/system/scene/get_robot_context
transport: mcp
- name: robonix/system/scene/list_regions
transport: mcp
- name: robonix/system/scene/goal_near
transport: mcp
- name: robonix/system/scene/goal_region
transport: mcp
# Deprecated alias of goal_region, kept for older callers.
- name: robonix/system/scene/goal_room
transport: mcp
- name: robonix/system/scene/find
transport: mcp
- name: robonix/system/scene/get_scene_graph
transport: mcp
- name: robonix/system/scene/get_object_context
transport: mcp
- name: robonix/system/scene/list_relations
transport: mcp
- name: robonix/system/scene/update_object_label
transport: mcp
- name: robonix/system/scene/update_object_geometry
transport: mcp
- name: robonix/system/scene/delete_object
transport: mcp
- name: robonix/system/scene/flush_objects
transport: mcp
3 changes: 2 additions & 1 deletion tools/rbnx/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ clap.workspace = true
serde.workspace = true
serde_yaml.workspace = true
serde_json.workspace = true
toml.workspace = true
sha2.workspace = true
tokio.workspace = true
anyhow.workspace = true
Expand All @@ -23,7 +24,7 @@ prost.workspace = true
tonic-prost.workspace = true
ratatui = { workspace = true, features = ["unstable-rendered-line-info"] }
crossterm.workspace = true
tokio-stream = "0.1"
tokio-stream = { version = "0.1", features = ["net"] }
dirs = "6.0"
chrono = "0.4"
hostname = "0.4"
Expand Down
12 changes: 12 additions & 0 deletions tools/rbnx/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,12 @@ cargo install --force --path tools/rbnx --bin rbnx

Run `rbnx <cmd> --help` for full flags.

Each package manifest capability declares `transport: mcp`, `grpc`, or `ros2`,
or a non-empty list such as `transport: [grpc, ros2]`. `rbnx validate` rejects
invalid or duplicate transports, repeated contracts, and transports incompatible
with an available contract TOML's mode. An omitted transport warns and remains
accepted while existing packages migrate; `manifestVersion` stays `1`.

`rbnx install [--github REPO \| --path DIR]`, `rbnx list`, and `rbnx info NAME`
manage system-installed packages. They are legacy commands, hidden from
`rbnx --help`; deployment manifests with `rbnx build` and `rbnx boot` replace
Expand All @@ -67,6 +73,12 @@ consumers.

### What a boot leaves behind

During boot, `rbnx` compares package manifest transport declarations with Atlas
registrations, including Soma-managed primitives and skills. It warns once per
mismatch; missing registrations are reported only while the package is ACTIVE.
A manifest without transport declarations gets one warning and skips comparison.
These diagnostics do not fail startup.

`rbnx boot` writes `<manifest-dir>/rbnx-boot/deployment.lock` before it spawns
anything. Each package records what the manifest asked for and what that
resolved to, kept apart the way `flake.lock` keeps them:
Expand Down
Loading
Loading