@wandelbots/nova-js 3.13.0-pr.307.8728cb4 → 3.13.0-pr.307.a847bf7

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.
@@ -1,3 +1,4 @@
1
+ import { t as Nova } from "../../Nova-B1o5iTQ6.cjs";
1
2
  import { ConnectionOptions, Msg, NatsConnection } from "@nats-io/nats-core";
2
3
 
3
4
  //#region src/lib/experimental/nats/buildNatsServerUrl.d.ts
@@ -12,6 +13,20 @@ import { ConnectionOptions, Msg, NatsConnection } from "@nats-io/nats-core";
12
13
  declare function buildNatsServerUrl(instanceUrl: string): string;
13
14
  //#endregion
14
15
  //#region src/lib/experimental/nats/generated/types.d.ts
16
+ /**
17
+ * AUTO-GENERATED FILE - DO NOT EDIT.
18
+ * Generated from src/asyncapi.yaml by scripts/generate-nats-client.ts.
19
+ * Run `pnpm generate:nats` to regenerate.
20
+ */
21
+ /**
22
+ * A unique name for the cell used as an identifier for addressing the cell in all API calls.
23
+ * It must be a valid k8s label name as defined by [RFC 1123](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names).
24
+ *
25
+ *
26
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
27
+ * via the `definition` "CellName".
28
+ */
29
+ type CellName = string;
15
30
  /**
16
31
  * A description of the cell.
17
32
  *
@@ -57,6 +72,20 @@ type ContainerEnvironment = {
57
72
  name: string;
58
73
  value: string;
59
74
  }[];
75
+ /**
76
+ * The amount of requested storage capacity.
77
+ *
78
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
79
+ * via the `definition` "Capacity".
80
+ */
81
+ type Capacity = string;
82
+ /**
83
+ * The state of a program run.
84
+ *
85
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
86
+ * via the `definition` "ProgramRunState".
87
+ */
88
+ type ProgramRunState = "PREPARING" | "RUNNING" | "COMPLETED" | "FAILED" | "STOPPED";
60
89
  /**
61
90
  * State of the program run.
62
91
  */
@@ -106,6 +135,25 @@ type Vector3D = [number, number, number];
106
135
  * via the `definition` "RotationVector".
107
136
  */
108
137
  type RotationVector = [number, number, number];
138
+ /**
139
+ * A link chain is a kinematic chain of links that is connected via joints.
140
+ * A motion group can be used to control the motion of the joints in a link chain.
141
+ *
142
+ * A link is a group of colliders that is attached to the link reference frame.
143
+ *
144
+ * The reference frame of a link is obtained after applying all sets of Denavit-Hartenberg-parameters from base to (including) the link index.
145
+ *
146
+ * This means that the reference frame of the link is on the rotation axis of the next joint in the kinematic chain.
147
+ * Example: For a motion group with 2 joints, the collider reference frame (CRF) for link 1 is on the rotation axis of joint 2. The chain looks like:
148
+ * - Origin >> Mounting >> Base >> (CRF Base) Joint 0 >> Link 0 >> (CRF Link 0) Joint 1 >> Link 1 >> (CRF Link 1) Flange (CRF Tool) >> TCP
149
+ *
150
+ * Adjacent links in the kinematic chain of the motion group are not checked for mutual collision.
151
+ *
152
+ *
153
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
154
+ * via the `definition` "LinkChain".
155
+ */
156
+ type LinkChain = CollisionMotionGroupLink[];
109
157
  /**
110
158
  * The shape of the motion groups links to validate against colliders.
111
159
  * Indexed along the kinematic chain, starting with a static base shape before first joint.
@@ -133,6 +181,50 @@ type IOValue = IOBooleanValue | IOIntegerValue | IOFloatValue;
133
181
  * via the `definition` "ListIOValuesResponse".
134
182
  */
135
183
  type ListIOValuesResponse = IOValue[];
184
+ /**
185
+ * Defines the current system mode of the robot system, including NOVA communicating with the robot controller.
186
+ *
187
+ * ### MODE_CONTROLLER_NOT_CONFIGURED
188
+ *
189
+ * No controller with the specified identifier is configured. Call [addRobotController](#/operations/addRobotController) to register a controller.
190
+ *
191
+ * ### MODE_INITIALIZING
192
+ *
193
+ * Indicates that a connection to the robot controller is established or reestablished in case of a disconnect.
194
+ * On success, the controller is set to MODE_MONITOR.
195
+ * On failure, the initialization process is retried until successful or cancelled by the user.
196
+ *
197
+ * ### MODE_MONITOR
198
+ *
199
+ * Read-only mode with an active controller connection.
200
+ * - Receives robot state and I/O signals
201
+ * - Move requests are rejected
202
+ * - No commands are sent to the controller
203
+ *
204
+ * ### MODE_CONTROL
205
+ *
206
+ * Active control mode.
207
+ *
208
+ * **Movement is possible in this mode**
209
+ *
210
+ * The robot is cyclically commanded to hold its current position.
211
+ * The robot state is received in sync with the controller cycle.
212
+ * Motion and jogging requests are accepted and executed.
213
+ * Input/Output interaction is enabled.
214
+ *
215
+ * ### MODE_FREE_DRIVE
216
+ *
217
+ * Read-only mode with servo motors enabled for manual movement (Free Drive).
218
+ *
219
+ * Move requests are rejected.
220
+ *
221
+ * Not supported by all robots: Use [getSupportedModes](#/operations/getSupportedModes) to check Free Drive availability.
222
+ *
223
+ *
224
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
225
+ * via the `definition` "RobotSystemMode".
226
+ */
227
+ type RobotSystemMode = "MODE_CONTROLLER_NOT_CONFIGURED" | "MODE_INITIALIZING" | "MODE_MONITOR" | "MODE_CONTROL" | "MODE_FREE_DRIVE";
136
228
  /**
137
229
  * Current operation mode of the configured robot controller.
138
230
  * Operation modes in which the attached motion groups can be moved are:
@@ -159,6 +251,28 @@ type OperationMode = "OPERATION_MODE_UNKNOWN" | "OPERATION_MODE_NO_CONTROLLER" |
159
251
  * via the `definition` "SafetyStateType".
160
252
  */
161
253
  type SafetyStateType = "SAFETY_STATE_UNKNOWN" | "SAFETY_STATE_FAULT" | "SAFETY_STATE_NORMAL" | "SAFETY_STATE_MASTERING" | "SAFETY_STATE_CONFIRM_SAFETY" | "SAFETY_STATE_OPERATOR_SAFETY" | "SAFETY_STATE_PROTECTIVE_STOP" | "SAFETY_STATE_REDUCED" | "SAFETY_STATE_STOP" | "SAFETY_STATE_STOP_0" | "SAFETY_STATE_STOP_1" | "SAFETY_STATE_STOP_2" | "SAFETY_STATE_RECOVERY" | "SAFETY_STATE_DEVICE_EMERGENCY_STOP" | "SAFETY_STATE_ROBOT_EMERGENCY_STOP" | "SAFETY_STATE_VIOLATION";
