@aeolus-fleet/common 0.27.0 → 0.28.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 (46) hide show
  1. package/dist/fleet/core-version.d.ts +20 -0
  2. package/dist/fleet/core-version.js +59 -0
  3. package/dist/fleet/core-version.js.map +1 -0
  4. package/dist/fleet/index.d.ts +27 -4
  5. package/dist/fleet/index.js +43 -2
  6. package/dist/fleet/index.js.map +1 -1
  7. package/dist/ids/index.d.ts +3 -0
  8. package/dist/ids/index.js +2 -0
  9. package/dist/ids/index.js.map +1 -1
  10. package/dist/schemas/account-token.d.ts +49 -0
  11. package/dist/schemas/account-token.js +51 -0
  12. package/dist/schemas/account-token.js.map +1 -0
  13. package/dist/schemas/console.d.ts +8 -0
  14. package/dist/schemas/console.js +3 -1
  15. package/dist/schemas/console.js.map +1 -1
  16. package/dist/schemas/delivery.d.ts +69 -3
  17. package/dist/schemas/delivery.js +35 -3
  18. package/dist/schemas/delivery.js.map +1 -1
  19. package/dist/schemas/fleet.d.ts +40 -2
  20. package/dist/schemas/fleet.js +21 -4
  21. package/dist/schemas/fleet.js.map +1 -1
  22. package/dist/schemas/follow.d.ts +14 -0
  23. package/dist/schemas/history.d.ts +111 -9
  24. package/dist/schemas/history.js +19 -3
  25. package/dist/schemas/history.js.map +1 -1
  26. package/dist/schemas/index.d.ts +2 -0
  27. package/dist/schemas/index.js +2 -0
  28. package/dist/schemas/index.js.map +1 -1
  29. package/dist/schemas/installation.d.ts +12 -0
  30. package/dist/schemas/installation.js +14 -1
  31. package/dist/schemas/installation.js.map +1 -1
  32. package/dist/schemas/label.d.ts +19 -5
  33. package/dist/schemas/label.js +7 -2
  34. package/dist/schemas/label.js.map +1 -1
  35. package/dist/schemas/network.d.ts +409 -90
  36. package/dist/schemas/network.js +76 -51
  37. package/dist/schemas/network.js.map +1 -1
  38. package/dist/schemas/statement.d.ts +94 -4
  39. package/dist/schemas/statement.js +33 -4
  40. package/dist/schemas/statement.js.map +1 -1
  41. package/dist/schemas/verified-fact.d.ts +109 -0
  42. package/dist/schemas/verified-fact.js +57 -0
  43. package/dist/schemas/verified-fact.js.map +1 -0
  44. package/dist/trierarch/crew-settings.js +1 -1
  45. package/dist/trierarch/report-details.js +2 -2
  46. package/package.json +1 -3
