@wandelbots/nova-js 4.9.1 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,9 +27,12 @@ export type CellDescription = string
27
27
  */
28
28
  export type Manufacturer =
29
29
  | "abb"
30
+ | "bostondynamics"
30
31
  | "fanuc"
31
32
  | "kuka"
32
33
  | "staubli"
34
+ | "techman"
35
+ | "unitree"
33
36
  | "universalrobots"
34
37
  | "yaskawa"
35
38
  /**
@@ -207,6 +210,16 @@ export type IOValue = IOBooleanValue | IOIntegerValue | IOFloatValue
207
210
  * via the `definition` "ListIOValuesResponse".
208
211
  */
209
212
  export type ListIOValuesResponse = IOValue[]
213
+ /**
214
+ * Type of update for a stream of input/output values.
215
+ * - changes: Only send updates when the value changes.
216
+ * - full: Send the full list of values at the update rate.
217
+ *
218
+ *
219
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
220
+ * via the `definition` "IOUpdateType".
221
+ */
222
+ export type IOUpdateType = "changes" | "full"
210
223
  /**
211
224
  * Defines the current system mode of the robot system, including NOVA communicating with the robot controller.
212
225
  *
@@ -442,6 +455,30 @@ export type SystemUpdateCompletedEvent = CloudEvent & {
442
455
  error?: string
443
456
  }
444
457
  }
458
+ /**
459
+ * Network attachment method used to expose the interface to workloads.
460
+ *
461
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
462
+ * via the `definition` "NetworkBackend".
463
+ */
464
+ export type NetworkBackend = "macvlan" | "sriov"
465
+ /**
466
+ * Link state of the physical interface.
467
+ *
468
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
469
+ * via the `definition` "NetworkLinkState".
470
+ */
471
+ export type NetworkLinkState = "up" | "down"
472
+ /**
473
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
474
+ * via the `definition` "NetworkInterfacesReply".
475
+ */
476
+ export type NetworkInterfacesReply = NetworkInterface[]
477
+ /**
478
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
479
+ * via the `definition` "ArpScanReply".
480
+ */
481
+ export type ArpScanReply = Device[]
445
482
  /**
446
483
  * The operating state.
447
484
  *
@@ -639,48 +676,49 @@ export type RobotControllerDeletedEvent = {
639
676
  data: RobotControllerEventData
640
677
  } & CloudEvent
641
678
 
642
- export interface AbbController {
643
- kind: "AbbController"
644
- controller_ip: string
679
+ export interface ControllerNetworkInterface {
645
680
  /**
646
- * Default values: 80, 443. If custom value is set, field is required.
681
+ * Network port identifier. Either a bare port name, e.g., `enp3s0` or a
682
+ * node-qualified identifier, e.g., `wandelbox-abc123-enp3s0`. Use the
683
+ * node-qualified form on multi-node clusters to pin the interface to a
684
+ * specific node.
685
+ *
686
+ * Cannot be changed in-place. Delete and add the controller again to another port.
647
687
  *
648
688
  */
649
- controller_port: number
689
+ interface: string
650
690
  /**
651
- * The EGM server runs inside of the cell, thus its IP must be in the same network as the 'controller_ip'
691
+ * IPv4 addresses to assign to the interface, in address/prefix format, e.g., `192.168.1.10/24`.
692
+ *
693
+ * @minItems 1
652
694
  */
653
- egm_server: {
654
- ip: string
655
- port: number
656
- }
695
+ addresses: [string, ...string[]]
657
696
  }
658
697
  /**
659
- * Optional dedicated network interface for a physical robot controller.
660
- *
661
- * When set, the controller is given its own network interface on the selected
662
- * physical network port (`pf`) with the given `address`, so it can reach the
663
- * robot network directly.
698
+ * The configuration of a physical ABB robot controller has to contain IP address.
699
+ * Additionally an EGM server configuration has to be specified in order to control the robot.
700
+ * Deploying the server is a functionality of this API.
664
701
  *
665
702
  *
666
703
  * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
667
- * via the `definition` "ControllerNetworkInterface".
704
+ * via the `definition` "AbbController".
668
705
  */
