@aeolus-fleet/common 0.21.0 → 0.22.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.
- package/dist/fleet/busy-wait.d.ts +6 -0
- package/dist/fleet/busy-wait.js +10 -0
- package/dist/fleet/busy-wait.js.map +1 -0
- package/dist/fleet/index.d.ts +10 -1
- package/dist/fleet/index.js +9 -0
- package/dist/fleet/index.js.map +1 -1
- package/dist/fleet/no-terminal-questions.d.ts +7 -0
- package/dist/fleet/no-terminal-questions.js +8 -0
- package/dist/fleet/no-terminal-questions.js.map +1 -0
- package/dist/schemas/fleet.d.ts +2 -0
- package/dist/schemas/follow.d.ts +1 -0
- package/dist/schemas/history.d.ts +2 -0
- package/dist/schemas/network.d.ts +102 -10
- package/dist/schemas/network.js +24 -6
- package/dist/schemas/network.js.map +1 -1
- package/dist/schemas/system.d.ts +7 -0
- package/dist/schemas/system.js +6 -0
- package/dist/schemas/system.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The wait before the next call while the fleet answers busy: drawn between
|
|
3
|
+
* half and all of `waitMs`, so callers the fleet refused together do not call
|
|
4
|
+
* again together. `random` draws in [0, 1], as Math.random does.
|
|
5
|
+
*/
|
|
6
|
+
export declare function busyWaitMs(waitMs: number, random: () => number): number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The wait before the next call while the fleet answers busy: drawn between
|
|
3
|
+
* half and all of `waitMs`, so callers the fleet refused together do not call
|
|
4
|
+
* again together. `random` draws in [0, 1], as Math.random does.
|
|
5
|
+
*/
|
|
6
|
+
export function busyWaitMs(waitMs, random) {
|
|
7
|
+
const half = waitMs / 2;
|
|
8
|
+
return half + random() * half;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=busy-wait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"busy-wait.js","sourceRoot":"","sources":["../../src/fleet/busy-wait.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,MAAoB;IAC7D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;IACxB,OAAO,IAAI,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;AAChC,CAAC"}
|
package/dist/fleet/index.d.ts
CHANGED
|
@@ -89,7 +89,7 @@ export declare const deliveryStateSchema: z.ZodEnum<{
|
|
|
89
89
|
}>;
|
|
90
90
|
export type DeliveryState = z.infer<typeof deliveryStateSchema>;
|
|
91
91
|
/** The event types written so far. Each later slice adds the ones it writes. */
|
|
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", "NetworkPluginRegistered", "NetworkPluginUnregistered"];
|
|
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", "NetworkRulesDeclared", "NetworkPluginRegistered", "NetworkPluginUnregistered"];
|
|
93
93
|
export declare const eventTypeSchema: z.ZodEnum<{
|
|
94
94
|
FleetInitialised: "FleetInitialised";
|
|
95
95
|
ShipCommissioned: "ShipCommissioned";
|
|
@@ -127,8 +127,17 @@ export declare const eventTypeSchema: z.ZodEnum<{
|
|
|
127
127
|
WorktreeCleared: "WorktreeCleared";
|
|
128
128
|
WorktreeClearRemoved: "WorktreeClearRemoved";
|
|
129
129
|
NetworkRulesSet: "NetworkRulesSet";
|
|
130
|
+
NetworkRulesDeclared: "NetworkRulesDeclared";
|
|
130
131
|
NetworkPluginRegistered: "NetworkPluginRegistered";
|
|
131
132
|
NetworkPluginUnregistered: "NetworkPluginUnregistered";
|
|
132
133
|
}>;
|
|
133
134
|
export type EventType = z.infer<typeof eventTypeSchema>;
|
|
135
|
+
export * from './busy-wait.js';
|
|
134
136
|
export * from './mcp-url.js';
|
|
137
|
+
export * from './no-terminal-questions.js';
|
|
138
|
+
/**
|
|
139
|
+
* How long a caller waits before each next call while the fleet answers busy
|
|
140
|
+
* (`SERVICE_UNAVAILABLE`, nothing stored; docs/architecture.md): bounded and
|
|
141
|
+
* longer each time, then the refusal stands. Each is drawn by `busyWaitMs`.
|
|
142
|
+
*/
|
|
143
|
+
export declare const FLEET_BUSY_WAITS_MS: readonly [1000, 2000, 4000, 8000];
|
package/dist/fleet/index.js
CHANGED
|
@@ -78,9 +78,18 @@ export const EVENT_TYPES = [
|
|
|
78
78
|
'WorktreeCleared',
|
|
79
79
|
'WorktreeClearRemoved',
|
|
80
80
|
'NetworkRulesSet',
|
|
81
|
+
'NetworkRulesDeclared',
|
|
81
82
|
'NetworkPluginRegistered',
|
|
82
83
|
'NetworkPluginUnregistered',
|
|
83
84
|
];
|
|
84
85
|
export const eventTypeSchema = z.enum(EVENT_TYPES);
|
|
86
|
+
export * from './busy-wait.js';
|
|
85
87
|
export * from './mcp-url.js';
|
|
88
|
+
export * from './no-terminal-questions.js';
|
|
89
|
+
/**
|
|
90
|
+
* How long a caller waits before each next call while the fleet answers busy
|
|
91
|
+
* (`SERVICE_UNAVAILABLE`, nothing stored; docs/architecture.md): bounded and
|
|
92
|
+
* longer each time, then the refusal stands. Each is drawn by `busyWaitMs`.
|
|
93
|
+
*/
|
|
94
|
+
export const FLEET_BUSY_WAITS_MS = [1000, 2000, 4000, 8000];
|
|
86
95
|
//# sourceMappingURL=index.js.map
|
package/dist/fleet/index.js.map
CHANGED
|
@@ -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,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;IACjB,yBAAyB;IACzB,2BAA2B;CACnB,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":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The line every crewed session is told (#585): nobody watches its pane, so a
|
|
3
|
+
* question asked there waits for ever. The ship protocol states it, the
|
|
4
|
+
* trierarch adds it to its first and every wake prompt, and the aeolus
|
|
5
|
+
* plugin's crew skills say the same.
|
|
6
|
+
*/
|
|
7
|
+
export declare const NO_TERMINAL_QUESTIONS = "No human reads this terminal. Never ask here; ask over the fleet. A question only the operator can answer goes to argo.";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The line every crewed session is told (#585): nobody watches its pane, so a
|
|
3
|
+
* question asked there waits for ever. The ship protocol states it, the
|
|
4
|
+
* trierarch adds it to its first and every wake prompt, and the aeolus
|
|
5
|
+
* plugin's crew skills say the same.
|
|
6
|
+
*/
|
|
7
|
+
export const NO_TERMINAL_QUESTIONS = 'No human reads this terminal. Never ask here; ask over the fleet. A question only the operator can answer goes to argo.';
|
|
8
|
+
//# sourceMappingURL=no-terminal-questions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-terminal-questions.js","sourceRoot":"","sources":["../../src/fleet/no-terminal-questions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,yHAAyH,CAAC"}
|
package/dist/schemas/fleet.d.ts
CHANGED
|
@@ -397,6 +397,7 @@ export declare const liveFleetEventSchema: z.ZodObject<{
|
|
|
397
397
|
WorktreeCleared: "WorktreeCleared";
|
|
398
398
|
WorktreeClearRemoved: "WorktreeClearRemoved";
|
|
399
399
|
NetworkRulesSet: "NetworkRulesSet";
|
|
400
|
+
NetworkRulesDeclared: "NetworkRulesDeclared";
|
|
400
401
|
NetworkPluginRegistered: "NetworkPluginRegistered";
|
|
401
402
|
NetworkPluginUnregistered: "NetworkPluginUnregistered";
|
|
402
403
|
}>;
|
|
@@ -453,6 +454,7 @@ export declare const fleetStreamItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject
|
|
|
453
454
|
WorktreeCleared: "WorktreeCleared";
|
|
454
455
|
WorktreeClearRemoved: "WorktreeClearRemoved";
|
|
455
456
|
NetworkRulesSet: "NetworkRulesSet";
|
|
457
|
+
NetworkRulesDeclared: "NetworkRulesDeclared";
|
|
456
458
|
NetworkPluginRegistered: "NetworkPluginRegistered";
|
|
457
459
|
NetworkPluginUnregistered: "NetworkPluginUnregistered";
|
|
458
460
|
}>;
|
package/dist/schemas/follow.d.ts
CHANGED
|
@@ -58,6 +58,7 @@ export declare const followFleetOutputSchema: z.ZodObject<{
|
|
|
58
58
|
WorktreeCleared: "WorktreeCleared";
|
|
59
59
|
WorktreeClearRemoved: "WorktreeClearRemoved";
|
|
60
60
|
NetworkRulesSet: "NetworkRulesSet";
|
|
61
|
+
NetworkRulesDeclared: "NetworkRulesDeclared";
|
|
61
62
|
NetworkPluginRegistered: "NetworkPluginRegistered";
|
|
62
63
|
NetworkPluginUnregistered: "NetworkPluginUnregistered";
|
|
63
64
|
}>;
|
|
@@ -179,6 +179,7 @@ export declare const timelineEntrySchema: z.ZodObject<{
|
|
|
179
179
|
WorktreeCleared: "WorktreeCleared";
|
|
180
180
|
WorktreeClearRemoved: "WorktreeClearRemoved";
|
|
181
181
|
NetworkRulesSet: "NetworkRulesSet";
|
|
182
|
+
NetworkRulesDeclared: "NetworkRulesDeclared";
|
|
182
183
|
NetworkPluginRegistered: "NetworkPluginRegistered";
|
|
183
184
|
NetworkPluginUnregistered: "NetworkPluginUnregistered";
|
|
184
185
|
}>;
|
|
@@ -255,6 +256,7 @@ export declare const shipTimelineOutputSchema: z.ZodArray<z.ZodObject<{
|
|
|
255
256
|
WorktreeCleared: "WorktreeCleared";
|
|
256
257
|
WorktreeClearRemoved: "WorktreeClearRemoved";
|
|
257
258
|
NetworkRulesSet: "NetworkRulesSet";
|
|
259
|
+
NetworkRulesDeclared: "NetworkRulesDeclared";
|
|
258
260
|
NetworkPluginRegistered: "NetworkPluginRegistered";
|
|
259
261
|
NetworkPluginUnregistered: "NetworkPluginUnregistered";
|
|
260
262
|
}>;
|
|
@@ -2,33 +2,125 @@ import { z } from 'zod';
|
|
|
2
2
|
/**
|
|
3
3
|
* Network rules (decision 0034): which ships may send to which. A rule says
|
|
4
4
|
* that the ships matching one label selector may send to the ships matching
|
|
5
|
-
* another; a selector is a
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* another; a selector is a list of terms that must all hold (an empty one
|
|
6
|
+
* holds for every ship). Allow-only. The limits are the decision's; the server
|
|
7
|
+
* checks them, so every refusal names it.
|
|
8
8
|
*/
|
|
9
|
-
/** The most rules one fleet may hold. */
|
|
9
|
+
/** The most rules of argo's one fleet may hold, beside the rules its ships declared (decision 0037). */
|
|
10
10
|
export declare const NETWORK_RULES_MAX = 200;
|
|
11
|
+
/** The most rules one ship may declare (decision 0037). */
|
|
12
|
+
export declare const DECLARED_NETWORK_RULES_MAX = 20;
|
|
11
13
|
/** The most refusals one read of them answers: the latest. */
|
|
12
14
|
export declare const REACH_REFUSALS_READ_MAX = 100;
|
|
13
|
-
/**
|
|
14
|
-
export declare const
|
|
15
|
+
/** A term's value that is any value of its label: the ship carries the label. */
|
|
16
|
+
export declare const ANY_LABEL_VALUE: "*";
|
|
17
|
+
/** A term's value that is any value of its label the ship on the other side of the rule carries too. */
|
|
18
|
+
export declare const SAME_LABEL_VALUE: "#";
|
|
19
|
+
/**
|
|
20
|
+
* One term of a selector: an exact label value, written as its id, which
|
|
21
|
+
* names its label; or a label with any value (`*`) or with the same value as
|
|
22
|
+
* the other side's (`#`), which binds the same label there only.
|
|
23
|
+
*/
|
|
24
|
+
export declare const selectorTermSchema: z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
25
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
26
|
+
value: z.ZodEnum<{
|
|
27
|
+
"*": "*";
|
|
28
|
+
"#": "#";
|
|
29
|
+
}>;
|
|
30
|
+
}, z.core.$strip>]>;
|
|
31
|
+
export type SelectorTerm = z.infer<typeof selectorTermSchema>;
|
|
32
|
+
/** The ships for which every one of these terms holds, combined with AND. */
|
|
33
|
+
export declare const labelSelectorSchema: z.ZodArray<z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
34
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
35
|
+
value: z.ZodEnum<{
|
|
36
|
+
"*": "*";
|
|
37
|
+
"#": "#";
|
|
38
|
+
}>;
|
|
39
|
+
}, z.core.$strip>]>>;
|
|
15
40
|
/** One rule: the ships matching `from` may send to the ships matching `to`. */
|
|
16
41
|
export declare const networkRuleSchema: z.ZodObject<{
|
|
17
|
-
from: z.ZodArray<z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown
|
|
18
|
-
|
|
42
|
+
from: z.ZodArray<z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
43
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
44
|
+
value: z.ZodEnum<{
|
|
45
|
+
"*": "*";
|
|
46
|
+
"#": "#";
|
|
47
|
+
}>;
|
|
48
|
+
}, z.core.$strip>]>>;
|
|
49
|
+
to: z.ZodArray<z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
50
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
51
|
+
value: z.ZodEnum<{
|
|
52
|
+
"*": "*";
|
|
53
|
+
"#": "#";
|
|
54
|
+
}>;
|
|
55
|
+
}, z.core.$strip>]>>;
|
|
19
56
|
}, z.core.$strip>;
|
|
20
57
|
export type NetworkRule = z.infer<typeof networkRuleSchema>;
|
|
21
58
|
/** Input of `fleet.setNetworkRules` (fleet:network): every rule the fleet holds from now on, or none for all-to-all. */
|
|
22
59
|
export declare const setNetworkRulesInputSchema: z.ZodObject<{
|
|
23
60
|
rules: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
24
|
-
from: z.ZodArray<z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown
|
|
25
|
-
|
|
61
|
+
from: z.ZodArray<z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
62
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
63
|
+
value: z.ZodEnum<{
|
|
64
|
+
"*": "*";
|
|
65
|
+
"#": "#";
|
|
66
|
+
}>;
|
|
67
|
+
}, z.core.$strip>]>>;
|
|
68
|
+
to: z.ZodArray<z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
69
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
70
|
+
value: z.ZodEnum<{
|
|
71
|
+
"*": "*";
|
|
72
|
+
"#": "#";
|
|
73
|
+
}>;
|
|
74
|
+
}, z.core.$strip>]>>;
|
|
26
75
|
}, z.core.$strip>>>;
|
|
27
76
|
}, z.core.$strip>;
|
|
28
77
|
/** Output of `fleet.setNetworkRules`: the version the fleet's network settings have now. */
|
|
29
78
|
export declare const setNetworkRulesOutputSchema: z.ZodObject<{
|
|
30
79
|
version: z.ZodInt;
|
|
31
80
|
}, z.core.$strip>;
|
|
81
|
+
/** Input of `fleet.declareNetworkRules` (labels:define): every rule the ship declares from now on, on labels it owns; an empty list withdraws them (decision 0037). */
|
|
82
|
+
export declare const declareNetworkRulesInputSchema: z.ZodObject<{
|
|
83
|
+
rules: z.ZodArray<z.ZodObject<{
|
|
84
|
+
from: z.ZodArray<z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
85
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
86
|
+
value: z.ZodEnum<{
|
|
87
|
+
"*": "*";
|
|
88
|
+
"#": "#";
|
|
89
|
+
}>;
|
|
90
|
+
}, z.core.$strip>]>>;
|
|
91
|
+
to: z.ZodArray<z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
92
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
93
|
+
value: z.ZodEnum<{
|
|
94
|
+
"*": "*";
|
|
95
|
+
"#": "#";
|
|
96
|
+
}>;
|
|
97
|
+
}, z.core.$strip>]>>;
|
|
98
|
+
}, z.core.$strip>>;
|
|
99
|
+
}, z.core.$strip>;
|
|
100
|
+
/** Output of `fleet.declareNetworkRules`: how many rules the ship declares now. */
|
|
101
|
+
export declare const declareNetworkRulesOutputSchema: z.ZodObject<{
|
|
102
|
+
rules: z.ZodInt;
|
|
103
|
+
}, z.core.$strip>;
|
|
104
|
+
/** Output of `fleet.declaredNetworkRules` (fleet:network): each ship that declared rules, with its whole list. */
|
|
105
|
+
export declare const declaredNetworkRulesOutputSchema: z.ZodArray<z.ZodObject<{
|
|
106
|
+
shipId: z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>;
|
|
107
|
+
rules: z.ZodArray<z.ZodObject<{
|
|
108
|
+
from: z.ZodArray<z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
109
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
110
|
+
value: z.ZodEnum<{
|
|
111
|
+
"*": "*";
|
|
112
|
+
"#": "#";
|
|
113
|
+
}>;
|
|
114
|
+
}, z.core.$strip>]>>;
|
|
115
|
+
to: z.ZodArray<z.ZodUnion<readonly [z.ZodType<`lbv_${string}`, unknown, z.core.$ZodTypeInternals<`lbv_${string}`, unknown>>, z.ZodObject<{
|
|
116
|
+
labelId: z.ZodType<`lbl_${string}`, unknown, z.core.$ZodTypeInternals<`lbl_${string}`, unknown>>;
|
|
117
|
+
value: z.ZodEnum<{
|
|
118
|
+
"*": "*";
|
|
119
|
+
"#": "#";
|
|
120
|
+
}>;
|
|
121
|
+
}, z.core.$strip>]>>;
|
|
122
|
+
}, z.core.$strip>>;
|
|
123
|
+
}, z.core.$strip>>;
|
|
32
124
|
/**
|
|
33
125
|
* What happens to sends while a fleet's networking plugin is unavailable
|
|
34
126
|
* (decision 0035): every send refused but the fixed exceptions, every send
|
package/dist/schemas/network.js
CHANGED
|
@@ -4,22 +4,40 @@ import { carriedLabelSchema } from './label.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Network rules (decision 0034): which ships may send to which. A rule says
|
|
6
6
|
* that the ships matching one label selector may send to the ships matching
|
|
7
|
-
* another; a selector is a
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* another; a selector is a list of terms that must all hold (an empty one
|
|
8
|
+
* holds for every ship). Allow-only. The limits are the decision's; the server
|
|
9
|
+
* checks them, so every refusal names it.
|
|
10
10
|
*/
|
|
11
|
-
/** The most rules one fleet may hold. */
|
|
11
|
+
/** The most rules of argo's one fleet may hold, beside the rules its ships declared (decision 0037). */
|
|
12
12
|
export const NETWORK_RULES_MAX = 200;
|
|
13
|
+
/** The most rules one ship may declare (decision 0037). */
|
|
14
|
+
export const DECLARED_NETWORK_RULES_MAX = 20;
|
|
13
15
|
/** The most refusals one read of them answers: the latest. */
|
|
14
16
|
export const REACH_REFUSALS_READ_MAX = 100;
|
|
15
|
-
/**
|
|
16
|
-
export const
|
|
17
|
+
/** A term's value that is any value of its label: the ship carries the label. */
|
|
18
|
+
export const ANY_LABEL_VALUE = '*';
|
|
19
|
+
/** A term's value that is any value of its label the ship on the other side of the rule carries too. */
|
|
20
|
+
export const SAME_LABEL_VALUE = '#';
|
|
21
|
+
/**
|
|
22
|
+
* One term of a selector: an exact label value, written as its id, which
|
|
23
|
+
* names its label; or a label with any value (`*`) or with the same value as
|
|
24
|
+
* the other side's (`#`), which binds the same label there only.
|
|
25
|
+
*/
|
|
26
|
+
export const selectorTermSchema = z.union([idSchema('labelValue'), z.object({ labelId: idSchema('label'), value: z.enum([ANY_LABEL_VALUE, SAME_LABEL_VALUE]) })]);
|
|
27
|
+
/** The ships for which every one of these terms holds, combined with AND. */
|
|
28
|
+
export const labelSelectorSchema = z.array(selectorTermSchema);
|
|
17
29
|
/** One rule: the ships matching `from` may send to the ships matching `to`. */
|
|
18
30
|
export const networkRuleSchema = z.object({ from: labelSelectorSchema, to: labelSelectorSchema });
|
|
19
31
|
/** Input of `fleet.setNetworkRules` (fleet:network): every rule the fleet holds from now on, or none for all-to-all. */
|
|
20
32
|
export const setNetworkRulesInputSchema = z.object({ rules: z.array(networkRuleSchema).nullable() });
|
|
21
33
|
/** Output of `fleet.setNetworkRules`: the version the fleet's network settings have now. */
|
|
22
34
|
export const setNetworkRulesOutputSchema = z.object({ version: z.int().min(1) });
|
|
35
|
+
/** Input of `fleet.declareNetworkRules` (labels:define): every rule the ship declares from now on, on labels it owns; an empty list withdraws them (decision 0037). */
|
|
36
|
+
export const declareNetworkRulesInputSchema = z.object({ rules: z.array(networkRuleSchema) });
|
|
37
|
+
/** Output of `fleet.declareNetworkRules`: how many rules the ship declares now. */
|
|
38
|
+
export const declareNetworkRulesOutputSchema = z.object({ rules: z.int().min(0) });
|
|
39
|
+
/** Output of `fleet.declaredNetworkRules` (fleet:network): each ship that declared rules, with its whole list. */
|
|
40
|
+
export const declaredNetworkRulesOutputSchema = z.array(z.object({ shipId: idSchema('ship'), rules: z.array(networkRuleSchema) }));
|
|
23
41
|
/**
|
|
24
42
|
* What happens to sends while a fleet's networking plugin is unavailable
|
|
25
43
|
* (decision 0035): every send refused but the fixed exceptions, every send
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/schemas/network.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/system.d.ts
CHANGED
|
@@ -5,3 +5,10 @@ export declare const pingOutputSchema: z.ZodObject<{
|
|
|
5
5
|
fleetCount: z.ZodInt;
|
|
6
6
|
}, z.core.$strip>;
|
|
7
7
|
export type PingOutput = z.infer<typeof pingOutputSchema>;
|
|
8
|
+
/** Output of `system.version`: the versions the server process runs and the latest migration applied to its database (null before the first). */
|
|
9
|
+
export declare const systemVersionOutputSchema: z.ZodObject<{
|
|
10
|
+
server: z.ZodString;
|
|
11
|
+
common: z.ZodString;
|
|
12
|
+
migration: z.ZodNullable<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export type SystemVersionOutput = z.infer<typeof systemVersionOutputSchema>;
|
package/dist/schemas/system.js
CHANGED
|
@@ -5,4 +5,10 @@ export const pingOutputSchema = z.object({
|
|
|
5
5
|
serverTime: z.iso.datetime(),
|
|
6
6
|
fleetCount: z.int().nonnegative(),
|
|
7
7
|
});
|
|
8
|
+
/** Output of `system.version`: the versions the server process runs and the latest migration applied to its database (null before the first). */
|
|
9
|
+
export const systemVersionOutputSchema = z.object({
|
|
10
|
+
server: z.string(),
|
|
11
|
+
common: z.string(),
|
|
12
|
+
migration: z.string().nullable(),
|
|
13
|
+
});
|
|
8
14
|
//# sourceMappingURL=system.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/schemas/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,uBAAuB;IACvB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAClC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/schemas/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,uBAAuB;IACvB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAClC,CAAC,CAAC;AAIH,iJAAiJ;AACjJ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC"}
|