@aeolus-fleet/common 0.20.3 → 0.20.4

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 (48) hide show
  1. package/README.md +2 -0
  2. package/dist/fleet/index.d.ts +8 -4
  3. package/dist/fleet/index.js +5 -3
  4. package/dist/fleet/index.js.map +1 -1
  5. package/dist/ids/index.d.ts +2 -0
  6. package/dist/ids/index.js +1 -0
  7. package/dist/ids/index.js.map +1 -1
  8. package/dist/rules/index.d.ts +10 -0
  9. package/dist/rules/index.js +11 -0
  10. package/dist/rules/index.js.map +1 -0
  11. package/dist/rules/label-handle.d.ts +6 -0
  12. package/dist/rules/label-handle.js +9 -0
  13. package/dist/rules/label-handle.js.map +1 -0
  14. package/dist/rules/payload.d.ts +10 -0
  15. package/dist/rules/payload.js +14 -0
  16. package/dist/rules/payload.js.map +1 -0
  17. package/dist/rules/ship-handle.d.ts +10 -0
  18. package/dist/rules/ship-handle.js +13 -0
  19. package/dist/rules/ship-handle.js.map +1 -0
  20. package/dist/rules/sign-in.d.ts +15 -0
  21. package/dist/rules/sign-in.js +27 -0
  22. package/dist/rules/sign-in.js.map +1 -0
  23. package/dist/schemas/console.d.ts +2 -7
  24. package/dist/schemas/console.js +4 -9
  25. package/dist/schemas/console.js.map +1 -1
  26. package/dist/schemas/fleet.d.ts +7 -7
  27. package/dist/schemas/fleet.js +5 -10
  28. package/dist/schemas/fleet.js.map +1 -1
  29. package/dist/schemas/follow.d.ts +1 -0
  30. package/dist/schemas/history.d.ts +6 -0
  31. package/dist/schemas/history.js +4 -2
  32. package/dist/schemas/history.js.map +1 -1
  33. package/dist/schemas/index.d.ts +1 -0
  34. package/dist/schemas/index.js +1 -0
  35. package/dist/schemas/index.js.map +1 -1
  36. package/dist/schemas/label.d.ts +1 -4
  37. package/dist/schemas/label.js +1 -4
  38. package/dist/schemas/label.js.map +1 -1
  39. package/dist/schemas/message.d.ts +1 -10
  40. package/dist/schemas/message.js +2 -13
  41. package/dist/schemas/message.js.map +1 -1
  42. package/dist/schemas/needs-attention.d.ts +2 -0
  43. package/dist/schemas/needs-attention.js +2 -0
  44. package/dist/schemas/needs-attention.js.map +1 -1
  45. package/dist/schemas/network.d.ts +116 -0
  46. package/dist/schemas/network.js +39 -0
  47. package/dist/schemas/network.js.map +1 -0
  48. package/package.json +7 -1
