@rise-maritime/keelson-js 0.6.0-alpha.282.dev.1 → 0.6.0-alpha.307.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 (40) hide show
  1. package/dist/index.d.ts +31 -31
  2. package/dist/interfaces/ContainerControl.d.ts +7 -0
  3. package/dist/interfaces/ContainerControl.js +18 -1
  4. package/dist/interfaces/ContainerHost.d.ts +45 -0
  5. package/dist/interfaces/ContainerHost.js +332 -1
  6. package/dist/interfaces/NavigationRiskControl.d.ts +161 -0
  7. package/dist/interfaces/NavigationRiskControl.js +1007 -0
  8. package/dist/interfaces/ReplayControl.d.ts +49 -1
  9. package/dist/interfaces/ReplayControl.js +274 -1
  10. package/dist/interfaces/Route.d.ts +80 -1
  11. package/dist/interfaces/Route.js +213 -2
  12. package/dist/interfaces/serviceRegistry.d.ts +33 -33
  13. package/dist/interfaces/serviceRegistry.js +2 -2
  14. package/dist/interfaces.json +1 -1
  15. package/dist/payloads/AdviceDisposition.d.ts +20 -5
  16. package/dist/payloads/AdviceDisposition.js +7 -0
  17. package/dist/payloads/ContainerHost.d.ts +48 -0
  18. package/dist/payloads/ContainerHost.js +341 -1
  19. package/dist/payloads/NavigationAdvice.d.ts +24 -0
  20. package/dist/payloads/NavigationAdvice.js +91 -1
  21. package/dist/payloads/NavigationRisk.d.ts +341 -0
  22. package/dist/payloads/NavigationRisk.js +2530 -0
  23. package/dist/payloads/NavigationState.d.ts +0 -46
  24. package/dist/payloads/NavigationState.js +1 -252
  25. package/dist/payloads/Route.d.ts +81 -1
  26. package/dist/payloads/Route.js +222 -2
  27. package/dist/payloads/index.keelson.d.ts +1 -0
  28. package/dist/payloads/index.keelson.js +1 -0
  29. package/dist/subjects.json +1 -0
  30. package/package.json +1 -1
  31. package/dist/interfaces/NavigationControl.d.ts +0 -169
  32. package/dist/interfaces/NavigationControl.js +0 -806
  33. package/dist/interfaces/NavigationState.d.ts +0 -132
  34. package/dist/interfaces/NavigationState.js +0 -615
  35. package/dist/interfaces/OperationalAuthority.d.ts +0 -217
  36. package/dist/interfaces/OperationalAuthority.js +0 -807
  37. package/dist/interfaces/VesselType.d.ts +0 -133
  38. package/dist/interfaces/VesselType.js +0 -726
  39. package/dist/interfaces/Voyage.d.ts +0 -151
  40. package/dist/interfaces/Voyage.js +0 -855
@@ -5,8 +5,8 @@
5
5
  // protoc v6.30.2
6
6
  // source: Route.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.ScheduleElement = exports.Schedule = exports.Schedules = exports.Leg = exports.Waypoint = exports.DefaultWaypoint = exports.Waypoints = exports.RouteInfo = exports.Route = exports.Extensions_Entry_AttributesEntry = exports.Extensions_Entry = exports.Extensions = exports.CircleGeometry = exports.RouteRef = exports.schedule_OriginToJSON = exports.schedule_OriginFromJSON = exports.Schedule_Origin = exports.actionPointRequiredActionToJSON = exports.actionPointRequiredActionFromJSON = exports.ActionPointRequiredAction = exports.envelopeBoundToJSON = exports.envelopeBoundFromJSON = exports.EnvelopeBound = exports.routeStatusToJSON = exports.routeStatusFromJSON = exports.RouteStatus = exports.routeTopologyToJSON = exports.routeTopologyFromJSON = exports.RouteTopology = exports.geometryTypeToJSON = exports.geometryTypeFromJSON = exports.GeometryType = exports.colregTrafficIntensityToJSON = exports.colregTrafficIntensityFromJSON = exports.ColregTrafficIntensity = exports.colregSituationToJSON = exports.colregSituationFromJSON = exports.ColregSituation = exports.hazardZoneTypeToJSON = exports.hazardZoneTypeFromJSON = exports.HazardZoneType = exports.routeChallengeTypeToJSON = exports.routeChallengeTypeFromJSON = exports.RouteChallengeType = exports.operationalContextToJSON = exports.operationalContextFromJSON = exports.OperationalContext = exports.autonomyLevelToJSON = exports.autonomyLevelFromJSON = exports.AutonomyLevel = void 0;