@@ -0,0 +1,20 @@
1
+ /** Where core says its version, without authentication. */
2
+ export declare const CORE_VERSION_PATH = "/api/version";
3
+ /** The part of `fetch` the check uses, so a test hands in its own core. */
4
+ export type VersionFetch = (url: string, init: {
5
+ signal: AbortSignal;
6
+ }) => Promise<{
7
+ status: number;
8
+ json(): Promise<unknown>;
9
+ }>;
10
+ /**
11
+ * Why the package may not start against the fleet's core, or none when it
12
+ * may: core is at least `minimum`, or is `0.0.0`.
13
+ */
14
+ export declare function coreVersionRefusal(input: {
15
+ packageName: string;
16
+ version: string;
17
+ minimum: string;
18
+ fleetUrl: string;
19
+ fetch: VersionFetch;
20
+ }): Promise<string | undefined>;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * The minimum core version check (decision 0049, docs/compatibility.md): a
3
+ * package of another release train reads core's version at start and refuses
4
+ * to run against an older core, saying both versions.
5
+ */
6
+ import { z } from 'zod';
7
+ /** Where core says its version, without authentication. */
8
+ export const CORE_VERSION_PATH = '/api/version';
9
+ /** How long a package waits for core's version before it counts the fleet as not answering. */
10
+ const CORE_VERSION_TIMEOUT_MS = 10_000;
11
+ /** The HTTP statuses that answer a version. */
12
+ const HTTP_OK_FIRST = 200;
13
+ const HTTP_OK_LAST = 299;
14
+ /** A plain release version; core `0.0.0` is a build from main. */
15
+ const VERSION_PATTERN = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
16
+ /** Core's version as `/api/version` answers it. */
17
+ const coreVersionAnswerSchema = z.object({ server: z.string() });
18
+ function versionOf(text) {
19
+ const match = VERSION_PATTERN.exec(text);
20
+ return match === null ? undefined : [Number(match[1]), Number(match[2]), Number(match[3])];
21
+ }
22
+ function isOlder(version, than) {
23
+ const differing = version.findIndex((part, index) => part !== than[index]);
24
+ return differing !== -1 && (version[differing] ?? 0) < (than[differing] ?? 0);
25
+ }
26
+ /** Core's version, or why it could not be read. */
27
+ async function readCoreVersion(fleetUrl, fetch) {
28
+ try {
29
+ const response = await fetch(`${fleetUrl.replace(/\/+$/, '')}${CORE_VERSION_PATH}`, { signal: AbortSignal.timeout(CORE_VERSION_TIMEOUT_MS) });
30
+ if (response.status < HTTP_OK_FIRST || response.status > HTTP_OK_LAST) {
31
+ return { unread: `HTTP ${String(response.status)}` };
32
+ }
33
+ const answer = coreVersionAnswerSchema.safeParse(await response.json());
34
+ const parsed = answer.success ? versionOf(answer.data.server) : undefined;
35
+ return answer.success && parsed !== undefined ? { core: answer.data.server, parsed } : { unread: `its ${CORE_VERSION_PATH} answered no core version` };
36
+ }
37
+ catch (error) {
38
+ return { unread: error instanceof Error ? error.message : String(error) };
39
+ }
40
+ }
41
+ /**
42
+ * Why the package may not start against the fleet's core, or none when it
43
+ * may: core is at least `minimum`, or is `0.0.0`.
44
+ */
45
+ export async function coreVersionRefusal(input) {
46
+ const { packageName, version, minimum, fleetUrl, fetch } = input;
47
+ const needs = `${packageName} ${version} needs core ${minimum} or later`;
48
+ const minimumVersion = versionOf(minimum);
49
+ if (minimumVersion === undefined) {
50
+ throw new Error(`${packageName}'s minimum core version ${minimum} is not MAJOR.MINOR.PATCH`);
51
+ }
52
+ const read = await readCoreVersion(fleetUrl, fetch);
53
+ if ('unread' in read) {
54
+ return `${needs}, and could not read the version of the fleet at ${fleetUrl}: ${read.unread}`;
55
+ }
56
+ const isMainBuild = read.parsed.every((part) => part === 0);
57
+ return isMainBuild || !isOlder(read.parsed, minimumVersion) ? undefined : `${needs}; the fleet at ${fleetUrl} runs core ${read.core}: upgrade core first`;
58
+ }
59
+ //# sourceMappingURL=core-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-version.js","sourceRoot":"","sources":["../../src/fleet/core-version.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,11 @@ import { z } from 'zod';
10
10
  * message, one that comes first (decision 0040); `fleet:on-behalf` reads on
11
11
  * behalf of a named ship (decision 0034); `scopes:declare` takes up a
12
12
  * plugin namespace and `scopes:grant` grants and revokes on a live ship
13
- * (decision 0046).
13
+ * (decision 0046). `fleet:person`, `fleet:owner`, `fleet:explain`,
14
+ * `fleet:connect` and `labels:any` are the jobs that were argo's alone
15
+ * (decision 0053). `fleet:verify` writes verified facts (decision 0059).
14
16
  */
15
- 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", "scopes:declare", "scopes:grant"];
17
+ 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"];
16
18
  export declare const scopeSchema: z.ZodEnum<{
17
19
  "messages:send": "messages:send";
18
20
  "messages:receive": "messages:receive";
@@ -27,6 +29,12 @@ export declare const scopeSchema: z.ZodEnum<{
27
29
  "labels:assign": "labels:assign";
28
30
  "fleet:network": "fleet:network";
29
31
  "fleet:on-behalf": "fleet:on-behalf";
32
+ "fleet:person": "fleet:person";
33
+ "fleet:owner": "fleet:owner";
34
+ "fleet:explain": "fleet:explain";
35
+ "fleet:connect": "fleet:connect";
36
+ "labels:any": "labels:any";
37
+ "fleet:verify": "fleet:verify";
30
38
  "scopes:declare": "scopes:declare";
31
39
  "scopes:grant": "scopes:grant";
32
40
  }>;
@@ -60,8 +68,10 @@ export type ScopeName = z.infer<typeof scopeNameSchema>;
60
68
  * their values; `labels:assign` assigns and unassigns the labels its ship owns
61
69
  * (decision 0031). `fleet:network` sets the fleet's network rules (decision
62
70
  * 0034). `fleet:on-behalf` reads on behalf of a named ship (decision 0034).
71
+ * The jobs that were argo's alone are scopes an agent ship can hold too
72
+ * (decision 0053), and so is writing verified facts (decision 0059).
63
73
  */