package/README.md CHANGED
@@ -3,3 +3,5 @@
3
3
  Shared schemas, prefixed ids and types for [Aeolus](https://github.com/ThomasHendrickx/aeolus-fleet), an agent fleet manager.
4
4
 
5
5
  Pre-v1: the API changes without notice until the v1 acceptance test passes.
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.
@@ -5,7 +5,7 @@ import { z } from 'zod';
5
5
  * states and event types. Core and console use the same words.
6
6
  */
7
7
  /** A permission of a ship, stored on the server with the ship and checked before every call. */
8
- export declare const SCOPES: readonly ["messages:send", "messages:receive", "fleet:read", "fleet:manage", "crew:assign", "crew:run", "labels:define", "labels:assign"];
8
+ export declare const SCOPES: readonly ["messages:send", "messages:receive", "fleet:read", "fleet:manage", "crew:assign", "crew:run", "labels:define", "labels:assign", "fleet:network"];
9
9
  export declare const scopeSchema: z.ZodEnum<{
10
10
  "messages:send": "messages:send";
11
11
  "messages:receive": "messages:receive";
@@ -15,6 +15,7 @@ export declare const scopeSchema: z.ZodEnum<{
15
15
  "crew:run": "crew:run";
16
16
  "labels:define": "labels:define";
17
17
  "labels:assign": "labels:assign";
18
+ "fleet:network": "fleet:network";
18
19
  }>;
19
20
  export type Scope = z.infer<typeof scopeSchema>;
20
21
  /**
@@ -23,9 +24,10 @@ export type Scope = z.infer<typeof scopeSchema>;
23
24
  * request assignments; `crew:run` crews the ships whose requests are assigned
24
25
  * to its ship (decision 0029). `labels:define` defines labels and changes
25
26
  * their values; `labels:assign` assigns and unassigns the labels its ship owns
26
- * (decision 0031).
27
+ * (decision 0031). `fleet:network` sets the fleet's network rules (decision
28
+ * 0034).
27
29
  */
28
- export declare const FLEET_SCOPES: readonly ["fleet:read", "fleet:manage", "crew:assign", "crew:run", "labels:define", "labels:assign"];
30
+ export declare const FLEET_SCOPES: readonly ["fleet:read", "fleet:manage", "crew:assign", "crew:run", "labels:define", "labels:assign", "fleet:network"];
29
31
  export declare const fleetScopeSchema: z.ZodEnum<{
30
32
  "fleet:read": "fleet:read";
31
33
  "fleet:manage": "fleet:manage";
@@ -33,6 +35,7 @@ export declare const fleetScopeSchema: z.ZodEnum<{
33
35
  "crew:run": "crew:run";
34
36
  "labels:define": "labels:define";
35
37
  "labels:assign": "labels:assign";
38
+ "fleet:network": "fleet:network";
36
39
  }>;
37
40
  export type FleetScope = z.infer<typeof fleetScopeSchema>;
38
41
  /** `argo` is the one ship of kind `operator` in a fleet; every other ship is an `agent`. */
@@ -86,7 +89,7 @@ export declare const deliveryStateSchema: z.ZodEnum<{
86
89
  }>;
87
90
  export type DeliveryState = z.infer<typeof deliveryStateSchema>;
88
91
  /** The event types written so far. Each later slice adds the ones it writes. */
89
- export declare const EVENT_TYPES: readonly ["FleetInitialised", "ShipCommissioned", "ShipClaimed", "LeaseRevoked", "CredentialRevoked", "StartingPromptIssued", "OperatorPasswordReset", "MessageAccepted", "DeliveryClaimed", "DeliveryAcknowledged", "DeliveryUndeliverable", "DeliveryReturned", "ShipRetired", "DeliveryAbandoned", "DeliveryDismissed", "ShipRenamed", "ShipReported", "SignInTicketIssued", "FleetLimitsChanged", "ViewerSessionStarted", "CrewRequested", "CrewRequestRemoved", "CrewAssigned", "CrewStatusChanged", "CrewRequestExplained", "CrewRequestGivenBack", "LabelDefined", "LabelValuesChanged", "LabelRetired", "LabelAssigned", "LabelUnassigned", "LabelDeleted", "WorktreeClearRequested", "WorktreeCleared", "WorktreeClearRemoved"];
92
+ export declare const EVENT_TYPES: readonly ["FleetInitialised", "ShipCommissioned", "ShipClaimed", "LeaseRevoked", "CredentialRevoked", "StartingPromptIssued", "OperatorPasswordReset", "MessageAccepted", "DeliveryClaimed", "DeliveryAcknowledged", "DeliveryUndeliverable", "DeliveryReturned", "ShipRetired", "DeliveryAbandoned", "DeliveryDismissed", "ShipRenamed", "ShipReported", "SignInTicketIssued", "FleetLimitsChanged", "ViewerSessionStarted", "CrewRequested", "CrewRequestRemoved", "CrewAssigned", "CrewStatusChanged", "CrewRequestExplained", "CrewRequestGivenBack", "LabelDefined", "LabelValuesChanged", "LabelRetired", "LabelAssigned", "LabelUnassigned", "LabelDeleted", "WorktreeClearRequested", "WorktreeCleared", "WorktreeClearRemoved", "NetworkRulesSet"];
90
93
  export declare const eventTypeSchema: z.ZodEnum<{
91
94
  FleetInitialised: "FleetInitialised";
92
95
  ShipCommissioned: "ShipCommissioned";
@@ -123,6 +126,7 @@ export declare const eventTypeSchema: z.ZodEnum<{
123
126
  WorktreeClearRequested: "WorktreeClearRequested";
124
127
  WorktreeCleared: "WorktreeCleared";
125
128
  WorktreeClearRemoved: "WorktreeClearRemoved";
129
+ NetworkRulesSet: "NetworkRulesSet";
126
130
  }>;
127
131
  export type EventType = z.infer<typeof eventTypeSchema>;
128
132
  export * from './mcp-url.js';
@@ -5,7 +5,7 @@ import { z } from 'zod';
5
5
  * states and event types. Core and console use the same words.
6
6
  */
7
7
  /** A permission of a ship, stored on the server with the ship and checked before every call. */
8
- export const SCOPES = ['messages:send', 'messages:receive', 'fleet:read', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign'];
8
+ export const SCOPES = ['messages:send', 'messages:receive', 'fleet:read', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network'];
9
9
  export const scopeSchema = z.enum(SCOPES);
10
10
  /**
11
11
  * The scopes commissioning may add to an agent ship, beside sending and
@@ -13,9 +13,10 @@ export const scopeSchema = z.enum(SCOPES);
13
13
  * request assignments; `crew:run` crews the ships whose requests are assigned
14
14
  * to its ship (decision 0029). `labels:define` defines labels and changes
15
15
  * their values; `labels:assign` assigns and unassigns the labels its ship owns
16
- * (decision 0031).
16
+ * (decision 0031). `fleet:network` sets the fleet's network rules (decision
17
+ * 0034).
17
18
  */
18
- export const FLEET_SCOPES = ['fleet:read', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign'];
19
+ export const FLEET_SCOPES = ['fleet:read', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network'];
19
20
  export const fleetScopeSchema = z.enum(FLEET_SCOPES);
20
21
  /** `argo` is the one ship of kind `operator` in a fleet; every other ship is an `agent`. */
21
22
  export const SHIP_KINDS = ['operator', 'agent', 'viewer'];
@@ -76,6 +77,7 @@ export const EVENT_TYPES = [
76
77
  'WorktreeClearRequested',
77
78
  'WorktreeCleared',
78
79
  'WorktreeClearRemoved',
80
+ 'NetworkRulesSet',
79
81
  ];
80
82
  export const eventTypeSchema = z.enum(EVENT_TYPES);
81
83
  export * from './mcp-url.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fleet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,CAAU,CAAC;AAChK,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAG1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,CAAU,CAAC;AACjI,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAGrD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAGjD,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAGzD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAGtD,2GAA2G;AAC3G,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAGzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;AAC5H,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAG3D,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,kBAAkB;IAClB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,uBAAuB;IACvB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,uBAAuB;IACvB,kBAAkB;IAClB,aAAa;IACb,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,cAAc;IACd,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;IACtB,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,wBAAwB;IACxB,iBAAiB;IACjB,sBAAsB;CACd,CAAC;AACX,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAGnD,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fleet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAU,CAAC;AACjL,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAG1C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAU,CAAC;AAClJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAGrD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAGjD,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAGzD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAGtD,2GAA2G;AAC3G,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAGzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;AAC5H,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAG3D,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,kBAAkB;IAClB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,uBAAuB;IACvB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,uBAAuB;IACvB,kBAAkB;IAClB,aAAa;IACb,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,cAAc;IACd,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;IACtB,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,wBAAwB;IACxB,iBAAiB;IACjB,sBAAsB;IACtB,iBAAiB;CACT,CAAC;AACX,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAGnD,cAAc,cAAc,CAAC"}
@@ -21,6 +21,7 @@ export declare const ID_PREFIXES: {
21
21
  readonly consoleSession: "ses";
22
22
  readonly label: "lbl";
23
23
  readonly labelValue: "lbv";
24
+ readonly reachRefusal: "rfs";
24
25
  };
25
26
  export type IdKind = keyof typeof ID_PREFIXES;
26
27
  /** Every kind of id, in the order of ID_PREFIXES. */
@@ -38,6 +39,7 @@ export type OperatorId = Id<'operator'>;
38
39
  export type ConsoleSessionId = Id<'consoleSession'>;
39
40
  export type LabelId = Id<'label'>;
40
41
  export type LabelValueId = Id<'labelValue'>;
42
+ export type ReachRefusalId = Id<'reachRefusal'>;
41
43
  export interface IdGeneratorOptions {
42
44
  /** Milliseconds since the Unix epoch. Defaults to `Date.now`. */
43
45
  now?: () => number;
package/dist/ids/index.js CHANGED
@@ -21,6 +21,7 @@ export const ID_PREFIXES = {
21
21
  consoleSession: 'ses',
22
22
  label: 'lbl',
23
23
  labelValue: 'lbv',
24
+ reachRefusal: 'rfs',
24
25
  };
25
26
  function isIdKind(value) {
26
27
  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
+ * `@aeolus-fleet/common/rules`: the plain rules the console's live hints use
3
+ * in the browser (decision 0033), without zod, so a page that uses one carries
4
+ * no schema. Common's schemas are built on the same rules, and the server
5
+ * stays the authority on submit.
6
+ */
7
+ export * from './label-handle.js';
8
+ export * from './payload.js';
9
+ export * from './ship-handle.js';
10
+ export * from './sign-in.js';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `@aeolus-fleet/common/rules`: the plain rules the console's live hints use
3
+ * in the browser (decision 0033), without zod, so a page that uses one carries
4
+ * no schema. Common's schemas are built on the same rules, and the server
5
+ * stays the authority on submit.
6
+ */
7
+ export * from './label-handle.js';
8
+ export * from './payload.js';
9
+ export * from './ship-handle.js';
10
+ export * from './sign-in.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** The most characters a label's key or one of its values may have (decision 0031). */
2
+ export declare const LABEL_HANDLE_MAX_LENGTH = 63;
3
+ /** A label's key or value: lowercase letters, digits and hyphens, at least one. */
4
+ export declare const LABEL_HANDLE_PATTERN: RegExp;
5
+ /** Whether a text is a label's key or value as decision 0031 allows it. */
6
+ export declare function isLabelHandle(text: string): boolean;
@@ -0,0 +1,9 @@
1
+ /** The most characters a label's key or one of its values may have (decision 0031). */
2
+ export const LABEL_HANDLE_MAX_LENGTH = 63;
3
+ /** A label's key or value: lowercase letters, digits and hyphens, at least one. */
4
+ export const LABEL_HANDLE_PATTERN = /^[a-z0-9-]+$/;
5
+ /** Whether a text is a label's key or value as decision 0031 allows it. */
6
+ export function isLabelHandle(text) {
7
+ return text.length <= LABEL_HANDLE_MAX_LENGTH && LABEL_HANDLE_PATTERN.test(text);
8
+ }
9
+ //# sourceMappingURL=label-handle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-handle.js","sourceRoot":"","sources":["../../src/rules/label-handle.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,mFAAmF;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAEnD,2EAA2E;AAC3E,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,MAAM,IAAI,uBAAuB,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * A payload is at most 64 KB (ADR 0006): a message carries a reference and an
3
+ * instruction, not the content itself.
4
+ */
5
+ export declare const PAYLOAD_MAX_BYTES: number;
6
+ /**
7
+ * The size of a payload serialized: the bytes of its text in UTF-8, as the
8
+ * database stores it and counts it.
9
+ */
10
+ export declare function payloadBytes(payload: string): number;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A payload is at most 64 KB (ADR 0006): a message carries a reference and an
3
+ * instruction, not the content itself.
4
+ */
5
+ export const PAYLOAD_MAX_BYTES = 64 * 1024;
6
+ const utf8 = new TextEncoder();
7
+ /**
8
+ * The size of a payload serialized: the bytes of its text in UTF-8, as the
9
+ * database stores it and counts it.
10
+ */
11
+ export function payloadBytes(payload) {
12
+ return utf8.encode(payload).byteLength;
13
+ }
14
+ //# sourceMappingURL=payload.js.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * A ship's name and its type are handles (docs/blueprint.md, "Ship"). A colon
3
+ * is an ordinary character, so a prefix can group ships (`hemma:planner`); it
4
+ * carries no meaning for the fleet.
5
+ */
6
+ export declare const SHIP_HANDLE_MAX_LENGTH = 48;
7
+ export declare const SHIP_HANDLE_PATTERN: RegExp;
8
+ export declare const SHIP_HANDLE_MESSAGE: string;
9
+ /** Whether a text is a ship handle: 1 to 48 lowercase letters, digits, hyphens or colons. */
10
+ export declare function isShipHandle(text: string): boolean;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A ship's name and its type are handles (docs/blueprint.md, "Ship"). A colon
3
+ * is an ordinary character, so a prefix can group ships (`hemma:planner`); it
4
+ * carries no meaning for the fleet.
5
+ */
6
+ export const SHIP_HANDLE_MAX_LENGTH = 48;
7
+ export const SHIP_HANDLE_PATTERN = /^[a-z0-9:-]+$/;
8
+ export const SHIP_HANDLE_MESSAGE = `Use 1 to ${String(SHIP_HANDLE_MAX_LENGTH)} lowercase letters, digits, hyphens or colons`;
9
+ /** Whether a text is a ship handle: 1 to 48 lowercase letters, digits, hyphens or colons. */
10
+ export function isShipHandle(text) {
11
+ return text.length <= SHIP_HANDLE_MAX_LENGTH && SHIP_HANDLE_PATTERN.test(text);
12
+ }
13
+ //# sourceMappingURL=ship-handle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-handle.js","sourceRoot":"","sources":["../../src/rules/ship-handle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,MAAM,CAAC,sBAAsB,CAAC,+CAA+C,CAAC;AAE7H,6FAA6F;AAC7F,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,MAAM,IAAI,sBAAsB,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** The operator's email: at most 254 characters, the longest address mail carries. */
2
+ export declare const OPERATOR_EMAIL_MAX_LENGTH = 254;
3
+ /**
4
+ * Any operator password up to this length: no strength rules (ADR 0016). The
5
+ * bound only keeps an absurd input from reaching the password hash.
6
+ */
7
+ export declare const OPERATOR_PASSWORD_MAX_LENGTH = 1024;
8
+ export declare const EMAIL_REQUIRED = "Enter your email";
9
+ export declare const EMAIL_TOO_LONG: string;
10
+ export declare const PASSWORD_REQUIRED = "Enter your password";
11
+ export declare const PASSWORD_TOO_LONG: string;
12
+ /** What is wrong with a sign-in email, whitespace around it dropped; undefined when nothing is. */
13
+ export declare function signInEmailProblem(email: string): string | undefined;
14
+ /** What is wrong with a sign-in password, taken exactly as typed; undefined when nothing is. */
15
+ export declare function signInPasswordProblem(password: string): string | undefined;
@@ -0,0 +1,27 @@
1
+ /** The operator's email: at most 254 characters, the longest address mail carries. */
2
+ export const OPERATOR_EMAIL_MAX_LENGTH = 254;
3
+ /**
4
+ * Any operator password up to this length: no strength rules (ADR 0016). The
5
+ * bound only keeps an absurd input from reaching the password hash.
6
+ */
7
+ export const OPERATOR_PASSWORD_MAX_LENGTH = 1024;
8
+ export const EMAIL_REQUIRED = 'Enter your email';
9
+ export const EMAIL_TOO_LONG = `Use an email of at most ${String(OPERATOR_EMAIL_MAX_LENGTH)} characters`;
10
+ export const PASSWORD_REQUIRED = 'Enter your password';
11
+ export const PASSWORD_TOO_LONG = `Use a password of at most ${String(OPERATOR_PASSWORD_MAX_LENGTH)} characters`;
12
+ /** What is wrong with a sign-in email, whitespace around it dropped; undefined when nothing is. */
13
+ export function signInEmailProblem(email) {
14
+ const trimmed = email.trim();
15
+ if (trimmed.length === 0) {
16
+ return EMAIL_REQUIRED;
17
+ }
18
+ return trimmed.length > OPERATOR_EMAIL_MAX_LENGTH ? EMAIL_TOO_LONG : undefined;
19
+ }
20
+ /** What is wrong with a sign-in password, taken exactly as typed; undefined when nothing is. */
21
+ export function signInPasswordProblem(password) {
22
+ if (password.length === 0) {
23
+ return PASSWORD_REQUIRED;
24
+ }
25
+ return password.length > OPERATOR_PASSWORD_MAX_LENGTH ? PASSWORD_TOO_LONG : undefined;
26
+ }
27
+ //# sourceMappingURL=sign-in.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-in.js","sourceRoot":"","sources":["../../src/rules/sign-in.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,2BAA2B,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC;AACxG,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,6BAA6B,MAAM,CAAC,4BAA4B,CAAC,aAAa,CAAC;AAEhH,mGAAmG;AACnG,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,GAAG,4BAA4B,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC"}
@@ -1,13 +1,7 @@
1
1
  import { z } from 'zod';
2
- /** The operator's email: at most 254 characters, the longest address mail carries. */
3
- export declare const OPERATOR_EMAIL_MAX_LENGTH = 254;
4
2
  /** One @ with something on each side, and no whitespace. */
5
3
  export declare const OPERATOR_EMAIL_PATTERN: RegExp;
6
- /**
7
- * Any operator password up to this length: no strength rules (ADR 0016). The
8
- * bound only keeps an absurd input from reaching the password hash.
9
- */
10
- export declare const OPERATOR_PASSWORD_MAX_LENGTH = 1024;
4
+ export { OPERATOR_EMAIL_MAX_LENGTH, OPERATOR_PASSWORD_MAX_LENGTH } from '../rules/sign-in.js';
11
5
  /**
12
6
  * Input of `console.signIn`: the operator's email and password. Whitespace
13
7
  * around the email is dropped; the password is taken exactly as typed. The
@@ -62,6 +56,7 @@ export declare const consoleSessionOutputSchema: z.ZodObject<{
62
56
  "crew:run": "crew:run";
63
57
  "labels:define": "labels:define";
64
58
  "labels:assign": "labels:assign";
59
+ "fleet:network": "fleet:network";
65
60
  }>>;
66
61
  }, z.core.$strip>;
67
62
  export type ConsoleSessionOutput = z.infer<typeof consoleSessionOutputSchema>;
@@ -1,15 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  import { scopeSchema } from '../fleet/index.js';
3
3
  import { idSchema } from '../ids/index.js';
4
- /** The operator's email: at most 254 characters, the longest address mail carries. */
5
- export const OPERATOR_EMAIL_MAX_LENGTH = 254;
4
+ import { EMAIL_REQUIRED, EMAIL_TOO_LONG, OPERATOR_EMAIL_MAX_LENGTH, OPERATOR_PASSWORD_MAX_LENGTH, PASSWORD_REQUIRED, PASSWORD_TOO_LONG } from '../rules/sign-in.js';
6
5
  /** One @ with something on each side, and no whitespace. */
7
6
  export const OPERATOR_EMAIL_PATTERN = /^[^\s@]+@[^\s@]+$/;
8
- /**
9
- * Any operator password up to this length: no strength rules (ADR 0016). The
10
- * bound only keeps an absurd input from reaching the password hash.
11
- */
12
- export const OPERATOR_PASSWORD_MAX_LENGTH = 1024;
7
+ export { OPERATOR_EMAIL_MAX_LENGTH, OPERATOR_PASSWORD_MAX_LENGTH } from '../rules/sign-in.js';
13
8
  /**
14
9
  * Input of `console.signIn`: the operator's email and password. Whitespace
15
10
  * around the email is dropped; the password is taken exactly as typed. The
@@ -17,8 +12,8 @@ export const OPERATOR_PASSWORD_MAX_LENGTH = 1024;
17
12
  * simply wrong, like a wrong password.
18
13
  */
19
14
  export const signInInputSchema = z.object({
20
- email: z.string().trim().min(1, 'Enter your email').max(OPERATOR_EMAIL_MAX_LENGTH),
21
- password: z.string().min(1, 'Enter your password').max(OPERATOR_PASSWORD_MAX_LENGTH),
15
+ email: z.string().trim().min(1, EMAIL_REQUIRED).max(OPERATOR_EMAIL_MAX_LENGTH, EMAIL_TOO_LONG),
16
+ password: z.string().min(1, PASSWORD_REQUIRED).max(OPERATOR_PASSWORD_MAX_LENGTH, PASSWORD_TOO_LONG),
22
17
  });
23
18
  /** The longest sign-in ticket the console takes: far longer than any the server issues. */
24
19
  const SIGN_IN_TICKET_MAX_LENGTH = 256;
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/schemas/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/schemas/console.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,8 @@ import { z } from 'zod';
3
3
  * Inputs and outputs of the fleet procedures: commission a ship, get its
4
4
  * starting prompt, release it, list the fleet, follow its events live.
5
5
  */
6
- /**
7
- * A ship's name and its type are handles (docs/blueprint.md, "Ship"). A colon
8
- * is an ordinary character, so a prefix can group ships (`hemma:planner`); it
9
- * carries no meaning for the fleet.
10
- */
11
- export declare const SHIP_HANDLE_MAX_LENGTH = 48;
12
- export declare const SHIP_HANDLE_PATTERN: RegExp;
6
+ export { SHIP_HANDLE_MAX_LENGTH, SHIP_HANDLE_PATTERN } from '../rules/ship-handle.js';
7
+ /** A ship's name or type, by the rule in rules/ship-handle.ts. */
13
8
  export declare const shipHandleSchema: z.ZodString;
14
9
  export declare const SHIP_NOTE_MAX_LENGTH = 500;
15
10
  /**
@@ -30,6 +25,7 @@ export declare const commissionShipInputSchema: z.ZodObject<{
30
25
  "crew:run": "crew:run";
31
26
  "labels:define": "labels:define";
32
27
  "labels:assign": "labels:assign";
28
+ "fleet:network": "fleet:network";
33
29
  }>>>;
34
30
  note: z.ZodOptional<z.ZodString>;
35
31
  idempotencyKey: z.ZodString;
@@ -188,6 +184,7 @@ export declare const listedShipSchema: z.ZodObject<{
188
184
  "crew:run": "crew:run";
189
185
  "labels:define": "labels:define";
190
186
  "labels:assign": "labels:assign";
187
+ "fleet:network": "fleet:network";
191
188
  }>>;
192
189
  report: z.ZodNullable<z.ZodObject<{
193
190
  state: z.ZodEnum<{
@@ -293,6 +290,7 @@ export declare const fleetListOutputSchema: z.ZodArray<z.ZodObject<{
293
290
  "crew:run": "crew:run";
294
291
  "labels:define": "labels:define";
295
292
  "labels:assign": "labels:assign";
293
+ "fleet:network": "fleet:network";
296
294
  }>>;
297
295
  report: z.ZodNullable<z.ZodObject<{
298
296
  state: z.ZodEnum<{
@@ -398,6 +396,7 @@ export declare const liveFleetEventSchema: z.ZodObject<{
398
396
  WorktreeClearRequested: "WorktreeClearRequested";
399
397
  WorktreeCleared: "WorktreeCleared";
400
398
  WorktreeClearRemoved: "WorktreeClearRemoved";
399
+ NetworkRulesSet: "NetworkRulesSet";
401
400
  }>;
402
401
  occurredAt: z.ZodISODateTime;
403
402
  actorShipId: z.ZodNullable<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
@@ -451,6 +450,7 @@ export declare const fleetStreamItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject
451
450
  WorktreeClearRequested: "WorktreeClearRequested";
452
451
  WorktreeCleared: "WorktreeCleared";
453
452
  WorktreeClearRemoved: "WorktreeClearRemoved";
453
+ NetworkRulesSet: "NetworkRulesSet";
454
454
  }>;
455
455
  occurredAt: z.ZodISODateTime;
456
456
  actorShipId: z.ZodNullable<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { eventTypeSchema, fleetScopeSchema, locationKindSchema, scopeSchema, shipKindSchema, shipStatusSchema } from '../fleet/index.js';
3
3
  import { idSchema } from '../ids/index.js';
4
+ import { SHIP_HANDLE_MAX_LENGTH, SHIP_HANDLE_MESSAGE, SHIP_HANDLE_PATTERN } from '../rules/ship-handle.js';
4
5
  import { idempotencyKeySchema } from './idempotency-key.js';
5
6
  import { listedCrewRequestSchema } from './crew-request.js';
6
7
  import { carriedLabelSchema } from './label.js';
@@ -9,18 +10,12 @@ import { listedReportSchema } from './report.js';
9
10
  * Inputs and outputs of the fleet procedures: commission a ship, get its
10
11
  * starting prompt, release it, list the fleet, follow its events live.
11
12
  */
12
- /**
13
- * A ship's name and its type are handles (docs/blueprint.md, "Ship"). A colon
14
- * is an ordinary character, so a prefix can group ships (`hemma:planner`); it
15
- * carries no meaning for the fleet.
16
- */
17
- export const SHIP_HANDLE_MAX_LENGTH = 48;
18
- export const SHIP_HANDLE_PATTERN = /^[a-z0-9:-]+$/;
19
- const HANDLE_MESSAGE = `Use 1 to ${SHIP_HANDLE_MAX_LENGTH} lowercase letters, digits, hyphens or colons`;
13
+ export { SHIP_HANDLE_MAX_LENGTH, SHIP_HANDLE_PATTERN } from '../rules/ship-handle.js';
14
+ /** A ship's name or type, by the rule in rules/ship-handle.ts. */
20
15
  export const shipHandleSchema = z
21
16
  .string()
22
- .max(SHIP_HANDLE_MAX_LENGTH, HANDLE_MESSAGE)
23
- .regex(SHIP_HANDLE_PATTERN, HANDLE_MESSAGE);
17
+ .max(SHIP_HANDLE_MAX_LENGTH, SHIP_HANDLE_MESSAGE)
18
+ .regex(SHIP_HANDLE_PATTERN, SHIP_HANDLE_MESSAGE);
24
19
  export const SHIP_NOTE_MAX_LENGTH = 500;
25
20
  /**
26
21
  * Input of `fleet.commission`. The note is free text for the operator;
@@ -1 +1 @@
1
- {"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../src/schemas/fleet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../src/schemas/fleet.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,7 @@ export declare const followFleetOutputSchema: z.ZodObject<{
57
57
  WorktreeClearRequested: "WorktreeClearRequested";
58
58
  WorktreeCleared: "WorktreeCleared";
59
59
  WorktreeClearRemoved: "WorktreeClearRemoved";
60
+ NetworkRulesSet: "NetworkRulesSet";
60
61
  }>;
61
62
  occurredAt: z.ZodISODateTime;
62
63
  actorShipId: z.ZodNullable<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
@@ -78,6 +78,7 @@ export declare const shipDetailOutputSchema: z.ZodObject<{
78
78
  "crew:run": "crew:run";
79
79
  "labels:define": "labels:define";
80
80
  "labels:assign": "labels:assign";
81
+ "fleet:network": "fleet:network";
81
82
  }>>;
82
83
  labels: z.ZodArray<z.ZodObject<{
83
84
  labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
@@ -97,6 +98,7 @@ export declare const shipDetailOutputSchema: z.ZodObject<{
97
98
  reportedAt: z.ZodISODateTime;
98
99
  detailsVersion: z.ZodInt;
99
100
  details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
101
+ detailsBytes: z.ZodNullable<z.ZodInt>;
100
102
  }, z.core.$strip>>;
101
103
  crewRequest: z.ZodNullable<z.ZodObject<{
102
104
  settingsVersion: z.ZodInt;
@@ -176,6 +178,7 @@ export declare const timelineEntrySchema: z.ZodObject<{
176
178
  WorktreeClearRequested: "WorktreeClearRequested";
177
179
  WorktreeCleared: "WorktreeCleared";
178
180
  WorktreeClearRemoved: "WorktreeClearRemoved";
181
+ NetworkRulesSet: "NetworkRulesSet";
179
182
  }>;
180
183
  occurredAt: z.ZodISODateTime;
181
184
  actor: z.ZodNullable<z.ZodObject<{
@@ -203,6 +206,7 @@ export declare const timelineEntrySchema: z.ZodObject<{
203
206
  type: z.ZodString;
204
207
  }, z.core.$strip>], "kind">;
205
208
  contentType: z.ZodString;
209
+ isPing: z.ZodBoolean;
206
210
  model: z.ZodNullable<z.ZodString>;
207
211
  }, z.core.$strip>>;
208
212
  details: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>;
@@ -248,6 +252,7 @@ export declare const shipTimelineOutputSchema: z.ZodArray<z.ZodObject<{
248
252
  WorktreeClearRequested: "WorktreeClearRequested";
249
253
  WorktreeCleared: "WorktreeCleared";
250
254
  WorktreeClearRemoved: "WorktreeClearRemoved";
255
+ NetworkRulesSet: "NetworkRulesSet";
251
256
  }>;
252
257
  occurredAt: z.ZodISODateTime;
253
258
  actor: z.ZodNullable<z.ZodObject<{
@@ -275,6 +280,7 @@ export declare const shipTimelineOutputSchema: z.ZodArray<z.ZodObject<{
275
280
  type: z.ZodString;
276
281
  }, z.core.$strip>], "kind">;
277
282
  contentType: z.ZodString;
283
+ isPing: z.ZodBoolean;
278
284
  model: z.ZodNullable<z.ZodString>;
279
285
  }, z.core.$strip>>;
280
286
  details: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>;
@@ -26,8 +26,8 @@ export const shipInputSchema = z.object({ shipId: idSchema('ship') });
26
26
  * when it retired.
27
27
  */
28
28
  export const shipDetailOutputSchema = listedShipSchema.extend({
29
- /** The crew's last report as the fleet lists it, with its details. */
30
- report: reportSchema.nullable(),
29
+ /** The crew's last report as the fleet lists it, with its details and their size in bytes (null without details), counted as their limit counts them. */
30
+ report: reportSchema.extend({ detailsBytes: z.int().min(0).nullable() }).nullable(),
31
31
  /** The ship's crew request, settings included. */
32
32
  crewRequest: crewRequestSchema.nullable(),
33
33
  commissionedAt: isoTime,
@@ -55,6 +55,8 @@ export const timelineEntrySchema = z.object({
55
55
  recipient: messageRecipientSchema,
56
56
  /** As the sender gave it; a ping has the reserved ping content type. */
57
57
  contentType: z.string(),
58
+ /** Whether it is a ping, told by its content type. */
59
+ isPing: z.boolean(),
58
60
  /** The model the sender's session stated. */
59
61
  model: z.string().nullable(),
60
62
  })
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/schemas/history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/schemas/history.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export * from './installation.js';
11
11
  export * from './label.js';
12
12
  export * from './message.js';
13
13
  export * from './needs-attention.js';
14
+ export * from './network.js';
14
15
  export * from './notice.js';
15
16
  export * from './operator-inbox.js';
16
17
  export * from './ping.js';
@@ -11,6 +11,7 @@ export * from './installation.js';
11
11
  export * from './label.js';
12
12
  export * from './message.js';
13
13
  export * from './needs-attention.js';
14
+ export * from './network.js';
14
15
  export * from './notice.js';
15
16
  export * from './operator-inbox.js';
16
17
  export * from './ping.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
@@ -6,10 +6,7 @@ import { z } from 'zod';
6
6
  * texts for people. The limits below are the decision's; every refusal names
7
7
  * it.
8
8
  */
9
- /** The most characters a label's key or one of its values may have. */
10
- export declare const LABEL_HANDLE_MAX_LENGTH = 63;
11
- /** A label's key or value: lowercase letters, digits and hyphens, at least one. */
12
- export declare const LABEL_HANDLE_PATTERN: RegExp;
9
+ export { LABEL_HANDLE_MAX_LENGTH, LABEL_HANDLE_PATTERN } from '../rules/label-handle.js';
13
10
  /** The most values one label may define. */
14
11
  export declare const LABEL_VALUES_MAX = 50;
15
12
  /** The most label values one ship may carry. */
@@ -7,10 +7,7 @@ import { idSchema } from '../ids/index.js';
7
7
  * texts for people. The limits below are the decision's; every refusal names
8
8
  * it.
9
9
  */
10
- /** The most characters a label's key or one of its values may have. */
11
- export const LABEL_HANDLE_MAX_LENGTH = 63;
12
- /** A label's key or value: lowercase letters, digits and hyphens, at least one. */
13
- export const LABEL_HANDLE_PATTERN = /^[a-z0-9-]+$/;
10
+ export { LABEL_HANDLE_MAX_LENGTH, LABEL_HANDLE_PATTERN } from '../rules/label-handle.js';
14
11
  /** The most values one label may define. */
15
12
  export const LABEL_VALUES_MAX = 50;
16
13
  /** The most label values one ship may carry. */
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/schemas/label.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/schemas/label.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,7 @@ import { z } from 'zod';
4
4
  * payload and content type, the model the sender runs, the sender's
5
5
  * idempotency key, and the message it replies to.
6
6
  */
7
- /**
8
- * A payload is at most 64 KB (ADR 0006): a message carries a reference and an
9
- * instruction, not the content itself.
10
- */
11
- export declare const PAYLOAD_MAX_BYTES: number;
12
- /**
13
- * The size of a payload serialized: the bytes of its text in UTF-8, as the
14
- * database stores it and counts it.
15
- */
16
- export declare function payloadBytes(payload: string): number;
7
+ export { PAYLOAD_MAX_BYTES, payloadBytes } from '../rules/payload.js';
17
8
  /** The longest content type a sender may give, parameters included. */
18
9
  export declare const CONTENT_TYPE_MAX_LENGTH = 256;
19
10
  /** A payload's content type when its sender does not say. */
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { idSchema } from '../ids/index.js';
3
+ import { PAYLOAD_MAX_BYTES, payloadBytes } from '../rules/payload.js';
3
4
  import { shipHandleSchema } from './fleet.js';
4
5
  import { idempotencyKeySchema } from './idempotency-key.js';
5
6
  /**
@@ -7,19 +8,7 @@ import { idempotencyKeySchema } from './idempotency-key.js';
7
8
  * payload and content type, the model the sender runs, the sender's
8
9
  * idempotency key, and the message it replies to.
9
10
  */
10
- /**
11
- * A payload is at most 64 KB (ADR 0006): a message carries a reference and an
12
- * instruction, not the content itself.
13
- */
14
- export const PAYLOAD_MAX_BYTES = 64 * 1024;
15
- const utf8 = new TextEncoder();
16
- /**
17
- * The size of a payload serialized: the bytes of its text in UTF-8, as the
18
- * database stores it and counts it.
19
- */
20
- export function payloadBytes(payload) {
21
- return utf8.encode(payload).byteLength;
22
- }
11
+ export { PAYLOAD_MAX_BYTES, payloadBytes } from '../rules/payload.js';
23
12
  /** The longest content type a sender may give, parameters included. */
24
13
  export const CONTENT_TYPE_MAX_LENGTH = 256;
25
14
  /** A payload's content type when its sender does not say. */
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/schemas/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/schemas/message.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export declare const undeliverableDeliverySchema: z.ZodObject<{
23
23
  inReplyTo: z.ZodNullable<z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>>;
24
24
  sentAt: z.ZodISODateTime;
25
25
  contentType: z.ZodString;
26
+ isPing: z.ZodBoolean;
26
27
  payload: z.ZodString;
27
28
  }, z.core.$strip>;
28
29
  }, z.core.$strip>;
@@ -51,6 +52,7 @@ export declare const needsAttentionOutputSchema: z.ZodArray<z.ZodObject<{
51
52
  inReplyTo: z.ZodNullable<z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>>;
52
53
  sentAt: z.ZodISODateTime;
53
54
  contentType: z.ZodString;
55
+ isPing: z.ZodBoolean;
54
56
  payload: z.ZodString;
55
57
  }, z.core.$strip>;
56
58
  }, z.core.$strip>>;
@@ -23,6 +23,8 @@ export const undeliverableDeliverySchema = z.object({
23
23
  inReplyTo: idSchema('message').nullable(),
24
24
  sentAt: isoTime,
25
25
  contentType: z.string(),
26
+ /** Whether it is a ping, told by its content type: a ping is never resent. */
27
+ isPing: z.boolean(),
26
28
  payload: z.string(),
27
29
  }),
28
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"needs-attention.js","sourceRoot":"","sources":["../../src/schemas/needs-attention.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnE;;;;;GAKG;AAEH,uBAAuB;AACvB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAEjC,qGAAqG;AACrG,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAChC,qDAAqD;IACrD,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,oCAAoC;IACpC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC;QACvB,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,sBAAsB;QACjC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;QACzC,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC;CACH,CAAC,CAAC;AAIH,iGAAiG;AACjG,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAE/E,iHAAiH;AACjH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;CACjC,CAAC,CAAC;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;CACjC,CAAC,CAAC;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;CAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"needs-attention.js","sourceRoot":"","sources":["../../src/schemas/needs-attention.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnE;;;;;GAKG;AAEH,uBAAuB;AACvB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAEjC,qGAAqG;AACrG,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAChC,qDAAqD;IACrD,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,oCAAoC;IACpC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC;QACvB,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,sBAAsB;QACjC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;QACzC,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,8EAA8E;QAC9E,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC;CACH,CAAC,CAAC;AAIH,iGAAiG;AACjG,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAE/E,iHAAiH;AACjH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;CACjC,CAAC,CAAC;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;CACjC,CAAC,CAAC;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;CAC/B,CAAC,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Network rules (decision 0034): which ships may send to which. A rule says
4
+ * that the ships matching one label selector may send to the ships matching
5
+ * another; a selector is a set of label value ids, matched as label selection
6
+ * is (every one of them, an empty one every ship). Allow-only. The limits are
7
+ * the decision's; the server checks them, so every refusal names it.
8
+ */
9
+ /** The most rules one fleet may hold. */
10
+ export declare const NETWORK_RULES_MAX = 200;
11
+ /** The most refusals one read of them answers: the latest. */
12
+ export declare const REACH_REFUSALS_READ_MAX = 100;
13
+ /** Ships carrying every one of these label values: exact matches, combined with AND. */
14
+ export declare const labelSelectorSchema: z.ZodArray<z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>>;
15
+ /** One rule: the ships matching `from` may send to the ships matching `to`. */
16
+ export declare const networkRuleSchema: z.ZodObject<{
17
+ from: z.ZodArray<z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>>;
18
+ to: z.ZodArray<z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>>;
19
+ }, z.core.$strip>;
20
+ export type NetworkRule = z.infer<typeof networkRuleSchema>;
21
+ /** Input of `fleet.setNetworkRules` (fleet:network): every rule the fleet holds from now on, or none for all-to-all. */
22
+ export declare const setNetworkRulesInputSchema: z.ZodObject<{
23
+ rules: z.ZodNullable<z.ZodArray<z.ZodObject<{
24
+ from: z.ZodArray<z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>>;
25
+ to: z.ZodArray<z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>>;
26
+ }, z.core.$strip>>>;
27
+ }, z.core.$strip>;
28
+ /** Output of `fleet.setNetworkRules`: the version the fleet's network settings have now. */
29
+ export declare const setNetworkRulesOutputSchema: z.ZodObject<{
30
+ version: z.ZodInt;
31
+ }, z.core.$strip>;
32
+ /** One refused send: who tried to reach whom, both ships as they were, the settings version that refused it and when. */
33
+ export declare const reachRefusalSchema: z.ZodObject<{
34
+ id: z.ZodType<`rfs_${string}`, unknown, z.core.$ZodTypeInternals<`rfs_${string}`, unknown>>;
35
+ at: z.ZodISODateTime;
36
+ sender: z.ZodObject<{
37
+ id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
38
+ name: z.ZodString;
39
+ labels: z.ZodArray<z.ZodObject<{
40
+ labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
41
+ key: z.ZodString;
42
+ valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
43
+ value: z.ZodString;
44
+ }, z.core.$strip>>;
45
+ }, z.core.$strip>;
46
+ recipient: z.ZodDiscriminatedUnion<[z.ZodObject<{
47
+ kind: z.ZodLiteral<"ship">;
48
+ ship: z.ZodObject<{
49
+ id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
50
+ name: z.ZodString;
51
+ labels: z.ZodArray<z.ZodObject<{
52
+ labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
53
+ key: z.ZodString;
54
+ valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
55
+ value: z.ZodString;
56
+ }, z.core.$strip>>;
57
+ }, z.core.$strip>;
58
+ }, z.core.$strip>, z.ZodObject<{
59
+ kind: z.ZodLiteral<"type">;
60
+ type: z.ZodString;
61
+ ships: z.ZodArray<z.ZodObject<{
62
+ id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
63
+ name: z.ZodString;
64
+ labels: z.ZodArray<z.ZodObject<{
65
+ labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
66
+ key: z.ZodString;
67
+ valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
68
+ value: z.ZodString;
69
+ }, z.core.$strip>>;
70
+ }, z.core.$strip>>;
71
+ }, z.core.$strip>], "kind">;
72
+ settingsVersion: z.ZodInt;
73
+ }, z.core.$strip>;
74
+ export type ReachRefusal = z.infer<typeof reachRefusalSchema>;
75
+ /** Output of `fleet.reachRefusals` (argo only): the fleet's latest refusals, newest first, at most REACH_REFUSALS_READ_MAX. */
76
+ export declare const reachRefusalsOutputSchema: z.ZodArray<z.ZodObject<{
77
+ id: z.ZodType<`rfs_${string}`, unknown, z.core.$ZodTypeInternals<`rfs_${string}`, unknown>>;
78
+ at: z.ZodISODateTime;
79
+ sender: z.ZodObject<{
80
+ id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
81
+ name: z.ZodString;
82
+ labels: z.ZodArray<z.ZodObject<{
83
+ labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
84
+ key: z.ZodString;
85
+ valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
86
+ value: z.ZodString;
87
+ }, z.core.$strip>>;
88
+ }, z.core.$strip>;
89
+ recipient: z.ZodDiscriminatedUnion<[z.ZodObject<{
90
+ kind: z.ZodLiteral<"ship">;
91
+ ship: z.ZodObject<{
92
+ id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
93
+ name: z.ZodString;
94
+ labels: z.ZodArray<z.ZodObject<{
95
+ labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
96
+ key: z.ZodString;
97
+ valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
98
+ value: z.ZodString;
99
+ }, z.core.$strip>>;
100
+ }, z.core.$strip>;
101
+ }, z.core.$strip>, z.ZodObject<{
102
+ kind: z.ZodLiteral<"type">;
103
+ type: z.ZodString;
104
+ ships: z.ZodArray<z.ZodObject<{
105
+ id: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
106
+ name: z.ZodString;
107
+ labels: z.ZodArray<z.ZodObject<{
108
+ labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
109
+ key: z.ZodString;
110
+ valueId: z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>;
111
+ value: z.ZodString;
112
+ }, z.core.$strip>>;
113
+ }, z.core.$strip>>;
114
+ }, z.core.$strip>], "kind">;
115
+ settingsVersion: z.ZodInt;
116
+ }, z.core.$strip>>;
@@ -0,0 +1,39 @@
1
+ import { z } from 'zod';
2
+ import { idSchema } from '../ids/index.js';
3
+ import { carriedLabelSchema } from './label.js';
4
+ /**
5
+ * Network rules (decision 0034): which ships may send to which. A rule says
6
+ * that the ships matching one label selector may send to the ships matching
7
+ * another; a selector is a set of label value ids, matched as label selection
8
+ * is (every one of them, an empty one every ship). Allow-only. The limits are
9
+ * the decision's; the server checks them, so every refusal names it.
10
+ */
11
+ /** The most rules one fleet may hold. */
12
+ export const NETWORK_RULES_MAX = 200;
13
+ /** The most refusals one read of them answers: the latest. */
14
+ export const REACH_REFUSALS_READ_MAX = 100;
15
+ /** Ships carrying every one of these label values: exact matches, combined with AND. */
16
+ export const labelSelectorSchema = z.array(idSchema('labelValue'));
17
+ /** One rule: the ships matching `from` may send to the ships matching `to`. */
18
+ export const networkRuleSchema = z.object({ from: labelSelectorSchema, to: labelSelectorSchema });
19
+ /** Input of `fleet.setNetworkRules` (fleet:network): every rule the fleet holds from now on, or none for all-to-all. */
20
+ export const setNetworkRulesInputSchema = z.object({ rules: z.array(networkRuleSchema).nullable() });
21
+ /** Output of `fleet.setNetworkRules`: the version the fleet's network settings have now. */
22
+ export const setNetworkRulesOutputSchema = z.object({ version: z.int().min(1) });
23
+ /** A ship as a reach refusal saw it: its id, its name and the label values it carried then. */
24
+ const refusedShipSchema = z.object({ id: idSchema('ship'), name: z.string(), labels: z.array(carriedLabelSchema) });
25
+ /** One refused send: who tried to reach whom, both ships as they were, the settings version that refused it and when. */
26
+ export const reachRefusalSchema = z.object({
27
+ id: idSchema('reachRefusal'),
28
+ at: z.iso.datetime(),
29
+ sender: refusedShipSchema,
30
+ recipient: z.discriminatedUnion('kind', [
31
+ z.object({ kind: z.literal('ship'), ship: refusedShipSchema }),
32
+ /** A send to a type: the type and each ship of it, none of which the sender may reach. */
33
+ z.object({ kind: z.literal('type'), type: z.string(), ships: z.array(refusedShipSchema) }),
34
+ ]),
35
+ settingsVersion: z.int().min(1),
36
+ });
37
+ /** Output of `fleet.reachRefusals` (argo only): the fleet's latest refusals, newest first, at most REACH_REFUSALS_READ_MAX. */
38
+ export const reachRefusalsOutputSchema = z.array(reachRefusalSchema);
39
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/schemas/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;GAMG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,wFAAwF;AACxF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAEnE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAIlG,wHAAwH;AACxH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAErG,4FAA4F;AAC5F,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEjF,+FAA+F;AAC/F,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAEpH,yHAAyH;AACzH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC;IAC5B,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IACpB,MAAM,EAAE,iBAAiB;IACzB,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;QACtC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAC9D,0FAA0F;QAC1F,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;KAC3F,CAAC;IACF,eAAe,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAChC,CAAC,CAAC;AAIH,+HAA+H;AAC/H,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@aeolus-fleet/common",
3
- "version": "0.20.3",
3
+ "version": "0.20.4",
4
4
  "description": "Aeolus shared schemas, prefixed ids and types.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
+ "sideEffects": false,
7
8
  "repository": {
8
9
  "type": "git",
9
10
  "url": "git+https://github.com/ThomasHendrickx/aeolus-fleet.git",
@@ -17,6 +18,11 @@
17
18
  "@aeolus-fleet/source": "./src/index.ts",
18
19
  "types": "./dist/index.d.ts",
19
20
  "default": "./dist/index.js"
21
+ },
22
+ "./rules": {
23
+ "@aeolus-fleet/source": "./src/rules/index.ts",
24
+ "types": "./dist/rules/index.d.ts",
25
+ "default": "./dist/rules/index.js"
20
26
  }
21
27
  },
22
28
  "files": [