syntax = "proto3"; import "cmvr/api/common.proto"; package cmvr.api; enum DeviceType { AGV = 0; Battery = 1; Camera = 2; DexHand = 3; Gripper = 4; Microphone = 5; Robot = 6; Speaker = 7; Unknown = 20; } message DeviceList { string device_id = 1; DeviceType device_type = 2; } // Stable device categories used by GetDeviceList. This intentionally does not // reuse the legacy DeviceType enum above: its zero value is AGV and it does not // cover all DeviceManager categories. enum SystemDeviceType { SYSTEM_DEVICE_TYPE_UNSPECIFIED = 0; SYSTEM_DEVICE_TYPE_AGV = 1; SYSTEM_DEVICE_TYPE_ARM = 2; SYSTEM_DEVICE_TYPE_BATTERY = 3; SYSTEM_DEVICE_TYPE_BIO_HEAD = 4; SYSTEM_DEVICE_TYPE_CAMERA = 5; SYSTEM_DEVICE_TYPE_CAN_BUS = 6; SYSTEM_DEVICE_TYPE_DEX_HAND = 7; SYSTEM_DEVICE_TYPE_GRIPPER = 8; SYSTEM_DEVICE_TYPE_MICROPHONE = 9; SYSTEM_DEVICE_TYPE_MOTOR = 10; SYSTEM_DEVICE_TYPE_MOTOR_SYSTEM = 11; SYSTEM_DEVICE_TYPE_MUJOCO_VIEWER = 12; SYSTEM_DEVICE_TYPE_MUJOCO_WORLD = 13; SYSTEM_DEVICE_TYPE_ROBOT = 14; SYSTEM_DEVICE_TYPE_SPEAKER = 15; } enum SystemDeviceState { SYSTEM_DEVICE_STATE_UNSPECIFIED = 0; SYSTEM_DEVICE_STATE_DISABLED = 1; SYSTEM_DEVICE_STATE_INITIALIZING = 2; SYSTEM_DEVICE_STATE_REGISTERED = 3; SYSTEM_DEVICE_STATE_READY = 4; SYSTEM_DEVICE_STATE_RUNNING = 5; SYSTEM_DEVICE_STATE_STOPPED = 6; SYSTEM_DEVICE_STATE_ERROR = 7; } enum SystemDeviceHealth { SYSTEM_DEVICE_HEALTH_UNSPECIFIED = 0; SYSTEM_DEVICE_HEALTH_HEALTHY = 1; SYSTEM_DEVICE_HEALTH_DEGRADED = 2; SYSTEM_DEVICE_HEALTH_FAULT = 3; } message SystemDeviceInfo { string device_id = 1; SystemDeviceType device_type = 2; // Concrete backend name for display and diagnostics only. Consumers must // use device_type, rather than this free-form string, for decisions. string type_name = 3; // GetDeviceList currently publishes only enabled entries. Keep this field // explicit so each row remains self-describing and future-compatible. bool enabled = 4; SystemDeviceState manager_state = 5; SystemDeviceHealth health = 6; bool has_error = 7; string error_message = 8; uint64 status_updated_at_unix_ms = 9; } message GetDeviceListCommand { message Request {} message Feedback { CommandHeader.Feedback header = 1; string manager_name = 2; string manager_version = 3; string manager_description = 4; repeated SystemDeviceInfo device_list = 5; uint64 sampled_at_unix_ms = 6; } } message GetSystemInfoCommand { message Request {} message Feedback { CommandHeader.Feedback header = 1; string system_name = 2; string version = 3; string description = 4; string os = 5; string kernel_version = 6; string architecture = 7; } } message GetSystemStatusCommand { message Request {} message Feedback { CommandHeader.Feedback header = 1; float cpu_usage = 2; float mem_total_mb = 3; float mem_used_mb = 4; float disk_total_gb = 5; float disk_used_gb = 6; repeated DeviceList device_list = 7; } } message UpdateParamsCommand { message Request { CommandHeader.Request header = 1; repeated ConfigParam params = 2; } message Feedback { CommandHeader.Feedback header = 1; } } message StopAllCommand { message Request { CommandHeader.Request header = 1; } message Feedback { CommandHeader.Feedback header = 1; } }