@aeolus-fleet/common 0.34.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +4 -2
  2. package/dist/fleet/index.d.ts +12 -5
  3. package/dist/fleet/index.js +10 -2
  4. package/dist/fleet/index.js.map +1 -1
  5. package/dist/ids/index.d.ts +3 -0
  6. package/dist/ids/index.js +2 -0
  7. package/dist/ids/index.js.map +1 -1
  8. package/dist/rules/activity.d.ts +10 -0
  9. package/dist/rules/activity.js +13 -0
  10. package/dist/rules/activity.js.map +1 -0
  11. package/dist/rules/alert.d.ts +14 -0
  12. package/dist/rules/alert.js +33 -0
  13. package/dist/rules/alert.js.map +1 -0
  14. package/dist/{header/apps.d.ts → rules/app-switcher.d.ts} +2 -5
  15. package/dist/{header/apps.js → rules/app-switcher.js} +1 -6
  16. package/dist/rules/app-switcher.js.map +1 -0
  17. package/dist/rules/index.d.ts +6 -1
  18. package/dist/rules/index.js +6 -1
  19. package/dist/rules/index.js.map +1 -1
  20. package/dist/rules/page-size.d.ts +7 -0
  21. package/dist/rules/page-size.js +7 -0
  22. package/dist/rules/page-size.js.map +1 -1
  23. package/dist/rules/payload.d.ts +1 -1
  24. package/dist/rules/payload.js +2 -2
  25. package/dist/rules/payload.js.map +1 -1
  26. package/dist/schemas/activity.d.ts +71 -0
  27. package/dist/schemas/activity.js +53 -0
  28. package/dist/schemas/activity.js.map +1 -0
  29. package/dist/schemas/alert.d.ts +564 -0
  30. package/dist/schemas/alert.js +123 -0
  31. package/dist/schemas/alert.js.map +1 -0
  32. package/dist/schemas/content-type.d.ts +2 -0
  33. package/dist/schemas/content-type.js +6 -0
  34. package/dist/schemas/content-type.js.map +1 -0
  35. package/dist/schemas/delivery.d.ts +92 -1
  36. package/dist/schemas/delivery.js +18 -1
  37. package/dist/schemas/delivery.js.map +1 -1
  38. package/dist/schemas/expectations.d.ts +76 -0
  39. package/dist/schemas/expectations.js +41 -0
  40. package/dist/schemas/expectations.js.map +1 -0
  41. package/dist/schemas/fleet.d.ts +81 -0
  42. package/dist/schemas/fleet.js +8 -0
  43. package/dist/schemas/fleet.js.map +1 -1
  44. package/dist/schemas/follow.d.ts +3 -0
  45. package/dist/schemas/history.d.ts +303 -0
  46. package/dist/schemas/history.js +10 -1
  47. package/dist/schemas/history.js.map +1 -1
  48. package/dist/schemas/index.d.ts +6 -0
  49. package/dist/schemas/index.js +6 -0
  50. package/dist/schemas/index.js.map +1 -1
  51. package/dist/schemas/label.d.ts +2 -2
  52. package/dist/schemas/message-task-access.d.ts +11 -0
  53. package/dist/schemas/message-task-access.js +7 -0
  54. package/dist/schemas/message-task-access.js.map +1 -0
  55. package/dist/schemas/message.d.ts +1 -1
  56. package/dist/schemas/message.js +2 -2
  57. package/dist/schemas/message.js.map +1 -1
  58. package/dist/schemas/network-rules-file.js +2 -2
  59. package/dist/schemas/network-rules-file.js.map +1 -1
  60. package/dist/schemas/network.d.ts +13 -13
  61. package/dist/schemas/notice-message.d.ts +20 -0
  62. package/dist/schemas/notice-message.js +26 -0
  63. package/dist/schemas/notice-message.js.map +1 -0
  64. package/dist/schemas/page.d.ts +1 -1
  65. package/dist/schemas/page.js +1 -1
  66. package/dist/schemas/page.js.map +1 -1
  67. package/dist/schemas/question.js +1 -5
  68. package/dist/schemas/question.js.map +1 -1
  69. package/dist/schemas/report.d.ts +81 -3
  70. package/dist/schemas/report.js +26 -3
  71. package/dist/schemas/report.js.map +1 -1
  72. package/dist/schemas/ship.d.ts +6 -2
  73. package/dist/schemas/ship.js +6 -2
  74. package/dist/schemas/ship.js.map +1 -1
  75. package/dist/schemas/statement.d.ts +2 -2
  76. package/dist/schemas/statement.js +4 -4
  77. package/dist/schemas/statement.js.map +1 -1
  78. package/dist/schemas/step.d.ts +57 -0
  79. package/dist/schemas/step.js +54 -0
  80. package/dist/schemas/step.js.map +1 -0
  81. package/dist/trierarch/report-details.d.ts +1 -1
  82. package/package.json +4 -44
  83. package/dist/header/app-header.d.ts +0 -27
  84. package/dist/header/app-header.js +0 -18
  85. package/dist/header/app-header.js.map +0 -1
  86. package/dist/header/app-switcher.d.ts +0 -20
  87. package/dist/header/app-switcher.js +0 -57
  88. package/dist/header/app-switcher.js.map +0 -1
  89. package/dist/header/apps.js.map +0 -1
  90. package/dist/header/atoms/avatar.d.ts +0 -16
  91. package/dist/header/atoms/avatar.js +0 -44
  92. package/dist/header/atoms/avatar.js.map +0 -1
  93. package/dist/header/atoms/button.d.ts +0 -22
  94. package/dist/header/atoms/button.js +0 -48
  95. package/dist/header/atoms/button.js.map +0 -1
  96. package/dist/header/atoms/dialog-surface.d.ts +0 -19
  97. package/dist/header/atoms/dialog-surface.js +0 -32
  98. package/dist/header/atoms/dialog-surface.js.map +0 -1
  99. package/dist/header/atoms/dialog.d.ts +0 -19
  100. package/dist/header/atoms/dialog.js +0 -37
  101. package/dist/header/atoms/dialog.js.map +0 -1
  102. package/dist/header/atoms/dropdown-menu.d.ts +0 -21
  103. package/dist/header/atoms/dropdown-menu.js +0 -42
  104. package/dist/header/atoms/dropdown-menu.js.map +0 -1
  105. package/dist/header/atoms/kbd.d.ts +0 -7
  106. package/dist/header/atoms/kbd.js +0 -11
  107. package/dist/header/atoms/kbd.js.map +0 -1
  108. package/dist/header/atoms/sheet.d.ts +0 -23
  109. package/dist/header/atoms/sheet.js +0 -52
  110. package/dist/header/atoms/sheet.js.map +0 -1
  111. package/dist/header/atoms/tooltip.d.ts +0 -10
  112. package/dist/header/atoms/tooltip.js +0 -24
  113. package/dist/header/atoms/tooltip.js.map +0 -1
  114. package/dist/header/avatar-entry.d.ts +0 -21
  115. package/dist/header/avatar-entry.js +0 -6
  116. package/dist/header/avatar-entry.js.map +0 -1
  117. package/dist/header/avatar-menu.d.ts +0 -43
  118. package/dist/header/avatar-menu.js +0 -111
  119. package/dist/header/avatar-menu.js.map +0 -1
  120. package/dist/header/class-names.d.ts +0 -3
  121. package/dist/header/class-names.js +0 -29
  122. package/dist/header/class-names.js.map +0 -1
  123. package/dist/header/command-palette.d.ts +0 -44
  124. package/dist/header/command-palette.js +0 -77
  125. package/dist/header/command-palette.js.map +0 -1
  126. package/dist/header/index.d.ts +0 -21
  127. package/dist/header/index.js +0 -22
  128. package/dist/header/index.js.map +0 -1
  129. package/dist/header/tokens.css +0 -154
