@rise-maritime/keelson-js 0.6.0-experimental.7 → 0.6.0-experimental.8

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.
@@ -13,7 +13,9 @@ export interface Caller {
13
13
  controllerId: string;
14
14
  /**
15
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).
16
+ * is valid only while the responder holds the conn itself. The token is broadcast on a stored
17
+ * slot, so this is an interlock against a station that has lost the conn, not a credential
18
+ * (protocols/navigation_conduct.yaml).
17
19
  */
18
20
  authorityToken?: string | undefined;
19
21
  }
@@ -65,7 +67,8 @@ export interface SetGuidanceOrderRequest {
65
67
  export interface SetGuidanceOrderResponse {
66
68
  /**
67
69
  * UNSUPPORTED when the responder, or the vehicle behind it, cannot hold the requested frame —
68
- * it never substitutes course for heading or the reverse.
70
+ * it never substitutes course for heading or the reverse. TEMPORARILY_REJECTED when there is no
71
+ * active voyage to steer.
69
72
  */
70
73
  result: CommandResult;
71
74
  detail: string;
@@ -58,7 +58,12 @@ export interface LoadFileRequest {
58
58
  path: string;
59
59
  }
60
60
  export interface SeekRequest {
61
- /** Target playhead timestamp. Must fall within the loaded file's window. */
61
+ /**
62
+ * Target playhead timestamp. Must fall within the ACTIVE RANGE when `set_range` has set one, and
63
+ * within the loaded file's window otherwise; outside it the reply is OUT_OF_RANGE. A seek is not
64
+ * clamped into the range, for the reason an inverted range is not swapped: a client that read its
65
+ * own position back and found it somewhere else would have nothing telling it so.
66
+ */
62
67
  target: Date | undefined;
63
68
  }
64
69
  export interface SetSpeedRequest {
@@ -89,7 +94,12 @@ export interface SetLoopRequest {
89
94
  export interface SetRangeRequest {
90
95
  /** First message replayed. Unset means the file's start. */
91
96
  start: Date | undefined;
92
- /** Playback stops or loops on reaching this. Unset means the file's end. */
97
+ /**
98
+ * Playback stops or loops on reaching this. Unset means the file's end.
99
+ *
100
+ * Inclusive: an operator who puts the out-point ON a message means to hear that message. Only
101
+ * `end` strictly BEFORE `start` is refused -- `end` equal to `start` is a one-message span.
102
+ */
93
103
  end: Date | undefined;
94
104
  }
95
105
  /** Generic acknowledgement for control commands. */
@@ -410,6 +410,9 @@ export interface Waypoints {
410
410
  * route sets no default speed" as distinct from "this route defaults to
411
411
  * zero", and a consumer merging defaults into a waypoint cannot tell which
412
412
  * it was handed.
413
+ *
414
+ * `Leg.xtd_corridor_mode` and both boundary lists are ignored here: a drawn
415
+ * corridor belongs to one stretch of water and cannot be a default (§6.2.2).
413
416
  */
414
417
  export interface DefaultWaypoint {
415
418
  leg: Leg | undefined;
@@ -126,6 +126,16 @@ export interface Voyage {
126
126
  * voyages (e.g. crewed vs unmanned).
127
127
  */
128
128
  reroutingPolicy: DynamicReroutingPolicy | undefined;
129
+ /**
130
+ * -- Who writes this voyage -------------------------------------------------
131
+ * `voyage/{voyage_id}` is a slot (§2.1.1): one position per voyage, overwritten
132
+ * as the voyage runs, with no producer chunk in the key. The current writer is
133
+ * therefore in the payload, and this is it — the navigation process conducting
134
+ * the voyage, while it serves `navigation_control/v1`
135
+ * (protocols/navigation_conduct.yaml). Empty before conduct begins: a voyage
136
+ * published PLANNED by a station is not yet conducted by anybody.
137
+ */
138
+ conductedBy: string;
129
139
  }
130
140
  export declare const VoyageAuditEntry: MessageFns<VoyageAuditEntry>;
131
141
  export declare const DynamicReroutingPolicy: MessageFns<DynamicReroutingPolicy>;
@@ -425,6 +425,7 @@ function createBaseVoyage() {
425
425
  linkedProcedureIds: [],
426
426
  auditTrail: [],
427
427
  reroutingPolicy: undefined,
428
+ conductedBy: "",
428
429
  };
429
430
  }
430
431
  exports.Voyage = {
@@ -498,6 +499,9 @@ exports.Voyage = {
498
499
  if (message.reroutingPolicy !== undefined) {
499
500
  exports.DynamicReroutingPolicy.encode(message.reroutingPolicy, writer.uint32(722).fork()).join();
500
501
  }
502
+ if (message.conductedBy !== "") {
503
+ writer.uint32(730).string(message.conductedBy);
504
+ }
501
505
  return writer;
502
506
  },
503
507
  decode(input, length) {
@@ -668,6 +672,13 @@ exports.Voyage = {
668
672
  message.reroutingPolicy = exports.DynamicReroutingPolicy.decode(reader, reader.uint32());
669
673
  continue;
670
674
  }
675
+ case 91: {
676
+ if (tag !== 730) {
677
+ break;
678
+ }
679
+ message.conductedBy = reader.string();
680
+ continue;
681
+ }
671
682
  }
672
683
  if ((tag & 7) === 4 || tag === 0) {
673
684
  break;
@@ -707,6 +718,7 @@ exports.Voyage = {
707
718
  reroutingPolicy: isSet(object.reroutingPolicy)
708
719
  ? exports.DynamicReroutingPolicy.fromJSON(object.reroutingPolicy)
709
720
  : undefined,
721
+ conductedBy: isSet(object.conductedBy) ? globalThis.String(object.conductedBy) : "",
710
722
  };
711
723
  },
712
724
  toJSON(message) {
@@ -780,6 +792,9 @@ exports.Voyage = {
780
792
  if (message.reroutingPolicy !== undefined) {
781
793
  obj.reroutingPolicy = exports.DynamicReroutingPolicy.toJSON(message.reroutingPolicy);
782
794
  }
795
+ if (message.conductedBy !== "") {
796
+ obj.conductedBy = message.conductedBy;
797
+ }
783
798
  return obj;
784
799
  },
785
800
  create(base) {
@@ -816,6 +831,7 @@ exports.Voyage = {
816
831
  message.reroutingPolicy = (object.reroutingPolicy !== undefined && object.reroutingPolicy !== null)
817
832
  ? exports.DynamicReroutingPolicy.fromPartial(object.reroutingPolicy)
818
833
  : undefined;
834
+ message.conductedBy = object.conductedBy ?? "";
819
835
  return message;
820
836
  },
821
837
  };
@@ -417,6 +417,9 @@ export interface Waypoints {
417
417
  * route sets no default speed" as distinct from "this route defaults to
418
418
  * zero", and a consumer merging defaults into a waypoint cannot tell which
419
419
  * it was handed.
420
+ *
421
+ * `Leg.xtd_corridor_mode` and both boundary lists are ignored here: a drawn
422
+ * corridor belongs to one stretch of water and cannot be a default (§6.2.2).
420
423
  */
421
424
  export interface DefaultWaypoint {
422
425
  $type: "keelson.DefaultWaypoint";
@@ -128,6 +128,16 @@ export interface Voyage {
128
128
  * voyages (e.g. crewed vs unmanned).
129
129
  */
130
130
  reroutingPolicy: DynamicReroutingPolicy | undefined;
131
+ /**
132
+ * -- Who writes this voyage -------------------------------------------------
133
+ * `voyage/{voyage_id}` is a slot (§2.1.1): one position per voyage, overwritten
134
+ * as the voyage runs, with no producer chunk in the key. The current writer is
135
+ * therefore in the payload, and this is it — the navigation process conducting
136
+ * the voyage, while it serves `navigation_control/v1`
137
+ * (protocols/navigation_conduct.yaml). Empty before conduct begins: a voyage
138
+ * published PLANNED by a station is not yet conducted by anybody.
139
+ */
140
+ conductedBy: string;
131
141
  }
132
142
  export declare const VoyageAuditEntry: MessageFns<VoyageAuditEntry, "keelson.VoyageAuditEntry">;
133
143
  export declare const DynamicReroutingPolicy: MessageFns<DynamicReroutingPolicy, "keelson.DynamicReroutingPolicy">;
@@ -433,6 +433,7 @@ function createBaseVoyage() {
433
433
  linkedProcedureIds: [],
434
434
  auditTrail: [],
435
435
  reroutingPolicy: undefined,
436
+ conductedBy: "",
436
437
  };
437
438
  }
438
439
  exports.Voyage = {
@@ -507,6 +508,9 @@ exports.Voyage = {
507
508
  if (message.reroutingPolicy !== undefined) {
508
509
  exports.DynamicReroutingPolicy.encode(message.reroutingPolicy, writer.uint32(722).fork()).join();
509
510
  }
511
+ if (message.conductedBy !== "") {
512
+ writer.uint32(730).string(message.conductedBy);
513
+ }
510
514
  return writer;
511
515
  },
512
516
  decode(input, length) {
@@ -677,6 +681,13 @@ exports.Voyage = {
677
681
  message.reroutingPolicy = exports.DynamicReroutingPolicy.decode(reader, reader.uint32());
678
682
  continue;
679
683
  }
684
+ case 91: {
685
+ if (tag !== 730) {
686
+ break;
687
+ }
688
+ message.conductedBy = reader.string();
689
+ continue;
690
+ }
680
691
  }
681
692
  if ((tag & 7) === 4 || tag === 0) {
682
693
  break;
@@ -717,6 +728,7 @@ exports.Voyage = {
717
728
  reroutingPolicy: isSet(object.reroutingPolicy)
718
729
  ? exports.DynamicReroutingPolicy.fromJSON(object.reroutingPolicy)
719
730
  : undefined,
731
+ conductedBy: isSet(object.conductedBy) ? globalThis.String(object.conductedBy) : "",
720
732
  };
721
733
  },
722
734
  toJSON(message) {
@@ -790,6 +802,9 @@ exports.Voyage = {
790
802
  if (message.reroutingPolicy !== undefined) {
791
803
  obj.reroutingPolicy = exports.DynamicReroutingPolicy.toJSON(message.reroutingPolicy);
792
804
  }
805
+ if (message.conductedBy !== "") {
806
+ obj.conductedBy = message.conductedBy;
807
+ }
793
808
  return obj;
794
809
  },
795
810
  create(base) {
@@ -826,6 +841,7 @@ exports.Voyage = {
826
841
  message.reroutingPolicy = (object.reroutingPolicy !== undefined && object.reroutingPolicy !== null)
827
842
  ? exports.DynamicReroutingPolicy.fromPartial(object.reroutingPolicy)
828
843
  : undefined;
844
+ message.conductedBy = object.conductedBy ?? "";
829
845
  return message;
830
846
  },
831
847
  };
@@ -172,7 +172,6 @@
172
172
  "container_status": "keelson.ContainerHostStatus",
173
173
  "container_stats": "keelson.ContainerHostStats",
174
174
  "radio_channel_ppm_pct": "keelson.TimestampedFloat",
175
- "radio_rssi": "keelson.TimestampedFloat",
176
175
  "radio_rsrp_dbm": "keelson.TimestampedFloat",
177
176
  "radio_rsrq_db": "keelson.TimestampedFloat",
178
177
  "radio_sinr_db": "keelson.TimestampedFloat",
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-experimental.7",
4
+ "version": "0.6.0-experimental.8",
5
5
  "description": "Keelson JavaScript SDK with Node-RED nodes",
6
6
  "main": "dist/index.js",
7
7
  "files": [