669
- export interface ControllerNetworkInterface {
706
+ export interface AbbController {
707
+ kind: "AbbController"
708
+ controller_ip: string
709
+ network_interface?: ControllerNetworkInterface
670
710
  /**
671
- * IPv4 address in CIDR notation to assign to the controller's network
672
- * interface, for example `192.168.1.10/24`. The value must be a valid IPv4
673
- * address followed by a prefix length between 0 and 32.
711
+ * Default values: 80, 443. If custom value is set, field is required.
674
712
  *
675
713
  */
676
- address: string
714
+ controller_port: number
677
715
  /**
678
- * Name of the node's physical network port that connects to the robot
679
- * network, for example `enp10s0f0`. The controller's interface is provided
680
- * from this port.
681
- *
716
+ * The EGM server runs inside of the cell, thus its IP must be in the same network as the 'controller_ip'
682
717
  */
683
- pf: string
718
+ egm_server: {
719
+ ip: string
720
+ port: number
721
+ }
684
722
  }
685
723
  /**
686
724
  * The configuration of a physical FANUC robot controller has to contain IP address of the controller.
@@ -692,6 +730,12 @@ export interface FanucController {
692
730
  kind: "FanucController"
693
731
  controller_ip: string
694
732
  network_interface?: ControllerNetworkInterface
733
+ /**
734
+ * Enable the FANUC Stream Motion interface. When enabled, the GCI server
735
+ * communicates with the controller via the Stream Motion interface.
736
+ *
737
+ */
738
+ stream_motion?: boolean
695
739
  }
696
740
  /**
697
741
  * The configuration of a physical KUKA robot controller has to contain an IP address.
@@ -705,6 +749,7 @@ export interface FanucController {
705
749
  export interface KukaController {
706
750
  kind: "KukaController"
707
751
  controller_ip: string
752
+ network_interface?: ControllerNetworkInterface1
708
753
  controller_port: number
709
754
  /**
710
755
  * The RSI server runs inside of the cell.
@@ -719,6 +764,88 @@ export interface KukaController {
719
764
  */
720
765
  slow_cycle_rate?: boolean
721
766
  }