@@ -0,0 +1,123 @@
1
+ import { z } from 'zod';
2
+ import { idSchema } from '../ids/index.js';
3
+ import { payloadBytes } from '../rules/payload.js';
4
+ import { pageInputOf, pageOutputOf } from './page.js';
5
+ import { reportTaskSchema } from './report.js';
6
+ /**
7
+ * Alerts (decision 0071, docs/design/monitoring 4.4, 4.5 and 4.9): the watch
8
+ * raises one in core per occurrence of a signal on a ship, then sends the
9
+ * owner's ship the alert message. Core holds the alert and never speaks for
10
+ * a ship; the message is the watch's. Both read the signal and its facts
11
+ * from here.
12
+ */
13
+ /** The content type of the alert message the watch sends (4.9). */
14
+ export const ALERT_CONTENT_TYPE = 'application/vnd.aeolus.alert+json';
15
+ /** What parted (4.4): the four distribution signals, then the two expectations. */
16
+ export const ALERT_SIGNALS = ['crew-request-unassigned', 'delivery-unacknowledged', 'delivery-overdue', 'ping-unanswered', 'report-unchanged', 'task-not-done'];
17
+ export const alertSignalSchema = z.enum(ALERT_SIGNALS);
18
+ /** The longest headline an alert message carries: an inbox shows it first (instruction 6). */
19
+ export const ALERT_HEADLINE_MAX_LENGTH = 80;
20
+ /** The most bytes an alert message's markdown body takes. */
21
+ export const ALERT_BODY_MAX_BYTES = 2 * 1024;
22
+ /** The most bytes a whole alert message payload takes, as JSON. */
23
+ export const ALERT_PAYLOAD_MAX_BYTES = 8 * 1024;
24
+ /** The longest occurrence key a raise names (4.4: a delivery id, a version, a time). */
25
+ export const ALERT_OCCURRENCE_KEY_MAX_LENGTH = 200;
26
+ const isoTime = z.iso.datetime({ offset: true });
27
+ const minutesSchema = z.int().min(1);
28
+ /** The facts at raise of each signal (4.9). */
29
+ const crewRequestUnassignedFactsSchema = z.strictObject({ settingsVersion: z.int().min(1), minutes: minutesSchema, reason: z.string().nullable() });
30
+ const deliveryUnacknowledgedFactsSchema = z.strictObject({
31
+ deliveryId: idSchema('delivery'),
32
+ messageId: idSchema('message'),
33
+ state: z.enum(['pending', 'received', 'handed']),
34
+ awaitingCrew: z.boolean(),
35
+ minutes: minutesSchema,
36
+ });
37
+ const deliveryOverdueFactsSchema = z.strictObject({ deliveryId: idSchema('delivery'), messageId: idSchema('message'), overdueEventId: idSchema('event') });
38
+ const pingUnansweredFactsSchema = z.strictObject({ deliveryId: idSchema('delivery'), messageId: idSchema('message'), minutes: minutesSchema });
39
+ const reportUnchangedFactsSchema = z.strictObject({ reportChangedAt: isoTime, state: z.enum(['working', 'blocked']), minutes: minutesSchema, setBy: idSchema('ship') });
40
+ const taskNotDoneFactsSchema = z.strictObject({ task: reportTaskSchema, doneBy: isoTime, setBy: idSchema('ship') });
41
+ const alertFactsBySignal = [
42
+ z.object({ signal: z.literal('crew-request-unassigned'), facts: crewRequestUnassignedFactsSchema }),
43
+ z.object({ signal: z.literal('delivery-unacknowledged'), facts: deliveryUnacknowledgedFactsSchema }),
44
+ z.object({ signal: z.literal('delivery-overdue'), facts: deliveryOverdueFactsSchema }),
45
+ z.object({ signal: z.literal('ping-unanswered'), facts: pingUnansweredFactsSchema }),
46
+ z.object({ signal: z.literal('report-unchanged'), facts: reportUnchangedFactsSchema }),
47
+ z.object({ signal: z.literal('task-not-done'), facts: taskNotDoneFactsSchema }),
48
+ ];
49
+ /** A signal with its facts at raise. */
50
+ export const alertSignalFactsSchema = z.discriminatedUnion('signal', alertFactsBySignal);
51
+ /**
52
+ * The alert message's payload (4.9): the alert in core, the line an inbox
53
+ * shows first and the facts in words, the signal with its facts at raise,
54
+ * the ship, its fleet, and why this recipient is told.
55
+ */
56
+ export const alertMessageSchema = z
57
+ .intersection(z.object({
58
+ alertId: idSchema('alert'),
59
+ headline: z.string().min(1).max(ALERT_HEADLINE_MAX_LENGTH),
60
+ body: z.string().refine((body) => payloadBytes(body) <= ALERT_BODY_MAX_BYTES, `A body is at most ${String(ALERT_BODY_MAX_BYTES)} bytes`),
61
+ ship: z.object({ id: idSchema('ship'), name: z.string() }),
62
+ fleetId: idSchema('fleet'),
63
+ toldAs: z.enum(['owner', 'setter']),
64
+ since: isoTime,
65
+ raisedAt: isoTime,
66
+ }), alertSignalFactsSchema)
67
+ .refine((message) => payloadBytes(JSON.stringify(message)) <= ALERT_PAYLOAD_MAX_BYTES, `An alert message is at most ${String(ALERT_PAYLOAD_MAX_BYTES)} bytes`);
68
+ /**
69
+ * Input of `fleet.raiseAlert` (fleet:alert, 4.5): the ship, the signal and
70
+ * its facts at raise, the occurrence key the alert is unique by, and since
71
+ * when the fact parted.
72
+ */
73
+ export const raiseAlertInputSchema = z
74
+ .object({
75
+ shipId: idSchema('ship'),
76
+ signal: alertSignalSchema,
77
+ facts: z.union([
78
+ crewRequestUnassignedFactsSchema,
79
+ deliveryUnacknowledgedFactsSchema,
80
+ deliveryOverdueFactsSchema,
81
+ pingUnansweredFactsSchema,
82
+ reportUnchangedFactsSchema,
83
+ taskNotDoneFactsSchema,
84
+ ]),
85
+ occurrenceKey: z.string().min(1).max(ALERT_OCCURRENCE_KEY_MAX_LENGTH),
86
+ since: isoTime,
87
+ })
88
+ // One object for the doors' JSON Schema; the facts must be the signal's.
89
+ .transform(({ shipId, signal, facts, occurrenceKey, since }, context) => {
90
+ const signalFacts = alertSignalFactsSchema.safeParse({ signal, facts });
91
+ if (!signalFacts.success) {
92
+ context.addIssue({ code: 'custom', message: "The facts are not the signal's", path: ['facts'] });
93
+ return z.NEVER;
94
+ }
95
+ return { shipId, occurrenceKey, since, ...signalFacts.data };
96
+ });
97
+ /** Input of `fleet.clearAlert` (fleet:alert): the alert to clear. */
98
+ export const clearAlertInputSchema = z.object({ alertId: idSchema('alert') });
99
+ /** Why an alert cleared: its fact moved back, as the watch saw, or its ship retired. */
100
+ export const ALERT_CLEARED_WHYS = ['cleared', 'retired'];
101
+ export const alertClearedWhySchema = z.enum(ALERT_CLEARED_WHYS);
102
+ /**
103
+ * An alert as core holds it: the ship, the signal and its facts at raise,
104
+ * the occurrence key, the owner told (the ship's owner at raise), since when
105
+ * the fact parted, when it was raised, and when and why it cleared, null
106
+ * while it is open.
107
+ */
108
+ export const alertSchema = z.intersection(z.object({
109
+ id: idSchema('alert'),
110
+ ship: z.object({ id: idSchema('ship'), name: z.string() }),
111
+ occurrenceKey: z.string(),
112
+ ownerShipId: idSchema('ship').nullable(),
113
+ since: z.iso.datetime(),
114
+ raisedAt: z.iso.datetime(),
115
+ cleared: z.object({ at: z.iso.datetime(), why: alertClearedWhySchema }).nullable(),
116
+ }), alertSignalFactsSchema);
117
+ /** Output of `fleet.raiseAlert` and `fleet.clearAlert`: the alert as core holds it now. */
118
+ export const alertOutputSchema = alertSchema;
119
+ /** Input of `fleet.openAlerts` (fleet:read): the cursor and size of a page. */
120
+ export const openAlertsInputSchema = pageInputOf(idSchema('alert')).optional();
121
+ /** Output of `fleet.openAlerts`: a page of the fleet's open alerts on the ships the caller reads, newest first. */
122
+ export const openAlertsOutputSchema = pageOutputOf(alertSchema, idSchema('alert'));
123
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/schemas/alert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** A content type's essence: media types compare without case and without their parameters (RFC 9110). */
2
+ export declare function essenceOf(contentType: string): string;
@@ -0,0 +1,6 @@
1
+ /** A content type's essence: media types compare without case and without their parameters (RFC 9110). */
2
+ export function essenceOf(contentType) {
3
+ const [essence = ''] = contentType.split(';');
4
+ return essence.trim().toLowerCase();
5
+ }
6
+ //# sourceMappingURL=content-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type.js","sourceRoot":"","sources":["../../src/schemas/content-type.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACtC,CAAC"}
@@ -9,7 +9,7 @@ import { z } from 'zod';
9
9
  export declare const RECEIVE_MAX_DEFAULT = 1;