9
- exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = exports.HazardZone = exports.ActionPoint = exports.ActionPoints = void 0;
8
+ exports.Leg = exports.Waypoint = exports.DefaultWaypoint = exports.Waypoints = exports.RouteInfo = exports.Route = exports.Extensions_Entry_AttributesEntry = exports.Extensions_Entry = exports.Extensions = exports.CircleGeometry = exports.RouteRef = exports.schedule_OriginToJSON = exports.schedule_OriginFromJSON = exports.Schedule_Origin = exports.actionPointRequiredActionToJSON = exports.actionPointRequiredActionFromJSON = exports.ActionPointRequiredAction = exports.envelopeBoundToJSON = exports.envelopeBoundFromJSON = exports.EnvelopeBound = exports.routeStatusToJSON = exports.routeStatusFromJSON = exports.RouteStatus = exports.routeTopologyToJSON = exports.routeTopologyFromJSON = exports.RouteTopology = exports.xtdCorridorModeToJSON = exports.xtdCorridorModeFromJSON = exports.XtdCorridorMode = exports.geometryTypeToJSON = exports.geometryTypeFromJSON = exports.GeometryType = exports.colregTrafficIntensityToJSON = exports.colregTrafficIntensityFromJSON = exports.ColregTrafficIntensity = exports.colregSituationToJSON = exports.colregSituationFromJSON = exports.ColregSituation = exports.hazardZoneTypeToJSON = exports.hazardZoneTypeFromJSON = exports.HazardZoneType = exports.routeChallengeTypeToJSON = exports.routeChallengeTypeFromJSON = exports.RouteChallengeType = exports.operationalContextToJSON = exports.operationalContextFromJSON = exports.OperationalContext = exports.autonomyLevelToJSON = exports.autonomyLevelFromJSON = exports.AutonomyLevel = void 0;
9
+ exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = exports.HazardZone = exports.ActionPoint = exports.ActionPoints = exports.ScheduleElement = exports.Schedule = exports.Schedules = exports.XtdBoundaryPoint = void 0;
10
10
  /* eslint-disable */
11
11
  const wire_1 = require("@bufbuild/protobuf/wire");
12
12
  const Coordinate_1 = require("./Coordinate");
@@ -432,6 +432,65 @@ function geometryTypeToJSON(object) {
432
432
  }
433
433
  }
434
434
  exports.geometryTypeToJSON = geometryTypeToJSON;
