@rise-maritime/keelson-js 0.5.3 → 0.6.0-alpha.202.dev.1

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.
Files changed (121) hide show
  1. package/dist/index.d.ts +524 -1
  2. package/dist/index.js +114 -5
  3. package/dist/index.test.js +57 -0
  4. package/dist/interfaces/AlarmAck.d.ts +62 -0
  5. package/dist/interfaces/AlarmAck.js +218 -0
  6. package/dist/interfaces/Configurable.d.ts +24 -18
  7. package/dist/interfaces/Configurable.js +24 -22
  8. package/dist/interfaces/Coordinate.d.ts +38 -0
  9. package/dist/interfaces/Coordinate.js +82 -0
  10. package/dist/interfaces/ErrorResponse.d.ts +1 -1
  11. package/dist/interfaces/ErrorResponse.js +1 -1
  12. package/dist/interfaces/MavlinkCommand.d.ts +24 -18
  13. package/dist/interfaces/MavlinkCommand.js +24 -22
  14. package/dist/interfaces/Mission.d.ts +128 -0
  15. package/dist/interfaces/Mission.js +800 -0
  16. package/dist/interfaces/NetworkPingPong.d.ts +16 -16
  17. package/dist/interfaces/NetworkPingPong.js +16 -16
  18. package/dist/interfaces/ReplayControl.d.ts +72 -30
  19. package/dist/interfaces/ReplayControl.js +72 -58
  20. package/dist/interfaces/Route.d.ts +640 -0
  21. package/dist/interfaces/Route.js +4180 -0
  22. package/dist/interfaces/RoutePlanner.d.ts +152 -0
  23. package/dist/interfaces/RoutePlanner.js +268 -0
  24. package/dist/interfaces/ScenarioCheckpoint.d.ts +154 -0
  25. package/dist/interfaces/ScenarioCheckpoint.js +694 -0
  26. package/dist/interfaces/ScenarioControl.d.ts +144 -0
  27. package/dist/interfaces/ScenarioControl.js +552 -0
  28. package/dist/interfaces/Severity.d.ts +22 -0
  29. package/dist/interfaces/Severity.js +72 -0
  30. package/dist/interfaces/SimulationControl.d.ts +69 -0
  31. package/dist/interfaces/SimulationControl.js +153 -0
  32. package/dist/interfaces/Subscriber.d.ts +24 -18
  33. package/dist/interfaces/Subscriber.js +24 -22
  34. package/dist/interfaces/VehicleCommon.d.ts +1 -32
  35. package/dist/interfaces/VehicleCommon.js +2 -74
  36. package/dist/interfaces/VehicleControl.d.ts +34 -28
  37. package/dist/interfaces/VehicleControl.js +34 -22
  38. package/dist/interfaces/VehicleGeofence.d.ts +26 -19
  39. package/dist/interfaces/VehicleGeofence.js +40 -37
  40. package/dist/interfaces/VehicleLifecycle.d.ts +32 -20
  41. package/dist/interfaces/VehicleLifecycle.js +32 -28
  42. package/dist/interfaces/VehicleMission.d.ts +42 -97
  43. package/dist/interfaces/VehicleMission.js +41 -696
  44. package/dist/interfaces/VehicleNavigation.d.ts +30 -24
  45. package/dist/interfaces/VehicleNavigation.js +30 -22
  46. package/dist/interfaces/VehicleParam.d.ts +48 -24
  47. package/dist/interfaces/VehicleParam.js +48 -40
  48. package/dist/interfaces/VehicleSimulatorControl.d.ts +57 -0
  49. package/dist/interfaces/VehicleSimulatorControl.js +155 -0
  50. package/dist/interfaces/WHEPProxy.d.ts +16 -16
  51. package/dist/interfaces/WHEPProxy.js +16 -16
  52. package/dist/interfaces/foxglove/GeoJSON.d.ts +27 -0
  53. package/dist/interfaces/foxglove/GeoJSON.js +65 -0
  54. package/dist/interfaces/foxglove/LocationFix.d.ts +49 -0
  55. package/dist/interfaces/foxglove/LocationFix.js +246 -0
  56. package/dist/interfaces/google/protobuf/any.d.ts +144 -0
  57. package/dist/interfaces/google/protobuf/any.js +107 -0
  58. package/dist/interfaces/google/protobuf/duration.d.ts +99 -0
  59. package/dist/interfaces/google/protobuf/duration.js +92 -0
  60. package/dist/interfaces/serviceRegistry.d.ts +520 -0
  61. package/dist/interfaces/serviceRegistry.js +40 -0
  62. package/dist/interfaces.json +19 -0
  63. package/dist/payloads/Alarm.d.ts +7 -12
  64. package/dist/payloads/Alarm.js +4 -54
  65. package/dist/payloads/ChecklistEvent.d.ts +152 -0
  66. package/dist/payloads/ChecklistEvent.js +524 -0
  67. package/dist/payloads/ChecklistEvidence.d.ts +79 -0
  68. package/dist/payloads/ChecklistEvidence.js +287 -0
  69. package/dist/payloads/ChecklistPresence.d.ts +68 -0
  70. package/dist/payloads/ChecklistPresence.js +286 -0
  71. package/dist/payloads/ChecklistProcedure.d.ts +81 -0
  72. package/dist/payloads/ChecklistProcedure.js +364 -0
  73. package/dist/payloads/ChecklistState.d.ts +178 -0
  74. package/dist/payloads/ChecklistState.js +838 -0
  75. package/dist/payloads/CommandAuthority.d.ts +82 -0
  76. package/dist/payloads/CommandAuthority.js +364 -0
  77. package/dist/payloads/Coordinate.d.ts +39 -0
  78. package/dist/payloads/Coordinate.js +85 -0
  79. package/dist/payloads/EntityHealth.d.ts +9 -0
  80. package/dist/payloads/EntityHealth.js +14 -0
  81. package/dist/payloads/Mission.d.ts +137 -0
  82. package/dist/payloads/Mission.js +826 -0
  83. package/dist/payloads/OperationalAuthority.d.ts +172 -5
  84. package/dist/payloads/OperationalAuthority.js +525 -6
  85. package/dist/payloads/Route.d.ts +662 -0
  86. package/dist/payloads/Route.js +4289 -0
  87. package/dist/payloads/RouteChangeEvent.d.ts +42 -0
  88. package/dist/payloads/RouteChangeEvent.js +223 -0
  89. package/dist/payloads/RouteEditAuthority.d.ts +87 -0
  90. package/dist/payloads/RouteEditAuthority.js +380 -0
  91. package/dist/payloads/RouteExecution.d.ts +64 -0
  92. package/dist/payloads/RouteExecution.js +310 -0
  93. package/dist/payloads/ScenarioStatus.d.ts +160 -0
  94. package/dist/payloads/ScenarioStatus.js +654 -0
  95. package/dist/payloads/Severity.d.ts +13 -6
  96. package/dist/payloads/Severity.js +30 -18
  97. package/dist/payloads/SimulationStatus.d.ts +3 -4
  98. package/dist/payloads/SimulationStatus.js +12 -18
  99. package/dist/payloads/TestObjectStatus.d.ts +154 -0
  100. package/dist/payloads/TestObjectStatus.js +580 -0
  101. package/dist/payloads/VesselType.d.ts +2 -1
  102. package/dist/payloads/VesselType.js +1 -1
  103. package/dist/payloads/Voyage.d.ts +154 -0
  104. package/dist/payloads/Voyage.js +866 -0
  105. package/dist/payloads/WarrantRecord.d.ts +168 -0
  106. package/dist/payloads/WarrantRecord.js +781 -0
  107. package/dist/payloads/foxglove/CompressedPointCloud.d.ts +37 -0
  108. package/dist/payloads/foxglove/CompressedPointCloud.js +185 -0
  109. package/dist/payloads/google/protobuf/any.d.ts +145 -0
  110. package/dist/payloads/google/protobuf/any.js +110 -0
  111. package/dist/payloads/google/protobuf/empty.d.ts +34 -0
  112. package/dist/payloads/google/protobuf/empty.js +50 -0
  113. package/dist/payloads/index.foxglove.d.ts +1 -0
  114. package/dist/payloads/index.foxglove.js +1 -0
  115. package/dist/payloads/index.google.protobuf.d.ts +2 -0
  116. package/dist/payloads/index.google.protobuf.js +2 -0
  117. package/dist/payloads/index.keelson.d.ts +17 -1
  118. package/dist/payloads/index.keelson.js +17 -1
  119. package/dist/qos.json +95 -0
  120. package/dist/subjects.json +38 -1
  121. package/package.json +2 -1
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v2.6.1
5
+ // protoc v6.30.2
6
+ // source: RouteExecution.proto
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.RouteExecution = void 0;
9
+ /* eslint-disable */
10
+ const wire_1 = require("@bufbuild/protobuf/wire");
11
+ const Route_1 = require("./Route");
12
+ const timestamp_1 = require("./google/protobuf/timestamp");
13
+ const typeRegistry_1 = require("./typeRegistry");
14
+ function createBaseRouteExecution() {
15
+ return {
16
+ $type: "keelson.RouteExecution",
17
+ timestamp: undefined,
18
+ voyageId: "",
19
+ routeRef: undefined,
20
+ currentLegFromWaypointId: undefined,
21
+ nextWaypointId: undefined,
22
+ distanceToNextWaypointM: 0,
23
+ xtdM: 0,
24
+ bearingToNextDeg: 0,
25
+ etaNextWaypoint: undefined,
26
+ etaArrival: undefined,
27
+ deviationActive: false,
28
+ deviationThresholdM: 0,
29
+ speedOverGroundKnots: 0,
30
+ courseOverGroundDeg: 0,
31
+ };
32
+ }
33
+ exports.RouteExecution = {
34
+ $type: "keelson.RouteExecution",
35
+ encode(message, writer = new wire_1.BinaryWriter()) {
36
+ if (message.timestamp !== undefined) {
37
+ timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(10).fork()).join();
38
+ }
39
+ if (message.voyageId !== "") {
40
+ writer.uint32(18).string(message.voyageId);
41
+ }
42
+ if (message.routeRef !== undefined) {
43
+ Route_1.RouteRef.encode(message.routeRef, writer.uint32(42).fork()).join();
44
+ }
45
+ if (message.currentLegFromWaypointId !== undefined) {
46
+ writer.uint32(122).string(message.currentLegFromWaypointId);
47
+ }
48
+ if (message.nextWaypointId !== undefined) {
49
+ writer.uint32(130).string(message.nextWaypointId);
50
+ }
51
+ if (message.distanceToNextWaypointM !== 0) {
52
+ writer.uint32(101).float(message.distanceToNextWaypointM);
53
+ }
54
+ if (message.xtdM !== 0) {
55
+ writer.uint32(109).float(message.xtdM);
56
+ }
57
+ if (message.bearingToNextDeg !== 0) {
58
+ writer.uint32(117).float(message.bearingToNextDeg);
59
+ }
60
+ if (message.etaNextWaypoint !== undefined) {
61
+ timestamp_1.Timestamp.encode(toTimestamp(message.etaNextWaypoint), writer.uint32(162).fork()).join();
62
+ }
63
+ if (message.etaArrival !== undefined) {
64
+ timestamp_1.Timestamp.encode(toTimestamp(message.etaArrival), writer.uint32(170).fork()).join();
65
+ }
66
+ if (message.deviationActive !== false) {
67
+ writer.uint32(240).bool(message.deviationActive);
68
+ }
69
+ if (message.deviationThresholdM !== 0) {
70
+ writer.uint32(253).float(message.deviationThresholdM);
71
+ }
72
+ if (message.speedOverGroundKnots !== 0) {
73
+ writer.uint32(325).float(message.speedOverGroundKnots);
74
+ }
75
+ if (message.courseOverGroundDeg !== 0) {
76
+ writer.uint32(333).float(message.courseOverGroundDeg);
77
+ }
78
+ return writer;
79
+ },
80
+ decode(input, length) {
81
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
82
+ let end = length === undefined ? reader.len : reader.pos + length;
83
+ const message = createBaseRouteExecution();
84
+ while (reader.pos < end) {
85
+ const tag = reader.uint32();
86
+ switch (tag >>> 3) {
87
+ case 1: {
88
+ if (tag !== 10) {
89
+ break;
90
+ }
91
+ message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
92
+ continue;
93
+ }
94
+ case 2: {
95
+ if (tag !== 18) {
96
+ break;
97
+ }
98
+ message.voyageId = reader.string();
99
+ continue;
100
+ }
101
+ case 5: {
102
+ if (tag !== 42) {
103
+ break;
104
+ }
105
+ message.routeRef = Route_1.RouteRef.decode(reader, reader.uint32());
106
+ continue;
107
+ }
108
+ case 15: {
109
+ if (tag !== 122) {
110
+ break;
111
+ }
112
+ message.currentLegFromWaypointId = reader.string();
113
+ continue;
114
+ }
115
+ case 16: {
116
+ if (tag !== 130) {
117
+ break;
118
+ }
119
+ message.nextWaypointId = reader.string();
120
+ continue;
121
+ }
122
+ case 12: {
123
+ if (tag !== 101) {
124
+ break;
125
+ }
126
+ message.distanceToNextWaypointM = reader.float();
127
+ continue;
128
+ }
129
+ case 13: {
130
+ if (tag !== 109) {
131
+ break;
132
+ }
133
+ message.xtdM = reader.float();
134
+ continue;
135
+ }
136
+ case 14: {
137
+ if (tag !== 117) {
138
+ break;
139
+ }
140
+ message.bearingToNextDeg = reader.float();
141
+ continue;
142
+ }
143
+ case 20: {
144
+ if (tag !== 162) {
145
+ break;
146
+ }
147
+ message.etaNextWaypoint = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
148
+ continue;
149
+ }
150
+ case 21: {
151
+ if (tag !== 170) {
152
+ break;
153
+ }
154
+ message.etaArrival = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
155
+ continue;
156
+ }
157
+ case 30: {
158
+ if (tag !== 240) {
159
+ break;
160
+ }
161
+ message.deviationActive = reader.bool();
162
+ continue;
163
+ }
164
+ case 31: {
165
+ if (tag !== 253) {
166
+ break;
167
+ }
168
+ message.deviationThresholdM = reader.float();
169
+ continue;
170
+ }
171
+ case 40: {
172
+ if (tag !== 325) {
173
+ break;
174
+ }
175
+ message.speedOverGroundKnots = reader.float();
176
+ continue;
177
+ }
178
+ case 41: {
179
+ if (tag !== 333) {
180
+ break;
181
+ }
182
+ message.courseOverGroundDeg = reader.float();
183
+ continue;
184
+ }
185
+ }
186
+ if ((tag & 7) === 4 || tag === 0) {
187
+ break;
188
+ }
189
+ reader.skip(tag & 7);
190
+ }
191
+ return message;
192
+ },
193
+ fromJSON(object) {
194
+ return {
195
+ $type: exports.RouteExecution.$type,
196
+ timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,
197
+ voyageId: isSet(object.voyageId) ? globalThis.String(object.voyageId) : "",
198
+ routeRef: isSet(object.routeRef) ? Route_1.RouteRef.fromJSON(object.routeRef) : undefined,
199
+ currentLegFromWaypointId: isSet(object.currentLegFromWaypointId)
200
+ ? globalThis.String(object.currentLegFromWaypointId)
201
+ : undefined,
202
+ nextWaypointId: isSet(object.nextWaypointId) ? globalThis.String(object.nextWaypointId) : undefined,
203
+ distanceToNextWaypointM: isSet(object.distanceToNextWaypointM)
204
+ ? globalThis.Number(object.distanceToNextWaypointM)
205
+ : 0,
206
+ xtdM: isSet(object.xtdM) ? globalThis.Number(object.xtdM) : 0,
207
+ bearingToNextDeg: isSet(object.bearingToNextDeg) ? globalThis.Number(object.bearingToNextDeg) : 0,
208
+ etaNextWaypoint: isSet(object.etaNextWaypoint) ? fromJsonTimestamp(object.etaNextWaypoint) : undefined,
209
+ etaArrival: isSet(object.etaArrival) ? fromJsonTimestamp(object.etaArrival) : undefined,
210
+ deviationActive: isSet(object.deviationActive) ? globalThis.Boolean(object.deviationActive) : false,
211
+ deviationThresholdM: isSet(object.deviationThresholdM) ? globalThis.Number(object.deviationThresholdM) : 0,
212
+ speedOverGroundKnots: isSet(object.speedOverGroundKnots) ? globalThis.Number(object.speedOverGroundKnots) : 0,
213
+ courseOverGroundDeg: isSet(object.courseOverGroundDeg) ? globalThis.Number(object.courseOverGroundDeg) : 0,
214
+ };
215
+ },
216
+ toJSON(message) {
217
+ const obj = {};
218
+ if (message.timestamp !== undefined) {
219
+ obj.timestamp = message.timestamp.toISOString();
220
+ }
221
+ if (message.voyageId !== "") {
222
+ obj.voyageId = message.voyageId;
223
+ }
224
+ if (message.routeRef !== undefined) {
225
+ obj.routeRef = Route_1.RouteRef.toJSON(message.routeRef);
226
+ }
227
+ if (message.currentLegFromWaypointId !== undefined) {
228
+ obj.currentLegFromWaypointId = message.currentLegFromWaypointId;
229
+ }
230
+ if (message.nextWaypointId !== undefined) {
231
+ obj.nextWaypointId = message.nextWaypointId;
232
+ }
233
+ if (message.distanceToNextWaypointM !== 0) {
234
+ obj.distanceToNextWaypointM = message.distanceToNextWaypointM;
235
+ }
236
+ if (message.xtdM !== 0) {
237
+ obj.xtdM = message.xtdM;
238
+ }
239
+ if (message.bearingToNextDeg !== 0) {
240
+ obj.bearingToNextDeg = message.bearingToNextDeg;
241
+ }
242
+ if (message.etaNextWaypoint !== undefined) {
243
+ obj.etaNextWaypoint = message.etaNextWaypoint.toISOString();
244
+ }
245
+ if (message.etaArrival !== undefined) {
246
+ obj.etaArrival = message.etaArrival.toISOString();
247
+ }
248
+ if (message.deviationActive !== false) {
249
+ obj.deviationActive = message.deviationActive;
250
+ }
251
+ if (message.deviationThresholdM !== 0) {
252
+ obj.deviationThresholdM = message.deviationThresholdM;
253
+ }
254
+ if (message.speedOverGroundKnots !== 0) {
255
+ obj.speedOverGroundKnots = message.speedOverGroundKnots;
256
+ }
257
+ if (message.courseOverGroundDeg !== 0) {
258
+ obj.courseOverGroundDeg = message.courseOverGroundDeg;
259
+ }
260
+ return obj;
261
+ },
262
+ create(base) {
263
+ return exports.RouteExecution.fromPartial(base ?? {});
264
+ },
265
+ fromPartial(object) {
266
+ const message = createBaseRouteExecution();
267
+ message.timestamp = object.timestamp ?? undefined;
268
+ message.voyageId = object.voyageId ?? "";
269
+ message.routeRef = (object.routeRef !== undefined && object.routeRef !== null)
270
+ ? Route_1.RouteRef.fromPartial(object.routeRef)
271
+ : undefined;
272
+ message.currentLegFromWaypointId = object.currentLegFromWaypointId ?? undefined;
273
+ message.nextWaypointId = object.nextWaypointId ?? undefined;
274
+ message.distanceToNextWaypointM = object.distanceToNextWaypointM ?? 0;
275
+ message.xtdM = object.xtdM ?? 0;
276
+ message.bearingToNextDeg = object.bearingToNextDeg ?? 0;
277
+ message.etaNextWaypoint = object.etaNextWaypoint ?? undefined;
278
+ message.etaArrival = object.etaArrival ?? undefined;
279
+ message.deviationActive = object.deviationActive ?? false;
280
+ message.deviationThresholdM = object.deviationThresholdM ?? 0;
281
+ message.speedOverGroundKnots = object.speedOverGroundKnots ?? 0;
282
+ message.courseOverGroundDeg = object.courseOverGroundDeg ?? 0;
283
+ return message;
284
+ },
285
+ };
286
+ typeRegistry_1.messageTypeRegistry.set(exports.RouteExecution.$type, exports.RouteExecution);
287
+ function toTimestamp(date) {
288
+ const seconds = Math.trunc(date.getTime() / 1000);
289
+ const nanos = (date.getTime() % 1000) * 1000000;
290
+ return { $type: "google.protobuf.Timestamp", seconds, nanos };
291
+ }
292
+ function fromTimestamp(t) {
293
+ let millis = (t.seconds || 0) * 1000;
294
+ millis += (t.nanos || 0) / 1000000;
295
+ return new globalThis.Date(millis);
296
+ }
297
+ function fromJsonTimestamp(o) {
298
+ if (o instanceof globalThis.Date) {
299
+ return o;
300
+ }
301
+ else if (typeof o === "string") {
302
+ return new globalThis.Date(o);
303
+ }
304
+ else {
305
+ return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));
306
+ }
307
+ }
308
+ function isSet(value) {
309
+ return value !== null && value !== undefined;
310
+ }
@@ -0,0 +1,160 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ import { Duration } from "./google/protobuf/duration";
3
+ export interface ScenarioParticipant {
4
+ $type: "keelson.ScenarioParticipant";
5
+ entityId: string;
6
+ sourceId: string;
7
+ role: ScenarioParticipant_Role;
8
+ /**
9
+ * Last tick this participant acknowledged. For a BLOCKING participant
10
+ * this is what the clock is waiting on; for the others it is a lag
11
+ * indicator rather than a barrier.
12
+ */
13
+ acknowledgedTick: number;
14
+ /**
15
+ * False once the authority considers the participant late, wedged, or
16
+ * gone. The scenario decides the threshold; this field only reports it.
17
+ */
18
+ healthy: boolean;
19
+ }
20
+ /**
21
+ * How this participant relates to the clock. A fixed-step run is only
22
+ * reproducible if it is explicit about who may hold it up.
23
+ */
24
+ export declare enum ScenarioParticipant_Role {
25
+ ROLE_UNKNOWN = 0,
26
+ /** OBSERVING - Never holds the clock. UIs, recorders in real-time mode. */
27
+ OBSERVING = 1,
28
+ /**
29
+ * BLOCKING - The clock waits for this participant to acknowledge each tick.
30
+ * Dynamics and any sensor whose output must exist for every tick.
31
+ */
32
+ BLOCKING = 2,
33
+ /**
34
+ * DECIMATING - May skip work to keep up, and says so, but never stalls the clock.
35
+ * Render-derived sensors in real-time mode.
36
+ */
37
+ DECIMATING = 3,
38
+ UNRECOGNIZED = -1
39
+ }
40
+ export declare function scenarioParticipant_RoleFromJSON(object: any): ScenarioParticipant_Role;
41
+ export declare function scenarioParticipant_RoleToJSON(object: ScenarioParticipant_Role): string;
42
+ export interface ScenarioStatus {
43
+ $type: "keelson.ScenarioStatus";
44
+ /**
45
+ * Source timestamp: when this status was produced, in wall-clock time.
46
+ * simulation_time below is the *simulated* clock and the two diverge by
47
+ * design in every mode except real time.
48
+ */
49
+ timestamp: Date | undefined;
50
+ state: ScenarioStatus_State;
51
+ mode: ScenarioStatus_Mode;
52
+ /**
53
+ * Identity of the loaded scenario, and of this particular run of it.
54
+ * scenario_hash pins the exact content: two runs quoting the same
55
+ * scenario_id and different hashes did not run the same scenario, and
56
+ * no amount of matching seeds makes their results comparable.
57
+ */
58
+ scenarioId: string;
59
+ scenarioHash: string;
60
+ runId: string;
61
+ /**
62
+ * Fixed-step clock. tick counts steps from 0; step_size is the interval
63
+ * each tick represents; simulation_time is the absolute simulated time
64
+ * of the current tick.
65
+ */
66
+ tick: number;
67
+ stepSize: Duration | undefined;
68
+ simulationTime: Date | undefined;
69
+ /**
70
+ * Seed the run was started with. Carried here so a recording is
71
+ * self-describing — a reproduction attempt should never have to guess.
72
+ */
73
+ seed: number;
74
+ /**
75
+ * Wall-clock scaling requested via set_rate, and what the authority is
76
+ * actually achieving. They differ when the simulation cannot keep up;
77
+ * that difference is the honest signal, and a run whose measured_rate
78
+ * has drifted from its commanded_rate has not been running at the rate
79
+ * its results claim.
80
+ */
81
+ commandedRate: number;
82
+ measuredRate: number;
83
+ /**
84
+ * How far behind the wall-clock schedule the clock is running.
85
+ * Meaningful in REAL_TIME; zero elsewhere by definition.
86
+ */
87
+ lag: Duration | undefined;
88
+ /**
89
+ * Everything participating in this run, with its relationship to the
90
+ * clock. Empty is legal — a single-process simulator has no barrier to
91
+ * report — but a run that lists no BLOCKING participant while claiming
92
+ * STEPPED mode is misreporting.
93
+ */
94
+ participants: ScenarioParticipant[];
95
+ /**
96
+ * Where this run was branched from, if it was restored from a checkpoint
97
+ * (scenario_checkpoint/v1). Empty parent_run_id means this run started at
98
+ * tick 0 in the ordinary way; parent_tick is meaningful only when
99
+ * parent_run_id is set.
100
+ *
101
+ * Without these a restored run is indistinguishable on the bus from a
102
+ * fresh one, and the branch point — the thing that explains why a run's
103
+ * recording starts mid-exercise — exists only in the responder's log.
104
+ */
105
+ parentRunId: string;
106
+ parentTick: number;
107
+ }
108
+ export declare enum ScenarioStatus_State {
109
+ UNKNOWN = 0,
110
+ NO_SCENARIO = 1,
111
+ LOADING = 2,
112
+ STOPPED = 3,
113
+ RUNNING = 4,
114
+ PAUSED = 5,
115
+ /**
116
+ * FINISHED - The scenario reached its declared end. Distinct from STOPPED, which
117
+ * is an operator decision — an evaluator needs to tell "it finished"
118
+ * from "someone halted it".
119
+ */
120
+ FINISHED = 6,
121
+ UNRECOGNIZED = -1
122
+ }
123
+ export declare function scenarioStatus_StateFromJSON(object: any): ScenarioStatus_State;
124
+ export declare function scenarioStatus_StateToJSON(object: ScenarioStatus_State): string;
125
+ /**
126
+ * How the clock is currently being driven. Emergent rather than
127
+ * commanded: a rate of 0.0 is FAST_TIME, hand-driven steps are STEPPED.
128
+ */
129
+ export declare enum ScenarioStatus_Mode {
130
+ MODE_UNKNOWN = 0,
131
+ REAL_TIME = 1,
132
+ STEPPED = 2,
133
+ FAST_TIME = 3,
134
+ REPLAY = 4,
135
+ UNRECOGNIZED = -1
136
+ }
137
+ export declare function scenarioStatus_ModeFromJSON(object: any): ScenarioStatus_Mode;
138
+ export declare function scenarioStatus_ModeToJSON(object: ScenarioStatus_Mode): string;
139
+ export declare const ScenarioParticipant: MessageFns<ScenarioParticipant, "keelson.ScenarioParticipant">;
140
+ export declare const ScenarioStatus: MessageFns<ScenarioStatus, "keelson.ScenarioStatus">;
141
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
142
+ type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
143
+ [K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
144
+ } : Partial<T>;
145
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
146
+ type Exact<P, I extends P> = P extends Builtin ? P : P & {
147
+ [K in keyof P]: Exact<P[K], I[K]>;
148
+ } & {
149
+ [K in Exclude<keyof I, KeysOfUnion<P> | "$type">]: never;
150
+ };
151
+ interface MessageFns<T, V extends string> {
152
+ readonly $type: V;
153
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
154
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
155
+ fromJSON(object: any): T;
156
+ toJSON(message: T): unknown;
157
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
158
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
159
+ }
160
+ export {};