10
10
  /**
11
11
  * The most deliveries one receive returns. The ship chooses up to this many
12
- * (ADR 0016); the bound keeps one answer at ten 64 KB payloads.
12
+ * (ADR 0016); the bound keeps one answer at ten 256 KB payloads.
13
13
  */
14
14
  export declare const RECEIVE_MAX_UPPER_BOUND = 10;
15
15
  /** Input of `ship.receive`: at most how many deliveries to return, 1 to 10. Without it, one. */
@@ -302,6 +302,97 @@ export declare const deliveryOutputSchema: z.ZodObject<{
302
302
  }>;
303
303
  }, z.core.$strip>;
304
304
  export type DeliveryOutput = z.infer<typeof deliveryOutputSchema>;
305
+ /**
306
+ * Input of `ship.record`: the cursor the last page answered, none for the
307
+ * newest, and the page size, at most RECORD_PAGE_SIZE_MAX (Bridge, CC12).
308
+ */
309
+ export declare const recordInputSchema: z.ZodOptional<z.ZodObject<{
310
+ cursor: z.ZodOptional<z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>>;
311
+ limit: z.ZodOptional<z.ZodInt>;
312
+ }, z.core.$strip>>;
313
+ export type RecordInput = z.infer<typeof recordInputSchema>;
314
+ /**
315
+ * One delivery of `ship.record`: as a receive hands one, with its state; in a
316
+ * sealed fleet a payload whose data key cannot be had is empty and marked
317
+ * unreadable (decision 0068, B9).
318
+ */
319
+ export declare const recordEntrySchema: z.ZodObject<{
320
+ deliveryId: z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>;
321
+ messageId: z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>;
322
+ senderShipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
323
+ senderName: z.ZodString;
324
+ senderType: z.ZodString;
325
+ recipient: z.ZodDiscriminatedUnion<[z.ZodObject<{
326
+ kind: z.ZodLiteral<"ship">;
327
+ shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
328
+ }, z.core.$strip>, z.ZodObject<{
329
+ kind: z.ZodLiteral<"type">;
330
+ type: z.ZodString;
331
+ }, z.core.$strip>], "kind">;
332
+ payload: z.ZodString;
333
+ contentType: z.ZodString;
334
+ model: z.ZodNullable<z.ZodString>;
335
+ inReplyTo: z.ZodNullable<z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>>;
336
+ sentAt: z.ZodISODateTime;
337
+ isForced: z.ZodBoolean;
338
+ meetingId: z.ZodNullable<z.ZodType<`mtg_${string}`, unknown, z.core.$ZodTypeInternals<`mtg_${string}`, unknown>>>;
339
+ scheduleId: z.ZodNullable<z.ZodType<`sch_${string}`, unknown, z.core.$ZodTypeInternals<`sch_${string}`, unknown>>>;
340
+ sendTime: z.ZodNullable<z.ZodISODateTime>;
341
+ attempts: z.ZodInt;
342
+ state: z.ZodEnum<{
343
+ pending: "pending";
344
+ received: "received";
345
+ handed: "handed";
346
+ acknowledged: "acknowledged";
347
+ handled: "handled";
348
+ notHandled: "notHandled";
349
+ undeliverable: "undeliverable";
350
+ dismissed: "dismissed";
351
+ abandoned: "abandoned";
352
+ }>;
353
+ isPayloadUnreadable: z.ZodBoolean;
354
+ }, z.core.$strip>;
355
+ /** Output of `ship.record`: a page of the crew's ship's deliveries, newest first, and the cursor of the next; null on the last. */
356
+ export declare const recordOutputSchema: z.ZodObject<{
357
+ items: z.ZodArray<z.ZodObject<{
358
+ deliveryId: z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>;
359
+ messageId: z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>;
360
+ senderShipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
361
+ senderName: z.ZodString;
362
+ senderType: z.ZodString;
363
+ recipient: z.ZodDiscriminatedUnion<[z.ZodObject<{
364
+ kind: z.ZodLiteral<"ship">;
365
+ shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
366
+ }, z.core.$strip>, z.ZodObject<{
367
+ kind: z.ZodLiteral<"type">;
368
+ type: z.ZodString;
369
+ }, z.core.$strip>], "kind">;
370
+ payload: z.ZodString;
371
+ contentType: z.ZodString;
372
+ model: z.ZodNullable<z.ZodString>;
373
+ inReplyTo: z.ZodNullable<z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>>;
374
+ sentAt: z.ZodISODateTime;
375
+ isForced: z.ZodBoolean;
376
+ meetingId: z.ZodNullable<z.ZodType<`mtg_${string}`, unknown, z.core.$ZodTypeInternals<`mtg_${string}`, unknown>>>;
377
+ scheduleId: z.ZodNullable<z.ZodType<`sch_${string}`, unknown, z.core.$ZodTypeInternals<`sch_${string}`, unknown>>>;
378
+ sendTime: z.ZodNullable<z.ZodISODateTime>;
379
+ attempts: z.ZodInt;
380
+ state: z.ZodEnum<{
381
+ pending: "pending";
382
+ received: "received";
383
+ handed: "handed";
384
+ acknowledged: "acknowledged";
385
+ handled: "handled";
386
+ notHandled: "notHandled";
387
+ undeliverable: "undeliverable";
388
+ dismissed: "dismissed";
389
+ abandoned: "abandoned";
390
+ }>;
391
+ isPayloadUnreadable: z.ZodBoolean;
392
+ }, z.core.$strip>>;
393
+ nextCursor: z.ZodNullable<z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>>;
394
+ }, z.core.$strip>;
395
+ export type RecordOutput = z.infer<typeof recordOutputSchema>;
305
396
  /** Input of `ship.sentMessage`: a message the caller sent. */