435
+ /**
436
+ * How a leg's XTD corridor is shaped. UNSPECIFIED MUST be read as FIXED:
437
+ * every leg published before this field existed is a fixed-width corridor, and
438
+ * reading it any other way would change routes nobody edited.
439
+ */
440
+ var XtdCorridorMode;
441
+ (function (XtdCorridorMode) {
442
+ XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_UNSPECIFIED"] = 0] = "XTD_CORRIDOR_MODE_UNSPECIFIED";
443
+ /**
444
+ * XTD_CORRIDOR_MODE_FIXED - Fixed width: parallel lines at xtd_port_m / xtd_starboard_m either side of
445
+ * track.
446
+ */
447
+ XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_FIXED"] = 1] = "XTD_CORRIDOR_MODE_FIXED";
448
+ /**
449
+ * XTD_CORRIDOR_MODE_VARIABLE - Variable width: a boundary drawn by the planner (Leg.xtd_port_boundary /
450
+ * xtd_starboard_boundary), e.g. a corridor that narrows past a shoal.
451
+ * The metre fields (xtd_port_m / xtd_starboard_m and the monitoring pair)
452
+ * MUST NOT exceed the closest approach to track of that side's drawn
453
+ * boundary: they are the INSCRIBED fixed corridor. A monitor that does not
454
+ * evaluate the boundary then alarms early on a wide stretch and never late at
455
+ * the narrow one, which is the direction an XTD limit has to fail. Such a
456
+ * monitor SHOULD report the leg as monitored at reduced fidelity, which is
457
+ * why its alarm may come early.
458
+ */
459
+ XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_VARIABLE"] = 2] = "XTD_CORRIDOR_MODE_VARIABLE";
460
+ XtdCorridorMode[XtdCorridorMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
461
+ })(XtdCorridorMode || (exports.XtdCorridorMode = XtdCorridorMode = {}));
462
+ function xtdCorridorModeFromJSON(object) {
463
+ switch (object) {
464
+ case 0:
465
+ case "XTD_CORRIDOR_MODE_UNSPECIFIED":
466
+ return XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED;
467
+ case 1:
468
+ case "XTD_CORRIDOR_MODE_FIXED":
469
+ return XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED;
470
+ case 2:
471
+ case "XTD_CORRIDOR_MODE_VARIABLE":
472
+ return XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE;
473
+ case -1:
474
+ case "UNRECOGNIZED":
475
+ default:
476
+ return XtdCorridorMode.UNRECOGNIZED;
477
+ }
478
+ }
479
+ exports.xtdCorridorModeFromJSON = xtdCorridorModeFromJSON;
480
+ function xtdCorridorModeToJSON(object) {
481
+ switch (object) {
482
+ case XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED:
483
+ return "XTD_CORRIDOR_MODE_UNSPECIFIED";
484
+ case XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED:
485
+ return "XTD_CORRIDOR_MODE_FIXED";
486
+ case XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE:
487
+ return "XTD_CORRIDOR_MODE_VARIABLE";
488
+ case XtdCorridorMode.UNRECOGNIZED:
489
+ default:
490
+ return "UNRECOGNIZED";
491
+ }
492
+ }
493
+ exports.xtdCorridorModeToJSON = xtdCorridorModeToJSON;
435
494
  /**
436
495
  * Whether a route's waypoint list closes back on itself. RTZ 1.2 has no such
437
496
  * concept, so producers either repeated the first waypoint (breaking id
@@ -2264,6 +2323,9 @@ function createBaseLeg() {
2264
2323
  xtdStarboardM: undefined,
2265
2324
  xtdMonitoringPortM: undefined,
2266
2325
  xtdMonitoringStarboardM: undefined,
2326
+ xtdCorridorMode: 0,
2327
+ xtdPortBoundary: [],
2328
+ xtdStarboardBoundary: [],
2267
2329
  safetyContourM: undefined,
2268
2330
  safetyDepthM: undefined,
2269
2331
  ukcStaticM: undefined,
@@ -2302,6 +2364,15 @@ exports.Leg = {
2302
2364
  if (message.xtdMonitoringStarboardM !== undefined) {
2303
2365
  writer.uint32(37).float(message.xtdMonitoringStarboardM);
2304
2366
  }
2367
+ if (message.xtdCorridorMode !== 0) {
2368
+ writer.uint32(40).int32(message.xtdCorridorMode);
2369
+ }
2370
+ for (const v of message.xtdPortBoundary) {
2371
+ exports.XtdBoundaryPoint.encode(v, writer.uint32(50).fork()).join();
2372
+ }
2373
+ for (const v of message.xtdStarboardBoundary) {
2374
+ exports.XtdBoundaryPoint.encode(v, writer.uint32(58).fork()).join();
2375
+ }
2305
2376
  if (message.safetyContourM !== undefined) {
2306
2377
  writer.uint32(85).float(message.safetyContourM);
2307
2378
  }
@@ -2402,6 +2473,27 @@ exports.Leg = {
2402
2473
  message.xtdMonitoringStarboardM = reader.float();
2403
2474
  continue;
2404
2475
  }
2476
+ case 5: {
2477
+ if (tag !== 40) {
2478
+ break;
2479
+ }
2480
+ message.xtdCorridorMode = reader.int32();
2481
+ continue;
2482
+ }
2483
+ case 6: {
2484
+ if (tag !== 50) {
2485
+ break;
2486
+ }
2487
+ message.xtdPortBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
2488
+ continue;
2489
+ }
2490
+ case 7: {
2491
+ if (tag !== 58) {
2492
+ break;
2493
+ }
2494
+ message.xtdStarboardBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
2495
+ continue;
2496
+ }
2405
2497
  case 10: {
2406
2498
  if (tag !== 85) {
2407
2499
  break;
@@ -2566,6 +2658,13 @@ exports.Leg = {
2566
2658
  xtdMonitoringStarboardM: isSet(object.xtdMonitoringStarboardM)
2567
2659
  ? globalThis.Number(object.xtdMonitoringStarboardM)
2568
2660
  : undefined,
2661
+ xtdCorridorMode: isSet(object.xtdCorridorMode) ? xtdCorridorModeFromJSON(object.xtdCorridorMode) : 0,
2662
+ xtdPortBoundary: globalThis.Array.isArray(object?.xtdPortBoundary)
2663
+ ? object.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
2664
+ : [],
2665
+ xtdStarboardBoundary: globalThis.Array.isArray(object?.xtdStarboardBoundary)
2666
+ ? object.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
2667
+ : [],
2569
2668
  safetyContourM: isSet(object.safetyContourM) ? globalThis.Number(object.safetyContourM) : undefined,
2570
2669
  safetyDepthM: isSet(object.safetyDepthM) ? globalThis.Number(object.safetyDepthM) : undefined,
2571
2670
  ukcStaticM: isSet(object.ukcStaticM) ? globalThis.Number(object.ukcStaticM) : undefined,
@@ -2605,6 +2704,15 @@ exports.Leg = {
2605
2704
  if (message.xtdMonitoringStarboardM !== undefined) {
2606
2705
  obj.xtdMonitoringStarboardM = message.xtdMonitoringStarboardM;
2607
2706
  }
2707
+ if (message.xtdCorridorMode !== 0) {
2708
+ obj.xtdCorridorMode = xtdCorridorModeToJSON(message.xtdCorridorMode);
2709
+ }
2710
+ if (message.xtdPortBoundary?.length) {
2711
+ obj.xtdPortBoundary = message.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
2712
+ }
2713
+ if (message.xtdStarboardBoundary?.length) {
2714
+ obj.xtdStarboardBoundary = message.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
2715
+ }
2608
2716
  if (message.safetyContourM !== undefined) {
2609
2717
  obj.safetyContourM = message.safetyContourM;
2610
2718
  }
@@ -2679,6 +2787,9 @@ exports.Leg = {
2679
2787
  message.xtdStarboardM = object.xtdStarboardM ?? undefined;
2680
2788
  message.xtdMonitoringPortM = object.xtdMonitoringPortM ?? undefined;
2681
2789
  message.xtdMonitoringStarboardM = object.xtdMonitoringStarboardM ?? undefined;
2790
+ message.xtdCorridorMode = object.xtdCorridorMode ?? 0;
2791
+ message.xtdPortBoundary = object.xtdPortBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
2792
+ message.xtdStarboardBoundary = object.xtdStarboardBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
2682
2793
  message.safetyContourM = object.safetyContourM ?? undefined;
2683
2794
  message.safetyDepthM = object.safetyDepthM ?? undefined;
2684
2795
  message.ukcStaticM = object.ukcStaticM ?? undefined;
@@ -2706,6 +2817,115 @@ exports.Leg = {
2706
2817
  },
2707
2818
  };
2708
2819
  typeRegistry_1.messageTypeRegistry.set(exports.Leg.$type, exports.Leg);
2820
+ function createBaseXtdBoundaryPoint() {
2821
+ return {
2822
+ $type: "keelson.XtdBoundaryPoint",
2823
+ position: undefined,
2824
+ alongTrackFraction: undefined,
2825
+ offsetM: undefined,
2826
+ inTurn: false,
2827
+ };
2828
+ }
2829
+ exports.XtdBoundaryPoint = {
2830
+ $type: "keelson.XtdBoundaryPoint",
2831
+ encode(message, writer = new wire_1.BinaryWriter()) {
2832
+ if (message.position !== undefined) {
2833
+ Coordinate_1.Coordinate.encode(message.position, writer.uint32(10).fork()).join();
2834
+ }
2835
+ if (message.alongTrackFraction !== undefined) {
2836
+ writer.uint32(17).double(message.alongTrackFraction);
2837
+ }
2838
+ if (message.offsetM !== undefined) {
2839
+ writer.uint32(29).float(message.offsetM);
2840
+ }
2841
+ if (message.inTurn !== false) {
2842
+ writer.uint32(32).bool(message.inTurn);
2843
+ }
2844
+ return writer;
2845
+ },
2846
+ decode(input, length) {
2847
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2848
+ let end = length === undefined ? reader.len : reader.pos + length;
2849
+ const message = createBaseXtdBoundaryPoint();
2850
+ while (reader.pos < end) {
2851
+ const tag = reader.uint32();
2852
+ switch (tag >>> 3) {
2853
+ case 1: {
2854
+ if (tag !== 10) {
2855
+ break;
2856
+ }
2857
+ message.position = Coordinate_1.Coordinate.decode(reader, reader.uint32());
2858
+ continue;
2859
+ }
2860
+ case 2: {
2861
+ if (tag !== 17) {
2862
+ break;
2863
+ }
2864
+ message.alongTrackFraction = reader.double();
2865
+ continue;
2866
+ }
2867
+ case 3: {
2868
+ if (tag !== 29) {
2869
+ break;
2870
+ }
2871
+ message.offsetM = reader.float();
2872
+ continue;
2873
+ }
2874
+ case 4: {
2875
+ if (tag !== 32) {
2876
+ break;
2877
+ }
2878
+ message.inTurn = reader.bool();
2879
+ continue;
2880
+ }
2881
+ }
2882
+ if ((tag & 7) === 4 || tag === 0) {
2883
+ break;
2884
+ }
2885
+ reader.skip(tag & 7);
2886
+ }
2887
+ return message;
2888
+ },
2889
+ fromJSON(object) {
2890
+ return {
2891
+ $type: exports.XtdBoundaryPoint.$type,
2892
+ position: isSet(object.position) ? Coordinate_1.Coordinate.fromJSON(object.position) : undefined,
2893
+ alongTrackFraction: isSet(object.alongTrackFraction) ? globalThis.Number(object.alongTrackFraction) : undefined,
2894
+ offsetM: isSet(object.offsetM) ? globalThis.Number(object.offsetM) : undefined,
2895
+ inTurn: isSet(object.inTurn) ? globalThis.Boolean(object.inTurn) : false,
2896
+ };
2897
+ },
2898
+ toJSON(message) {
2899
+ const obj = {};
2900
+ if (message.position !== undefined) {
2901
+ obj.position = Coordinate_1.Coordinate.toJSON(message.position);
2902
+ }
2903
+ if (message.alongTrackFraction !== undefined) {
2904
+ obj.alongTrackFraction = message.alongTrackFraction;
2905
+ }
2906
+ if (message.offsetM !== undefined) {
2907
+ obj.offsetM = message.offsetM;
2908
+ }
2909
+ if (message.inTurn !== false) {
2910
+ obj.inTurn = message.inTurn;
2911
+ }
2912
+ return obj;
2913
+ },
2914
+ create(base) {
2915
+ return exports.XtdBoundaryPoint.fromPartial(base ?? {});
2916
+ },
2917
+ fromPartial(object) {
2918
+ const message = createBaseXtdBoundaryPoint();
2919
+ message.position = (object.position !== undefined && object.position !== null)
2920
+ ? Coordinate_1.Coordinate.fromPartial(object.position)
2921
+ : undefined;
2922
+ message.alongTrackFraction = object.alongTrackFraction ?? undefined;
2923
+ message.offsetM = object.offsetM ?? undefined;
2924
+ message.inTurn = object.inTurn ?? false;
2925
+ return message;
2926
+ },
2927
+ };
2928
+ typeRegistry_1.messageTypeRegistry.set(exports.XtdBoundaryPoint.$type, exports.XtdBoundaryPoint);
2709
2929
  function createBaseSchedules() {
2710
2930
  return { $type: "keelson.Schedules", schedule: [], extensions: undefined };
2711
2931
  }
@@ -22,6 +22,7 @@ export * from "./Geojson";
22
22
  export * from "./LocationFixQuality";
23
23
  export * from "./Mission";
24
24
  export * from "./NavigationAdvice";
25
+ export * from "./NavigationRisk";
25
26
  export * from "./NavigationState";
26
27
  export * from "./NetworkStatus";
27
28
  export * from "./Primitives";
@@ -43,6 +43,7 @@ __exportStar(require("./Geojson"), exports);
43
43
  __exportStar(require("./LocationFixQuality"), exports);
44
44
  __exportStar(require("./Mission"), exports);
45
45
  __exportStar(require("./NavigationAdvice"), exports);
46
+ __exportStar(require("./NavigationRisk"), exports);
46
47
  __exportStar(require("./NavigationState"), exports);
47
48
  __exportStar(require("./NetworkStatus"), exports);
48
49
  __exportStar(require("./Primitives"), exports);
@@ -240,6 +240,7 @@
240
240
  "encounter": "keelson.Encounter",
241
241
  "navigation_advice": "keelson.NavigationAdvice",
242
242
  "advice_disposition": "keelson.AdviceDisposition",
243
+ "navigation_risk": "keelson.NavigationRisk",
243
244
  "command_authority": "keelson.CommandAuthority",
244
245
  "command_request": "keelson.CommandRequest",
245
246
  "checklist_event": "keelson.ChecklistEvent",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rise-maritime/keelson-js",
3
3
  "//version": "NOT the published version. The release workflow overwrites it from the release tag (npm version --no-git-tag-version), so tag and artifact cannot disagree. Only matters for local installs; do not hand-bump before tagging — that manual step is what broke release 0.5.4.",
4
- "version": "0.6.0-alpha.282.dev.1",
4
+ "version": "0.6.0-alpha.307.dev.1",
5
5
  "description": "Keelson JavaScript SDK with Node-RED nodes",
6
6
  "main": "dist/index.js",
7
7
  "files": [
@@ -1,169 +0,0 @@
1
- import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
- import { GuidanceOrder, NavigationState } from "./NavigationState";
3
- import { RouteRef } from "./Route";
4
- import { CommandResult } from "./VehicleCommon";
5
- import { VoyageStatus } from "./Voyage";
6
- export declare const protobufPackage = "keelson.interfaces.navigation_control";
7
- /** Who is calling, and on what authority. Carried by every mutating request. */
8
- export interface Caller {
9
- /**
10
- * Identity of the operator and site, or the service, e.g. "ted@ROC-1", "slipway". Recorded in
11
- * the responder's decision log, so it should mean something to somebody reading that later.
12
- */
13
- controllerId: string;
14
- /**
15
- * The token of the command_authority lease the caller holds. Absent when it holds none, which
16
- * is valid only while the responder holds the conn itself (see WHO MAY CALL).
17
- */
18
- authorityToken?: string | undefined;
19
- }
20
- /** Make a route edition the active voyage of this vessel. */
21
- export interface LoadRouteRequest {
22
- /** Client wall-clock at send, for latency logging only. */
23
- timestamp: Date | undefined;
24
- caller: Caller | undefined;
25
- /**
26
- * The entity whose route tree holds the edition. RouteRef names no entity, so it always
27
- * resolves inside the vessel's own tree; a route drawn for another vessel is copied first.
28
- * When it differs from this vessel, the responder reads
29
- * `{base}/@v0/{source_entity_id}/pubsub/route/{route_id}/edition/{N}` and republishes it
30
- * unchanged under its own vessel, with the same route_id and edition, before activating it.
31
- * Editions are immutable, so the copy is the same route, not a new one.
32
- */
33
- sourceEntityId: string;
34
- /**
35
- * The edition to sail. Never `latest`: an edition that cannot be resolved is refused, never
36
- * silently replaced.
37
- */
38
- routeRef: RouteRef | undefined;
39
- /**
40
- * The voyage to activate. Absent: the responder mints one. Present and already a voyage of
41
- * this vessel: that voyage is re-pinned to `route_ref` (a reroute).
42
- */
43
- voyageId?: string | undefined;
44
- /** The guidance order to take up once the voyage is active. Absent: TRACK. */
45
- initialOrder?: GuidanceOrder | undefined;
46
- }
47
- export interface LoadRouteResponse {
48
- result: CommandResult;
49
- /**
50
- * Why not, when result is not ACCEPTED: an unresolvable edition, no conn, another voyage the
51
- * responder will not displace. Empty otherwise.
52
- */
53
- detail: string;
54
- /** The voyage now ACTIVE, when result is ACCEPTED. */
55
- voyageId?: string | undefined;
56
- /** The navigation state the order produced. */
57
- state?: NavigationState | undefined;
58
- }
59
- /** Change how the vessel is steered while a voyage is active. */
60
- export interface SetGuidanceOrderRequest {
61
- timestamp: Date | undefined;
62
- caller: Caller | undefined;
63
- order: GuidanceOrder | undefined;
64
- }
65
- export interface SetGuidanceOrderResponse {
66
- /**
67
- * UNSUPPORTED when the responder, or the vehicle behind it, cannot hold the requested frame —
68
- * it never substitutes course for heading or the reverse.
69
- */
70
- result: CommandResult;
71
- detail: string;
72
- state?: NavigationState | undefined;
73
- }
74
- /** Pause, resume, complete or abort the active voyage. */
75
- export interface SetVoyageStatusRequest {
76
- timestamp: Date | undefined;
77
- caller: Caller | undefined;
78
- voyageId: string;
79
- /**
80
- * PAUSED, ACTIVE (resume), COMPLETED or ABORTED. PLANNED is refused: a voyage is planned by
81
- * publishing it, not by asking the process sailing it.
82
- */
83
- status: VoyageStatus;
84
- /** Why, for the voyage's audit trail. Free text. */
85
- reason: string;
86
- }
87
- export interface SetVoyageStatusResponse {
88
- result: CommandResult;
89
- detail: string;
90
- state?: NavigationState | undefined;
91
- }
92
- export interface GetNavigationStateRequest {
93
- }
94
- export declare const Caller: MessageFns<Caller>;
95
- export declare const LoadRouteRequest: MessageFns<LoadRouteRequest>;
96
- export declare const LoadRouteResponse: MessageFns<LoadRouteResponse>;
97
- export declare const SetGuidanceOrderRequest: MessageFns<SetGuidanceOrderRequest>;
98
- export declare const SetGuidanceOrderResponse: MessageFns<SetGuidanceOrderResponse>;
99
- export declare const SetVoyageStatusRequest: MessageFns<SetVoyageStatusRequest>;
100
- export declare const SetVoyageStatusResponse: MessageFns<SetVoyageStatusResponse>;
101
- export declare const GetNavigationStateRequest: MessageFns<GetNavigationStateRequest>;
102
- export type NavigationControlDefinition = typeof NavigationControlDefinition;
103
- export declare const NavigationControlDefinition: {
104
- readonly name: "NavigationControl";
105
- readonly fullName: "keelson.interfaces.navigation_control.NavigationControl";
106
- readonly methods: {
107
- /**
108
- * Make a route edition this vessel's active voyage, copying it from another vessel's tree when
109
- * needed, and take up a guidance order.
110
- */
111
- readonly load_route: {
112
- readonly name: "load_route";
113
- readonly requestType: MessageFns<LoadRouteRequest>;
114
- readonly requestStream: false;
115
- readonly responseType: MessageFns<LoadRouteResponse>;
116
- readonly responseStream: false;
117
- readonly options: {};
118
- };
119
- /** Steer by the track, a course, a heading, or hold; optionally with a speed. */
120
- readonly set_guidance_order: {
121
- readonly name: "set_guidance_order";
122
- readonly requestType: MessageFns<SetGuidanceOrderRequest>;
123
- readonly requestStream: false;
124
- readonly responseType: MessageFns<SetGuidanceOrderResponse>;
125
- readonly responseStream: false;
126
- readonly options: {};
127
- };
128
- /** Pause, resume, complete or abort the active voyage. */
129
- readonly set_voyage_status: {
130
- readonly name: "set_voyage_status";
131
- readonly requestType: MessageFns<SetVoyageStatusRequest>;
132
- readonly requestStream: false;
133
- readonly responseType: MessageFns<SetVoyageStatusResponse>;
134
- readonly responseStream: false;
135
- readonly options: {};
136
- };
137
- /**
138
- * The current NavigationState — the same payload as the `navigation_state` broadcast, for a
139
- * caller that cannot wait for the next one. Needs no authority.
140
- */
141
- readonly get_navigation_state: {
142
- readonly name: "get_navigation_state";
143
- readonly requestType: MessageFns<GetNavigationStateRequest>;
144
- readonly requestStream: false;
145
- readonly responseType: import("./NavigationState").MessageFns<NavigationState>;
146
- readonly responseStream: false;
147
- readonly options: {};
148
- };
149
- };
150
- };
151
- type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
152
- export 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 {} ? {
153
- [K in keyof T]?: DeepPartial<T[K]>;
154
- } : Partial<T>;
155
- type KeysOfUnion<T> = T extends T ? keyof T : never;
156
- export type Exact<P, I extends P> = P extends Builtin ? P : P & {
157
- [K in keyof P]: Exact<P[K], I[K]>;
158
- } & {
159
- [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
160
- };
161
- export interface MessageFns<T> {
162
- encode(message: T, writer?: BinaryWriter): BinaryWriter;
163
- decode(input: BinaryReader | Uint8Array, length?: number): T;
164
- fromJSON(object: any): T;
165
- toJSON(message: T): unknown;
166
- create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
167
- fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
168
- }
169
- export {};