254
+ /**
255
+ * This structure describes a set of joint values, e.g., positions, currents, torques, of a motion group.
256
+ *
257
+ * Float precision is the default.
258
+ *
259
+ *
260
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
261
+ * via the `definition` "Joints".
262
+ */
263
+ type Joints = number[];
264
+ /**
265
+ * - The location is a scalar value that defines a position along a path, typically ranging from 0 to `n`,
266
+ * where `n` denotes the number of motion commands
267
+ * - Each integer value of the location corresponds to a specific motion command,
268
+ * while non-integer values interpolate positions within the segments.
269
+ * - The location is calculated from the joint path
270
+ *
271
+ *
272
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
273
+ * via the `definition` "Location".
274
+ */
275
+ type Location = number;
162
276
  /**
163
277
  * Current joint position of each joint.
164
278
  * The unit depends on the type of joint: For revolute joints, the angle is given in [rad]; for prismatic joints, the displacement is given in [mm].
@@ -1121,6 +1235,20 @@ interface ColliderDictionary {
1121
1235
  interface CollisionMotionGroupLink {
1122
1236
  [k: string]: Collider;
1123
1237
  }
1238
+ /**
1239
+ * Defines the shape of a tool.
1240
+ *
1241
+ * A tool is a dictionary of colliders.
1242
+ *
1243
+ * All colliders that make up a tool are attached to the flange frame of the motion group.
1244
+ *
1245
+ *
1246
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1247
+ * via the `definition` "Tool".
1248
+ */
1249
+ interface CollisionMotionGroupTool {
1250
+ [k: string]: Collider;
1251
+ }
1124
1252
  /**
1125
1253
  * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1126
1254
  * via the `definition` "CollisionSetup".
@@ -1258,6 +1386,20 @@ interface StreamIOValuesResponse {
1258
1386
  */
1259
1387
  sequence_number: number;
1260
1388
  }
1389
+ /**
1390
+ * Indicates which joint of the motion group is in a limit.
1391
+ * If a joint is in its limit, only this joint can be moved. Movements that affect any other joints are not executed.
1392
+ *
1393
+ *
1394
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1395
+ * via the `definition` "MotionGroupState_JointLimitReached".
1396
+ */
1397
+ interface MotionGroupState_JointLimitReached {
1398
+ /**
1399
+ * If true, operational (soft) jointLimit is reached for specific joint.
1400
+ */
1401
+ limit_reached: boolean[];
1402
+ }
1261
1403
  /**
1262
1404
  * Jogging is active.
1263
1405
  *
@@ -1436,6 +1578,24 @@ interface TrajectoryDetails {
1436
1578
  */
1437
1579
  kind: "TRAJECTORY";
1438
1580
  }
1581
+ /**
1582
+ * Details about the state of the motion execution.
1583
+ * The details are either for a jogging or a trajectory.
1584
+ * If NOVA is not controlling this motion group at the moment, this field is omitted.
1585
+ *
1586
+ *
1587
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1588
+ * via the `definition` "Execute".
1589
+ */
1590
+ interface Execute {
1591
+ /**
1592
+ * Commanded joint position of each joint. This command was sent in the time step the corresponding state was received.
1593
+ * The unit depends on the type of joint: For revolute joints, the angle is given in [rad]; for prismatic joints, the displacement is given in [mm].
1594
+ *
1595
+ */
1596
+ joint_position: number[];
1597
+ details?: JoggingDetails | TrajectoryDetails;
1598
+ }
1439
1599
  /**
1440
1600
  * Presents the current state of the motion group.
1441
1601
  *
@@ -2005,193 +2165,1017 @@ interface NatsErrorPayload {
2005
2165
  //#region src/lib/experimental/nats/generated/operations.d.ts
2006
2166
  /** Subject parameters required by each NATS subject, e.g. "nova.v2.cells.{cell}". */