64
- 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"];
74
+ 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"];
65
75
  export declare const fleetScopeSchema: z.ZodEnum<{
66
76
  "messages:resend": "messages:resend";
67
77
  "fleet:read": "fleet:read";
@@ -73,6 +83,12 @@ export declare const fleetScopeSchema: z.ZodEnum<{
73
83
  "labels:assign": "labels:assign";
74
84
  "fleet:network": "fleet:network";
75
85
  "fleet:on-behalf": "fleet:on-behalf";
86
+ "fleet:person": "fleet:person";
87
+ "fleet:owner": "fleet:owner";
88
+ "fleet:explain": "fleet:explain";
89
+ "fleet:connect": "fleet:connect";
90
+ "labels:any": "labels:any";
91
+ "fleet:verify": "fleet:verify";
76
92
  }>;
77
93
  export type FleetScope = z.infer<typeof fleetScopeSchema>;
78
94
  /**
@@ -148,7 +164,7 @@ export declare const deliveryStateSchema: z.ZodEnum<{
148
164
  }>;
149
165
  export type DeliveryState = z.infer<typeof deliveryStateSchema>;
150
166
  /** The event types written so far. Each later slice adds the ones it writes. */
151
- export declare const EVENT_TYPES: readonly ["FleetInitialised", "ShipCommissioned", "OwnerSet", "OwnerChanged", "ShipClaimed", "LeaseRevoked", "CredentialRevoked", "StartingPromptIssued", "OperatorPasswordReset", "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", "NetworkPluginRegistered", "NetworkPluginUnregistered", "BuiltInRuleChanged", "ScopesDeclared", "ScopesChanged"];
167
+ export declare const EVENT_TYPES: readonly ["FleetInitialised", "ShipCommissioned", "OwnerSet", "OwnerChanged", "ShipClaimed", "LeaseRevoked", "CredentialRevoked", "StartingPromptIssued", "OperatorPasswordReset", "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", "PluginConnected", "PluginDisconnected", "VerifiedFactsSet", "VerifiedFactsRemoved"];
152
168
  export declare const eventTypeSchema: z.ZodEnum<{
153
169
  FleetInitialised: "FleetInitialised";
154
170
  ShipCommissioned: "ShipCommissioned";
@@ -196,15 +212,22 @@ export declare const eventTypeSchema: z.ZodEnum<{
196
212
  WorktreeClearRemoved: "WorktreeClearRemoved";
197
213
  NetworkRulesSet: "NetworkRulesSet";
198
214
  NetworkRulesDeclared: "NetworkRulesDeclared";
215
+ NetworkRulesDraftSaved: "NetworkRulesDraftSaved";
216
+ NetworkRulesDraftDiscarded: "NetworkRulesDraftDiscarded";
199
217
  NetworkPluginRegistered: "NetworkPluginRegistered";
200
218
  NetworkPluginUnregistered: "NetworkPluginUnregistered";
201
219
  BuiltInRuleChanged: "BuiltInRuleChanged";
202
220
  ScopesDeclared: "ScopesDeclared";
203
221
  ScopesChanged: "ScopesChanged";
222
+ PluginConnected: "PluginConnected";
223
+ PluginDisconnected: "PluginDisconnected";
224
+ VerifiedFactsSet: "VerifiedFactsSet";
225
+ VerifiedFactsRemoved: "VerifiedFactsRemoved";
204
226
  }>;
205
227
  export type EventType = z.infer<typeof eventTypeSchema>;
206
228
  export * from './argo-message.js';
207
229
  export * from './busy-wait.js';
230
+ export * from './core-version.js';
208
231
  export * from './mcp-url.js';
209
232
  export * from './no-terminal-questions.js';
210
233
  /**
@@ -10,7 +10,9 @@ import { z } from 'zod';
10
10
  * message, one that comes first (decision 0040); `fleet:on-behalf` reads on
11
11
  * behalf of a named ship (decision 0034); `scopes:declare` takes up a
12
12
  * plugin namespace and `scopes:grant` grants and revokes on a live ship
13
- * (decision 0046).
13
+ * (decision 0046). `fleet:person`, `fleet:owner`, `fleet:explain`,
14
+ * `fleet:connect` and `labels:any` are the jobs that were argo's alone
15
+ * (decision 0053). `fleet:verify` writes verified facts (decision 0059).
14
16
  */
15
17
  export const SCOPES = [
16
18
  'messages:send',
@@ -26,6 +28,12 @@ export const SCOPES = [
26
28
  'labels:assign',
27
29
  'fleet:network',
28
30
  'fleet:on-behalf',
31
+ 'fleet:person',
32
+ 'fleet:owner',
33
+ 'fleet:explain',
34
+ 'fleet:connect',
35
+ 'labels:any',
36
+ 'fleet:verify',
29
37
  'scopes:declare',
30
38
  'scopes:grant',
31
39
  ];
@@ -45,6 +53,12 @@ export const CORE_SCOPE_DESCRIPTIONS = {
45
53
  'labels:assign': 'Assign and unassign the values of labels its ship owns',
46
54
  'fleet:network': "The networking plugin's calls: the fleet's network rules",
47
55
  'fleet:on-behalf': "Read on behalf of a named ship, with that ship's read reach",
56
+ 'fleet:person': 'Commission person ships, each owning itself',
57
+ 'fleet:owner': 'Change the owner of the ships it manages',
58
+ 'fleet:explain': 'Explain reach and read the reach refusals of the ships it reads',
59
+ 'fleet:connect': 'Connect a plugin, which then reads every ship',
60
+ 'labels:any': 'Assign and unassign the values of any label on the ships it manages',
61
+ 'fleet:verify': 'Write and withdraw its verified facts about the ships it manages',
48
62
  'scopes:declare': 'Take up one plugin namespace and declare its scopes',
49
63
  'scopes:grant': 'Grant and revoke scopes on a live ship, within what its ship may grant',
50
64
  };
@@ -81,8 +95,27 @@ export const scopeNameSchema = z
81
95
  * their values; `labels:assign` assigns and unassigns the labels its ship owns
82
96
  * (decision 0031). `fleet:network` sets the fleet's network rules (decision
83
97
  * 0034). `fleet:on-behalf` reads on behalf of a named ship (decision 0034).
98
+ * The jobs that were argo's alone are scopes an agent ship can hold too
99
+ * (decision 0053), and so is writing verified facts (decision 0059).
84
100
  */
85
- export const FLEET_SCOPES = ['messages:resend', 'fleet:read', 'fleet:commission', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network', 'fleet:on-behalf'];
101
+ export const FLEET_SCOPES = [
102
+ 'messages:resend',
103
+ 'fleet:read',
104
+ 'fleet:commission',
105
+ 'fleet:manage',
106
+ 'crew:assign',
107
+ 'crew:run',
108
+ 'labels:define',
109
+ 'labels:assign',
110
+ 'fleet:network',
111
+ 'fleet:on-behalf',
112
+ 'fleet:person',
113
+ 'fleet:owner',
114
+ 'fleet:explain',
115
+ 'fleet:connect',
116
+ 'labels:any',
117
+ 'fleet:verify',
118
+ ];
86
119
  export const fleetScopeSchema = z.enum(FLEET_SCOPES);
87
120
  /**
88
121
  * What a ship is (decision 0044): `argo` is the one `operator`, the console's
@@ -176,15 +209,23 @@ export const EVENT_TYPES = [
176
209
  'WorktreeClearRemoved',
177
210
  'NetworkRulesSet',
178
211
  'NetworkRulesDeclared',
212
+ 'NetworkRulesDraftSaved',
213
+ 'NetworkRulesDraftDiscarded',
214
+ // Written no more since the networking plugin went (decision 0034); the event log keeps them.
179
215
  'NetworkPluginRegistered',
180
216
  'NetworkPluginUnregistered',
181
217
  'BuiltInRuleChanged',
182
218
  'ScopesDeclared',
183
219
  'ScopesChanged',
220
+ 'PluginConnected',
221
+ 'PluginDisconnected',
222
+ 'VerifiedFactsSet',
223
+ 'VerifiedFactsRemoved',
184
224
  ];
185
225
  export const eventTypeSchema = z.enum(EVENT_TYPES);
186
226
  export * from './argo-message.js';
187
227
  export * from './busy-wait.js';
228
+ export * from './core-version.js';
188
229
  export * from './mcp-url.js';
189
230
  export * from './no-terminal-questions.js';
190
231
  /**
@@ -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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"}
@@ -22,6 +22,8 @@ export declare const ID_PREFIXES: {
22
22
  readonly label: "lbl";
23
23
  readonly labelValue: "lbv";
24
24
  readonly reachRefusal: "rfs";
25
+ /** A pending request for an outside party, which the gateway keeps (decision 0056). */
26
+ readonly request: "req";
25
27
  };
26
28
  export type IdKind = keyof typeof ID_PREFIXES;
27
29
  /** Every kind of id, in the order of ID_PREFIXES. */
@@ -40,6 +42,7 @@ export type ConsoleSessionId = Id<'consoleSession'>;
40
42
  export type LabelId = Id<'label'>;
41
43
  export type LabelValueId = Id<'labelValue'>;
42
44
  export type ReachRefusalId = Id<'reachRefusal'>;
45
+ export type RequestId = Id<'request'>;
43
46
  export interface IdGeneratorOptions {
44
47
  /** Milliseconds since the Unix epoch. Defaults to `Date.now`. */
45
48
  now?: () => number;
package/dist/ids/index.js CHANGED
@@ -22,6 +22,8 @@ export const ID_PREFIXES = {
22
22
  label: 'lbl',
23
23
  labelValue: 'lbv',
24
24
  reachRefusal: 'rfs',
25
+ /** A pending request for an outside party, which the gateway keeps (decision 0056). */
26
+ request: 'req',
25
27
  };
26
28
  function isIdKind(value) {
27
29
  return value in ID_PREFIXES;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ids/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;CACX,CAAC;AAIX,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,IAAI,WAAW,CAAC;AAC9B,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAsB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAiBrF,6DAA6D;AAC7D,MAAM,QAAQ,GAAG,kCAAkC,CAAC;AACpD,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7B,MAAM,YAAY,GAAG,+BAA+B,CAAC;AAErD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAWlG;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA8B,EAAE;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,MAAM,UAAU,GACd,OAAO,CAAC,UAAU;QAClB,CAAC,CAAC,KAA8B,EAAE,EAAE;YAClC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IAEL,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;IAE5C,OAAO,CAAmB,IAAO,EAAS,EAAE;QAC1C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YAC3D,MAAM,IAAI,UAAU,CAAC,4CAA4C,MAAM,CAAC,QAAQ,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5G,CAAC;QAED,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC;AAQD,gGAAgG;AAChG,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,IAAI,CAAmB,KAAc,EAAE,IAAO;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;AACpE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAmB,IAAO;IAChD,MAAM,KAAK,GAAG,GAAG,IAAI,QAAQ,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;IACtD,OAAO,CAAC;SACL,eAAe,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,KAAK,EAAE,EAAE,CAAC;SAC1G,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,SAAS,GAAG,EAAE,CAAC;QAC7B,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QAClC,SAAS,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,SAAS,YAAY,CAAC,KAAiB;IACrC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,CAAC;QACV,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,CAAC;YACV,OAAO,IAAI,MAAM,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,KAAiB;IAClC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;YACf,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,UAAU,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ids/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { z } from 'zod';
2
+ /** The longest account id core accepts: pagasae's opaque id, never an email (decision 0058). */
3
+ export declare const ACCOUNT_ID_MAX_LENGTH = 128;
4
+ /** An account's id as pagasae names it: opaque to core, which stores no account (decision 0058). */
5
+ export declare const accountIdSchema: z.core.$ZodBranded<z.ZodString, "AccountId", "out">;
6
+ export type AccountId = z.infer<typeof accountIdSchema>;
7
+ /**
8
+ * The claims of an account token pagasae signed for one account in one fleet
9
+ * (decision 0058), read once its signature and issuer are checked: the
10
+ * account, its organisation, the fleet (its audience), the scopes and `group`
11
+ * values its groups and own rights give there, its person ship there if it
12
+ * has one, and when it was issued and ends. Times are JWT seconds.
13
+ */
14
+ export declare const accountTokenClaimsSchema: z.ZodPipe<z.ZodObject<{
15
+ iss: z.ZodString;
16
+ aud: z.ZodType<`flt_${string}`, unknown, z.core.$ZodTypeInternals<`flt_${string}`, unknown>>;
17
+ sub: z.core.$ZodBranded<z.ZodString, "AccountId", "out">;
18
+ org: z.ZodString;
19
+ scope: z.ZodString;
20
+ group: z.ZodArray<z.ZodString>;
21
+ person_ship: z.ZodOptional<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
22
+ iat: z.ZodNumber;
23
+ exp: z.ZodNumber;
24
+ }, z.core.$strip>, z.ZodTransform<{
25
+ issuer: string;
26
+ fleetId: `flt_${string}`;
27
+ accountId: string & z.core.$brand<"AccountId">;
28
+ organisationId: string;
29
+ scopes: string[];
30
+ groupValues: string[];
31
+ personShipId: `shp_${string}` | null;
32
+ issuedAt: Date;
33
+ endsAt: Date;
34
+ }, {
35
+ iss: string;
36
+ aud: `flt_${string}`;
37
+ sub: string & z.core.$brand<"AccountId">;
38
+ org: string;
39
+ scope: string;
40
+ group: string[];
41
+ iat: number;
42
+ exp: number;
43
+ person_ship?: `shp_${string}` | undefined;
44
+ }>>;
45
+ export type AccountTokenClaims = z.infer<typeof accountTokenClaimsSchema>;
46
+ /** The request header whoever acts for a human presents the account's token in, beside its own crew token if it has one (decision 0058). */
47
+ export declare const ACCOUNT_TOKEN_HEADER = "aeolus-account-token";
48
+ /** The request header the installation names the fleet it acts in with, beside its installation token (decision 0057). */
49
+ export declare const FLEET_HEADER = "aeolus-fleet";
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+ import { scopeNameSchema } from '../fleet/index.js';
3
+ import { idSchema } from '../ids/index.js';
4
+ /** The longest account id core accepts: pagasae's opaque id, never an email (decision 0058). */
5
+ export const ACCOUNT_ID_MAX_LENGTH = 128;
6
+ /** An account's id as pagasae names it: opaque to core, which stores no account (decision 0058). */
7
+ export const accountIdSchema = z.string().min(1).max(ACCOUNT_ID_MAX_LENGTH).brand();
8
+ const MILLISECONDS_PER_SECOND = 1000;
9
+ /**
10
+ * The claims of an account token pagasae signed for one account in one fleet
11
+ * (decision 0058), read once its signature and issuer are checked: the
12
+ * account, its organisation, the fleet (its audience), the scopes and `group`
13
+ * values its groups and own rights give there, its person ship there if it
14
+ * has one, and when it was issued and ends. Times are JWT seconds.
15
+ */
16
+ export const accountTokenClaimsSchema = z
17
+ .object({
18
+ iss: z.string(),
19
+ aud: idSchema('fleet'),
20
+ sub: accountIdSchema,
21
+ org: z.string().min(1),
22
+ scope: z.string(),
23
+ group: z.array(z.string()),
24
+ person_ship: idSchema('ship').optional(),
25
+ iat: z.number(),
26
+ exp: z.number(),
27
+ })
28
+ .transform((claims, context) => {
29
+ const scopes = claims.scope.split(' ').filter((scope) => scope !== '');
30
+ const parsed = z.array(scopeNameSchema).safeParse(scopes);
31
+ if (!parsed.success) {
32
+ context.addIssue({ code: 'custom', message: 'scope holds a malformed or unknown scope', path: ['scope'] });
33
+ return z.NEVER;
34
+ }
35
+ return {
36
+ issuer: claims.iss,
37
+ fleetId: claims.aud,
38
+ accountId: claims.sub,
39
+ organisationId: claims.org,
40
+ scopes: parsed.data,
41
+ groupValues: claims.group,
42
+ personShipId: claims.person_ship ?? null,
43
+ issuedAt: new Date(claims.iat * MILLISECONDS_PER_SECOND),
44
+ endsAt: new Date(claims.exp * MILLISECONDS_PER_SECOND),
45
+ };
46
+ });
47
+ /** The request header whoever acts for a human presents the account's token in, beside its own crew token if it has one (decision 0058). */
48
+ export const ACCOUNT_TOKEN_HEADER = 'aeolus-account-token';
49
+ /** The request header the installation names the fleet it acts in with, beside its installation token (decision 0057). */
50
+ export const FLEET_HEADER = 'aeolus-fleet';
51
+ //# sourceMappingURL=account-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-token.js","sourceRoot":"","sources":["../../src/schemas/account-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,oGAAoG;AACpG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAe,CAAC;AAGjG,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC;IACtB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;CAChB,CAAC;KACD,SAAS,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,0CAA0C,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3G,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,GAAG;QAClB,OAAO,EAAE,MAAM,CAAC,GAAG;QACnB,SAAS,EAAE,MAAM,CAAC,GAAG;QACrB,cAAc,EAAE,MAAM,CAAC,GAAG;QAC1B,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,WAAW,EAAE,MAAM,CAAC,KAAK;QACzB,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;QACxC,QAAQ,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,uBAAuB,CAAC;QACxD,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,uBAAuB,CAAC;KACvD,CAAC;AACJ,CAAC,CAAC,CAAC;AAGL,4IAA4I;AAC5I,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D,0HAA0H;AAC1H,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC"}
@@ -61,6 +61,12 @@ export declare const consoleSessionOutputSchema: z.ZodObject<{
61
61
  "labels:assign": "labels:assign";
62
62
  "fleet:network": "fleet:network";
63
63
  "fleet:on-behalf": "fleet:on-behalf";
64
+ "fleet:person": "fleet:person";
65
+ "fleet:owner": "fleet:owner";
66
+ "fleet:explain": "fleet:explain";
67
+ "fleet:connect": "fleet:connect";
68
+ "labels:any": "labels:any";
69
+ "fleet:verify": "fleet:verify";
64
70
  "scopes:declare": "scopes:declare";
65
71
  "scopes:grant": "scopes:grant";
66
72
  }>>;
@@ -82,12 +88,14 @@ export declare const accountOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
82
88
  session: z.ZodObject<{
83
89
  device: z.ZodString;
84
90
  since: z.ZodISODateTime;
91
+ accountId: z.ZodOptional<z.ZodNullable<z.core.$ZodBranded<z.ZodString, "AccountId", "out">>>;
85
92
  }, z.core.$strip>;
86
93
  }, z.core.$strip>, z.ZodObject<{
87
94
  kind: z.ZodLiteral<"viewer">;
88
95
  session: z.ZodObject<{
89
96
  device: z.ZodString;
90
97
  since: z.ZodISODateTime;
98
+ accountId: z.ZodOptional<z.ZodNullable<z.core.$ZodBranded<z.ZodString, "AccountId", "out">>>;
91
99
  }, z.core.$strip>;
92
100
  }, z.core.$strip>], "kind">;
93
101
  export type Account = z.infer<typeof accountOutputSchema>;
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { scopeSchema } from '../fleet/index.js';
3
3
  import { idSchema } from '../ids/index.js';
4
+ import { accountIdSchema } from './account-token.js';
4
5
  import { EMAIL_REQUIRED, EMAIL_TOO_LONG, OPERATOR_EMAIL_MAX_LENGTH, OPERATOR_PASSWORD_MAX_LENGTH, PASSWORD_REQUIRED, PASSWORD_TOO_LONG } from '../rules/sign-in.js';
5
6
  /** One @ with something on each side, and no whitespace. */
6
7
  export const OPERATOR_EMAIL_PATTERN = /^[^\s@]+@[^\s@]+$/;
@@ -42,7 +43,8 @@ export const consoleSessionOutputSchema = z.object({
42
43
  kind: consoleSessionKindSchema,
43
44
  scopes: z.array(scopeSchema),
44
45
  });
45
- const accountSessionSchema = z.object({ device: z.string(), since: isoTime });
46
+ /** This console session: its device, since when, and the account that signed in as argo, by its id, or none (decision 0054). */
47
+ const accountSessionSchema = z.object({ device: z.string(), since: isoTime, accountId: accountIdSchema.nullable().optional() });
46
48
  /**
47
49
  * Output of `console.account`: the signed-in operator, their theme, and this
48
50
  * console session: the device it signed in from and since when. A viewer's
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/schemas/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEpK,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAE1H;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,yBAAyB,EAAE,cAAc,CAAC;IAC9F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,4BAA4B,EAAE,iBAAiB,CAAC;CACpG,CAAC,CAAC;AAIH,2FAA2F;AAC3F,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;AAE1H,8GAA8G;AAC9G,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAG1C,uBAAuB;AACvB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAEjC,wHAAwH;AACxH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC1B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;CAC7B,CAAC,CAAC;AAIH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC9D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC/G,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACvE,CAAC,CAAC;AAIH,mCAAmC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AAEpE,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/schemas/console.ts"],"names":[],"mappings":"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"}
@@ -80,6 +80,14 @@ export declare const receiveOutputSchema: z.ZodObject<{
80
80
  }, z.core.$strip>>;
81
81
  }, z.core.$strip>;
82
82
  export type ReceiveOutput = z.infer<typeof receiveOutputSchema>;
83
+ /**
84
+ * Input of `ship.receiveReply`: the message whose reply to receive. Its
85
+ * output is `receiveOutputSchema`, with one delivery at most.
86
+ */
87
+ export declare const receiveReplyInputSchema: z.ZodObject<{
88
+ messageId: z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>;
89
+ }, z.core.$strip>;
90
+ export type ReceiveReplyInput = z.infer<typeof receiveReplyInputSchema>;
83
91
  /**
84
92
  * One delivery a push receive takes for the crew's computer side (decision
85
93
  * 0040): received, not yet handed to the agent and with no attempt counted,
@@ -112,6 +120,22 @@ export declare const pushReceivedDeliverySchema: z.ZodObject<{
112
120
  handOverNumber: z.ZodNullable<z.ZodInt>;
113
121
  }, z.core.$strip>;
114
122
  export type PushReceivedDelivery = z.infer<typeof pushReceivedDeliverySchema>;
123
+ /**
124
+ * Input of `ship.pushReceive`: at most how many deliveries to take, 1 to 10,
125
+ * one without it, and what wakes the ship, kept from the lease's first push
126
+ * receive (interop 5.1).
127
+ */
128
+ export declare const pushReceiveInputSchema: z.ZodOptional<z.ZodObject<{
129
+ max: z.ZodOptional<z.ZodInt>;
130
+ waker: z.ZodOptional<z.ZodEnum<{
131
+ trierarch: "trierarch";
132
+ pluginWatcher: "pluginWatcher";
133
+ personApp: "personApp";
134
+ gateway: "gateway";
135
+ adapter: "adapter";
136
+ }>>;
137
+ }, z.core.$strip>>;
138
+ export type PushReceiveInput = z.infer<typeof pushReceiveInputSchema>;
115
139
  /** Output of `ship.pushReceive`: the deliveries taken, none when the wait ended without one. */
116
140
  export declare const pushReceiveOutputSchema: z.ZodObject<{
117
141
  deliveries: z.ZodArray<z.ZodObject<{
@@ -146,12 +170,14 @@ export type PushReceiveOutput = z.infer<typeof pushReceiveOutputSchema>;
146
170
  * Input of `ship.handed`: the delivery the computer side handed to the agent,
147
171
  * and the number of that hand-over, counting from 1 under the crew's lease.
148
172
  * Once more: it hands a confirmed message once more, after the turn that took
149
- * it died (decision 0040).
173
+ * it died (decision 0040). The channel it handed it through, kept with
174
+ * DeliveryHanded (interop 5.1).
150
175
  */
151
176
  export declare const handedInputSchema: z.ZodObject<{
152
177
  deliveryId: z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>;
153
178
  handOverNumber: z.ZodInt;
154
179
  isOnceMore: z.ZodOptional<z.ZodBoolean>;
180
+ channel: z.ZodOptional<z.ZodString>;
155
181
  }, z.core.$strip>;
156
182
  export type HandedInput = z.infer<typeof handedInputSchema>;
157
183
  /** Output of `ship.handed`: where the delivery stands now. Undeliverable: that was the fifth attempt, and nothing is handed. */
@@ -175,8 +201,9 @@ export type HandledOutput = z.infer<typeof handledOutputSchema>;
175
201
  export declare const NOT_HANDLED_REASON_MAX_LENGTH = 200;
176
202
  /**
177
203
  * Input of `ship.notHandled`: the delivery handed once more whose turn died
178
- * too, and why the crew's computer side judged so (#847), which Needs
179
- * attention shows with the entry.
204
+ * too, or handed and not confirmed and unsafe to hand again, and why the
205
+ * crew's computer side judged so (#847), which Needs attention shows with the
206
+ * entry. The use case requires the reason for one not confirmed.
180
207
  */
181
208
  export declare const notHandledInputSchema: z.ZodObject<{
182
209
  deliveryId: z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>;
@@ -214,3 +241,42 @@ export declare const inboxOutputSchema: z.ZodObject<{
214
241
  forced: z.ZodInt;
215
242
  }, z.core.$strip>;
216
243
  export type InboxOutput = z.infer<typeof inboxOutputSchema>;
244
+ /** Input of `ship.sentMessage`: a message the caller sent. */
245
+ export declare const sentMessageInputSchema: z.ZodObject<{
246
+ messageId: z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>;
247
+ }, z.core.$strip>;
248
+ export type SentMessageInput = z.infer<typeof sentMessageInputSchema>;
249
+ /**
250
+ * Output of `ship.sentMessage`: where the delivery of a message its sender
251
+ * sent stands, and since when, with its recipient by name or type. No payload.
252
+ */
253
+ export declare const sentMessageOutputSchema: z.ZodObject<{
254
+ messageId: z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>;
255
+ sentAt: z.ZodISODateTime;
256
+ recipient: z.ZodDiscriminatedUnion<[z.ZodObject<{
257
+ kind: z.ZodLiteral<"ship">;
258
+ ship: z.ZodObject<{
259
+ id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
260
+ name: z.ZodString;
261
+ }, z.core.$strip>;
262
+ }, z.core.$strip>, z.ZodObject<{
263
+ kind: z.ZodLiteral<"type">;
264
+ type: z.ZodString;
265
+ }, z.core.$strip>], "kind">;
266
+ delivery: z.ZodObject<{
267
+ deliveryId: z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>;
268
+ state: z.ZodEnum<{
269
+ pending: "pending";
270
+ received: "received";
271
+ handed: "handed";
272
+ acknowledged: "acknowledged";
273
+ handled: "handled";
274
+ notHandled: "notHandled";
275
+ undeliverable: "undeliverable";
276
+ dismissed: "dismissed";
277
+ abandoned: "abandoned";
278
+ }>;
279
+ since: z.ZodISODateTime;
280
+ }, z.core.$strip>;
281
+ }, z.core.$strip>;
282
+ export type SentMessageOutput = z.infer<typeof sentMessageOutputSchema>;