767
+ /**
768
+ * Direct network interface for the robot controller. When set, the controller
769
+ * gets its own interface on the specified port with the given addresses to
770
+ * reach the controller's network.
771
+ *
772
+ */
773
+ export interface ControllerNetworkInterface1 {
774
+ /**
775
+ * Network port identifier. Either a bare port name, e.g., `enp3s0` or a
776
+ * node-qualified identifier, e.g., `wandelbox-abc123-enp3s0`. Use the
777
+ * node-qualified form on multi-node clusters to pin the interface to a
778
+ * specific node.
779
+ *
780
+ * Cannot be changed in-place. Delete and add the controller again to another port.
781
+ *
782
+ */
783
+ interface: string
784
+ /**
785
+ * IPv4 addresses to assign to the interface, in address/prefix format, e.g., `192.168.1.10/24`.
786
+ *
787
+ * @minItems 1
788
+ */
789
+ addresses: [string, ...string[]]
790
+ }
791
+ /**
792
+ * The configuration of a physical STÄUBLI robot controller has to contain an IP address.
793
+ * Additionally, an RTI server configuration has to be specified in order to control the robot.
794
+ * Deploying the server is a functionality of this API.
795
+ *
796
+ *
797
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
798
+ * via the `definition` "StaubliController".
799
+ */
800
+ export interface StaubliController {
801
+ kind: "StaubliController"
802
+ controller_ip: string
803
+ network_interface?: ControllerNetworkInterface
804
+ controller_port: number
805
+ command_port: number
806
+ /**
807
+ * The RTI server runs inside of the cell.
808
+ */
809
+ rti_server: {
810
+ ip: string
811
+ port: number
812
+ }
813
+ }
814
+ /**
815
+ * The configuration of a physical Techman robot controller has to contain an IP address.
816
+ * Additionally an RTRS server configuration has to be specified to obtain state from the robot.
817
+ *
818
+ *
819
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
820
+ * via the `definition` "TechmanController".
821
+ */
822
+ export interface TechmanController {
823
+ kind: "TechmanController"
824
+ controller_ip: string
825
+ network_interface?: ControllerNetworkInterface
826
+ /**
827
+ * TCP port for the TMSVR channel on the robot controller.
828
+ */
829
+ tmsvr_port?: number
830
+ /**
831
+ * TCP port for the TMSCT channel on the robot controller.
832
+ */
833
+ tmsct_port?: number
834
+ /**
835
+ * RTRS server configuration for real-time communication.
836
+ */
837
+ rtrs: {
838
+ ip: string
839
+ /**
840
+ * TCP port for the TMRTS state reporting channel.
841
+ */
842
+ tmrts_port?: number
843
+ /**
844
+ * TCP port for the TMRTC real-time control channel.
845
+ */
846
+ tmrtc_port?: number
847
+ }
848
+ }
722
849
  /**
723
850
  * The configuration of a physical Universal Robots controller has to contain IP address of the controller.
724
851
  *
@@ -728,6 +855,7 @@ export interface KukaController {
728
855
  export interface UniversalrobotsController {
729
856
  kind: "UniversalrobotsController"
730
857
  controller_ip: string
858
+ network_interface?: ControllerNetworkInterface
731
859
  }
732
860
  /**
733
861
  * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
@@ -914,6 +1042,78 @@ export interface VirtualController {
914
1042
  export interface YaskawaController {
915
1043
  kind: "YaskawaController"
916
1044
  controller_ip: string
1045
+ network_interface?: ControllerNetworkInterface
1046
+ }
1047
+ /**
1048
+ * The configuration of a Boston Dynamics robot controller.
1049
+ * Requires the hostname or IP address of the robot and authentication credentials.
1050
+ *
1051
+ *
1052
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1053
+ * via the `definition` "BostondynamicsController".
1054
+ */
1055
+ export interface BostondynamicsController {
1056
+ kind: "BostondynamicsController"
1057
+ /**
1058
+ * The hostname or IP address of the robot.
1059
+ */
1060
+ controller_ip: string
1061
+ /**
1062
+ * The Boston Dynamics robot model type.
1063
+ */
1064
+ robot_type?: "spot"
1065
+ /**
1066
+ * The authentication password for the robot.
1067
+ */
1068
+ password: string
1069
+ /**
1070
+ * The authentication username for the robot.
1071
+ */
1072
+ username?: string
1073
+ /**
1074
+ * The network interface used to communicate with the robot.
1075
+ */
1076
+ network_interface?: string
1077
+ /**
1078
+ * JPEG quality for camera streams (1-100).
1079
+ */
1080
+ stream_quality?: number
1081
+ /**
1082
+ * Frames per second for camera streams.
1083
+ */
1084
+ stream_fps?: number
1085
+ }
1086
+ /**
1087
+ * The configuration of a Unitree robot controller.
1088
+ * Supports Go2, G1, B2, and H1 robot models.
1089
+ * Requires the IP address of the robot and the robot model type.
1090
+ *
1091
+ *
1092
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1093
+ * via the `definition` "UnitreeController".
1094
+ */
1095
+ export interface UnitreeController {
1096
+ kind: "UnitreeController"
1097
+ /**
1098
+ * The IP address of the Unitree robot.
1099
+ */
1100
+ controller_ip: string
1101
+ /**
1102
+ * The Unitree robot model type.
1103
+ */
1104
+ robot_type: "go2" | "g1" | "b2" | "h1"
1105
+ /**
1106
+ * The network interface used for DDS discovery.
1107
+ */
1108
+ network_interface?: string
1109
+ /**
1110
+ * Enable DDS unicast mode for environments where multicast is unavailable.
1111
+ */
1112
+ dds_unicast_mode?: boolean
1113
+ /**
1114
+ * Enable exclusive lease-based control of the robot.
1115
+ */
1116
+ enable_lease?: boolean
917
1117
  }