2007
2167
  interface NatsOperationParams {
2008
- /** publishCell */
2168
+ /**
2169
+ * Cell Configuration
2170
+ *
2171
+ * Publishes the configuration for a cell.
2172
+ *
2173
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2174
+ *
2175
+ * @operationId publishCell
2176
+ */
2009
2177
  "nova.v2.cells.{cell}": {
2178
+ /**
2179
+ * Unique identifier addressing a cell in all API calls.
2180
+ */
2010
2181
  cell: string;
2011
2182
  };
2012
- /** publishApp */
2183
+ /**
2184
+ * App Configuration
2185
+ *
2186
+ * Publishes the configuration for a GUI application in the cell.
2187
+ *
2188
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2189
+ *
2190
+ * @operationId publishApp
2191
+ */
2013
2192
  "nova.v2.cells.{cell}.apps.{app}": {
2193
+ /**
2194
+ * Unique identifier addressing a cell in all API calls.
2195
+ */
2014
2196
  cell: string;
2197
+ /**
2198
+ * Name of the provided application.
2199
+ * Must be unique within the cell and is used as an identifier for addressing the application in all API calls, e.g., when updating the application.
2200
+ */
2015
2201
  app: string;
2016
2202
  };
2017
- /** publishProgramStatus */
2203
+ /**
2204
+ * Program Status
2205
+ *
2206
+ * Publishes status messages for programs running in an app within a cell.
2207
+ * The status messages provide information about the current state of a program run.
2208
+ *
2209
+ * @operationId publishProgramStatus
2210
+ */
2018
2211
  "nova.v2.cells.{cell}.programs": {
2212
+ /**
2213
+ * Unique identifier addressing a cell in all API calls.
2214
+ */
2019
2215
  cell: string;
2020
2216
  };
2021
- /** publishRobotController */
2217
+ /**
2218
+ * Robot Controller Configuration
2219
+ *
2220
+ * Publishes the configuration of a robot controller.
2221
+ *
2222
+ * @operationId publishRobotController
2223
+ */
2022
2224
  "nova.v2.cells.{cell}.controllers.{controller}": {
2225
+ /**
2226
+ * Unique identifier addressing a cell in all API calls.
2227
+ */
2023
2228
  cell: string;
2229
+ /**
2230
+ * Unique identifier to address a controller in the cell.
2231
+ */
2024
2232
  controller: string;
2025
2233
  };
2026
- /** publishCellStatus */
2234
+ /**
2235
+ * Service Status
2236
+ *
2237
+ * Publishes the status of all cell resources.
2238
+ *
2239
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2240
+ *
2241
+ * @operationId publishCellStatus
2242
+ */
2027
2243
  "nova.v2.cells.{cell}.status": {
2244
+ /**
2245
+ * Unique identifier addressing a cell in all API calls.
2246
+ */
2028
2247
  cell: string;
2029
2248
  };
2030
- /** publishCellCycle */
2249
+ /**
2250
+ * Cell Cycle Event
2251
+ *
2252
+ * Publishes the cycle events for a cell.
2253
+ *
2254
+ * @operationId publishCellCycle
2255
+ */
2031
2256
  "nova.v2.cells.{cell}.cycle": {
2257
+ /**
2258
+ * Unique identifier addressing a cell in all API calls.
2259
+ */
2032
2260
  cell: string;
2033
2261
  };
2034
- /** publishSystemStatus */
2035
- "nova.v2.system.status": Record<string, never>;
2036
- /** publishCollisionSetup */
2262
+ /**
2263
+ * Wandelbots NOVA status
2264
+ *
2265
+ * Publishes the status of all system services.
2266
+ *
2267
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2268
+ *
2269
+ * @operationId publishSystemStatus
2270
+ */
2271
+ "nova.v2.system.status": Record<never, never>;
2272
+ /**
2273
+ * Collision Setup
2274
+ *
2275
+ * Publishes the stored collision setup.
2276
+ *
2277
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2278
+ *
2279
+ * @operationId publishCollisionSetup
2280
+ */
2037
2281
  "nova.v2.cells.{cell}.collision.setups.{setup}": {
2282
+ /**
2283
+ * Unique identifier addressing a cell in all API calls.
2284
+ */
2038
2285
  cell: string;
2286
+ /**
2287
+ * Unique identifier addressing a collision setup.
2288
+ */
2039
2289
  setup: string;
2040
2290
  };
2041
- /** publishBUSIOStatus */
2291
+ /**
2292
+ * BUS Inputs/Outputs Service Status
2293
+ *
2294
+ * Publishes the status of BUS inputs/outputs service.
2295
+ *
2296
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`.
2297
+ *
2298
+ * @operationId publishBUSIOStatus
2299
+ */
2042
2300
  "nova.v2.cells.{cell}.bus-ios.status": {
2301
+ /**
2302
+ * Unique identifier addressing a cell in all API calls.
2303
+ */
2043
2304
  cell: string;
2044
2305
  };
2045
- /** publishBUSIOsIOs */
2306
+ /**
2307
+ * BUS Input/Output Values
2308
+ *
2309
+ * Publishes updates of BUS input/output values.
2310
+ *
2311
+ * @operationId publishBUSIOsIOs
2312
+ */
2046
2313
  "nova.v2.cells.{cell}.bus-ios.ios": {
2314
+ /**
2315
+ * Unique identifier addressing a cell in all API calls.
2316
+ */
2047
2317
  cell: string;
2048
2318
  };
2049
- /** setBUSIOsIOs */
2319
+ /**
2320
+ * Set Output Values
2321
+ *
2322
+ * Set output values published with the BUS inputs/outputs service.
2323
+ * If you're using a virtual service, you can set inputs as well.
2324
+ *
2325
+ * @operationId setBUSIOsIOs
2326
+ */
2050
2327
  "nova.v2.cells.{cell}.bus-ios.ios.set": {
2328
+ /**
2329
+ * Unique identifier addressing a cell in all API calls.
2330
+ */
2051
2331
  cell: string;
2052
2332
  };
2053
- /** selectRobotControllerIOs */
2333
+ /**
2334
+ * Select Input/Output Values
2335
+ *
2336
+ * Select input/output values published by the controller.
2337
+ *
2338
+ * @operationId selectRobotControllerIOs
2339
+ */
2054
2340
  "nova.v2.cells.{cell}.controllers.{controller}.ios.select": {
2341
+ /**
2342
+ * Unique identifier addressing a cell in all API calls.
2343
+ */
2055
2344
  cell: string;
2345
+ /**
2346
+ * Unique identifier to address a controller in a cell.
2347
+ */
2056
2348
  controller: string;
2057
2349
  };
2058
- /** publishRobotControllerIOs */
2350
+ /**
2351
+ * Input/Output Values
2352
+ *
2353
+ * Publishes updates of input/output values.
2354
+ *
2355
+ * @operationId publishRobotControllerIOs
2356
+ */
2059
2357
  "nova.v2.cells.{cell}.controllers.{controller}.ios": {
2358
+ /**
2359
+ * Unique identifier addressing a cell in all API calls.
2360
+ */
2060
2361
  cell: string;
2362
+ /**
2363
+ * Unique identifier to address a controller in the cell.
2364
+ */
2061
2365
  controller: string;
2062
2366
  };
2063
- /** publishRobotControllersState */
2367
+ /**
2368
+ * State of Robot Controller
2369
+ *
2370
+ * Publishes the current state of a robot controller.
2371
+ *
2372
+ * @operationId publishRobotControllersState
2373
+ */
2064
2374
  "nova.v2.cells.{cell}.controllers.{controller}.state": {
2375
+ /**
2376
+ * Unique identifier addressing a cell in all API calls.
2377
+ */
2065
2378
  cell: string;
2379
+ /**
2380
+ * Unique identifier to address a controller in the cell.
2381
+ */
2066
2382
  controller: string;
2067
2383
  };
2068
- /** publishMotionGroupDescription */
2384
+ /**
2385
+ * Description of Motion Group
2386
+ *
2387
+ * Publishes the description of a motion group, including TCPs, mounting, safety zones, limits, etc.
2388
+ *
2389
+ * @operationId publishMotionGroupDescription
2390
+ */
2069
2391
  "nova.v2.cells.{cell}.controllers.{controller}.motion-groups.{motion-group}.description": {
2392
+ /**
2393
+ * Unique identifier addressing a cell in all API calls.
2394
+ */
2070
2395
  cell: string;
2396
+ /**
2397
+ * Unique identifier addressing a controller in the cell.
2398
+ */
2071
2399
  controller: string;
2400
+ /**
2401
+ * Motion group identifier.
2402
+ */
2072
2403
  "motion-group": string;
2073
2404
  };
2074
- /** eventSystemUpdateStarted */
2075
- "nova.v2.events.system.update.started": Record<string, never>;
2076
- /** eventSystemUpdateCompleted */
2077
- "nova.v2.events.system.update.completed": Record<string, never>;
2078
- /** eventSystemNetworkStatusChanged */
2079
- "nova.v2.events.system.network.status.changed": Record<string, never>;
2080
- /** eventCellCreated */
2405
+ /**
2406
+ * System Update Started
2407
+ *
2408
+ * Publishes an event when a system update process is initiated.
2409
+ *
2410
+ * This event is triggered once the service-manager begins a system update process,
2411
+ * providing details about the update metadata, trigger information, and pre-update checks.
2412
+ *
2413
+ * The event follows CloudEvents v1.0 specification and is persisted in NATS JetStream
2414
+ * for reliable delivery and event replay capabilities.
2415
+ *
2416
+ * @operationId eventSystemUpdateStarted
2417
+ */
2418
+ "nova.v2.events.system.update.started": Record<never, never>;
2419
+ /**
2420
+ * System Update Completed
2421
+ *
2422
+ * Publishes an event when a system update process is completed.
2423
+ *
2424
+ * This event is triggered once the service-manager completes a system update process,
2425
+ * providing comprehensive results including success status, component outcomes,
2426
+ * error details, and post-update validation results.
2427
+ *
2428
+ * The event follows CloudEvents v1.0 specification and is persisted in NATS JetStream
2429
+ * for reliable delivery and event replay capabilities.
2430
+ *
2431
+ * @operationId eventSystemUpdateCompleted
2432
+ */
2433
+ "nova.v2.events.system.update.completed": Record<never, never>;
2434
+ /**
2435
+ * System Network Status Changed
2436
+ *
2437
+ * Publishes an event when a system network status changes.
2438
+ *
2439
+ * This event is triggered once system-info service detects a change in the system network status,
2440
+ * providing details about the new network state and related information.
2441
+ *
2442
+ * The event follows CloudEvents v1.0 specification and is persisted in NATS JetStream
2443
+ * for reliable delivery and event replay capabilities.
2444
+ *
2445
+ * @operationId eventSystemNetworkStatusChanged
2446
+ */
2447
+ "nova.v2.events.system.network.status.changed": Record<never, never>;
2448
+ /**
2449
+ * Cell Created
2450
+ *
2451
+ * Publishes an event when a cell foundation release is created.
2452
+ *
2453
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2454
+ *
2455
+ * @operationId eventCellCreated
2456
+ */
2081
2457
  "nova.v2.events.cells.{cell}.created": {
2458
+ /**
2459
+ * Unique identifier addressing a cell in all API calls.
2460
+ */
2082
2461
  cell: string;
2083
2462
  };
2084
- /** eventCellUpdated */
2463
+ /**
2464
+ * Cell Updated
2465
+ *
2466
+ * Publishes an event when a cell foundation release is updated.
2467
+ *
2468
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2469
+ *
2470
+ * @operationId eventCellUpdated
2471
+ */
2085
2472
  "nova.v2.events.cells.{cell}.updated": {
2473
+ /**
2474
+ * Unique identifier addressing a cell in all API calls.
2475
+ */
2086
2476
  cell: string;
2087
2477
  };
2088
- /** eventCellDeleted */
2478
+ /**
2479
+ * Cell Deleted
2480
+ *
2481
+ * Publishes an event when a cell foundation release is deleted.
2482
+ *
2483
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2484
+ *
2485
+ * @operationId eventCellDeleted
2486
+ */
2089
2487
  "nova.v2.events.cells.{cell}.deleted": {
2488
+ /**
2489
+ * Unique identifier addressing a cell in all API calls.
2490
+ */
2090
2491
  cell: string;
2091
2492
  };
2092
- /** eventAppCreated */
2493
+ /**
2494
+ * App Created
2495
+ *
2496
+ * Publishes an event when an app release is created in a cell.
2497
+ *
2498
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2499
+ *
2500
+ * @operationId eventAppCreated
2501
+ */
2093
2502
  "nova.v2.events.cells.{cell}.apps.{app}.created": {
2503
+ /**
2504
+ * Unique identifier addressing a cell in all API calls.
2505
+ */
2094
2506
  cell: string;
2507
+ /**
2508
+ * Unique identifier addressing an app in the cell.
2509
+ */
2095
2510
  app: string;
2096
2511
  };
2097
- /** eventAppUpdated */
2512
+ /**
2513
+ * App Updated
2514
+ *
2515
+ * Publishes an event when an app release is updated in a cell.
2516
+ *
2517
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2518
+ *
2519
+ * @operationId eventAppUpdated
2520
+ */
2098
2521
  "nova.v2.events.cells.{cell}.apps.{app}.updated": {
2522
+ /**
2523
+ * Unique identifier addressing a cell in all API calls.
2524
+ */
2099
2525
  cell: string;
2526
+ /**
2527
+ * Unique identifier addressing an app in the cell.
2528
+ */
2100
2529
  app: string;
2101
2530
  };
2102
- /** eventAppDeleted */
2103
- "nova.v2.events.cells.{cell}.apps.{app}.deleted": {
2104
- cell: string;
2105
- app: string;
2531
+ /**
2532
+ * App Deleted
2533
+ *
2534
+ * Publishes an event when an app release is deleted from a cell.
2535
+ *
2536
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2537
+ *
2538
+ * @operationId eventAppDeleted
2539
+ */
2540
+ "nova.v2.events.cells.{cell}.apps.{app}.deleted": {
2541
+ /**
2542
+ * Unique identifier addressing a cell in all API calls.
2543
+ */
2544
+ cell: string;
2545
+ /**
2546
+ * Unique identifier addressing an app in the cell.
2547
+ */
2548
+ app: string;
2106
2549
  };
2107
- /** eventRobotControllerCreated */
2550
+ /**
2551
+ * Robot Controller Created
2552
+ *
2553
+ * Publishes an event when a robot controller release is created in a cell.
2554
+ *
2555
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2556
+ *
2557
+ * @operationId eventRobotControllerCreated
2558
+ */
2108
2559
  "nova.v2.events.cells.{cell}.controllers.{controller}.created": {
2560
+ /**
2561
+ * Unique identifier addressing a cell in all API calls.
2562
+ */
2109
2563
  cell: string;
2564
+ /**
2565
+ * Unique identifier to address a controller in the cell.
2566
+ */
2110
2567
  controller: string;
2111
2568
  };
2112
- /** eventRobotControllerUpdated */
2569
+ /**
2570
+ * Robot Controller Updated
2571
+ *
2572
+ * Publishes an event when a robot controller release is updated in a cell.
2573
+ *
2574
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2575
+ *
2576
+ * @operationId eventRobotControllerUpdated
2577
+ */
2113
2578
  "nova.v2.events.cells.{cell}.controllers.{controller}.updated": {
2579
+ /**
2580
+ * Unique identifier addressing a cell in all API calls.
2581
+ */
2114
2582
  cell: string;
2583
+ /**
2584
+ * Unique identifier to address a controller in the cell.
2585
+ */
2115
2586
  controller: string;
2116
2587
  };
2117
- /** eventRobotControllerDeleted */
2588
+ /**
2589
+ * Robot Controller Deleted
2590
+ *
2591
+ * Publishes an event when a robot controller release is deleted from a cell.
2592
+ *
2593
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2594
+ *
2595
+ * @operationId eventRobotControllerDeleted
2596
+ */
2118
2597
  "nova.v2.events.cells.{cell}.controllers.{controller}.deleted": {
2598
+ /**
2599
+ * Unique identifier addressing a cell in all API calls.
2600
+ */
2119
2601
  cell: string;
2602
+ /**
2603
+ * Unique identifier to address a controller in the cell.
2604
+ */
2120
2605
  controller: string;
2121
2606
  };
2122
2607
  }
2123
2608
  /** Payload types for subjects the server publishes and the client subscribes to. */
2124
2609
  interface NatsSubscribePayloads {
2125
- /** publishCell */
2610
+ /**
2611
+ * Cell Configuration
2612
+ *
2613
+ * Publishes the configuration for a cell.
2614
+ *
2615
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2616
+ *
2617
+ * @operationId publishCell
2618
+ */
2126
2619
  "nova.v2.cells.{cell}": Cell;
2127
- /** publishApp */
2620
+ /**
2621
+ * App Configuration
2622
+ *
2623
+ * Publishes the configuration for a GUI application in the cell.
2624
+ *
2625
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2626
+ *
2627
+ * @operationId publishApp
2628
+ */
2128
2629
  "nova.v2.cells.{cell}.apps.{app}": App;
2129
- /** publishProgramStatus */
2630
+ /**
2631
+ * Program Status
2632
+ *
2633
+ * Publishes status messages for programs running in an app within a cell.
2634
+ * The status messages provide information about the current state of a program run.
2635
+ *
2636
+ * @operationId publishProgramStatus
2637
+ */
2130
2638
  "nova.v2.cells.{cell}.programs": ProgramStatus;
2131
- /** publishRobotController */
2639
+ /**
2640
+ * Robot Controller Configuration
2641
+ *
2642
+ * Publishes the configuration of a robot controller.
2643
+ *
2644
+ * @operationId publishRobotController
2645
+ */
2132
2646
  "nova.v2.cells.{cell}.controllers.{controller}": RobotController;
2133
- /** publishCellStatus */
2647
+ /**
2648
+ * Service Status
2649
+ *
2650
+ * Publishes the status of all cell resources.
2651
+ *
2652
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2653
+ *
2654
+ * @operationId publishCellStatus
2655
+ */
2134
2656
  "nova.v2.cells.{cell}.status": ServiceStatusList;
2135
- /** publishCellCycle */
2657
+ /**
2658
+ * Cell Cycle Event
2659
+ *
2660
+ * Publishes the cycle events for a cell.
2661
+ *
2662
+ * @operationId publishCellCycle
2663
+ */
2136
2664
  "nova.v2.cells.{cell}.cycle": CellCycleEvent;
2137
- /** publishSystemStatus */
2665
+ /**
2666
+ * Wandelbots NOVA status
2667
+ *
2668
+ * Publishes the status of all system services.
2669
+ *
2670
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2671
+ *
2672
+ * @operationId publishSystemStatus
2673
+ */
2138
2674
  "nova.v2.system.status": ServiceStatusList;
2139
- /** publishCollisionSetup */
2675
+ /**
2676
+ * Collision Setup
2677
+ *
2678
+ * Publishes the stored collision setup.
2679
+ *
2680
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2681
+ *
2682
+ * @operationId publishCollisionSetup
2683
+ */
2140
2684
  "nova.v2.cells.{cell}.collision.setups.{setup}": CollisionSetup;
2141
- /** publishBUSIOStatus */
2685
+ /**
2686
+ * BUS Inputs/Outputs Service Status
2687
+ *
2688
+ * Publishes the status of BUS inputs/outputs service.
2689
+ *
2690
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`.
2691
+ *
2692
+ * @operationId publishBUSIOStatus
2693
+ */
2142
2694
  "nova.v2.cells.{cell}.bus-ios.status": BusIOsState;
2143
- /** publishBUSIOsIOs */
2695
+ /**
2696
+ * BUS Input/Output Values
2697
+ *
2698
+ * Publishes updates of BUS input/output values.
2699
+ *
2700
+ * @operationId publishBUSIOsIOs
2701
+ */
2144
2702
  "nova.v2.cells.{cell}.bus-ios.ios": ListIOValuesResponse;
2145
- /** publishRobotControllerIOs */
2703
+ /**
2704
+ * Input/Output Values
2705
+ *
2706
+ * Publishes updates of input/output values.
2707
+ *
2708
+ * @operationId publishRobotControllerIOs
2709
+ */
2146
2710
  "nova.v2.cells.{cell}.controllers.{controller}.ios": StreamIOValuesResponse;
2147
- /** publishRobotControllersState */
2711
+ /**
2712
+ * State of Robot Controller
2713
+ *
2714
+ * Publishes the current state of a robot controller.
2715
+ *
2716
+ * @operationId publishRobotControllersState
2717
+ */
2148
2718
  "nova.v2.cells.{cell}.controllers.{controller}.state": RobotControllerState;
2149
- /** publishMotionGroupDescription */
2719
+ /**
2720
+ * Description of Motion Group
2721
+ *
2722
+ * Publishes the description of a motion group, including TCPs, mounting, safety zones, limits, etc.
2723
+ *
2724
+ * @operationId publishMotionGroupDescription
2725
+ */
2150
2726
  "nova.v2.cells.{cell}.controllers.{controller}.motion-groups.{motion-group}.description": MotionGroupDescription;
2151
- /** eventSystemUpdateStarted */
2727
+ /**
2728
+ * System Update Started
2729
+ *
2730
+ * Publishes an event when a system update process is initiated.
2731
+ *
2732
+ * This event is triggered once the service-manager begins a system update process,
2733
+ * providing details about the update metadata, trigger information, and pre-update checks.
2734
+ *
2735
+ * The event follows CloudEvents v1.0 specification and is persisted in NATS JetStream
2736
+ * for reliable delivery and event replay capabilities.
2737
+ *
2738
+ * @operationId eventSystemUpdateStarted
2739
+ */
2152
2740
  "nova.v2.events.system.update.started": SystemUpdateStartedEvent;
2153
- /** eventSystemUpdateCompleted */
2741
+ /**
2742
+ * System Update Completed
2743
+ *
2744
+ * Publishes an event when a system update process is completed.
2745
+ *
2746
+ * This event is triggered once the service-manager completes a system update process,
2747
+ * providing comprehensive results including success status, component outcomes,
2748
+ * error details, and post-update validation results.
2749
+ *
2750
+ * The event follows CloudEvents v1.0 specification and is persisted in NATS JetStream
2751
+ * for reliable delivery and event replay capabilities.
2752
+ *
2753
+ * @operationId eventSystemUpdateCompleted
2754
+ */
2154
2755
  "nova.v2.events.system.update.completed": SystemUpdateCompletedEvent;
2155
- /** eventSystemNetworkStatusChanged */
2756
+ /**
2757
+ * System Network Status Changed
2758
+ *
2759
+ * Publishes an event when a system network status changes.
2760
+ *
2761
+ * This event is triggered once system-info service detects a change in the system network status,
2762
+ * providing details about the new network state and related information.
2763
+ *
2764
+ * The event follows CloudEvents v1.0 specification and is persisted in NATS JetStream
2765
+ * for reliable delivery and event replay capabilities.
2766
+ *
2767
+ * @operationId eventSystemNetworkStatusChanged
2768
+ */
2156
2769
  "nova.v2.events.system.network.status.changed": NetworkStatusChangedEvent;
2157
- /** eventCellCreated */
2770
+ /**
2771
+ * Cell Created
2772
+ *
2773
+ * Publishes an event when a cell foundation release is created.
2774
+ *
2775
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2776
+ *
2777
+ * @operationId eventCellCreated
2778
+ */
2158
2779
  "nova.v2.events.cells.{cell}.created": CellCreatedEvent;
2159
- /** eventCellUpdated */
2780
+ /**
2781
+ * Cell Updated
2782
+ *
2783
+ * Publishes an event when a cell foundation release is updated.
2784
+ *
2785
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2786
+ *
2787
+ * @operationId eventCellUpdated
2788
+ */
2160
2789
  "nova.v2.events.cells.{cell}.updated": CellUpdatedEvent;
2161
- /** eventCellDeleted */
2790
+ /**
2791
+ * Cell Deleted
2792
+ *
2793
+ * Publishes an event when a cell foundation release is deleted.
2794
+ *
2795
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2796
+ *
2797
+ * @operationId eventCellDeleted
2798
+ */
2162
2799
  "nova.v2.events.cells.{cell}.deleted": CellDeletedEvent;
2163
- /** eventAppCreated */
2800
+ /**
2801
+ * App Created
2802
+ *
2803
+ * Publishes an event when an app release is created in a cell.
2804
+ *
2805
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2806
+ *
2807
+ * @operationId eventAppCreated
2808
+ */
2164
2809
  "nova.v2.events.cells.{cell}.apps.{app}.created": AppCreatedEvent;
2165
- /** eventAppUpdated */
2810
+ /**
2811
+ * App Updated
2812
+ *
2813
+ * Publishes an event when an app release is updated in a cell.
2814
+ *
2815
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2816
+ *
2817
+ * @operationId eventAppUpdated
2818
+ */
2166
2819
  "nova.v2.events.cells.{cell}.apps.{app}.updated": AppUpdatedEvent;
2167
- /** eventAppDeleted */
2820
+ /**
2821
+ * App Deleted
2822
+ *
2823
+ * Publishes an event when an app release is deleted from a cell.
2824
+ *
2825
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2826
+ *
2827
+ * @operationId eventAppDeleted
2828
+ */
2168
2829
  "nova.v2.events.cells.{cell}.apps.{app}.deleted": AppDeletedEvent;
2169
- /** eventRobotControllerCreated */
2830
+ /**
2831
+ * Robot Controller Created
2832
+ *
2833
+ * Publishes an event when a robot controller release is created in a cell.
2834
+ *
2835
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2836
+ *
2837
+ * @operationId eventRobotControllerCreated
2838
+ */
2170
2839
  "nova.v2.events.cells.{cell}.controllers.{controller}.created": RobotControllerCreatedEvent;
2171
- /** eventRobotControllerUpdated */
2840
+ /**
2841
+ * Robot Controller Updated
2842
+ *
2843
+ * Publishes an event when a robot controller release is updated in a cell.
2844
+ *
2845
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2846
+ *
2847
+ * @operationId eventRobotControllerUpdated
2848
+ */
2172
2849
  "nova.v2.events.cells.{cell}.controllers.{controller}.updated": RobotControllerUpdatedEvent;
2173
- /** eventRobotControllerDeleted */
2850
+ /**
2851
+ * Robot Controller Deleted
2852
+ *
2853
+ * Publishes an event when a robot controller release is deleted from a cell.
2854
+ *
2855
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
2856
+ *
2857
+ * @operationId eventRobotControllerDeleted
2858
+ */
2174
2859
  "nova.v2.events.cells.{cell}.controllers.{controller}.deleted": RobotControllerDeletedEvent;
2175
2860
  }
2176
2861
  type NatsSubscribeSubject = keyof NatsSubscribePayloads;
2177
2862
  /** Request payload types for subjects the client sends requests to. */
2178
2863
  interface NatsRequestPayloads {
2179
- /** setBUSIOsIOs */
2864
+ /**
2865
+ * Set Output Values
2866
+ *
2867
+ * Set output values published with the BUS inputs/outputs service.
2868
+ * If you're using a virtual service, you can set inputs as well.
2869
+ *
2870
+ * @operationId setBUSIOsIOs
2871
+ */
2180
2872
  "nova.v2.cells.{cell}.bus-ios.ios.set": ListIOValuesResponse;
2181
- /** selectRobotControllerIOs */
2873
+ /**
2874
+ * Select Input/Output Values
2875
+ *
2876
+ * Select input/output values published by the controller.
2877
+ *
2878
+ * @operationId selectRobotControllerIOs
2879
+ */
2182
2880
  "nova.v2.cells.{cell}.controllers.{controller}.ios.select": SelectIOs;
2183
2881
  }
2184
2882
  /** Reply payload types for request/reply subjects. */
2185
2883
  interface NatsReplyPayloads {
2186
- /** setBUSIOsIOs */
2884
+ /**
2885
+ * Set Output Values
2886
+ *
2887
+ * Set output values published with the BUS inputs/outputs service.
2888
+ * If you're using a virtual service, you can set inputs as well.
2889
+ *
2890
+ * @operationId setBUSIOsIOs
2891
+ */
2187
2892
  "nova.v2.cells.{cell}.bus-ios.ios.set": NatsErrorPayload;
2188
- /** selectRobotControllerIOs */
2893
+ /**
2894
+ * Select Input/Output Values
2895
+ *
2896
+ * Select input/output values published by the controller.
2897
+ *
2898
+ * @operationId selectRobotControllerIOs
2899
+ */
2189
2900
  "nova.v2.cells.{cell}.controllers.{controller}.ios.select": NatsErrorPayload;
2190
2901
  }
2191
2902
  type NatsRequestSubject = keyof NatsRequestPayloads;
2903
+ /** Payload types for every subject defined in the spec, publishable via NovaNatsClient#publish. */
2904
+ interface NatsPublishPayloads {
2905
+ /**
2906
+ * Cell Configuration
2907
+ *
2908
+ * Publishes the configuration for a cell.
2909
+ *
2910
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2911
+ *
2912
+ * @operationId publishCell
2913
+ */
2914
+ "nova.v2.cells.{cell}": Cell;
2915
+ /**
2916
+ * App Configuration
2917
+ *
2918
+ * Publishes the configuration for a GUI application in the cell.
2919
+ *
2920
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2921
+ *
2922
+ * @operationId publishApp
2923
+ */
2924
+ "nova.v2.cells.{cell}.apps.{app}": App;
2925
+ /**
2926
+ * Program Status
2927
+ *
2928
+ * Publishes status messages for programs running in an app within a cell.
2929
+ * The status messages provide information about the current state of a program run.
2930
+ *
2931
+ * @operationId publishProgramStatus
2932
+ */
2933
+ "nova.v2.cells.{cell}.programs": ProgramStatus;
2934
+ /**
2935
+ * Robot Controller Configuration
2936
+ *
2937
+ * Publishes the configuration of a robot controller.
2938
+ *
2939
+ * @operationId publishRobotController
2940
+ */
2941
+ "nova.v2.cells.{cell}.controllers.{controller}": RobotController;
2942
+ /**
2943
+ * Service Status
2944
+ *
2945
+ * Publishes the status of all cell resources.
2946
+ *
2947
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2948
+ *
2949
+ * @operationId publishCellStatus
2950
+ */
2951
+ "nova.v2.cells.{cell}.status": ServiceStatusList;
2952
+ /**
2953
+ * Cell Cycle Event
2954
+ *
2955
+ * Publishes the cycle events for a cell.
2956
+ *
2957
+ * @operationId publishCellCycle
2958
+ */
2959
+ "nova.v2.cells.{cell}.cycle": CellCycleEvent;
2960
+ /**
2961
+ * Wandelbots NOVA status
2962
+ *
2963
+ * Publishes the status of all system services.
2964
+ *
2965
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2966
+ *
2967
+ * @operationId publishSystemStatus
2968
+ */
2969
+ "nova.v2.system.status": ServiceStatusList;
2970
+ /**
2971
+ * Collision Setup
2972
+ *
2973
+ * Publishes the stored collision setup.
2974
+ *
2975
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`
2976
+ *
2977
+ * @operationId publishCollisionSetup
2978
+ */
2979
+ "nova.v2.cells.{cell}.collision.setups.{setup}": CollisionSetup;
2980
+ /**
2981
+ * BUS Inputs/Outputs Service Status
2982
+ *
2983
+ * Publishes the status of BUS inputs/outputs service.
2984
+ *
2985
+ * The latest status message is persisted NATS JetStream, documented in `x-nats-jetstream-stream`.
2986
+ *
2987
+ * @operationId publishBUSIOStatus
2988
+ */
2989
+ "nova.v2.cells.{cell}.bus-ios.status": BusIOsState;
2990
+ /**
2991
+ * BUS Input/Output Values
2992
+ *
2993
+ * Publishes updates of BUS input/output values.
2994
+ *
2995
+ * @operationId publishBUSIOsIOs
2996
+ */
2997
+ "nova.v2.cells.{cell}.bus-ios.ios": ListIOValuesResponse;
2998
+ /**
2999
+ * Set Output Values
3000
+ *
3001
+ * Set output values published with the BUS inputs/outputs service.
3002
+ * If you're using a virtual service, you can set inputs as well.
3003
+ *
3004
+ * @operationId setBUSIOsIOs
3005
+ */
3006
+ "nova.v2.cells.{cell}.bus-ios.ios.set": ListIOValuesResponse;
3007
+ /**
3008
+ * Select Input/Output Values
3009
+ *
3010
+ * Select input/output values published by the controller.
3011
+ *
3012
+ * @operationId selectRobotControllerIOs
3013
+ */
3014
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.select": SelectIOs;
3015
+ /**
3016
+ * Input/Output Values
3017
+ *
3018
+ * Publishes updates of input/output values.
3019
+ *
3020
+ * @operationId publishRobotControllerIOs
3021
+ */
3022
+ "nova.v2.cells.{cell}.controllers.{controller}.ios": StreamIOValuesResponse;
3023
+ /**
3024
+ * State of Robot Controller
3025
+ *
3026
+ * Publishes the current state of a robot controller.
3027
+ *
3028
+ * @operationId publishRobotControllersState
3029
+ */
3030
+ "nova.v2.cells.{cell}.controllers.{controller}.state": RobotControllerState;
3031
+ /**
3032
+ * Description of Motion Group
3033
+ *
3034
+ * Publishes the description of a motion group, including TCPs, mounting, safety zones, limits, etc.
3035
+ *
3036
+ * @operationId publishMotionGroupDescription
3037
+ */
3038
+ "nova.v2.cells.{cell}.controllers.{controller}.motion-groups.{motion-group}.description": MotionGroupDescription;
3039
+ /**
3040
+ * System Update Started
3041
+ *
3042
+ * Publishes an event when a system update process is initiated.
3043
+ *
3044
+ * This event is triggered once the service-manager begins a system update process,
3045
+ * providing details about the update metadata, trigger information, and pre-update checks.
3046
+ *
3047
+ * The event follows CloudEvents v1.0 specification and is persisted in NATS JetStream
3048
+ * for reliable delivery and event replay capabilities.
3049
+ *
3050
+ * @operationId eventSystemUpdateStarted
3051
+ */
3052
+ "nova.v2.events.system.update.started": SystemUpdateStartedEvent;
3053
+ /**
3054
+ * System Update Completed
3055
+ *
3056
+ * Publishes an event when a system update process is completed.
3057
+ *
3058
+ * This event is triggered once the service-manager completes a system update process,
3059
+ * providing comprehensive results including success status, component outcomes,
3060
+ * error details, and post-update validation results.
3061
+ *
3062
+ * The event follows CloudEvents v1.0 specification and is persisted in NATS JetStream
3063
+ * for reliable delivery and event replay capabilities.
3064
+ *
3065
+ * @operationId eventSystemUpdateCompleted
3066
+ */
3067
+ "nova.v2.events.system.update.completed": SystemUpdateCompletedEvent;
3068
+ /**
3069
+ * System Network Status Changed
3070
+ *
3071
+ * Publishes an event when a system network status changes.
3072
+ *
3073
+ * This event is triggered once system-info service detects a change in the system network status,
3074
+ * providing details about the new network state and related information.
3075
+ *
3076
+ * The event follows CloudEvents v1.0 specification and is persisted in NATS JetStream
3077
+ * for reliable delivery and event replay capabilities.
3078
+ *
3079
+ * @operationId eventSystemNetworkStatusChanged
3080
+ */
3081
+ "nova.v2.events.system.network.status.changed": NetworkStatusChangedEvent;
3082
+ /**
3083
+ * Cell Created
3084
+ *
3085
+ * Publishes an event when a cell foundation release is created.
3086
+ *
3087
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
3088
+ *
3089
+ * @operationId eventCellCreated
3090
+ */
3091
+ "nova.v2.events.cells.{cell}.created": CellCreatedEvent;
3092
+ /**
3093
+ * Cell Updated
3094
+ *
3095
+ * Publishes an event when a cell foundation release is updated.
3096
+ *
3097
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
3098
+ *
3099
+ * @operationId eventCellUpdated
3100
+ */
3101
+ "nova.v2.events.cells.{cell}.updated": CellUpdatedEvent;
3102
+ /**
3103
+ * Cell Deleted
3104
+ *
3105
+ * Publishes an event when a cell foundation release is deleted.
3106
+ *
3107
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
3108
+ *
3109
+ * @operationId eventCellDeleted
3110
+ */
3111
+ "nova.v2.events.cells.{cell}.deleted": CellDeletedEvent;
3112
+ /**
3113
+ * App Created
3114
+ *
3115
+ * Publishes an event when an app release is created in a cell.
3116
+ *
3117
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
3118
+ *
3119
+ * @operationId eventAppCreated
3120
+ */
3121
+ "nova.v2.events.cells.{cell}.apps.{app}.created": AppCreatedEvent;
3122
+ /**
3123
+ * App Updated
3124
+ *
3125
+ * Publishes an event when an app release is updated in a cell.
3126
+ *
3127
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
3128
+ *
3129
+ * @operationId eventAppUpdated
3130
+ */
3131
+ "nova.v2.events.cells.{cell}.apps.{app}.updated": AppUpdatedEvent;
3132
+ /**
3133
+ * App Deleted
3134
+ *
3135
+ * Publishes an event when an app release is deleted from a cell.
3136
+ *
3137
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
3138
+ *
3139
+ * @operationId eventAppDeleted
3140
+ */
3141
+ "nova.v2.events.cells.{cell}.apps.{app}.deleted": AppDeletedEvent;
3142
+ /**
3143
+ * Robot Controller Created
3144
+ *
3145
+ * Publishes an event when a robot controller release is created in a cell.
3146
+ *
3147
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
3148
+ *
3149
+ * @operationId eventRobotControllerCreated
3150
+ */
3151
+ "nova.v2.events.cells.{cell}.controllers.{controller}.created": RobotControllerCreatedEvent;
3152
+ /**
3153
+ * Robot Controller Updated
3154
+ *
3155
+ * Publishes an event when a robot controller release is updated in a cell.
3156
+ *
3157
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
3158
+ *
3159
+ * @operationId eventRobotControllerUpdated
3160
+ */
3161
+ "nova.v2.events.cells.{cell}.controllers.{controller}.updated": RobotControllerUpdatedEvent;
3162
+ /**
3163
+ * Robot Controller Deleted
3164
+ *
3165
+ * Publishes an event when a robot controller release is deleted from a cell.
3166
+ *
3167
+ * The event follows CloudEvents v1.0 and is persisted in NATS JetStream for reliable delivery and replay capabilities.
3168
+ *
3169
+ * @operationId eventRobotControllerDeleted
3170
+ */
3171
+ "nova.v2.events.cells.{cell}.controllers.{controller}.deleted": RobotControllerDeletedEvent;
3172
+ }
3173
+ type NatsPublishSubject = keyof NatsPublishPayloads;
2192
3174
  //#endregion
2193
3175
  //#region src/lib/experimental/nats/NovaNatsClient.d.ts
2194
3176
  type NovaNatsClientConfig = ConnectionOptions;
3177
+ type NatsMessageHandler<K extends NatsSubscribeSubject> = (payload: NatsSubscribePayloads[K], msg: Msg) => void | Promise<void>;
3178
+ type SubscribeArgs<K extends NatsSubscribeSubject> = keyof NatsOperationParams[K] extends never ? [handler: NatsMessageHandler<K>] : [params: NatsOperationParams[K], handler: NatsMessageHandler<K>];
2195
3179
  /**
2196
3180
  * Typed NATS client for the Wandelbots NOVA messaging API, generated from
2197
3181
  * src/asyncapi.yaml (see scripts/generate-nats-client.ts).
@@ -2201,7 +3185,7 @@ type NovaNatsClientConfig = ConnectionOptions;
2201
3185
  declare class NovaNatsClient {
2202
3186
  readonly config: NovaNatsClientConfig;
2203
3187
  private connectionPromise;
2204
- constructor(config: NovaNatsClientConfig);
3188
+ constructor(nova: Nova, config?: NovaNatsClientConfig);
2205
3189
  /**
2206
3190
  * Connects to NATS if not already connected or connecting, and returns the
2207
3191
  * connection. Safe to call concurrently: all callers share the same
@@ -2218,9 +3202,13 @@ declare class NovaNatsClient {
2218
3202
  * `"nova.v2.cells.{cell}"`, with `{param}` placeholders filled in from
2219
3203
  * `params`.
2220
3204
  *
3205
+ * Errors decoding a message or thrown/rejected by `handler` are caught and
3206
+ * logged per-message, so one bad message doesn't stop later messages on
3207
+ * the same subscription from being handled.
3208
+ *
2221
3209
  * Returns a function that unsubscribes when called.
2222
3210
  */
2223
- subscribe<K extends NatsSubscribeSubject>(subject: K, params: NatsOperationParams[K], handler: (payload: NatsSubscribePayloads[K], msg: Msg) => void): Promise<() => void>;
3211
+ subscribe<K extends NatsSubscribeSubject>(subject: K, ...args: SubscribeArgs<K>): Promise<() => void>;
2224
3212
  /**
2225
3213
  * Sends a request payload for a NATS subject the server receives, and
2226
3214
  * waits for the JSON-decoded reply.
@@ -2232,7 +3220,16 @@ declare class NovaNatsClient {
2232
3220
  request<K extends NatsRequestSubject>(subject: K, params: NatsOperationParams[K], payload: NatsRequestPayloads[K], opts?: {
2233
3221
  timeout?: number;
2234
3222
  }): Promise<NatsReplyPayloads[K]>;
3223
+ /**
3224
+ * Publishes a JSON payload to any NATS subject defined in the spec,
3225
+ * without waiting for a reply.
3226
+ *
3227
+ * `subject` is the subject template as it appears on the wire, e.g.
3228
+ * `"nova.v2.cells.{cell}.bus-ios.ios.set"`, with `{param}` placeholders
3229
+ * filled in from `params`.
3230
+ */
3231
+ publish<K extends NatsPublishSubject>(subject: K, params: NatsOperationParams[K], payload: NatsPublishPayloads[K]): Promise<void>;
2235
3232
  }
