@aeolus-fleet/common 0.33.0 → 0.35.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 (102) hide show
  1. package/README.md +4 -2
  2. package/dist/fleet/index.d.ts +23 -5
  3. package/dist/fleet/index.js +22 -2
  4. package/dist/fleet/index.js.map +1 -1
  5. package/dist/header/index.d.ts +2 -0
  6. package/dist/header/index.js +2 -0
  7. package/dist/header/index.js.map +1 -1
  8. package/dist/header/sign-in-background.d.ts +10 -0
  9. package/dist/header/sign-in-background.js +48 -0
  10. package/dist/header/sign-in-background.js.map +1 -0
  11. package/dist/header/sign-in-backgrounds.d.ts +40 -0
  12. package/dist/header/sign-in-backgrounds.js +135 -0
  13. package/dist/header/sign-in-backgrounds.js.map +1 -0
  14. package/dist/ids/index.d.ts +6 -0
  15. package/dist/ids/index.js +4 -0
  16. package/dist/ids/index.js.map +1 -1
  17. package/dist/rules/activity.d.ts +10 -0
  18. package/dist/rules/activity.js +13 -0
  19. package/dist/rules/activity.js.map +1 -0
  20. package/dist/rules/alert.d.ts +14 -0
  21. package/dist/rules/alert.js +33 -0
  22. package/dist/rules/alert.js.map +1 -0
  23. package/dist/rules/index.d.ts +2 -0
  24. package/dist/rules/index.js +2 -0
  25. package/dist/rules/index.js.map +1 -1
  26. package/dist/rules/payload.d.ts +1 -1
  27. package/dist/rules/payload.js +2 -2
  28. package/dist/rules/payload.js.map +1 -1
  29. package/dist/schemas/activity.d.ts +71 -0
  30. package/dist/schemas/activity.js +53 -0
  31. package/dist/schemas/activity.js.map +1 -0
  32. package/dist/schemas/alert.d.ts +564 -0
  33. package/dist/schemas/alert.js +123 -0
  34. package/dist/schemas/alert.js.map +1 -0
  35. package/dist/schemas/console.d.ts +3 -0
  36. package/dist/schemas/console.js +3 -0
  37. package/dist/schemas/console.js.map +1 -1
  38. package/dist/schemas/delivery.d.ts +1 -1
  39. package/dist/schemas/delivery.js +1 -1
  40. package/dist/schemas/expectations.d.ts +76 -0
  41. package/dist/schemas/expectations.js +41 -0
  42. package/dist/schemas/expectations.js.map +1 -0
  43. package/dist/schemas/feature-flags.d.ts +55 -0
  44. package/dist/schemas/feature-flags.js +41 -0
  45. package/dist/schemas/feature-flags.js.map +1 -0
  46. package/dist/schemas/fleet.d.ts +103 -1
  47. package/dist/schemas/fleet.js +10 -1
  48. package/dist/schemas/fleet.js.map +1 -1
  49. package/dist/schemas/follow.d.ts +13 -0
  50. package/dist/schemas/health.d.ts +64 -0
  51. package/dist/schemas/health.js +9 -0
  52. package/dist/schemas/health.js.map +1 -1
  53. package/dist/schemas/history.d.ts +331 -0
  54. package/dist/schemas/history.js +18 -2
  55. package/dist/schemas/history.js.map +1 -1
  56. package/dist/schemas/index.d.ts +6 -0
  57. package/dist/schemas/index.js +6 -0
  58. package/dist/schemas/index.js.map +1 -1
  59. package/dist/schemas/installation.d.ts +17 -0
  60. package/dist/schemas/installation.js +5 -0
  61. package/dist/schemas/installation.js.map +1 -1
  62. package/dist/schemas/label.d.ts +2 -2
  63. package/dist/schemas/meeting.d.ts +2 -0
  64. package/dist/schemas/meeting.js +2 -0
  65. package/dist/schemas/meeting.js.map +1 -1
  66. package/dist/schemas/message-task-access.d.ts +11 -0
  67. package/dist/schemas/message-task-access.js +7 -0
  68. package/dist/schemas/message-task-access.js.map +1 -0
  69. package/dist/schemas/message.d.ts +4 -3
  70. package/dist/schemas/message.js +5 -4
  71. package/dist/schemas/message.js.map +1 -1
  72. package/dist/schemas/needs-attention.d.ts +2 -0
  73. package/dist/schemas/needs-attention.js +2 -0
  74. package/dist/schemas/needs-attention.js.map +1 -1
  75. package/dist/schemas/network-rules-file.js +2 -2
  76. package/dist/schemas/network-rules-file.js.map +1 -1
  77. package/dist/schemas/network.d.ts +13 -13
  78. package/dist/schemas/operator-inbox.d.ts +6 -0
  79. package/dist/schemas/operator-inbox.js +5 -1
  80. package/dist/schemas/operator-inbox.js.map +1 -1
  81. package/dist/schemas/report.d.ts +81 -3
  82. package/dist/schemas/report.js +26 -3
  83. package/dist/schemas/report.js.map +1 -1
  84. package/dist/schemas/sealing.d.ts +126 -0
  85. package/dist/schemas/sealing.js +75 -0
  86. package/dist/schemas/sealing.js.map +1 -0
  87. package/dist/schemas/ship.d.ts +8 -4
  88. package/dist/schemas/ship.js +8 -4
  89. package/dist/schemas/ship.js.map +1 -1
  90. package/dist/schemas/statement.d.ts +2 -2
  91. package/dist/schemas/statement.js +4 -4
  92. package/dist/schemas/statement.js.map +1 -1
  93. package/dist/trierarch/index.d.ts +1 -0
  94. package/dist/trierarch/index.js +1 -0
  95. package/dist/trierarch/index.js.map +1 -1
  96. package/dist/trierarch/report-details.d.ts +57 -0
  97. package/dist/trierarch/report-details.js +34 -14
  98. package/dist/trierarch/report-details.js.map +1 -1
  99. package/dist/trierarch/usage-message.d.ts +47 -0
  100. package/dist/trierarch/usage-message.js +51 -0
  101. package/dist/trierarch/usage-message.js.map +1 -0
  102. package/package.json +1 -1