918
1118
  /**
919
1119
  * The configuration of a physical or virtual robot controller.
@@ -932,9 +1132,13 @@ export interface RobotController {
932
1132
  | AbbController
933
1133
  | FanucController
934
1134
  | KukaController
1135
+ | StaubliController
1136
+ | TechmanController
935
1137
  | UniversalrobotsController
936
1138
  | VirtualController
937
1139
  | YaskawaController
1140
+ | BostondynamicsController
1141
+ | UnitreeController
938
1142
  }
939
1143
  /**
940
1144
  * User provided credentials for creating a secret to pull an image from a registry.
@@ -1532,6 +1736,116 @@ export interface StreamIOValuesResponse {
1532
1736
  */
1533
1737
  sequence_number: number
1534
1738
  }
1739
+ /**
1740
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1741
+ * via the `definition` "AsyncRequestHeaders".
1742
+ */
1743
+ export interface AsyncRequestHeaders {
1744
+ /**
1745
+ * Unique inbox subject the caller is subscribed to. The server publishes the response to this address. Use a per-request unique subject, e.g., NATS inbox _INBOX.*.
1746
+ *
1747
+ */
1748
+ replyTo: string
1749
+ }
1750
+ /**
1751
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1752
+ * via the `definition` "SubscribeIOs".
1753
+ */
1754
+ export interface SubscribeIOs {
1755
+ /**
1756
+ * Array of input/output identifiers to stream the values for.
1757
+ *
1758
+ * @minItems 1
1759
+ */
1760
+ ios: [string, ...string[]]
1761
+ /**
1762
+ * Type of update for a stream of input/output values.
1763
+ * - changes: Only send updates when the value changes.
1764
+ * - full: Send the full list of values at the update rate.
1765
+ *
1766
+ */
1767
+ update_type?: "changes" | "full"
1768
+ /**
1769
+ * The subscription's time to live (TTL), in seconds: once it elapses the subscription expires and
1770
+ * streaming stops. Fractional values are allowed. Any non-negative value is accepted and clamped server-side to
1771
+ * the range 5..300 seconds. Clients should renew the subscription at roughly a third of this interval.
1772
+ *
1773
+ */
1774
+ ttl_seconds?: number
1775
+ }
1776
+ /**
1777
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1778
+ * via the `definition` "IOSubscriptionCreated".
1779
+ */
1780
+ export interface IOSubscriptionCreated {
1781
+ /**
1782
+ * Server-issued, subject-safe identifier of the created subscription.
1783
+ * Values for this subscription are published on the
1784
+ * `{instance}.v2.cells.{cell}.controllers.{controller}.ios.{subscription_id}` subject.
1785
+ *
1786
+ */
1787
+ subscription_id: string
1788
+ /**
1789
+ * Timestamp at which the subscription expires, unless it is renewed.
1790
+ */
1791
+ expires_at: string
1792
+ }
1793
+ /**
1794
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1795
+ * via the `definition` "UpdateIOSubscription".
1796
+ */
1797
+ export interface UpdateIOSubscription {
1798
+ /**
1799
+ * Server-issued identifier of the subscription to update.
1800
+ */
1801
+ subscription_id: string
1802
+ /**
1803
+ * Array of input/output identifiers to stream the values for.
1804
+ * When omitted the current selection is kept unchanged. An empty array is rejected.
1805
+ *
1806
+ *
1807
+ * @minItems 1
1808
+ */
1809
+ ios?: [string, ...string[]]
1810
+ update_type?: IOUpdateType
1811
+ /**
1812
+ * The subscription's time to live (TTL), in seconds. When omitted the current value is kept unchanged.
1813
+ * Fractional values are allowed. Any non-negative value is accepted and clamped server-side to
1814
+ * the range 5..300 seconds.
1815
+ *
1816
+ */
1817
+ ttl_seconds?: number
1818
+ }
1819
+ /**
1820
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1821
+ * via the `definition` "IOSubscriptionLease".
1822
+ */
1823
+ export interface IOSubscriptionLease {
1824
+ /**
1825
+ * Timestamp at which the subscription expires, unless it is renewed again.
1826
+ */
1827
+ expires_at: string
1828
+ }
1829
+ /**
1830
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1831
+ * via the `definition` "RenewIOSubscription".
1832
+ */
1833
+ export interface RenewIOSubscription {
1834
+ /**
1835
+ * Server-issued identifier of the subscription to renew.
1836
+ */
1837
+ subscription_id: string
1838
+ }
1839
+ /**
1840
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1841
+ * via the `definition` "CancelIOSubscription".
1842
+ */
1843
+ export interface CancelIOSubscription {
1844
+ /**
1845
+ * Server-issued identifier of the subscription to cancel.
1846
+ */
1847
+ subscription_id: string
1848
+ }
1535
1849
  /**
1536
1850
  * Indicates which joint of the motion group is in a limit.
1537
1851
  * If a joint is in its limit, only this joint can be moved. Movements that affect any other joints are not executed.
@@ -1546,6 +1860,18 @@ export interface MotionGroupState_JointLimitReached {
1546
1860
  */
