@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
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Shared schemas, prefixed ids and types for [Aeolus](https://github.com/ThomasHendrickx/aeolus-fleet), an agent fleet manager.
4
4
 
5
- Pre-v1: the API changes without notice until the v1 acceptance test passes.
5
+ Before 1.0.0 the API may change between minor releases.
6
6
 
7
- `@aeolus-fleet/common/rules` holds the plain rules a browser may use for live hints, without zod: ship and label handles, the payload size and the sign-in checks. The schemas are built on the same rules.
7
+ `@aeolus-fleet/common/rules` holds the plain rules a browser may use for live hints, without zod: ship and label handles, the payload size, the sign-in checks and what the header's app switcher offers. The schemas are built on the same rules.
8
+
9
+ The UI parts every Aeolus web app shows live in [`@aeolus-fleet/ui`](../ui/README.md).
@@ -13,9 +13,10 @@ import { z } from 'zod';
13
13
  * (decision 0046) and `scopes:define` defines the fleet's own scopes. `fleet:person`, `fleet:owner`, `fleet:explain`,
14
14
  * `fleet:connect` and `labels:any` are the jobs that were argo's alone
15
15
  * (decision 0053). `fleet:verify` writes verified facts (decision 0059).
16
- * `meetings:open` opens a meeting (decision 0061).
16
+ * `meetings:open` opens a meeting (decision 0061). `fleet:alert` raises and
17
+ * clears alerts (decision 0071).
17
18
  */
18
- export declare const SCOPES: readonly ["messages:send", "messages:receive", "messages:force", "messages:resend", "fleet:read", "fleet:commission", "fleet:manage", "crew:assign", "crew:run", "labels:define", "labels:assign", "fleet:network", "fleet:on-behalf", "fleet:person", "fleet:owner", "fleet:explain", "fleet:connect", "labels:any", "fleet:verify", "scopes:declare", "scopes:grant", "scopes:define", "meetings:open", "fleet:keys"];
19
+ export declare const SCOPES: readonly ["messages:send", "messages:receive", "messages:force", "messages:resend", "fleet:read", "fleet:commission", "fleet:manage", "crew:assign", "crew:run", "labels:define", "labels:assign", "fleet:network", "fleet:on-behalf", "fleet:person", "fleet:owner", "fleet:explain", "fleet:connect", "labels:any", "fleet:verify", "scopes:declare", "scopes:grant", "scopes:define", "meetings:open", "fleet:keys", "fleet:alert"];
19
20
  export declare const scopeSchema: z.ZodEnum<{
20
21
  "messages:send": "messages:send";
21
22
  "messages:receive": "messages:receive";
@@ -41,6 +42,7 @@ export declare const scopeSchema: z.ZodEnum<{
41
42
  "scopes:define": "scopes:define";
42
43
  "meetings:open": "meetings:open";
43
44
  "fleet:keys": "fleet:keys";
45
+ "fleet:alert": "fleet:alert";
44
46
  }>;
45
47
  export type Scope = z.infer<typeof scopeSchema>;
46
48
  /** What each core scope allows, on one line (decision 0046). */
@@ -80,9 +82,10 @@ export type ScopeName = z.infer<typeof scopeNameSchema>;
80
82
  * 0034). `fleet:on-behalf` reads on behalf of a named ship (decision 0034).
81
83
  * The jobs that were argo's alone are scopes an agent ship can hold too
82
84
  * (decision 0053), and so is writing verified facts (decision 0059) and
83
- * opening meetings (decision 0061).
85
+ * opening meetings (decision 0061), and raising alerts, the watch's
86
+ * (decision 0071).
84
87
  */
85
- export declare const FLEET_SCOPES: readonly ["messages:resend", "fleet:read", "fleet:commission", "fleet:manage", "crew:assign", "crew:run", "labels:define", "labels:assign", "fleet:network", "fleet:on-behalf", "fleet:person", "fleet:owner", "fleet:explain", "fleet:connect", "labels:any", "fleet:verify", "meetings:open"];
88
+ export declare const FLEET_SCOPES: readonly ["messages:resend", "fleet:read", "fleet:commission", "fleet:manage", "crew:assign", "crew:run", "labels:define", "labels:assign", "fleet:network", "fleet:on-behalf", "fleet:person", "fleet:owner", "fleet:explain", "fleet:connect", "labels:any", "fleet:verify", "meetings:open", "fleet:alert"];
86
89
  export declare const fleetScopeSchema: z.ZodEnum<{
87
90
  "messages:resend": "messages:resend";
88
91
  "fleet:read": "fleet:read";
@@ -101,6 +104,7 @@ export declare const fleetScopeSchema: z.ZodEnum<{
101
104
  "labels:any": "labels:any";
102
105
  "fleet:verify": "fleet:verify";
103
106
  "meetings:open": "meetings:open";
107
+ "fleet:alert": "fleet:alert";
104
108
  }>;
105
109
  export type FleetScope = z.infer<typeof fleetScopeSchema>;
106
110
  /**
@@ -185,7 +189,7 @@ export declare const deliveryStateSchema: z.ZodEnum<{
185
189
  }>;
186
190
  export type DeliveryState = z.infer<typeof deliveryStateSchema>;
187
191
  /** The event types written so far. Each later slice adds the ones it writes. */
188
- export declare const EVENT_TYPES: readonly ["FleetInitialised", "ShipCommissioned", "OwnerSet", "OwnerChanged", "ShipClaimed", "LeaseRevoked", "CredentialRevoked", "StartingPromptIssued", "OperatorPasswordReset", "OperatorLoginSet", "MessageAccepted", "LeasePushed", "DeliveryReceived", "DeliveryHanded", "DeliveryAcknowledged", "DeliveryHandled", "DeliveryNotHandled", "DeliveryOverdue", "DeliveryUndeliverable", "DeliveryReturned", "ShipRetired", "DeliveryAbandoned", "DeliveryDismissed", "ShipRenamed", "ShipReported", "StatementSet", "TurnReported", "SignInTicketIssued", "FleetLimitsChanged", "ViewerSessionStarted", "CrewRequested", "CrewRequestRemoved", "CrewAssigned", "CrewStatusChanged", "CrewRequestExplained", "CrewRequestGivenBack", "LabelDefined", "LabelValuesChanged", "LabelRetired", "LabelAssigned", "LabelUnassigned", "LabelDeleted", "WorktreeClearRequested", "WorktreeCleared", "WorktreeClearRemoved", "NetworkRulesSet", "NetworkRulesDeclared", "NetworkRulesDraftSaved", "NetworkRulesDraftDiscarded", "NetworkPluginRegistered", "NetworkPluginUnregistered", "BuiltInRuleChanged", "ScopesDeclared", "ScopesChanged", "ScopeDefined", "ScopeDescribed", "ScopeRemoved", "PluginConnected", "PluginDisconnected", "VerifiedFactsSet", "VerifiedFactsRemoved", "MeetingOpened", "ParticipantAdded", "MicRequested", "MicRequestWithdrawn", "MicGiven", "MicReleased", "MicTaken", "MicPatternSet", "ParticipantLeft", "ParticipantRejoined", "ParticipantRevoked", "OwnershipTransferred", "ModeratorNamed", "MeetingEnded", "ScheduleCreated", "ScheduleCancelled", "ScheduledSendRefused", "ScheduledSendMissed", "SchedulePaused", "ScheduleResumed", "ScheduleEnded", "HistoryPruned", "FleetSealingTurnedOn", "FleetPayloadsSealed", "FleetKeyUnavailable", "FleetKeyAvailable", "FleetDataKeyCreated", "FleetCompanyKeyChanged", "FleetRecoveryKeyChanged", "FleetKeysRecovered", "FeatureFlagTurnedOn", "FeatureFlagTurnedOff"];
192
+ export declare const EVENT_TYPES: readonly ["FleetInitialised", "ShipCommissioned", "OwnerSet", "OwnerChanged", "ShipClaimed", "LeaseRevoked", "CredentialRevoked", "StartingPromptIssued", "OperatorPasswordReset", "OperatorLoginSet", "MessageAccepted", "LeasePushed", "DeliveryReceived", "DeliveryHanded", "DeliveryAcknowledged", "DeliveryHandled", "DeliveryNotHandled", "DeliveryOverdue", "DeliveryUndeliverable", "DeliveryReturned", "ShipRetired", "DeliveryAbandoned", "DeliveryDismissed", "ShipRenamed", "ShipReported", "StatementSet", "TurnReported", "SignInTicketIssued", "FleetLimitsChanged", "ViewerSessionStarted", "CrewRequested", "CrewRequestRemoved", "CrewAssigned", "CrewStatusChanged", "CrewRequestExplained", "CrewRequestGivenBack", "LabelDefined", "LabelValuesChanged", "LabelRetired", "LabelAssigned", "LabelUnassigned", "LabelDeleted", "WorktreeClearRequested", "WorktreeCleared", "WorktreeClearRemoved", "NetworkRulesSet", "NetworkRulesDeclared", "NetworkRulesDraftSaved", "NetworkRulesDraftDiscarded", "NetworkPluginRegistered", "NetworkPluginUnregistered", "BuiltInRuleChanged", "ScopesDeclared", "ScopesChanged", "ScopeDefined", "ScopeDescribed", "ScopeRemoved", "PluginConnected", "PluginDisconnected", "VerifiedFactsSet", "VerifiedFactsRemoved", "MeetingOpened", "ParticipantAdded", "MicRequested", "MicRequestWithdrawn", "MicGiven", "MicReleased", "MicTaken", "MicPatternSet", "ParticipantLeft", "ParticipantRejoined", "ParticipantRevoked", "OwnershipTransferred", "ModeratorNamed", "MeetingEnded", "ScheduleCreated", "ScheduleCancelled", "ScheduledSendRefused", "ScheduledSendMissed", "SchedulePaused", "ScheduleResumed", "ScheduleEnded", "HistoryPruned", "FleetSealingTurnedOn", "FleetPayloadsSealed", "FleetKeyUnavailable", "FleetKeyAvailable", "FleetDataKeyCreated", "FleetCompanyKeyChanged", "FleetRecoveryKeyChanged", "FleetKeysRecovered", "FeatureFlagTurnedOn", "FeatureFlagTurnedOff", "AlertRaised", "AlertCleared", "ExpectationsSet"];
189
193
  export declare const eventTypeSchema: z.ZodEnum<{
190
194
  FleetInitialised: "FleetInitialised";
191
195
  ShipCommissioned: "ShipCommissioned";
@@ -280,6 +284,9 @@ export declare const eventTypeSchema: z.ZodEnum<{
280
284
  FleetKeysRecovered: "FleetKeysRecovered";
281
285
  FeatureFlagTurnedOn: "FeatureFlagTurnedOn";
282
286
  FeatureFlagTurnedOff: "FeatureFlagTurnedOff";
287
+ AlertRaised: "AlertRaised";
288
+ AlertCleared: "AlertCleared";
289
+ ExpectationsSet: "ExpectationsSet";
283
290
  }>;
284
291
  export type EventType = z.infer<typeof eventTypeSchema>;
285
292
  export * from './argo-message.js';
@@ -13,7 +13,8 @@ import { z } from 'zod';
13
13
  * (decision 0046) and `scopes:define` defines the fleet's own scopes. `fleet:person`, `fleet:owner`, `fleet:explain`,
14
14
  * `fleet:connect` and `labels:any` are the jobs that were argo's alone
15
15
  * (decision 0053). `fleet:verify` writes verified facts (decision 0059).
16
- * `meetings:open` opens a meeting (decision 0061).
16
+ * `meetings:open` opens a meeting (decision 0061). `fleet:alert` raises and
17
+ * clears alerts (decision 0071).
17
18
  */
18
19
  export const SCOPES = [
19
20
  'messages:send',
@@ -40,6 +41,7 @@ export const SCOPES = [
40
41
  'scopes:define',
41
42
  'meetings:open',
42
43
  'fleet:keys',
44
+ 'fleet:alert',
43
45
  ];
44
46
  export const scopeSchema = z.enum(SCOPES);
45
47
  /** What each core scope allows, on one line (decision 0046). */
@@ -68,6 +70,7 @@ export const CORE_SCOPE_DESCRIPTIONS = {
68
70
  'scopes:define': "Define, describe and remove the fleet's own scopes",
69
71
  'meetings:open': 'Open a meeting of the ships its ship reaches, owning and moderating it',
70
72
  'fleet:keys': "Turn sealing on and change the fleet's company key and recovery key",
73
+ 'fleet:alert': 'Raise and clear alerts on the ships its ship reads',
71
74
  };
72
75
  /** The namespaces core reserves and enforces; every other one is a plugin's (decision 0046). */
73
76
  export const CORE_NAMESPACES = ['messages', 'fleet', 'crew', 'labels', 'scopes', 'meetings'];
@@ -110,7 +113,8 @@ export const scopeNameSchema = z
110
113
  * 0034). `fleet:on-behalf` reads on behalf of a named ship (decision 0034).
111
114
  * The jobs that were argo's alone are scopes an agent ship can hold too
112
115
  * (decision 0053), and so is writing verified facts (decision 0059) and
113
- * opening meetings (decision 0061).
116
+ * opening meetings (decision 0061), and raising alerts, the watch's
117
+ * (decision 0071).
114
118
  */
115
119
  export const FLEET_SCOPES = [
116
120
  'messages:resend',
@@ -130,6 +134,7 @@ export const FLEET_SCOPES = [
130
134
  'labels:any',
131
135
  'fleet:verify',
132
136
  'meetings:open',
137
+ 'fleet:alert',
133
138
  ];
134
139
  export const fleetScopeSchema = z.enum(FLEET_SCOPES);
135
140
  /**
@@ -277,6 +282,9 @@ export const EVENT_TYPES = [
277
282
  'FleetKeysRecovered',
278
283
  'FeatureFlagTurnedOn',
279
284
  'FeatureFlagTurnedOff',
285
+ 'AlertRaised',
286
+ 'AlertCleared',
287
+ 'ExpectationsSet',
280
288
  ];
281
289
  export const eventTypeSchema = z.enum(EVENT_TYPES);
282
290
  export * from './argo-message.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fleet/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fleet/index.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,8 @@ export declare const ID_PREFIXES: {
30
30
  readonly schedule: "sch";
31
31
  /** A sealed fleet's data key (decision 0068). */
32
32
  readonly dataKey: "dky";
33
+ /** An alert on a ship, open until it clears (decision 0071). */
34
+ readonly alert: "alt";
33
35
  };
34
36
  export type IdKind = keyof typeof ID_PREFIXES;
35
37
  /** Every kind of id, in the order of ID_PREFIXES. */
@@ -52,6 +54,7 @@ export type RequestId = Id<'request'>;
52
54
  export type MeetingId = Id<'meeting'>;
53
55
  export type ScheduleId = Id<'schedule'>;
54
56
  export type DataKeyId = Id<'dataKey'>;
57
+ export type AlertId = Id<'alert'>;
55
58
  export interface IdGeneratorOptions {
56
59
  /** Milliseconds since the Unix epoch. Defaults to `Date.now`. */
57
60
  now?: () => number;
package/dist/ids/index.js CHANGED
@@ -30,6 +30,8 @@ export const ID_PREFIXES = {
30
30
  schedule: 'sch',
31
31
  /** A sealed fleet's data key (decision 0068). */
32
32
  dataKey: 'dky',
33
+ /** An alert on a ship, open until it clears (decision 0071). */
34
+ alert: 'alt',
33
35
  };
34
36
  function isIdKind(value) {
35
37
  return value in ID_PREFIXES;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ids/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ids/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Whether a ship's activity reads unknown at `now`: its trierarch wrote it
3
+ * longer ago than twice the report interval it stated with the write, so the
4
+ * trierarch is likely down (docs/design/monitoring, 4.3). Unknown is never
5
+ * stopped work.
6
+ */
7
+ export declare function isActivityUnknown(written: {
8
+ reportedAt: Date;
9
+ intervalSeconds: number;
10
+ }, now: Date): boolean;
@@ -0,0 +1,13 @@
1
+ /** How many report intervals may pass before a trierarch's activity write reads as unknown (docs/design/monitoring, N4). */
2
+ const UNKNOWN_AFTER_INTERVALS = 2;
3
+ const SECOND_MS = 1000;
4
+ /**
5
+ * Whether a ship's activity reads unknown at `now`: its trierarch wrote it
6
+ * longer ago than twice the report interval it stated with the write, so the
7
+ * trierarch is likely down (docs/design/monitoring, 4.3). Unknown is never
8
+ * stopped work.
9
+ */
10
+ export function isActivityUnknown(written, now) {
11
+ return now.getTime() - written.reportedAt.getTime() > UNKNOWN_AFTER_INTERVALS * written.intervalSeconds * SECOND_MS;
12
+ }
13
+ //# sourceMappingURL=activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/rules/activity.ts"],"names":[],"mappings":"AAAA,4HAA4H;AAC5H,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAsD,EAAE,GAAS;IACjG,OAAO,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,uBAAuB,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;AACtH,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * How a reader shows an alert message (docs/design/monitoring, 4.8, 4.9,
3
+ * N10): by its `headline` and its `body` as markdown, whatever its signal,
4
+ * so a new signal changes no reader. A payload without both is no alert and
5
+ * shows as a plain message. No zod: the console's browser reads it too.
6
+ */
7
+ /** The headline and the markdown body an alert message shows by; null for any other message. */
8
+ export declare function alertTextOf({ contentType, payload }: {
9
+ contentType: string;
10
+ payload: string;
11
+ }): {
12
+ headline: string;
13
+ body: string;
14
+ } | null;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * How a reader shows an alert message (docs/design/monitoring, 4.8, 4.9,
3
+ * N10): by its `headline` and its `body` as markdown, whatever its signal,
4
+ * so a new signal changes no reader. A payload without both is no alert and
5
+ * shows as a plain message. No zod: the console's browser reads it too.
6
+ */
7
+ const ALERT_CONTENT_TYPE = 'application/vnd.aeolus.alert+json';
8
+ /** A content type's essence: media types compare without case and without their parameters (RFC 9110). */
9
+ function essenceOf(contentType) {
10
+ const [essence = ''] = contentType.split(';');
11
+ return essence.trim().toLowerCase();
12
+ }
13
+ function jsonOf(payload) {
14
+ try {
15
+ return JSON.parse(payload);
16
+ }
17
+ catch {
18
+ return undefined;
19
+ }
20
+ }
21
+ /** The headline and the markdown body an alert message shows by; null for any other message. */
22
+ export function alertTextOf({ contentType, payload }) {
23
+ if (essenceOf(contentType) !== ALERT_CONTENT_TYPE) {
24
+ return null;
25
+ }
26
+ const alert = jsonOf(payload);
27
+ if (typeof alert !== 'object' || alert === null || !('headline' in alert) || !('body' in alert)) {
28
+ return null;
29
+ }
30
+ const { headline, body } = alert;
31
+ return typeof headline === 'string' && headline !== '' && typeof body === 'string' ? { headline, body } : null;
32
+ }
33
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/rules/alert.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AAE/D,0GAA0G;AAC1G,SAAS,SAAS,CAAC,WAAmB;IACpC,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;AAED,SAAS,MAAM,CAAC,OAAe;IAC7B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,EAA4C;IAC5F,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,kBAAkB,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;QAChG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACjC,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACjH,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { AppsList, FleetId, HeaderApp } from '../index.js';
1
+ import type { FleetId } from '../ids/index.js';
2
+ import type { AppsList, HeaderApp } from '../schemas/apps-list.js';
2
3
  /** How the header names each app. */
3
4
  export declare const APP_LABELS: Record<HeaderApp, string>;
4
5
  /** A fleet the switcher offers, and where choosing it goes. */
@@ -39,7 +40,3 @@ export declare function appSwitcherOf(input: {
39
40
  };
40
41
  app: HeaderApp;
41
42
  }): AppSwitcherModel;
42
- /** How someone is signed in here (H10). */
43
- export type SignedInAs = 'argo' | 'account' | 'viewer';
44
- /** The avatar menu's line for how someone is signed in here. */
45
- export declare function signedInAsOf(signedInAs: SignedInAs): string;
@@ -36,9 +36,4 @@ export function appSwitcherOf(input) {
36
36
  const apps = [...inView, ...list.apps].map((link) => ({ app: link.app, label: APP_LABELS[link.app], url: link.url, isCurrent: link.app === app }));
37
37
  return { fleet, appLabel, fleets, apps, canSwitch: fleets.length > 1 || apps.length > 1 };
38
38
  }
39
- const SIGNED_IN_AS_LABELS = { argo: 'Signed in as argo', account: 'Signed in as your account', viewer: 'Viewer' };
40
- /** The avatar menu's line for how someone is signed in here. */
41
- export function signedInAsOf(signedInAs) {
42
- return SIGNED_IN_AS_LABELS[signedInAs];
43
- }
44
- //# sourceMappingURL=apps.js.map
39
+ //# sourceMappingURL=app-switcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-switcher.js","sourceRoot":"","sources":["../../src/rules/app-switcher.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,13 @@
2
2
  * `@aeolus-fleet/common/rules`: the plain rules the console's live hints use
3
3
  * in the browser (decision 0033), without zod, so a page that uses one carries
4
4
  * no schema. Common's schemas are built on the same rules, and the server
5
- * stays the authority on submit.
5
+ * stays the authority on submit. It also holds what the header's app switcher
6
+ * offers, worked out from pagasae's apps list, which each app hands to
7
+ * `@aeolus-fleet/ui`'s AppSwitcher as props.
6
8
  */
9
+ export * from './activity.js';
10
+ export * from './alert.js';
11
+ export * from './app-switcher.js';
7
12
  export * from './duration.js';
8
13
  export * from './label-handle.js';
9
14
  export * from './page-size.js';
@@ -2,8 +2,13 @@
2
2
  * `@aeolus-fleet/common/rules`: the plain rules the console's live hints use
3
3
  * in the browser (decision 0033), without zod, so a page that uses one carries
4
4
  * no schema. Common's schemas are built on the same rules, and the server
5
- * stays the authority on submit.
5
+ * stays the authority on submit. It also holds what the header's app switcher
6
+ * offers, worked out from pagasae's apps list, which each app hands to
7
+ * `@aeolus-fleet/ui`'s AppSwitcher as props.
6
8
  */
9
+ export * from './activity.js';
10
+ export * from './alert.js';
11
+ export * from './app-switcher.js';
7
12
  export * from './duration.js';
8
13
  export * from './label-handle.js';
9
14
  export * from './page-size.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
@@ -2,3 +2,10 @@
2
2
  export declare const PAGE_SIZE_DEFAULT = 100;
3
3
  /** The most one page may hold. */
4
4
  export declare const PAGE_SIZE_MAX = 500;
5
+ /**
6
+ * A page of a ship's record when the caller asks none: what one screen shows
7
+ * (Bridge, CC12). Each entry carries its whole payload, of up to 256 KB.
8
+ */
9
+ export declare const RECORD_PAGE_SIZE_DEFAULT = 20;
10
+ /** The most one page of a ship's record may hold: whole payloads keep a page small. */
11
+ export declare const RECORD_PAGE_SIZE_MAX = 100;
@@ -2,4 +2,11 @@
2
2
  export const PAGE_SIZE_DEFAULT = 100;
3
3
  /** The most one page may hold. */
4
4
  export const PAGE_SIZE_MAX = 500;
5
+ /**
6
+ * A page of a ship's record when the caller asks none: what one screen shows
7
+ * (Bridge, CC12). Each entry carries its whole payload, of up to 256 KB.
8
+ */
9
+ export const RECORD_PAGE_SIZE_DEFAULT = 20;
10
+ /** The most one page of a ship's record may hold: whole payloads keep a page small. */
11
+ export const RECORD_PAGE_SIZE_MAX = 100;
5
12
  //# sourceMappingURL=page-size.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-size.js","sourceRoot":"","sources":["../../src/rules/page-size.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,kCAAkC;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"page-size.js","sourceRoot":"","sources":["../../src/rules/page-size.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,kCAAkC;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAE3C,uFAAuF;AACvF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * A payload is at most 64 KB (ADR 0006): a message carries a reference and an
2
+ * A payload is at most 256 KB (decision 0006): a message carries a reference and an
3
3
  * instruction, not the content itself.
4
4
  */
5
5
  export declare const PAYLOAD_MAX_BYTES: number;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * A payload is at most 64 KB (ADR 0006): a message carries a reference and an
2
+ * A payload is at most 256 KB (decision 0006): a message carries a reference and an
3
3
  * instruction, not the content itself.
4
4
  */
5
- export const PAYLOAD_MAX_BYTES = 64 * 1024;
5
+ export const PAYLOAD_MAX_BYTES = 256 * 1024;
6
6
  const utf8 = new TextEncoder();
7
7
  /**
8
8
  * The size of a payload serialized: the bytes of its text in UTF-8, as the
@@ -1 +1 @@
1
- {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../src/rules/payload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;AAE/B;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../src/rules/payload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC;AAE5C,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;AAE/B;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;AACzC,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * The kind of a session's latest event as its trierarch observes it
4
+ * (headless design, H14): text, a tool call, a tool result or an error. No
5
+ * content: the fleet holds none of a transcript.
6
+ */
7
+ export declare const ACTIVITY_KINDS: readonly ["text", "tool", "result", "error"];
8
+ export declare const activityKindSchema: z.ZodEnum<{
9
+ error: "error";
10
+ text: "text";
11
+ tool: "tool";
12
+ result: "result";
13
+ }>;
14
+ export type ActivityKind = z.infer<typeof activityKindSchema>;
15
+ /** The longest a tool call's tool name may be. */
16
+ export declare const ACTIVITY_TOOL_MAX_LENGTH = 100;
17
+ /** The most ships one `fleet.reportActivity` writes. */
18
+ export declare const ACTIVITY_SHIPS_MAX = 100;
19
+ /** The longest report interval a trierarch may state, in seconds: a day. */
20
+ export declare const ACTIVITY_INTERVAL_MAX_SECONDS: number;
21
+ /**
22
+ * Input of `fleet.reportActivity` (crew:run): the report interval the
23
+ * trierarch writes at, in seconds, and per crewed ship it runs its session's
24
+ * latest event: when, its kind, and for a tool call the tool's name
25
+ * (docs/design/monitoring, 4.3).
26
+ */
27
+ export declare const reportActivityInputSchema: z.ZodObject<{
28
+ intervalSeconds: z.ZodInt;
29
+ activities: z.ZodArray<z.ZodObject<{
30
+ shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
31
+ at: z.ZodISODateTime;
32
+ kind: z.ZodEnum<{
33
+ error: "error";
34
+ text: "text";
35
+ tool: "tool";
36
+ result: "result";
37
+ }>;
38
+ tool: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$strip>>;
40
+ }, z.core.$strip>;
41
+ export type ReportActivityInput = z.infer<typeof reportActivityInputSchema>;
42
+ /**
43
+ * Output of `fleet.reportActivity`: the entries refused, each with its ship,
44
+ * the refusal's code and message; every other entry was taken.
45
+ */
46
+ export declare const reportActivityOutputSchema: z.ZodObject<{
47
+ refused: z.ZodArray<z.ZodObject<{
48
+ shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
49
+ code: z.ZodString;
50
+ message: z.ZodString;
51
+ }, z.core.$strip>>;
52
+ }, z.core.$strip>;
53
+ export type ReportActivityOutput = z.infer<typeof reportActivityOutputSchema>;
54
+ /**
55
+ * A crewed ship's activity as the fleet shows it (ISO 8601 in UTC): its
56
+ * session's latest event, when its trierarch wrote it and the report interval
57
+ * it stated, so a reader tells when it reads unknown (`isActivityUnknown`).
58
+ */
59
+ export declare const listedActivitySchema: z.ZodObject<{
60
+ at: z.ZodISODateTime;
61
+ kind: z.ZodEnum<{
62
+ error: "error";
63
+ text: "text";
64
+ tool: "tool";
65
+ result: "result";
66
+ }>;
67
+ tool: z.ZodNullable<z.ZodString>;
68
+ reportedAt: z.ZodISODateTime;
69
+ intervalSeconds: z.ZodInt;
70
+ }, z.core.$strip>;
71
+ export type ListedActivity = z.infer<typeof listedActivitySchema>;
@@ -0,0 +1,53 @@
1
+ import { z } from 'zod';
2
+ import { idSchema } from '../ids/index.js';
3
+ /**
4
+ * The kind of a session's latest event as its trierarch observes it
5
+ * (headless design, H14): text, a tool call, a tool result or an error. No
6
+ * content: the fleet holds none of a transcript.
7
+ */
8
+ export const ACTIVITY_KINDS = ['text', 'tool', 'result', 'error'];
9
+ export const activityKindSchema = z.enum(ACTIVITY_KINDS);
10
+ /** The longest a tool call's tool name may be. */
11
+ export const ACTIVITY_TOOL_MAX_LENGTH = 100;
12
+ /** The most ships one `fleet.reportActivity` writes. */
13
+ export const ACTIVITY_SHIPS_MAX = 100;
14
+ /** The longest report interval a trierarch may state, in seconds: a day. */
15
+ export const ACTIVITY_INTERVAL_MAX_SECONDS = 24 * 60 * 60;
16
+ /**
17
+ * Input of `fleet.reportActivity` (crew:run): the report interval the
18
+ * trierarch writes at, in seconds, and per crewed ship it runs its session's
19
+ * latest event: when, its kind, and for a tool call the tool's name
20
+ * (docs/design/monitoring, 4.3).
21
+ */
22
+ export const reportActivityInputSchema = z.object({
23
+ intervalSeconds: z.int().min(1).max(ACTIVITY_INTERVAL_MAX_SECONDS),
24
+ activities: z
25
+ .array(z.object({
26
+ shipId: idSchema('ship'),
27
+ at: z.iso.datetime(),
28
+ kind: activityKindSchema,
29
+ tool: z.string().trim().min(1).max(ACTIVITY_TOOL_MAX_LENGTH).optional(),
30
+ }))
31
+ .min(1)
32
+ .max(ACTIVITY_SHIPS_MAX),
33
+ });
34
+ /**
35
+ * Output of `fleet.reportActivity`: the entries refused, each with its ship,
36
+ * the refusal's code and message; every other entry was taken.
37
+ */
38
+ export const reportActivityOutputSchema = z.object({
39
+ refused: z.array(z.object({ shipId: idSchema('ship'), code: z.string(), message: z.string() })),
40
+ });
41
+ /**
42
+ * A crewed ship's activity as the fleet shows it (ISO 8601 in UTC): its
43
+ * session's latest event, when its trierarch wrote it and the report interval
44
+ * it stated, so a reader tells when it reads unknown (`isActivityUnknown`).
45
+ */
46
+ export const listedActivitySchema = z.object({
47
+ at: z.iso.datetime(),
48
+ kind: activityKindSchema,
49
+ tool: z.string().nullable(),
50
+ reportedAt: z.iso.datetime(),
51
+ intervalSeconds: z.int().min(1),
52
+ });
53
+ //# sourceMappingURL=activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/schemas/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAGzD,kDAAkD;AAClD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,wDAAwD;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,eAAe,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAClE,UAAU,EAAE,CAAC;SACV,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;QACxB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;QACpB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE;KACxE,CAAC,CACH;SACA,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,kBAAkB,CAAC;CAC3B,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAChG,CAAC,CAAC;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IACpB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC5B,eAAe,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAChC,CAAC,CAAC"}