2236
3233
  //#endregion
2237
- export { type NatsOperationParams, type NatsReplyPayloads, type NatsRequestPayloads, type NatsRequestSubject, type NatsSubscribePayloads, type NatsSubscribeSubject, NovaNatsClient, type NovaNatsClientConfig, buildNatsServerUrl };
3234
+ export { type AbbController, type AddVirtualControllerMotionGroupRequest, type App, type AppCreatedEvent, type AppDeletedEvent, type AppEventData, type AppUpdatedEvent, type Box, type BusIOsState, type BusIOsStateEnum, type Capacity, type Capsule, type CartesianLimits, type Cell, type CellCreatedEvent, type CellCycleEvent, type CellDeletedEvent, type CellDescription, type CellEventData, type CellName, type CellUpdatedEvent, type CloudEvent, type Collider, type ColliderDictionary, type ColliderDictionary1, type ColliderDictionary2, type CollisionMotionGroupLink, type CollisionMotionGroupTool, type CollisionMotionGroupTool1, type CollisionSetup, type ContainerEnvironment, type ContainerImage, type ContainerResources, type ContainerStorage, type ControllerNetworkInterface, type ConvexHull, type Cylinder, type DHParameter, type Execute, type Execute1, type FanucController, type IOBooleanValue, type IOFloatValue, type IOIntegerValue, type IOValue, type ImageCredentials, type JoggingDetails, type JoggingPausedByUser, type JoggingPausedNearCollision, type JoggingPausedNearJointLimit, type JoggingPausedNearSingularity, type JoggingPausedOnIO, type JoggingRunning, type JointLimits, type JointTypeEnum, type Joints, type Joints1, type Joints2, type Joints3, type KukaController, type LimitRange, type LimitSet, type LinkChain, type LinkChain1, type ListIOValuesResponse, type Location, type Manufacturer, type MotionGroupDescription, type MotionGroupFromJSON, type MotionGroupFromModel, type MotionGroupModel, type MotionGroupState, type MotionGroupState1, type MotionGroupState_JointLimitReached, type MotionGroupState_JointLimitReached1, type NatsErrorPayload, type NatsOperationParams, type NatsPublishPayloads, type NatsPublishSubject, type NatsReplyPayloads, type NatsRequestPayloads, type NatsRequestSubject, type NatsSubscribePayloads, type NatsSubscribeSubject, type NetworkState, type NetworkStatusChangedEvent, NovaNatsClient, type NovaNatsClientConfig, type OperatingState, type OperationLimits, type OperationMode, type Payload, type PayloadDictionary, type Plane, type Pose, type Pose1, type Pose2, type Pose3, type Pose4, type Pose5, type ProgramRunState, type ProgramRunState1, type ProgramStatus, type Rectangle, type RectangularCapsule, type RobotController, type RobotControllerCreatedEvent, type RobotControllerDeletedEvent, type RobotControllerEventData, type RobotControllerState, type RobotControllerUpdatedEvent, type RobotSystemMode, type RotationVector, type SafetyStateType, type SafetyToolColliders, type SelectIOs, type ServiceGroup, type ServiceStatus, type ServiceStatusList, type ServiceStatusPhase, type ServiceStatusSeverity, type Sphere, type StreamIOValuesResponse, type SystemUpdateCompletedEvent, type SystemUpdateStartedEvent, type TcpOffset, type TcpOffsetDictionary, type TrajectoryDetails, type TrajectoryEnded, type TrajectoryPausedByUser, type TrajectoryPausedOnIO, type TrajectoryRunning, type TrajectoryWaitForIO, type UniversalrobotsController, type Vector3D, type Vector3D1, type Vector3D2, type VirtualController, type YaskawaController, buildNatsServerUrl };
2238
3235
  //# sourceMappingURL=index.d.cts.map