1547
1861
  limit_reached: boolean[]
1548
1862
  }
1863
+ /**
1864
+ * Defines a cartesian velocity in 3D space.
1865
+ * The unit of the translation velocity is mm/s and the unit of the rotation velocity is rad/s.
1866
+ *
1867
+ *
1868
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1869
+ * via the `definition` "CartesianVelocity".
1870
+ */
1871
+ export interface CartesianVelocity {
1872
+ translation: Vector3D
1873
+ rotation: Vector3D
1874
+ }
1549
1875
  /**
1550
1876
  * Jogging is active.
1551
1877
  *
@@ -1737,7 +2063,7 @@ export interface TrajectoryDetails {
1737
2063
  }
1738
2064
  /**
1739
2065
  * Details about the state of the motion execution.
1740
- * The details are either for a jogging or a trajectory.
2066
+ * The details are either for a jogging, a trajectory, or an action chunk.
1741
2067
  * If NOVA is not controlling this motion group at the moment, this field is omitted.
1742
2068
  *
1743
2069
  *
@@ -1783,6 +2109,7 @@ export interface MotionGroupState {
1783
2109
  joint_torque?: Joints2
1784
2110
  joint_current?: Joints3
1785
2111
  flange_pose?: Pose1
2112
+ flange_velocity?: CartesianVelocity1
1786
2113
  /**
1787
2114
  * Unique identifier addressing the active TCP.
1788
2115
  * Might not be returned for positioners as some do not support TCPs, depending on the model.
@@ -1790,6 +2117,7 @@ export interface MotionGroupState {
1790
2117
  */
1791
2118
  tcp?: string
1792
2119
  tcp_pose?: Pose2