306
397
  export declare const sentMessageInputSchema: z.ZodObject<{
307
398
  messageId: z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>;
@@ -2,6 +2,8 @@ import { z } from 'zod';
2
2
  import { deliveryStateSchema } from '../fleet/index.js';
3
3
  import { idSchema } from '../ids/index.js';
4
4
  import { leaseWakerSchema, partySchema } from './history.js';
5
+ import { pageOutputOf } from './page.js';
6
+ import { RECORD_PAGE_SIZE_MAX } from '../rules/page-size.js';
5
7
  import { isOneLine } from './report.js';
6
8
  /**
7
9
  * Inputs and outputs of receiving and acknowledging deliveries (`ship.receive`
@@ -13,7 +15,7 @@ import { isOneLine } from './report.js';
13
15
  export const RECEIVE_MAX_DEFAULT = 1;
14
16
  /**
15
17
  * The most deliveries one receive returns. The ship chooses up to this many
16
- * (ADR 0016); the bound keeps one answer at ten 64 KB payloads.
18
+ * (ADR 0016); the bound keeps one answer at ten 256 KB payloads.
17
19
  */
18
20
  export const RECEIVE_MAX_UPPER_BOUND = 10;
19
21
  /** Input of `ship.receive`: at most how many deliveries to return, 1 to 10. Without it, one. */
@@ -163,6 +165,21 @@ export const deliveryOutputSchema = receivedDeliverySchema.extend({
163
165
  attempts: z.int().min(0),
164
166
  state: deliveryStateSchema,
165
167
  });
168
+ /**
169
+ * Input of `ship.record`: the cursor the last page answered, none for the
170
+ * newest, and the page size, at most RECORD_PAGE_SIZE_MAX (Bridge, CC12).
171
+ */
172
+ export const recordInputSchema = z
173
+ .object({ cursor: idSchema('delivery').optional(), limit: z.int().min(1).max(RECORD_PAGE_SIZE_MAX).optional() })
174
+ .optional();
175
+ /**
176
+ * One delivery of `ship.record`: as a receive hands one, with its state; in a
177
+ * sealed fleet a payload whose data key cannot be had is empty and marked
178
+ * unreadable (decision 0068, B9).
179
+ */
180
+ export const recordEntrySchema = deliveryOutputSchema.extend({ isPayloadUnreadable: z.boolean() });
181
+ /** Output of `ship.record`: a page of the crew's ship's deliveries, newest first, and the cursor of the next; null on the last. */
182
+ export const recordOutputSchema = pageOutputOf(recordEntrySchema, idSchema('delivery'));
166
183
  /** Input of `ship.sentMessage`: a message the caller sent. */
167
184
  export const sentMessageInputSchema = z.object({ messageId: idSchema('message') });
168
185
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/schemas/delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/schemas/delivery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Expectations on a ship (decision 0071, docs/design/monitoring 4.7): what
4
+ * its owner, or a ship the fleet's rules let manage it, expects of it,
5
+ * standing, at most one of each. Core holds them and compares nothing; the
6
+ * watch compares them with the ship's report and tells.
7
+ */
8
+ /** The fewest minutes "report changes within" may expect. */
9
+ export declare const REPORT_CHANGES_WITHIN_MIN_MINUTES = 5;
10
+ /** The most minutes "report changes within" may expect: a week. */
11
+ export declare const REPORT_CHANGES_WITHIN_MAX_MINUTES = 10080;
12
+ /** Minutes within which the report is expected to change, while it says working or blocked. */
13
+ export declare const reportChangesWithinMinutesSchema: z.ZodInt;
14
+ /**
15
+ * Input of `fleet.setExpectations` (fleet:manage, manage reach on the ship):
16
+ * `reportChangesWithin` in minutes, and `taskDoneBy`, the task it is set for
17
+ * and the time it is expected done by. Left out, one stays as it is; null
18
+ * clears it.
19
+ */
20
+ export declare const setExpectationsInputSchema: z.ZodObject<{
21
+ shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
22
+ reportChangesWithin: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
23
+ taskDoneBy: z.ZodOptional<z.ZodNullable<z.ZodObject<{
24
+ task: z.ZodObject<{
25
+ kind: z.ZodString;
26
+ }, z.core.$catchall<z.ZodJSONSchema>>;
27
+ doneBy: z.ZodISODateTime;
28
+ }, z.core.$strip>>>;
29
+ }, z.core.$strip>;
30
+ export type SetExpectationsInput = z.infer<typeof setExpectationsInputSchema>;
31
+ /** Output of `fleet.setExpectations`: nothing; read them back with the ship (`fleet.ship`). */
32
+ export declare const setExpectationsOutputSchema: z.ZodObject<{}, z.core.$strict>;
33
+ /** Who set an expectation, as decision 0057 names an actor: an account by its id only. */
34
+ export declare const expectationSetterSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
35
+ kind: z.ZodLiteral<"ship">;
36
+ shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
37
+ }, z.core.$strip>, z.ZodObject<{
38
+ kind: z.ZodLiteral<"account">;
39
+ accountId: z.core.$ZodBranded<z.ZodString, "AccountId", "out">;
40
+ }, z.core.$strip>, z.ZodObject<{
41
+ kind: z.ZodLiteral<"installation">;
42
+ }, z.core.$strip>], "kind">;
43
+ export type ExpectationSetter = z.infer<typeof expectationSetterSchema>;
44
+ /** A ship's expectations as `fleet.ship` reads them back (ISO 8601 in UTC): each with who set it and when; null while not set. */
45
+ export declare const expectationsSchema: z.ZodObject<{
46
+ reportChangesWithin: z.ZodNullable<z.ZodObject<{
47
+ minutes: z.ZodInt;
48
+ setBy: z.ZodDiscriminatedUnion<[z.ZodObject<{
49
+ kind: z.ZodLiteral<"ship">;
50
+ shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
51
+ }, z.core.$strip>, z.ZodObject<{
52
+ kind: z.ZodLiteral<"account">;
53
+ accountId: z.core.$ZodBranded<z.ZodString, "AccountId", "out">;
54
+ }, z.core.$strip>, z.ZodObject<{
55
+ kind: z.ZodLiteral<"installation">;
56
+ }, z.core.$strip>], "kind">;
57
+ setAt: z.ZodISODateTime;
58
+ }, z.core.$strip>>;
59
+ taskDoneBy: z.ZodNullable<z.ZodObject<{
60
+ task: z.ZodObject<{
61
+ kind: z.ZodString;
62
+ }, z.core.$catchall<z.ZodJSONSchema>>;
63
+ doneBy: z.ZodISODateTime;
64
+ setBy: z.ZodDiscriminatedUnion<[z.ZodObject<{
65
+ kind: z.ZodLiteral<"ship">;
66
+ shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
67
+ }, z.core.$strip>, z.ZodObject<{
68
+ kind: z.ZodLiteral<"account">;
69
+ accountId: z.core.$ZodBranded<z.ZodString, "AccountId", "out">;
70
+ }, z.core.$strip>, z.ZodObject<{
71
+ kind: z.ZodLiteral<"installation">;
72
+ }, z.core.$strip>], "kind">;
73
+ setAt: z.ZodISODateTime;
74
+ }, z.core.$strip>>;
75
+ }, z.core.$strip>;
76
+ export type ExpectationsOutput = z.infer<typeof expectationsSchema>;
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ import { idSchema } from '../ids/index.js';
3
+ import { accountIdSchema } from './account-token.js';
4
+ import { reportTaskSchema } from './report.js';
5
+ /**
6
+ * Expectations on a ship (decision 0071, docs/design/monitoring 4.7): what
7
+ * its owner, or a ship the fleet's rules let manage it, expects of it,
8
+ * standing, at most one of each. Core holds them and compares nothing; the
9
+ * watch compares them with the ship's report and tells.
10
+ */
11
+ /** The fewest minutes "report changes within" may expect. */
12
+ export const REPORT_CHANGES_WITHIN_MIN_MINUTES = 5;
13
+ /** The most minutes "report changes within" may expect: a week. */
14
+ export const REPORT_CHANGES_WITHIN_MAX_MINUTES = 10_080;
15
+ /** Minutes within which the report is expected to change, while it says working or blocked. */
16
+ export const reportChangesWithinMinutesSchema = z.int().min(REPORT_CHANGES_WITHIN_MIN_MINUTES).max(REPORT_CHANGES_WITHIN_MAX_MINUTES);
17
+ /**
18
+ * Input of `fleet.setExpectations` (fleet:manage, manage reach on the ship):
19
+ * `reportChangesWithin` in minutes, and `taskDoneBy`, the task it is set for
20
+ * and the time it is expected done by. Left out, one stays as it is; null
21
+ * clears it.
22
+ */
23
+ export const setExpectationsInputSchema = z.object({
24
+ shipId: idSchema('ship'),
25
+ reportChangesWithin: reportChangesWithinMinutesSchema.nullable().optional(),
26
+ taskDoneBy: z.object({ task: reportTaskSchema, doneBy: z.iso.datetime({ offset: true }) }).nullable().optional(),
27
+ });
28
+ /** Output of `fleet.setExpectations`: nothing; read them back with the ship (`fleet.ship`). */
29
+ export const setExpectationsOutputSchema = z.strictObject({});
30
+ /** Who set an expectation, as decision 0057 names an actor: an account by its id only. */
31
+ export const expectationSetterSchema = z.discriminatedUnion('kind', [
32
+ z.object({ kind: z.literal('ship'), shipId: idSchema('ship') }),
33
+ z.object({ kind: z.literal('account'), accountId: accountIdSchema }),
34
+ z.object({ kind: z.literal('installation') }),
35
+ ]);
36
+ /** A ship's expectations as `fleet.ship` reads them back (ISO 8601 in UTC): each with who set it and when; null while not set. */
37
+ export const expectationsSchema = z.object({
38
+ reportChangesWithin: z.object({ minutes: z.int(), setBy: expectationSetterSchema, setAt: z.iso.datetime() }).nullable(),
39
+ taskDoneBy: z.object({ task: reportTaskSchema, doneBy: z.iso.datetime(), setBy: expectationSetterSchema, setAt: z.iso.datetime() }).nullable(),
40
+ });
41
+ //# sourceMappingURL=expectations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expectations.js","sourceRoot":"","sources":["../../src/schemas/expectations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;GAKG;AAEH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAEnD,mEAAmE;AACnE,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAExD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAEtI;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;IACxB,mBAAmB,EAAE,gCAAgC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACjH,CAAC,CAAC;AAIH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAE9D,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAClE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IACpE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;CAC9C,CAAC,CAAC;AAIH,kIAAkI;AAClI,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC/I,CAAC,CAAC"}
@@ -200,9 +200,33 @@ export declare const listedShipSchema: z.ZodObject<{
200
200
  idle: "idle";
201
201
  }>;