@@ -262,9 +262,9 @@ export declare const FIXED_BUILT_IN_RULES: readonly ["argo", "owner", "answer",
262
262
  export declare const setBuiltInRuleInputSchema: z.ZodObject<{
263
263
  rule: z.ZodEnum<{
264
264
  meeting: "meeting";
265
+ owner: "owner";
265
266
  argo: "argo";
266
267
  installation: "installation";
267
- owner: "owner";
268
268
  open: "open";
269
269
  answer: "answer";
270
270
  pluginRead: "pluginRead";
@@ -277,9 +277,9 @@ export type SetBuiltInRuleInput = z.infer<typeof setBuiltInRuleInputSchema>;
277
277
  export declare const builtInRuleStateSchema: z.ZodObject<{
278
278
  rule: z.ZodEnum<{
279
279
  meeting: "meeting";
280
+ owner: "owner";
280
281
  argo: "argo";
281
282
  installation: "installation";
282
- owner: "owner";
283
283
  open: "open";
284
284
  answer: "answer";
285
285
  pluginRead: "pluginRead";
@@ -292,9 +292,9 @@ export type BuiltInRuleState = z.infer<typeof builtInRuleStateSchema>;
292
292
  export declare const builtInRulesOutputSchema: z.ZodArray<z.ZodObject<{
293
293
  rule: z.ZodEnum<{
294
294
  meeting: "meeting";
295
+ owner: "owner";
295
296
  argo: "argo";
296
297
  installation: "installation";
297
- owner: "owner";
298
298
  open: "open";
299
299
  answer: "answer";
300
300
  pluginRead: "pluginRead";
@@ -603,9 +603,9 @@ export declare const explainReachInputSchema: z.ZodObject<{
603
603
  export declare const reachRuleSchema: z.ZodUnion<readonly [z.ZodObject<{
604
604
  builtIn: z.ZodEnum<{
605
605
  meeting: "meeting";
606
+ owner: "owner";
606
607
  argo: "argo";
607
608
  installation: "installation";
608
- owner: "owner";
609
609
  open: "open";
610
610
  answer: "answer";
611
611
  pluginRead: "pluginRead";
@@ -630,9 +630,9 @@ export declare const explainReachOutputSchema: z.ZodObject<{
630
630
  rule: z.ZodUnion<readonly [z.ZodObject<{
631
631
  builtIn: z.ZodEnum<{
632
632
  meeting: "meeting";
633
+ owner: "owner";
633
634
  argo: "argo";
634
635
  installation: "installation";
635
- owner: "owner";
636
636
  open: "open";
637
637
  answer: "answer";
638
638
  pluginRead: "pluginRead";
@@ -655,9 +655,9 @@ export declare const explainReachOutputSchema: z.ZodObject<{
655
655
  rule: z.ZodUnion<readonly [z.ZodObject<{
656
656
  builtIn: z.ZodEnum<{
657
657
  meeting: "meeting";
658
+ owner: "owner";
658
659
  argo: "argo";
659
660
  installation: "installation";
660
- owner: "owner";
661
661
  open: "open";
662
662
  answer: "answer";
663
663
  pluginRead: "pluginRead";
@@ -680,9 +680,9 @@ export declare const explainReachOutputSchema: z.ZodObject<{
680
680
  rule: z.ZodUnion<readonly [z.ZodObject<{
681
681
  builtIn: z.ZodEnum<{
682
682
  meeting: "meeting";
683
+ owner: "owner";
683
684
  argo: "argo";
684
685
  installation: "installation";
685
- owner: "owner";
686
686
  open: "open";
687
687
  answer: "answer";
688
688
  pluginRead: "pluginRead";
@@ -716,9 +716,9 @@ export declare const networkRulesDraftChangesOutputSchema: z.ZodObject<{
716
716
  rule: z.ZodUnion<readonly [z.ZodObject<{
717
717
  builtIn: z.ZodEnum<{
718
718
  meeting: "meeting";
719
+ owner: "owner";
719
720
  argo: "argo";
720
721
  installation: "installation";
721
- owner: "owner";
722
722
  open: "open";
723
723
  answer: "answer";
724
724
  pluginRead: "pluginRead";
@@ -742,9 +742,9 @@ export declare const networkRulesDraftChangesOutputSchema: z.ZodObject<{
742
742
  rule: z.ZodUnion<readonly [z.ZodObject<{
743
743
  builtIn: z.ZodEnum<{
744
744
  meeting: "meeting";
745
+ owner: "owner";
745
746
  argo: "argo";
746
747
  installation: "installation";
747
- owner: "owner";
748
748
  open: "open";
749
749
  answer: "answer";
750
750
  pluginRead: "pluginRead";
@@ -770,9 +770,9 @@ export declare const networkRulesDraftChangesOutputSchema: z.ZodObject<{
770
770
  rule: z.ZodUnion<readonly [z.ZodObject<{
771
771
  builtIn: z.ZodEnum<{
772
772
  meeting: "meeting";
773
+ owner: "owner";
773
774
  argo: "argo";
774
775
  installation: "installation";
775
- owner: "owner";
776
776
  open: "open";
777
777
  answer: "answer";
778
778
  pluginRead: "pluginRead";
@@ -796,9 +796,9 @@ export declare const networkRulesDraftChangesOutputSchema: z.ZodObject<{
796
796
  rule: z.ZodUnion<readonly [z.ZodObject<{
797
797
  builtIn: z.ZodEnum<{
798
798
  meeting: "meeting";
799
+ owner: "owner";
799
800
  argo: "argo";
800
801
  installation: "installation";
801
- owner: "owner";
802
802
  open: "open";
803
803
  answer: "answer";
804
804
  pluginRead: "pluginRead";
@@ -824,9 +824,9 @@ export declare const networkRulesDraftChangesOutputSchema: z.ZodObject<{
824
824
  rule: z.ZodUnion<readonly [z.ZodObject<{
825
825
  builtIn: z.ZodEnum<{
826
826
  meeting: "meeting";
827
+ owner: "owner";
827
828
  argo: "argo";
828
829
  installation: "installation";
829
- owner: "owner";
830
830
  open: "open";
831
831
  answer: "answer";
832
832
  pluginRead: "pluginRead";
@@ -850,9 +850,9 @@ export declare const networkRulesDraftChangesOutputSchema: z.ZodObject<{
850
850
  rule: z.ZodUnion<readonly [z.ZodObject<{
851
851
  builtIn: z.ZodEnum<{
852
852
  meeting: "meeting";
853
+ owner: "owner";
853
854
  argo: "argo";
854
855
  installation: "installation";
855
- owner: "owner";
856
856
  open: "open";
857
857
  answer: "answer";
858
858
  pluginRead: "pluginRead";
@@ -38,6 +38,7 @@ export declare const inboxMessageSchema: z.ZodObject<{
38
38
  id: z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>;
39
39
  contentType: z.ZodString;
40
40
  payload: z.ZodString;
41
+ isPayloadUnreadable: z.ZodBoolean;
41
42
  sentAt: z.ZodISODateTime;
42
43
  }, z.core.$strip>>;
43
44
  message: z.ZodObject<{
@@ -51,6 +52,8 @@ export declare const inboxMessageSchema: z.ZodObject<{
51
52
  contentType: z.ZodString;
52
53
  model: z.ZodNullable<z.ZodString>;
53
54
  payload: z.ZodString;
55
+ isPayloadUnreadable: z.ZodBoolean;
56
+ isPayloadSealed: z.ZodBoolean;
54
57
  }, z.core.$strip>;
55
58
  }, z.core.$strip>;
56
59
  export type InboxMessage = z.infer<typeof inboxMessageSchema>;
@@ -76,6 +79,7 @@ export declare const operatorInboxOutputSchema: z.ZodObject<{
76
79
  id: z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>;
77
80
  contentType: z.ZodString;
78
81
  payload: z.ZodString;
82
+ isPayloadUnreadable: z.ZodBoolean;
79
83
  sentAt: z.ZodISODateTime;
80
84
  }, z.core.$strip>>;
81
85
  message: z.ZodObject<{
@@ -89,6 +93,8 @@ export declare const operatorInboxOutputSchema: z.ZodObject<{
89
93
  contentType: z.ZodString;
90
94
  model: z.ZodNullable<z.ZodString>;
91
95
  payload: z.ZodString;
96
+ isPayloadUnreadable: z.ZodBoolean;
97
+ isPayloadSealed: z.ZodBoolean;
92
98
  }, z.core.$strip>;
93
99
  }, z.core.$strip>>;
94
100
  nextCursor: z.ZodNullable<z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>>;
@@ -27,7 +27,7 @@ export const inboxMessageSchema = z.object({
27
27
  /** The reply that acknowledged it, when a reply did. */
28
28
  repliedWith: idSchema('message').nullable(),
29
29
  /** Every reply argo sent to it, oldest first: what a console reads an answer from (decision 0038). */
30
- replies: z.array(z.object({ id: idSchema('message'), contentType: z.string(), payload: z.string(), sentAt: isoTime })),
30
+ replies: z.array(z.object({ id: idSchema('message'), contentType: z.string(), payload: z.string(), isPayloadUnreadable: z.boolean(), sentAt: isoTime })),
31
31
  message: z.object({
32
32
  id: idSchema('message'),
33
33
  sender: partySchema,
@@ -37,6 +37,10 @@ export const inboxMessageSchema = z.object({
37
37
  /** The model the sender's session stated it runs. */
38
38
  model: z.string().nullable(),
39
39
  payload: z.string(),
40
+ /** Its payload is sealed under a data key that cannot be had now, or does not open: the payload is empty (decision 0068, B9). */
41
+ isPayloadUnreadable: z.boolean(),
42
+ /** Its payload is stored sealed: the console marks it (decision 0068, N1). */
43
+ isPayloadSealed: z.boolean(),
40
44
  }),
41
45
  });
42
46
  /** Output of `fleet.inbox`: a page of the messages to argo the filter keeps, newest first. */
@@ -1 +1 @@
1
- {"version":3,"file":"operator-inbox.js","sourceRoot":"","sources":["../../src/schemas/operator-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;GAIG;AAEH,uBAAuB;AACvB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAEjC,yDAAyD;AACzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAGvD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAE5H,gJAAgJ;AAChJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAChC,KAAK,EAAE,mBAAmB;IAC1B,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE;IAC1B,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE;IAC1B,wDAAwD;IACxD,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAC3C,sGAAsG;IACtG,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACtH,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC;QACvB,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;QACzC,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,qDAAqD;QACrD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC;CACH,CAAC,CAAC;AAIH,8FAA8F;AAC9F,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAEhG,iHAAiH;AACjH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAE1H,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAEvG,iHAAiH;AACjH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAEhF,sFAAsF;AACtF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAE1D,mFAAmF;AACnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAElF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAChC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO;IACtC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,eAAe,CAAC,KAAK,CAAC,cAAc;CACrD,CAAC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"operator-inbox.js","sourceRoot":"","sources":["../../src/schemas/operator-inbox.ts"],"names":[],"mappings":"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"}
@@ -22,11 +22,33 @@ export declare function reportDetailsBytes(details: ReportDetails): number;
22
22
  /** A report's details: one JSON object, whose meaning lives outside the server (decision 0028). */
23
23
  export declare const reportDetailsSchema: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
24
24
  export type ReportDetails = z.infer<typeof reportDetailsSchema>;
25
+ /** The longest a url task's URL may be. */
26
+ export declare const REPORT_TASK_URL_MAX_LENGTH = 512;
27
+ /** The most steps a report's step may count. */
28
+ export declare const REPORT_STEP_MAX = 1000;
29
+ /**
30
+ * What a crew works on, as a typed reference to where the work lives, never
31
+ * its content: a `kind` and that kind's fields (docs/design/monitoring,
32
+ * 4.2). Core checks the kinds it knows: `url` (`url`, an absolute https URL)
33
+ * and `message` (`fleetId`, `messageId`); a kind it does not know is taken
34
+ * unchecked, so a newer ship never blocks on an older core.
35
+ */
36
+ export declare const reportTaskSchema: z.ZodObject<{
37
+ kind: z.ZodString;
38
+ }, z.core.$catchall<z.ZodJSONSchema>>;
39
+ export type ReportTask = z.infer<typeof reportTaskSchema>;
40
+ /** Where a crew is in its task: step `at` of `of`, whole numbers with 1 <= at <= of <= 1000. */
41
+ export declare const reportStepSchema: z.ZodObject<{
42
+ at: z.ZodNumber;
43
+ of: z.ZodNumber;
44
+ }, z.core.$strip>;
45
+ export type ReportStep = z.infer<typeof reportStepSchema>;
25
46
  /**
26
47
  * Input of `report`: the crew's state and a short note on what it is doing,
27
48
  * trimmed, and optionally its details. `details` sets them whole, null clears
28
49
  * them; `detailsPatch` applies a JSON Merge Patch (RFC 7386) to them; never
29
- * both. Left out, the details stay as they are. Calling it is a check-in.
50
+ * both. Left out, the details stay as they are. `task` and `step` likewise:
51
+ * left out they stay, null clears them. Calling it is a check-in.
30
52
  */
31
53
  export declare const reportInputSchema: z.ZodObject<{
32
54
  state: z.ZodEnum<{
@@ -37,14 +59,22 @@ export declare const reportInputSchema: z.ZodObject<{
37
59
  note: z.ZodOptional<z.ZodString>;
38
60
  details: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>>;
39
61
  detailsPatch: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>>;
62
+ task: z.ZodOptional<z.ZodNullable<z.ZodObject<{
63
+ kind: z.ZodString;
64
+ }, z.core.$catchall<z.ZodJSONSchema>>>>;
65
+ step: z.ZodOptional<z.ZodNullable<z.ZodObject<{
66
+ at: z.ZodNumber;
67
+ of: z.ZodNumber;
68
+ }, z.core.$strip>>>;
40
69
  }, z.core.$strip>;
41
70
  export type ReportInput = z.infer<typeof reportInputSchema>;
42
71
  /** Output of `report`: nothing; the OK is the answer. */
43
72
  export declare const reportOutputSchema: z.ZodObject<{}, z.core.$strict>;
44
73
  /**
45
74
  * A crew's report as the fleet list shows it (ISO 8601 in UTC): its state,
46
- * its note, when it last reported, and the version of its details, which
47
- * moves each time they change (0 before any).
75
+ * its note, its task and step, when it last reported, when the report last
76
+ * changed (state, note, task or step; details do not count), and the version
77
+ * of its details, which moves each time they change (0 before any).
48
78
  */
49
79
  export declare const listedReportSchema: z.ZodObject<{
50
80
  state: z.ZodEnum<{
@@ -53,7 +83,19 @@ export declare const listedReportSchema: z.ZodObject<{
53
83
  idle: "idle";
54
84
  }>;
55
85
  note: z.ZodNullable<z.ZodString>;
86
+ task: z.ZodNullable<z.ZodObject<{
87
+ kind: z.ZodString;
88
+ }, z.core.$catchall<z.ZodJSONSchema>>>;
89
+ taskView: z.ZodOptional<z.ZodObject<{
90
+ canOpen: z.ZodBoolean;
91
+ fleetName: z.ZodNullable<z.ZodString>;
92
+ }, z.core.$strip>>;
93
+ step: z.ZodNullable<z.ZodObject<{
94
+ at: z.ZodNumber;
95
+ of: z.ZodNumber;
96
+ }, z.core.$strip>>;
56
97
  reportedAt: z.ZodISODateTime;
98
+ reportChangedAt: z.ZodISODateTime;
57
99
  detailsVersion: z.ZodInt;
58
100
  }, z.core.$strip>;
59
101
  /** A crew's report whole: as the fleet list shows it, with its details; null when it has none. */
@@ -64,7 +106,19 @@ export declare const reportSchema: z.ZodObject<{
64
106
  idle: "idle";
65
107
  }>;
66
108
  note: z.ZodNullable<z.ZodString>;
109
+ task: z.ZodNullable<z.ZodObject<{
110
+ kind: z.ZodString;
111
+ }, z.core.$catchall<z.ZodJSONSchema>>>;
112
+ taskView: z.ZodOptional<z.ZodObject<{
113
+ canOpen: z.ZodBoolean;
114
+ fleetName: z.ZodNullable<z.ZodString>;
115
+ }, z.core.$strip>>;
116
+ step: z.ZodNullable<z.ZodObject<{
117
+ at: z.ZodNumber;
118
+ of: z.ZodNumber;
119
+ }, z.core.$strip>>;
67
120
  reportedAt: z.ZodISODateTime;
121
+ reportChangedAt: z.ZodISODateTime;
68
122
  detailsVersion: z.ZodInt;
69
123
  details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
70
124
  }, z.core.$strip>;
@@ -82,7 +136,19 @@ export declare const reportLogOutputSchema: z.ZodObject<{
82
136
  idle: "idle";
83
137
  }>;
84
138
  note: z.ZodNullable<z.ZodString>;
139
+ task: z.ZodNullable<z.ZodObject<{
140
+ kind: z.ZodString;
141
+ }, z.core.$catchall<z.ZodJSONSchema>>>;
142
+ taskView: z.ZodOptional<z.ZodObject<{
143
+ canOpen: z.ZodBoolean;
144
+ fleetName: z.ZodNullable<z.ZodString>;
145
+ }, z.core.$strip>>;
146
+ step: z.ZodNullable<z.ZodObject<{
147
+ at: z.ZodNumber;
148
+ of: z.ZodNumber;
149
+ }, z.core.$strip>>;
85
150
  reportedAt: z.ZodISODateTime;
151
+ reportChangedAt: z.ZodISODateTime;
86
152
  detailsVersion: z.ZodInt;
87
153
  details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
88
154
  }, z.core.$strip>>;
@@ -93,7 +159,19 @@ export declare const reportLogOutputSchema: z.ZodObject<{
93
159
  idle: "idle";
94
160
  }>;
95
161
  note: z.ZodNullable<z.ZodString>;
162
+ task: z.ZodNullable<z.ZodObject<{
163
+ kind: z.ZodString;
164
+ }, z.core.$catchall<z.ZodJSONSchema>>>;
165
+ taskView: z.ZodOptional<z.ZodObject<{
166
+ canOpen: z.ZodBoolean;
167
+ fleetName: z.ZodNullable<z.ZodString>;
168
+ }, z.core.$strip>>;
169
+ step: z.ZodNullable<z.ZodObject<{
170
+ at: z.ZodNumber;
171
+ of: z.ZodNumber;
172
+ }, z.core.$strip>>;
96
173
  reportedAt: z.ZodISODateTime;
174
+ reportChangedAt: z.ZodISODateTime;
97
175
  detailsVersion: z.ZodInt;
98
176
  details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
99
177
  }, z.core.$strip>>;
@@ -22,11 +22,26 @@ export function reportDetailsBytes(details) {
22
22
  }
23
23
  /** A report's details: one JSON object, whose meaning lives outside the server (decision 0028). */
24
24
  export const reportDetailsSchema = z.record(z.string(), z.json());
25
+ /** The longest a url task's URL may be. */
26
+ export const REPORT_TASK_URL_MAX_LENGTH = 512;
27
+ /** The most steps a report's step may count. */
28
+ export const REPORT_STEP_MAX = 1000;
29
+ /**
30
+ * What a crew works on, as a typed reference to where the work lives, never
31
+ * its content: a `kind` and that kind's fields (docs/design/monitoring,
32
+ * 4.2). Core checks the kinds it knows: `url` (`url`, an absolute https URL)
33
+ * and `message` (`fleetId`, `messageId`); a kind it does not know is taken
34
+ * unchecked, so a newer ship never blocks on an older core.
35
+ */
36
+ export const reportTaskSchema = z.object({ kind: z.string() }).catchall(z.json());
37
+ /** Where a crew is in its task: step `at` of `of`, whole numbers with 1 <= at <= of <= 1000. */
38
+ export const reportStepSchema = z.object({ at: z.number(), of: z.number() });
25
39
  /**
26
40
  * Input of `report`: the crew's state and a short note on what it is doing,
27
41
  * trimmed, and optionally its details. `details` sets them whole, null clears
28
42
  * them; `detailsPatch` applies a JSON Merge Patch (RFC 7386) to them; never
29
- * both. Left out, the details stay as they are. Calling it is a check-in.
43
+ * both. Left out, the details stay as they are. `task` and `step` likewise:
44
+ * left out they stay, null clears them. Calling it is a check-in.
30
45
  */
31
46
  export const reportInputSchema = z
32
47
  .object({
@@ -34,6 +49,8 @@ export const reportInputSchema = z
34
49
  note: z.string().trim().max(REPORT_NOTE_MAX_LENGTH, NOTE_MESSAGE).refine(isOneLine, NOTE_MESSAGE).optional(),
35
50
  details: reportDetailsSchema.nullable().optional(),
36
51
  detailsPatch: reportDetailsSchema.nullable().optional(),
52
+ task: reportTaskSchema.nullable().optional(),
53
+ step: reportStepSchema.nullable().optional(),
37
54
  })
38
55
  .refine((input) => input.details === undefined || input.detailsPatch === undefined, {
39
56
  message: 'Give details or detailsPatch, not both',
@@ -43,13 +60,19 @@ export const reportInputSchema = z
43
60
  export const reportOutputSchema = z.strictObject({});
44
61
  /**
45
62
  * A crew's report as the fleet list shows it (ISO 8601 in UTC): its state,
46
- * its note, when it last reported, and the version of its details, which
47
- * moves each time they change (0 before any).
63
+ * its note, its task and step, when it last reported, when the report last
64
+ * changed (state, note, task or step; details do not count), and the version
65
+ * of its details, which moves each time they change (0 before any).
48
66
  */
49
67
  export const listedReportSchema = z.object({
50
68
  state: reportStateSchema,
51
69
  note: z.string().nullable(),
70
+ task: reportTaskSchema.nullable(),
71
+ /** Viewer-specific read metadata, kept apart from the canonical task reference. */
72
+ taskView: z.object({ canOpen: z.boolean(), fleetName: z.string().nullable() }).optional(),
73
+ step: reportStepSchema.nullable(),
52
74
  reportedAt: z.iso.datetime(),
75
+ reportChangedAt: z.iso.datetime(),
53
76
  detailsVersion: z.int().min(0),
54
77
  });
55
78
  /** A crew's report whole: as the fleet list shows it, with its details; null when it has none. */
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/schemas/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8FAA8F;AAC9F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAGvD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C,MAAM,YAAY,GAAG,iCAAiC,MAAM,CAAC,sBAAsB,CAAC,aAAa,CAAC;AAElG,uCAAuC;AACvC,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;AAElD,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;AAE/B,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,OAAsB;IACvD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;AACzD,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAIlE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE;IAC5G,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClD,YAAY,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC;KACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE;IAClF,OAAO,EAAE,wCAAwC;IACjD,IAAI,EAAE,CAAC,cAAc,CAAC;CACvB,CAAC,CAAC;AAIL,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC5B,cAAc,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/B,CAAC,CAAC;AAEH,kGAAkG;AAClG,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAInG;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/schemas/report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import { z } from 'zod';
2
+ /** Input of `fleet.turnOnSealing` (decision 0068): the company key, by its reference in the company's own KMS, and optionally a recovery key. */
3
+ export declare const turnOnSealingInputSchema: z.ZodObject<{
4
+ companyKey: z.ZodString;
5
+ recoveryKey: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strict>;
7
+ /** Output of `fleet.turnOnSealing`: sealing while payloads stored plain before wait for the sealing pass, else sealed; the recovery key's fingerprint when one was given. */
8
+ export declare const turnOnSealingOutputSchema: z.ZodObject<{
9
+ state: z.ZodEnum<{
10
+ sealing: "sealing";
11
+ sealed: "sealed";
12
+ }>;
13
+ companyKey: z.ZodString;
14
+ recoveryKeyFingerprint: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>;
16
+ /** Input of `fleet.changeCompanyKey` (decision 0068, B13c): the new company key, by its reference in the company's own KMS. */
17
+ export declare const changeCompanyKeyInputSchema: z.ZodObject<{
18
+ companyKey: z.ZodString;
19
+ }, z.core.$strict>;
20
+ /** Output of `fleet.changeCompanyKey`: the company key that wraps every data key of the fleet now. */
21
+ export declare const changeCompanyKeyOutputSchema: z.ZodObject<{
22
+ companyKey: z.ZodString;
23
+ }, z.core.$strip>;
24
+ /** Input of `fleet.changeRecoveryKey` (decision 0068, B13d): the new recovery key, the public half of an `age` X25519 key pair. */
25
+ export declare const changeRecoveryKeyInputSchema: z.ZodObject<{
26
+ recoveryKey: z.ZodString;
27
+ }, z.core.$strict>;
28
+ /** Output of `fleet.changeRecoveryKey`: the fingerprint of the recovery key every data key of the fleet is wrapped to now. */
29
+ export declare const changeRecoveryKeyOutputSchema: z.ZodObject<{
30
+ recoveryKeyFingerprint: z.ZodString;
31
+ }, z.core.$strip>;
32
+ /** Why the company key vault refused a sealed fleet's company key (decision 0068, B11). */
33
+ export declare const companyKeyUnavailableReasonSchema: z.ZodEnum<{
34
+ accessDenied: "accessDenied";
35
+ disabled: "disabled";
36
+ notFound: "notFound";
37
+ unreachable: "unreachable";
38
+ }>;
39
+ /** Whether the company key answered the fleet's last unwrap, and since when; the key vault's reason while it refuses. */
40
+ export declare const keyAvailabilitySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
41
+ isAvailable: z.ZodLiteral<true>;
42
+ since: z.ZodISODateTime;
43
+ }, z.core.$strip>, z.ZodObject<{
44
+ isAvailable: z.ZodLiteral<false>;
45
+ reason: z.ZodEnum<{
46
+ accessDenied: "accessDenied";
47
+ disabled: "disabled";
48
+ notFound: "notFound";
49
+ unreachable: "unreachable";
50
+ }>;
51
+ since: z.ZodISODateTime;
52
+ }, z.core.$strip>], "isAvailable">;
53
+ /**
54
+ * Output of `fleet.sealing` (decision 0068, B5): none for a fleet that is not
55
+ * sealed; else its state and since when (turned on, or sealed), while sealing
56
+ * how many of the payloads stored plain before are sealed, its company key by reference, its recovery key by
57
+ * fingerprint (none when the company set none), the key's availability and its data keys oldest first, each with when it was made and
58
+ * whether it seals now. Never a key, wrapped or not.
59
+ */
60
+ export declare const sealingOutputSchema: z.ZodUnion<readonly [z.ZodObject<{
61
+ state: z.ZodLiteral<"none">;
62
+ }, z.core.$strip>, z.ZodObject<{
63
+ state: z.ZodEnum<{
64
+ sealing: "sealing";
65
+ sealed: "sealed";
66
+ }>;
67
+ since: z.ZodISODateTime;
68
+ progress: z.ZodNullable<z.ZodObject<{
69
+ sealed: z.ZodNumber;
70
+ total: z.ZodNumber;
71
+ }, z.core.$strip>>;
72
+ companyKey: z.ZodString;
73
+ recoveryKeyFingerprint: z.ZodNullable<z.ZodString>;
74
+ keyAvailability: z.ZodDiscriminatedUnion<[z.ZodObject<{
75
+ isAvailable: z.ZodLiteral<true>;
76
+ since: z.ZodISODateTime;
77
+ }, z.core.$strip>, z.ZodObject<{
78
+ isAvailable: z.ZodLiteral<false>;
79
+ reason: z.ZodEnum<{
80
+ accessDenied: "accessDenied";
81
+ disabled: "disabled";
82
+ notFound: "notFound";
83
+ unreachable: "unreachable";
84
+ }>;
85
+ since: z.ZodISODateTime;
86
+ }, z.core.$strip>], "isAvailable">;
87
+ dataKeys: z.ZodArray<z.ZodObject<{
88
+ id: z.ZodType<`dky_${string}`, unknown, z.core.$ZodTypeInternals<`dky_${string}`, unknown>>;
89
+ createdAt: z.ZodISODateTime;
90
+ isCurrent: z.ZodBoolean;
91
+ }, z.core.$strip>>;
92
+ }, z.core.$strip>]>;
93
+ /**
94
+ * Output of `fleet.recoverySet` (decision 0068, B15): the fleet whose
95
+ * encryption context the new wraps name, its recovery key by fingerprint, and
96
+ * each data key oldest first, wrapped to the recovery key alone (an age file,
97
+ * base64) with its check value (HMAC-SHA-256, base64). Only the company's
98
+ * offline private half opens it.
99
+ */
100
+ export declare const recoverySetOutputSchema: z.ZodObject<{
101
+ fleetId: z.ZodType<`flt_${string}`, unknown, z.core.$ZodTypeInternals<`flt_${string}`, unknown>>;
102
+ recoveryKeyFingerprint: z.ZodString;
103
+ dataKeys: z.ZodArray<z.ZodObject<{
104
+ id: z.ZodType<`dky_${string}`, unknown, z.core.$ZodTypeInternals<`dky_${string}`, unknown>>;
105
+ wrappedByRecoveryKey: z.ZodBase64;
106
+ checkValue: z.ZodBase64;
107
+ }, z.core.$strip>>;
108
+ }, z.core.$strip>;
109
+ /**
110
+ * Input of `fleet.recoverKeys` (decision 0068, B15): the new company key, by
111
+ * its reference in the company's own KMS, and each of the fleet's data keys
112
+ * wrapped under it for this fleet's context (an AWS KMS ciphertext blob,
113
+ * base64), as the recovery command made them on the company's computer.
114
+ */
115
+ export declare const recoverKeysInputSchema: z.ZodObject<{
116
+ companyKey: z.ZodString;
117
+ dataKeys: z.ZodArray<z.ZodObject<{
118
+ id: z.ZodType<`dky_${string}`, unknown, z.core.$ZodTypeInternals<`dky_${string}`, unknown>>;
119
+ wrappedByCompanyKey: z.ZodBase64;
120
+ }, z.core.$strict>>;
121
+ }, z.core.$strict>;
122
+ /** Output of `fleet.recoverKeys`: the company key that wraps every data key of the fleet now. */
123
+ export declare const recoverKeysOutputSchema: z.ZodObject<{
124
+ companyKey: z.ZodString;
125
+ }, z.core.$strip>;
126
+ export type SealingOutput = z.infer<typeof sealingOutputSchema>;
@@ -0,0 +1,75 @@
1
+ import { z } from 'zod';
2
+ import { idSchema } from '../ids/index.js';
3
+ /** The longest company key reference taken: an AWS KMS key ARN or alias ARN fits well within it. */
4
+ const COMPANY_KEY_MAX_LENGTH = 2048;
5
+ /** The longest recovery key taken: an age X25519 recipient is 62 characters. */
6
+ const RECOVERY_KEY_MAX_LENGTH = 256;
7
+ /** A recovery key as the company gives it: the public half of an `age` X25519 key pair (`age1...`), checked whole by core. */
8
+ const recoveryKeySchema = z.string().min(1).max(RECOVERY_KEY_MAX_LENGTH);
9
+ /** Input of `fleet.turnOnSealing` (decision 0068): the company key, by its reference in the company's own KMS, and optionally a recovery key. */
10
+ export const turnOnSealingInputSchema = z.strictObject({ companyKey: z.string().min(1).max(COMPANY_KEY_MAX_LENGTH), recoveryKey: recoveryKeySchema.optional() });
11
+ /** Output of `fleet.turnOnSealing`: sealing while payloads stored plain before wait for the sealing pass, else sealed; the recovery key's fingerprint when one was given. */
12
+ export const turnOnSealingOutputSchema = z.object({ state: z.enum(['sealing', 'sealed']), companyKey: z.string(), recoveryKeyFingerprint: z.string().optional() });
13
+ /** Input of `fleet.changeCompanyKey` (decision 0068, B13c): the new company key, by its reference in the company's own KMS. */
14
+ export const changeCompanyKeyInputSchema = z.strictObject({ companyKey: z.string().min(1).max(COMPANY_KEY_MAX_LENGTH) });
15
+ /** Output of `fleet.changeCompanyKey`: the company key that wraps every data key of the fleet now. */
16
+ export const changeCompanyKeyOutputSchema = z.object({ companyKey: z.string() });
17
+ /** Input of `fleet.changeRecoveryKey` (decision 0068, B13d): the new recovery key, the public half of an `age` X25519 key pair. */
18
+ export const changeRecoveryKeyInputSchema = z.strictObject({ recoveryKey: recoveryKeySchema });
19
+ /** Output of `fleet.changeRecoveryKey`: the fingerprint of the recovery key every data key of the fleet is wrapped to now. */
20
+ export const changeRecoveryKeyOutputSchema = z.object({ recoveryKeyFingerprint: z.string() });
21
+ /** Why the company key vault refused a sealed fleet's company key (decision 0068, B11). */
22
+ export const companyKeyUnavailableReasonSchema = z.enum(['accessDenied', 'disabled', 'notFound', 'unreachable']);
23
+ /** Whether the company key answered the fleet's last unwrap, and since when; the key vault's reason while it refuses. */
24
+ export const keyAvailabilitySchema = z.discriminatedUnion('isAvailable', [
25
+ z.object({ isAvailable: z.literal(true), since: z.iso.datetime() }),
26
+ z.object({ isAvailable: z.literal(false), reason: companyKeyUnavailableReasonSchema, since: z.iso.datetime() }),
27
+ ]);
28
+ /**
29
+ * Output of `fleet.sealing` (decision 0068, B5): none for a fleet that is not
30
+ * sealed; else its state and since when (turned on, or sealed), while sealing
31
+ * how many of the payloads stored plain before are sealed, its company key by reference, its recovery key by
32
+ * fingerprint (none when the company set none), the key's availability and its data keys oldest first, each with when it was made and
33
+ * whether it seals now. Never a key, wrapped or not.
34
+ */
35
+ export const sealingOutputSchema = z.union([
36
+ z.object({ state: z.literal('none') }),
37
+ z.object({
38
+ state: z.enum(['sealing', 'sealed']),
39
+ since: z.iso.datetime(),
40
+ progress: z.object({ sealed: z.number().int().nonnegative(), total: z.number().int().nonnegative() }).nullable(),
41
+ companyKey: z.string(),
42
+ recoveryKeyFingerprint: z.string().nullable(),
43
+ keyAvailability: keyAvailabilitySchema,
44
+ dataKeys: z.array(z.object({ id: idSchema('dataKey'), createdAt: z.iso.datetime(), isCurrent: z.boolean() })),
45
+ }),
46
+ ]);
47
+ /** The longest wrapped data key taken, in base64: an AWS KMS ciphertext blob or an age file holding a 256-bit key fits well within it. */
48
+ const WRAPPED_DATA_KEY_MAX_LENGTH = 8192;
49
+ /** The most data keys a recovery names: a fleet makes one per 30 days, so this lasts it 80 years. */
50
+ const RECOVERY_DATA_KEYS_MAX = 1000;
51
+ /**
52
+ * Output of `fleet.recoverySet` (decision 0068, B15): the fleet whose
53
+ * encryption context the new wraps name, its recovery key by fingerprint, and
54
+ * each data key oldest first, wrapped to the recovery key alone (an age file,
55
+ * base64) with its check value (HMAC-SHA-256, base64). Only the company's
56
+ * offline private half opens it.
57
+ */
58
+ export const recoverySetOutputSchema = z.object({
59
+ fleetId: idSchema('fleet'),
60
+ recoveryKeyFingerprint: z.string(),
61
+ dataKeys: z.array(z.object({ id: idSchema('dataKey'), wrappedByRecoveryKey: z.base64(), checkValue: z.base64() })),
62
+ });
63
+ /**
64
+ * Input of `fleet.recoverKeys` (decision 0068, B15): the new company key, by
65
+ * its reference in the company's own KMS, and each of the fleet's data keys
66
+ * wrapped under it for this fleet's context (an AWS KMS ciphertext blob,
67
+ * base64), as the recovery command made them on the company's computer.
68
+ */
69
+ export const recoverKeysInputSchema = z.strictObject({
70
+ companyKey: z.string().min(1).max(COMPANY_KEY_MAX_LENGTH),
71
+ dataKeys: z.array(z.strictObject({ id: idSchema('dataKey'), wrappedByCompanyKey: z.base64().min(1).max(WRAPPED_DATA_KEY_MAX_LENGTH) })).max(RECOVERY_DATA_KEYS_MAX),
72
+ });
73
+ /** Output of `fleet.recoverKeys`: the company key that wraps every data key of the fleet now. */
74
+ export const recoverKeysOutputSchema = z.object({ companyKey: z.string() });
75
+ //# sourceMappingURL=sealing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealing.js","sourceRoot":"","sources":["../../src/schemas/sealing.ts"],"names":[],"mappings":"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"}