2120
+ tcp_velocity?: CartesianVelocity2
1793
2121
  /**
1794
2122
  * Unique identifier addressing the reference coordinate system of the cartesian data.
1795
2123
  * Might not be returned for positioners as some do not support TCPs, depending on the model.
@@ -1839,6 +2167,15 @@ export interface Pose1 {
1839
2167
  position?: Vector3D
1840
2168
  orientation?: RotationVector
1841
2169
  }
2170
+ /**
2171
+ * Cartesian velocity of the flange.
2172
+ * The velocity is relative to the response coordinate system specified in the request.
2173
+ *
2174
+ */
2175
+ export interface CartesianVelocity1 {
2176
+ translation: Vector3D
2177
+ rotation: Vector3D
2178
+ }
1842
2179
  /**
1843
2180
  * Defines a pose in 3D space.
1844
2181
  * A pose is a combination of a position and an orientation.
@@ -1849,6 +2186,15 @@ export interface Pose2 {
1849
2186
  position?: Vector3D
1850
2187
  orientation?: RotationVector
1851
2188
  }
2189
+ /**
2190
+ * Cartesian velocity of the TCP selected on the robot control panel.
2191
+ * The velocity is relative to the response coordinate system specified in the request.
2192
+ *
2193
+ */
2194
+ export interface CartesianVelocity2 {
2195
+ translation: Vector3D
2196
+ rotation: Vector3D
2197
+ }
1852
2198
  /**
1853
2199
  * Data that was commanded to the motion group. Includes additional data on NOVA's execution components for executing trajectories and jogging.
1854
2200
  * This is a convenience field to indicate the last command sent to the motion group.
@@ -1934,7 +2280,13 @@ export interface TcpOffset {
1934
2280
  * via the `definition` "LimitRange".
1935
2281
  */
1936
2282
  export interface LimitRange {
2283
+ /**
2284
+ * Lower position limit in rad.
2285
+ */
1937
2286
  lower_limit?: number
2287
+ /**
2288
+ * Upper position limit in rad.
2289
+ */
1938
2290
  upper_limit?: number
1939
2291
  }
1940
2292
  /**
@@ -1942,35 +2294,75 @@ export interface LimitRange {
1942
2294
  * via the `definition` "JointLimits".
1943
2295
  */
1944
2296
  export interface JointLimits {
1945
- position?: LimitRange
2297
+ position?: LimitRange1
2298
+ /**
2299
+ * Joint velocity limit in rad/s.
2300
+ */
1946
2301
  velocity?: number
2302
+ /**
2303
+ * Joint acceleration limit in rad/s².
2304
+ */
1947
2305
  acceleration?: number
1948
2306
  /**
2307
+ * Joint jerk limit in rad/s³.
2308
+ *
1949
2309
  * > **NOTE**
1950
2310
  * >
1951
2311
  * > This limit type is experimental and its behavior may change in future releases.
1952
2312
  *
1953
2313
  */
1954
2314
  jerk?: number
2315
+ /**
2316
+ * Joint torque limit in Nm.
2317
+ */
1955
2318
  torque?: number
1956
2319
  }
2320
+ /**
2321
+ * Joint position limits in rad.
2322
+ */
2323
+ export interface LimitRange1 {
2324
+ /**
2325
+ * Lower position limit in rad.
2326
+ */
2327
+ lower_limit?: number
2328
+ /**
2329
+ * Upper position limit in rad.
2330
+ */
2331
+ upper_limit?: number
2332
+ }
1957
2333
  /**
1958
2334
  * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1959
2335
  * via the `definition` "CartesianLimits".
1960
2336
  */