202
202
  note: z.ZodNullable<z.ZodString>;
203
+ task: z.ZodNullable<z.ZodObject<{
204
+ kind: z.ZodString;
205
+ }, z.core.$catchall<z.ZodJSONSchema>>>;
206
+ taskView: z.ZodOptional<z.ZodObject<{
207
+ canOpen: z.ZodBoolean;
208
+ fleetName: z.ZodNullable<z.ZodString>;
209
+ }, z.core.$strip>>;
210
+ step: z.ZodNullable<z.ZodObject<{
211
+ at: z.ZodNumber;
212
+ of: z.ZodNumber;
213
+ }, z.core.$strip>>;
203
214
  reportedAt: z.ZodISODateTime;
215
+ reportChangedAt: z.ZodISODateTime;
204
216
  detailsVersion: z.ZodInt;
205
217
  }, z.core.$strip>>;
218
+ activity: z.ZodNullable<z.ZodObject<{
219
+ at: z.ZodISODateTime;
220
+ kind: z.ZodEnum<{
221
+ error: "error";
222
+ text: "text";
223
+ tool: "tool";
224
+ result: "result";
225
+ }>;
226
+ tool: z.ZodNullable<z.ZodString>;
227
+ reportedAt: z.ZodISODateTime;
228
+ intervalSeconds: z.ZodInt;
229
+ }, z.core.$strip>>;
206
230
  crewRequest: z.ZodNullable<z.ZodObject<{
207
231
  settingsVersion: z.ZodInt;
208
232
  requestedAt: z.ZodISODateTime;
@@ -243,6 +267,7 @@ export declare const listedShipSchema: z.ZodObject<{
243
267
  awaitingCrewSince: z.ZodNullable<z.ZodISODateTime>;
244
268
  retiredAt: z.ZodNullable<z.ZodISODateTime>;
245
269
  ownerShipId: z.ZodNullable<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
270
+ openAlertCount: z.ZodInt;
246
271
  }, z.core.$strip>;
247
272
  export type ListedShip = z.infer<typeof listedShipSchema>;
248
273
  /** A ship outside the caller's read reach (decision 0034): its name, type and status only. */
@@ -320,9 +345,33 @@ export declare const fleetListOutputSchema: z.ZodObject<{
320
345
  idle: "idle";
321
346
  }>;
322
347
  note: z.ZodNullable<z.ZodString>;
348
+ task: z.ZodNullable<z.ZodObject<{
349
+ kind: z.ZodString;
350
+ }, z.core.$catchall<z.ZodJSONSchema>>>;
351
+ taskView: z.ZodOptional<z.ZodObject<{
352
+ canOpen: z.ZodBoolean;
353
+ fleetName: z.ZodNullable<z.ZodString>;
354
+ }, z.core.$strip>>;
355
+ step: z.ZodNullable<z.ZodObject<{
356
+ at: z.ZodNumber;
357
+ of: z.ZodNumber;
358
+ }, z.core.$strip>>;
323
359
  reportedAt: z.ZodISODateTime;
360
+ reportChangedAt: z.ZodISODateTime;
324
361
  detailsVersion: z.ZodInt;
325
362
  }, z.core.$strip>>;
363
+ activity: z.ZodNullable<z.ZodObject<{
364
+ at: z.ZodISODateTime;
365
+ kind: z.ZodEnum<{
366
+ error: "error";
367
+ text: "text";
368
+ tool: "tool";
369
+ result: "result";
370
+ }>;
371
+ tool: z.ZodNullable<z.ZodString>;
372
+ reportedAt: z.ZodISODateTime;
373
+ intervalSeconds: z.ZodInt;
374
+ }, z.core.$strip>>;
326
375
  crewRequest: z.ZodNullable<z.ZodObject<{
327
376
  settingsVersion: z.ZodInt;
328
377
  requestedAt: z.ZodISODateTime;
@@ -363,6 +412,7 @@ export declare const fleetListOutputSchema: z.ZodObject<{
363
412
  awaitingCrewSince: z.ZodNullable<z.ZodISODateTime>;
364
413
  retiredAt: z.ZodNullable<z.ZodISODateTime>;
365
414
  ownerShipId: z.ZodNullable<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
415
+ openAlertCount: z.ZodInt;
366
416
  }, z.core.$strip>, z.ZodObject<{
367
417
  id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
368
418
  name: z.ZodString;
@@ -431,9 +481,33 @@ export declare const listedShipOutputSchema: z.ZodUnion<readonly [z.ZodObject<{
431
481
  idle: "idle";
432
482
  }>;
433
483
  note: z.ZodNullable<z.ZodString>;
484
+ task: z.ZodNullable<z.ZodObject<{
485
+ kind: z.ZodString;
486
+ }, z.core.$catchall<z.ZodJSONSchema>>>;
487
+ taskView: z.ZodOptional<z.ZodObject<{
488
+ canOpen: z.ZodBoolean;
489
+ fleetName: z.ZodNullable<z.ZodString>;
490
+ }, z.core.$strip>>;
491
+ step: z.ZodNullable<z.ZodObject<{
492
+ at: z.ZodNumber;
493
+ of: z.ZodNumber;
494
+ }, z.core.$strip>>;
434
495
  reportedAt: z.ZodISODateTime;
496
+ reportChangedAt: z.ZodISODateTime;
435
497
  detailsVersion: z.ZodInt;
436
498
  }, z.core.$strip>>;
499
+ activity: z.ZodNullable<z.ZodObject<{
500
+ at: z.ZodISODateTime;
501
+ kind: z.ZodEnum<{
502
+ error: "error";
503
+ text: "text";
504
+ tool: "tool";
505
+ result: "result";
506
+ }>;
507
+ tool: z.ZodNullable<z.ZodString>;
508
+ reportedAt: z.ZodISODateTime;
509
+ intervalSeconds: z.ZodInt;
510
+ }, z.core.$strip>>;
437
511
  crewRequest: z.ZodNullable<z.ZodObject<{
438
512
  settingsVersion: z.ZodInt;
439
513
  requestedAt: z.ZodISODateTime;
@@ -474,6 +548,7 @@ export declare const listedShipOutputSchema: z.ZodUnion<readonly [z.ZodObject<{
474
548
  awaitingCrewSince: z.ZodNullable<z.ZodISODateTime>;
475
549
  retiredAt: z.ZodNullable<z.ZodISODateTime>;
476
550
  ownerShipId: z.ZodNullable<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
551
+ openAlertCount: z.ZodInt;
477
552
  }, z.core.$strip>, z.ZodObject<{
478
553
  id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
479
554
  name: z.ZodString;
@@ -626,6 +701,9 @@ export declare const liveFleetEventSchema: z.ZodObject<{
626
701
  FleetKeysRecovered: "FleetKeysRecovered";
627
702
  FeatureFlagTurnedOn: "FeatureFlagTurnedOn";
628
703
  FeatureFlagTurnedOff: "FeatureFlagTurnedOff";
704
+ AlertRaised: "AlertRaised";
705
+ AlertCleared: "AlertCleared";
706
+ ExpectationsSet: "ExpectationsSet";
629
707
  }>;
630
708
  occurredAt: z.ZodISODateTime;
631
709
  actorKind: z.ZodEnum<{
@@ -745,6 +823,9 @@ export declare const fleetStreamItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject
745
823
  FleetKeysRecovered: "FleetKeysRecovered";
746
824
  FeatureFlagTurnedOn: "FeatureFlagTurnedOn";
747
825
  FeatureFlagTurnedOff: "FeatureFlagTurnedOff";
826
+ AlertRaised: "AlertRaised";
827
+ AlertCleared: "AlertCleared";
828
+ ExpectationsSet: "ExpectationsSet";
748
829
  }>;
749
830
  occurredAt: z.ZodISODateTime;
750
831
  actorKind: z.ZodEnum<{
@@ -7,6 +7,7 @@ import { idempotencyKeySchema } from './idempotency-key.js';
7
7
  import { listedCrewRequestSchema } from './crew-request.js';
8
8
  import { carriedLabelSchema, SHIP_LABELS_MAX } from './label.js';
9
9
  import { pageOutputOf } from './page.js';
10
+ import { listedActivitySchema } from './activity.js';
10
11
  import { listedReportSchema } from './report.js';
11
12
  /**
12
13
  * Inputs and outputs of the fleet procedures: commission a ship, get its
@@ -171,6 +172,11 @@ export const listedShipSchema = z.object({
171
172
  * themselves. Null until the crew reports, and for a ship no session crews.
172
173
  */
173
174
  report: listedReportSchema.nullable(),
175
+ /**
176
+ * What its trierarch last observed of the crewing session (docs/design/monitoring, 4.3):
177
+ * null for a ship crewed by hand, before its trierarch writes any, and for a ship no session crews.
178
+ */
179
+ activity: listedActivitySchema.nullable(),
174
180
  /** The ship's crew request (decision 0029); null when it holds none. */
175
181
  crewRequest: listedCrewRequestSchema.nullable(),
176
182
  /** The label values the ship carries, with their labels, by key then value (decision 0031). */
@@ -181,6 +187,8 @@ export const listedShipSchema = z.object({
181
187
  retiredAt: z.iso.datetime().nullable(),
182
188
  /** The ship that owns it (decision 0045); null for argo and the viewer, which no ship owns. */
183
189
  ownerShipId: idSchema('ship').nullable(),
190
+ /** How many open alerts the ship has (decision 0071); `fleet.openAlerts` lists them. */
191
+ openAlertCount: z.int().min(0),
184
192
  });
185
193
  /** A ship outside the caller's read reach (decision 0034): its name, type and status only. */
186
194
  export const shipOutsideReadReachSchema = z.object({