1961
2337
  export interface CartesianLimits {
2338
+ /**
2339
+ * Cartesian velocity limit in mm/s.
2340
+ */
1962
2341
  velocity?: number
2342
+ /**
2343
+ * Cartesian acceleration limit in mm/s².
2344
+ */
1963
2345
  acceleration?: number
1964
2346
  /**
2347
+ * Cartesian jerk limit in mm/s³.
2348
+ *
1965
2349
  * > **NOTE**
1966
2350
  * >
1967
2351
  * > This limit type is experimental and its behavior may change in future releases.
1968
2352
  *
1969
2353
  */
1970
2354
  jerk?: number
2355
+ /**
2356
+ * Orientation velocity limit in rad/s.
2357
+ */
1971
2358
  orientation_velocity?: number
2359
+ /**
2360
+ * Orientation acceleration limit in rad/s².
2361
+ */
1972
2362
  orientation_acceleration?: number
1973
2363
  /**
2364
+ * Orientation jerk limit in rad/s³.
2365
+ *
1974
2366
  * > **NOTE**
1975
2367
  * >
1976
2368
  * > This limit type is experimental and its behavior may change in future releases.
@@ -2214,21 +2606,6 @@ export interface NetworkState {
2214
2606
  *
2215
2607
  */
2216
2608
  internet_connected: boolean
2217
- /**
2218
- * Type of the active network link (e.g., ethernet, wifi, cellular, vpn, unknown).
2219
- *
2220
- */
2221
- connection_type?: "ethernet" | "wifi" | "cellular" | "vpn" | "unknown"
2222
- /**
2223
- * Received signal strength in dBm for wireless interfaces; negative values indicate weaker signals.
2224
- *
2225
- */
2226
- signal_strength?: number
2227
- /**
2228
- * Normalized link quality metric from 0 (poor) to 1 (excellent) when provided by the interface.
2229
- *
2230
- */
2231
- link_quality?: number
2232
2609
  /**
2233
2610
  * Round-trip latency to the probe endpoint measured in milliseconds.
2234
2611
  *
@@ -2275,6 +2652,88 @@ export interface NetworkStatusChangedEvent {
2275
2652
  datacontenttype?: string
2276
2653
  data: NetworkState
2277
2654
  }
2655
+ /**
2656
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2657
+ * via the `definition` "AsyncReplyHeaders".
2658
+ */
2659
+ export interface AsyncReplyHeaders {
2660
+ /**
2661
+ * HTTP status code indicating the result of the operation, e.g., "200" for success, "400" for bad request, "404" for not found, "500" for server error.
2662
+ *
2663
+ */
2664
+ Status: string
2665
+ /**
2666
+ * Human-readable error message. Only present when Status is not 2xx.
2667
+ */
2668
+ Description?: string
2669
+ }
2670
+ /**
2671
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2672
+ * via the `definition` "NetworkInterface".
2673
+ */
2674
+ export interface NetworkInterface {
2675
+ /**
2676
+ * Host network interface name, e.g., enp0s31f6.
2677
+ */
2678
+ name: string
2679
+ /**
2680
+ * Stable identifier for this interface. Pass it as the `interface` field in ARP scan request, e.g., wandelbox-abc123-enp3s0.
2681
+ */
2682
+ interface: string
2683
+ /**
2684
+ * Hostname that exposes this interface.
2685
+ */
2686
+ node: string
2687
+ backend: NetworkBackend
2688
+ link: NetworkLinkState
2689
+ /**
2690
+ * IP/CIDR addresses currently assigned to the interface. Omitted when not available.
2691
+ */
2692
+ addresses?: string[]
2693
+ }
2694
+ /**
2695
+ * Empty request. No parameters needed.
2696
+ *
2697
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2698
+ * via the `definition` "NetworkInterfacesRequest".
2699
+ */
2700
+ export interface NetworkInterfacesRequest {}
2701
+ /**
2702
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2703
+ * via the `definition` "ArpScanRequest".
2704
+ */
2705
+ export interface ArpScanRequest {
2706
+ /**
2707
+ * Interface to scan. Use the `interface` value from the network interfaces list, e.g., wandelbox-abc123-enp3s0.
2708
+ */
2709
+ interface: string
2710
+ /**
2711
+ * IP range to scan in CIDR notation, e.g., 192.168.1.0/24.
2712
+ */
2713
+ cidr: string
2714
+ /**
2715
+ * Scan timeout in milliseconds. Defaults to 5000 if omitted or zero.
2716
+ */
2717
+ timeout?: number
2718
+ }
2719
+ /**
2720
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2721
+ * via the `definition` "Device".
2722
+ */
2723
+ export interface Device {
2724
+ /**
2725
+ * IPv4 address of the discovered device.
2726
+ */
2727
+ ip: string
2728
+ /**
2729
+ * MAC address of the discovered device.
2730
+ */
2731
+ mac: string
2732
+ /**
2733
+ * Hardware manufacturer name derived from the MAC address, omitted when unknown.
2734
+ */
2735
+ vendor?: string
2736
+ }
2278
2737
  /**
2279
2738
  * Payload for a cell lifecycle event.
2280
2739
  *