@aeolus-fleet/core 0.20.5 → 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.
Files changed (99) hide show
  1. package/dist/adapters/http/server.d.ts +2 -0
  2. package/dist/adapters/http/server.js +11 -0
  3. package/dist/adapters/http/server.js.map +1 -1
  4. package/dist/adapters/prisma/client.d.ts +2 -0
  5. package/dist/adapters/prisma/client.js +19 -1
  6. package/dist/adapters/prisma/client.js.map +1 -1
  7. package/dist/adapters/prisma/fleet-busy.d.ts +2 -0
  8. package/dist/adapters/prisma/fleet-busy.js +26 -0
  9. package/dist/adapters/prisma/fleet-busy.js.map +1 -0
  10. package/dist/adapters/prisma/generated/browser.d.ts +7 -0
  11. package/dist/adapters/prisma/generated/client.d.ts +7 -0
  12. package/dist/adapters/prisma/generated/internal/class.d.ts +11 -0
  13. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  14. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  15. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +83 -1
  16. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +6 -0
  17. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  18. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +7 -0
  19. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +6 -0
  20. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  21. package/dist/adapters/prisma/generated/models/DeclaredNetworkRules.d.ts +1195 -0
  22. package/dist/adapters/prisma/generated/models/DeclaredNetworkRules.js +2 -0
  23. package/dist/adapters/prisma/generated/models/DeclaredNetworkRules.js.map +1 -0
  24. package/dist/adapters/prisma/generated/models/Fleet.d.ts +259 -0
  25. package/dist/adapters/prisma/generated/models/Ship.d.ts +263 -0
  26. package/dist/adapters/prisma/generated/models.d.ts +1 -0
  27. package/dist/adapters/prisma/migrate.js +17 -4
  28. package/dist/adapters/prisma/migrate.js.map +1 -1
  29. package/dist/adapters/prisma/network.d.ts +3 -1
  30. package/dist/adapters/prisma/network.js +23 -0
  31. package/dist/adapters/prisma/network.js.map +1 -1
  32. package/dist/adapters/prisma/registry.js +2 -0
  33. package/dist/adapters/prisma/registry.js.map +1 -1
  34. package/dist/adapters/prisma/unit-of-work.d.ts +2 -1
  35. package/dist/adapters/prisma/unit-of-work.js +2 -1
  36. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  37. package/dist/adapters/trpc/console.d.ts +2 -1
  38. package/dist/adapters/trpc/console.js +6 -2
  39. package/dist/adapters/trpc/console.js.map +1 -1
  40. package/dist/adapters/trpc/context.d.ts +9 -1
  41. package/dist/adapters/trpc/fleet.d.ts +46 -3
  42. package/dist/adapters/trpc/fleet.js +34 -6
  43. package/dist/adapters/trpc/fleet.js.map +1 -1
  44. package/dist/adapters/trpc/router.d.ts +52 -3
  45. package/dist/adapters/trpc/ship-contract.js +2 -0
  46. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  47. package/dist/adapters/trpc/ship-protocol.js +2 -2
  48. package/dist/adapters/trpc/ship-protocol.js.map +1 -1
  49. package/dist/adapters/trpc/system.d.ts +15 -0
  50. package/dist/adapters/trpc/system.js +10 -1
  51. package/dist/adapters/trpc/system.js.map +1 -1
  52. package/dist/adapters/trpc/trpc.d.ts +11 -0
  53. package/dist/adapters/trpc/trpc.js +26 -10
  54. package/dist/adapters/trpc/trpc.js.map +1 -1
  55. package/dist/app.js +2 -1
  56. package/dist/app.js.map +1 -1
  57. package/dist/domain/registry/check-reach.d.ts +15 -0
  58. package/dist/domain/registry/check-reach.js +4 -4
  59. package/dist/domain/registry/check-reach.js.map +1 -1
  60. package/dist/domain/registry/declare-network-rules.d.ts +33 -0
  61. package/dist/domain/registry/declare-network-rules.js +30 -0
  62. package/dist/domain/registry/declare-network-rules.js.map +1 -0
  63. package/dist/domain/registry/declared-network-rules.d.ts +60 -0
  64. package/dist/domain/registry/declared-network-rules.js +70 -0
  65. package/dist/domain/registry/declared-network-rules.js.map +1 -0
  66. package/dist/domain/registry/explain-reach.d.ts +34 -0
  67. package/dist/domain/registry/explain-reach.js +42 -0
  68. package/dist/domain/registry/explain-reach.js.map +1 -0
  69. package/dist/domain/registry/label.d.ts +8 -10
  70. package/dist/domain/registry/label.js +4 -16
  71. package/dist/domain/registry/label.js.map +1 -1
  72. package/dist/domain/registry/network-settings.d.ts +26 -13
  73. package/dist/domain/registry/network-settings.js +68 -31
  74. package/dist/domain/registry/network-settings.js.map +1 -1
  75. package/dist/domain/registry/ports.d.ts +12 -0
  76. package/dist/domain/registry/read-assigned-crew-requests.d.ts +2 -2
  77. package/dist/domain/registry/read-assigned-crew-requests.js +2 -1
  78. package/dist/domain/registry/read-assigned-crew-requests.js.map +1 -1
  79. package/dist/domain/registry/read-declared-network-rules.d.ts +16 -0
  80. package/dist/domain/registry/read-declared-network-rules.js +9 -0
  81. package/dist/domain/registry/read-declared-network-rules.js.map +1 -0
  82. package/dist/domain/registry/retire-ship.d.ts +4 -2
  83. package/dist/domain/registry/retire-ship.js +10 -1
  84. package/dist/domain/registry/retire-ship.js.map +1 -1
  85. package/dist/domain/registry/set-network-rules.d.ts +4 -2
  86. package/dist/domain/registry/set-network-rules.js +4 -2
  87. package/dist/domain/registry/set-network-rules.js.map +1 -1
  88. package/dist/domain/registry/unassign-label.js +1 -1
  89. package/dist/domain/registry/unassign-label.js.map +1 -1
  90. package/dist/domain/shared/errors.d.ts +1 -1
  91. package/dist/domain/shared/errors.js.map +1 -1
  92. package/dist/wiring.d.ts +6 -0
  93. package/dist/wiring.js +7 -1
  94. package/dist/wiring.js.map +1 -1
  95. package/package.json +3 -2
  96. package/src/adapters/prisma/migrations/20261010110000_network_rules_through_plugin/migration.sql +4 -0
  97. package/src/adapters/prisma/migrations/20261010130000_cleared_network_rules_on_record/migration.sql +57 -0
  98. package/src/adapters/prisma/migrations/20261010210000_declared_network_rules/migration.sql +16 -0
  99. package/src/adapters/prisma/schema.prisma +17 -0
@@ -5,7 +5,7 @@
5
5
  * fleet holds its rules, or none (all-to-all), with a version that moves on
6
6
  * every set, so a refusal names the settings that refused it.
7
7
  */
8
- import { NETWORK_RULES_MAX, SHIP_LABELS_MAX } from '@aeolus-fleet/common';
8
+ import { ANY_LABEL_VALUE, NETWORK_RULES_MAX, SAME_LABEL_VALUE, SHIP_LABELS_MAX, } from '@aeolus-fleet/common';
9
9
  import { refuse } from '../shared/errors.js';
10
10
  import { ok } from '../shared/result.js';
11
11
  /** A fleet that never set rules: none, at version 0, without a plugin. */
@@ -17,8 +17,8 @@ function refuseNotThePlugin() {
17
17
  }
18
18
  /**
19
19
  * The ship becomes the fleet's networking plugin, with what it declared, at
20
- * the next version, with NetworkPluginRegistered. The rules stay until it
21
- * supplies its own. The plugin may register again, replacing what it
20
+ * the next version, with NetworkPluginRegistered. A fleet without a plugin
21
+ * has no rules, so the plugin starts from none until it supplies its own. The plugin may register again, replacing what it
22
22
  * declared; another ship is refused until it unregisters: one owner of the
23
23
  * rules, as a label has one.
24
24
  */
@@ -72,19 +72,25 @@ export function unregisterNetworkPlugin(current, change) {
72
72
  }
73
73
  /**
74
74
  * The fleet's rules from now on, replacing the ones it had, at the next
75
- * version, with NetworkRulesSet. The rules are within the decision's limits:
76
- * at most 200, each selector at most 20 label values, as a ship carries no
77
- * more, each once. A value id need not exist: an unknown one matches no ship,
78
- * as in label selection. While a networking plugin is registered, only its
79
- * ship sets them (decision 0035).
75
+ * version, with NetworkRulesSet. The rules are within the decisions' limits:
76
+ * at most 200 of argo's plus every rule the fleet's ships declared, which the
77
+ * plugin adds to argo's when it supplies them (decision 0037); each selector
78
+ * at most 20 terms, as a ship carries no more label values, each term once, and a term of the same value on a label on
79
+ * both sides of its rule, as it binds that label there. An id need not
80
+ * exist: an unknown one matches no ship, as in label selection. Only the
81
+ * fleet's registered networking plugin sets them, argo included: rules exist
82
+ * only through a plugin (decision 0035).
80
83
  */
81
84
  export function setNetworkRules(current, change) {
82
- const { rules } = change;
83
- if (current.plugin !== null && current.plugin.shipId !== change.shipId) {
85
+ const { rules, declaredRules } = change;
86
+ if (current.plugin?.shipId !== change.shipId) {
84
87
  return refuseNotThePlugin();
85
88
  }
86
89
  if (rules !== null) {
87
- const invalid = invalidRules(rules);
90
+ if (rules.length > NETWORK_RULES_MAX + declaredRules) {
91
+ return refuse('INVALID_NETWORK_RULES', `A fleet holds at most ${String(NETWORK_RULES_MAX)} network rules of argo's plus the ${String(declaredRules)} its ships declared (decision 0037)`);
92
+ }
93
+ const invalid = rules.map(invalidRule).find((broken) => broken !== undefined);
88
94
  if (invalid !== undefined) {
89
95
  return refuse('INVALID_NETWORK_RULES', `${invalid} (decision 0034)`);
90
96
  }
@@ -103,24 +109,36 @@ export function setNetworkRules(current, change) {
103
109
  ],
104
110
  });
105
111
  }
106
- /** What breaks the limits, said for the caller, or undefined when the rules keep them. */
107
- function invalidRules(rules) {
108
- if (rules.length > NETWORK_RULES_MAX) {
109
- return `A fleet holds at most ${String(NETWORK_RULES_MAX)} network rules`;
110
- }
111
- for (const selector of rules.flatMap((rule) => [rule.from, rule.to])) {
112
- if (selector.length > SHIP_LABELS_MAX) {
113
- return `A selector holds at most ${String(SHIP_LABELS_MAX)} label values, as a ship carries no more`;
114
- }
115
- const twice = selector.find((valueId, index) => selector.indexOf(valueId) !== index);
116
- if (twice !== undefined) {
117
- return `A selector names each label value once: ${twice} twice`;
118
- }
112
+ /** What breaks a rule's own limits, said for the caller, or undefined when it keeps them (decision 0034). */
113
+ export function invalidRule(rule) {
114
+ return invalidSelector(rule.from) ?? invalidSelector(rule.to) ?? sameValueOnOneSide(rule);
115
+ }
116
+ function invalidSelector(selector) {
117
+ if (selector.length > SHIP_LABELS_MAX) {
118
+ return `A selector holds at most ${String(SHIP_LABELS_MAX)} terms, as a ship carries no more label values`;
119
119
  }
120
- return undefined;
120
+ const texts = selector.map(termText);
121
+ const twice = texts.find((text, index) => texts.indexOf(text) !== index);
122
+ return twice === undefined ? undefined : `A selector holds each term once: ${twice} twice`;
123
+ }
124
+ function sameValueOnOneSide(rule) {
125
+ const [from, to] = [sameValueLabels(rule.from), sameValueLabels(rule.to)];
126
+ const alone = [...from.filter((labelId) => !to.includes(labelId)), ...to.filter((labelId) => !from.includes(labelId))][0];
127
+ return alone === undefined ? undefined : `A term of the same value binds its label on both sides: ${termText({ labelId: alone, value: SAME_LABEL_VALUE })} is on one side only`;
128
+ }
129
+ /** A term as a refusal names it: an exact value by its id, any other by its label id and symbol. */
130
+ function termText(term) {
131
+ return typeof term === 'string' ? term : `${term.labelId}=${term.value}`;
121
132
  }
122
- function copyOfRule(rule) {
123
- return { from: [...rule.from], to: [...rule.to] };
133
+ function sameValueLabels(selector) {
134
+ return selector.flatMap((term) => (typeof term !== 'string' && term.value === SAME_LABEL_VALUE ? [term.labelId] : []));
135
+ }
136
+ /** A copy of the rule, so what is kept never changes with what was given. */
137
+ export function copyOfRule(rule) {
138
+ return { from: rule.from.map(copyOfTerm), to: rule.to.map(copyOfTerm) };
139
+ }
140
+ function copyOfTerm(term) {
141
+ return typeof term === 'string' ? term : { ...term };
124
142
  }
125
143
  const MILLISECONDS_PER_SECOND = 1000;
126
144
  /**
@@ -165,10 +183,29 @@ export function allowsReach(settings, send) {
165
183
  if (settings.rules === null || sender.kind === 'operator' || recipient.kind === 'operator' || isAnswerToSender) {
166
184
  return true;
167
185
  }
168
- return settings.rules.some((rule) => matches(rule.from, sender) && matches(rule.to, recipient));
186
+ return settings.rules.some((rule) => matches(rule.from, { ship: sender, otherSide: recipient }) && matches(rule.to, { ship: recipient, otherSide: sender }));
169
187
  }
170
- /** A ship matches a selector when it carries every value in it: exact matches, combined with AND. */
171
- function matches(selector, ship) {
172
- return selector.every((valueId) => ship.labels.includes(valueId));
188
+ /** A ship matches a selector when every term of it holds, combined with AND. */
189
+ function matches(selector, sides) {
190
+ return selector.every((term) => holds(term, sides));
191
+ }
192
+ /**
193
+ * An exact value holds for a ship carrying it; any value for a ship carrying
194
+ * a value of the label; the same value when the ship and the other side carry
195
+ * one value of the label both, each such term on its own (a ship may carry
196
+ * several values of one label, decision 0031).
197
+ */
198
+ function holds(term, sides) {
199
+ const { ship, otherSide } = sides;
200
+ if (typeof term === 'string') {
201
+ return ship.labels.some((label) => label.valueId === term);
202
+ }
203
+ const values = ship.labels.filter((label) => label.labelId === term.labelId);
204
+ switch (term.value) {
205
+ case ANY_LABEL_VALUE:
206
+ return values.length > 0;
207
+ case SAME_LABEL_VALUE:
208
+ return values.some((value) => otherSide.labels.some((other) => other.labelId === term.labelId && other.valueId === value.valueId));
209
+ }
173
210
  }
174
211
  //# sourceMappingURL=network-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network-settings.js","sourceRoot":"","sources":["../../../src/domain/registry/network-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network-settings.js","sourceRoot":"","sources":["../../../src/domain/registry/network-settings.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import type { InstallationRequest } from './installation-request.js';
7
7
  import type { CarriedLabel, Label, ListedLabel, ShipLabel } from './label.js';
8
8
  import type { FleetLimitSettings, InstallationSettings } from './limits.js';
9
9
  import type { Lease, Location } from './lease.js';
10
+ import type { DeclaredNetworkRules } from './declared-network-rules.js';
10
11
  import type { NetworkSettings } from './network-settings.js';
11
12
  import type { ReachRefusal } from './reach-refusal.js';
12
13
  import type { Ship } from './ship.js';
@@ -110,6 +111,8 @@ export interface ShipRepository {
110
111
  findActiveByNameForShare(fleetId: FleetId, name: string): Promise<Ship | undefined>;
111
112
  /** Whether at least one ship of the fleet with this type is not retired and receives: the viewer ship receives nothing (decision 0022). */
112
113
  hasActiveShipOfType(fleetId: FleetId, type: string): Promise<boolean>;
114
+ /** The fleet's ships that are not retired and receive, argo included, never the viewer ship (decision 0022). By id. */
115
+ listActive(fleetId: FleetId): Promise<Ship[]>;
113
116
  /** The fleet's ships of the type that may take a type delivery: not retired, never the viewer ship. By id. */
114
117
  listActiveOfType(fleetId: FleetId, type: string): Promise<Ship[]>;
115
118
  /** Gives the ship a new name. */
@@ -224,6 +227,15 @@ export interface NetworkSettingsRepository {
224
227
  findForUpdate(fleetId: FleetId): Promise<NetworkSettings>;
225
228
  save(settings: NetworkSettings): Promise<void>;
226
229
  }
230
+ /** Each ship's declared network rules (decision 0037). */
231
+ export interface DeclaredNetworkRulesRepository {
232
+ /** Every ship's declared rules in the fleet, by ship id: the order the ships were commissioned. */
233
+ list(fleetId: FleetId): Promise<DeclaredNetworkRules[]>;
234
+ /** The ship's declared rules; none while it declares none. */
235
+ find(fleetId: FleetId, shipId: ShipId): Promise<DeclaredNetworkRules | undefined>;
236
+ /** Keeps the ship's whole list from now on; an empty one keeps none. */
237
+ save(declared: DeclaredNetworkRules): Promise<void>;
238
+ }
227
239
  /** Outbound port: the records of the sends the fleet's network rules refused (decision 0034). */
228
240
  export interface ReachRefusalRepository {
229
241
  record(refusal: ReachRefusal): Promise<void>;
@@ -1,8 +1,8 @@
1
1
  import type { Caller } from '../shared/caller.js';
2
2
  import type { CrewRequest } from './crew-request.js';
3
3
  import type { CrewRequestRepository } from './ports.js';
4
- /** A crew request as its trierarch reads it: which ship, with what settings, and how it stands. */
5
- export type AssignedCrewRequest = Pick<CrewRequest, 'shipId' | 'settings' | 'settingsVersion' | 'requestedAt' | 'status'>;
4
+ /** A crew request as its trierarch reads it: which ship, with what settings, how it stands, and whether its crew is final. */
5
+ export type AssignedCrewRequest = Pick<CrewRequest, 'shipId' | 'settings' | 'settingsVersion' | 'requestedAt' | 'status' | 'isFinal'>;
6
6
  export type ReadAssignedCrewRequests = (caller: Caller) => Promise<AssignedCrewRequest[]>;
7
7
  /**
8
8
  * Use case: a trierarch reads the crew requests assigned to its ship, oldest
@@ -4,12 +4,13 @@
4
4
  * (decision 0029). Its scope (crew:run) is checked before this runs.
5
5
  */
6
6
  export function createReadAssignedCrewRequests(deps) {
7
- return async (caller) => (await deps.crewRequests.listAssignedTo(caller.fleetId, caller.shipId)).map(({ shipId, settings, settingsVersion, requestedAt, status }) => ({
7
+ return async (caller) => (await deps.crewRequests.listAssignedTo(caller.fleetId, caller.shipId)).map(({ shipId, settings, settingsVersion, requestedAt, status, isFinal }) => ({
8
8
  shipId,
9
9
  settings,
10
10
  settingsVersion,
11
11
  requestedAt,
12
12
  status,
13
+ isFinal,
13
14
  }));
14
15
  }
15
16
  //# sourceMappingURL=read-assigned-crew-requests.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-assigned-crew-requests.js","sourceRoot":"","sources":["../../../src/domain/registry/read-assigned-crew-requests.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAqE;IAClH,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,CACtB,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3I,MAAM;QACN,QAAQ;QACR,eAAe;QACf,WAAW;QACX,MAAM;KACP,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"read-assigned-crew-requests.js","sourceRoot":"","sources":["../../../src/domain/registry/read-assigned-crew-requests.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAqE;IAClH,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,CACtB,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACpJ,MAAM;QACN,QAAQ;QACR,eAAe;QACf,WAAW;QACX,MAAM;QACN,OAAO;KACR,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { ShipId } from '@aeolus-fleet/common';
2
+ import type { Caller } from '../shared/caller.js';
3
+ import type { NetworkRule } from './network-settings.js';
4
+ import type { DeclaredNetworkRulesRepository } from './ports.js';
5
+ export type ReadDeclaredNetworkRules = (caller: Caller) => Promise<{
6
+ shipId: ShipId;
7
+ rules: readonly NetworkRule[];
8
+ }[]>;
9
+ /**
10
+ * Use case: the fleet's networking plugin reads every ship's declared rules,
11
+ * each ship with its whole list, to add them to argo's when it supplies the
12
+ * list (decision 0037). Its scope (fleet:network) is checked before this runs.
13
+ */
14
+ export declare function createReadDeclaredNetworkRules(deps: {
15
+ declaredNetworkRules: Pick<DeclaredNetworkRulesRepository, 'list'>;
16
+ }): ReadDeclaredNetworkRules;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Use case: the fleet's networking plugin reads every ship's declared rules,
3
+ * each ship with its whole list, to add them to argo's when it supplies the
4
+ * list (decision 0037). Its scope (fleet:network) is checked before this runs.
5
+ */
6
+ export function createReadDeclaredNetworkRules(deps) {
7
+ return async (caller) => (await deps.declaredNetworkRules.list(caller.fleetId)).map(({ shipId, rules }) => ({ shipId, rules }));
8
+ }
9
+ //# sourceMappingURL=read-declared-network-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-declared-network-rules.js","sourceRoot":"","sources":["../../../src/domain/registry/read-declared-network-rules.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAA4E;IACzH,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAClI,CAAC"}
@@ -6,7 +6,7 @@ import { type DomainError } from '../shared/errors.js';
6
6
  import { type Result } from '../shared/result.js';
7
7
  import type { UnitOfWork } from '../shared/unit-of-work.js';
8
8
  import { type LeaseTx } from './leases.js';
9
- import type { ClearRequestRepository, CrewRequestRepository, LabelRepository, NetworkSettingsRepository, ShipRepository } from './ports.js';
9
+ import type { ClearRequestRepository, CrewRequestRepository, DeclaredNetworkRulesRepository, LabelRepository, NetworkSettingsRepository, ShipRepository } from './ports.js';
10
10
  import { type RetireRefusal } from './ship.js';
11
11
  export interface RetireShipTx extends LeaseTx, CredentialTx {
12
12
  ships: ShipRepository;
@@ -14,6 +14,7 @@ export interface RetireShipTx extends LeaseTx, CredentialTx {
14
14
  clearRequests: ClearRequestRepository;
15
15
  labels: LabelRepository;
16
16
  networkSettings: Pick<NetworkSettingsRepository, 'findForUpdate' | 'save'>;
17
+ declaredNetworkRules: Pick<DeclaredNetworkRulesRepository, 'find' | 'save'>;
17
18
  }
18
19
  export type RetireShipRefusal = DomainError<'SHIP_NOT_FOUND'> | RetireRefusal;
19
20
  export type RetireShip = (caller: Caller, input: {
@@ -34,7 +35,8 @@ export type RetireShip = (caller: Caller, input: {
34
35
  * and the labels it owns retire with it, each locked first and every
35
36
  * assignment of it gone first (decision 0031). A retired trierarch clears
36
37
  * nothing: its pending clear requests go, one WorktreeClearRemoved each
37
- * (decision 0032). A retired networking plugin unregisters, its rules going
38
+ * (decision 0032). The network rules it declared go with its labels
39
+ * (decision 0037). A retired networking plugin unregisters, its rules going
38
40
  * with it: all-to-all (decision 0035). The caller's scope (fleet:manage) is
39
41
  * checked before this runs.
40
42
  *
@@ -6,6 +6,7 @@ import { removeClearRequestsOf } from './clear-request.js';
6
6
  import { removeCrewRequest } from './crew-request.js';
7
7
  import { retireLabelsWith } from './label.js';
8
8
  import { endLease } from './leases.js';
9
+ import { withdrawWithRetiredShip } from './declared-network-rules.js';
9
10
  import { unregisterNetworkPlugin } from './network-settings.js';
10
11
  import { checkCanRetire } from './ship.js';
11
12
  /**
@@ -21,7 +22,8 @@ import { checkCanRetire } from './ship.js';
21
22
  * and the labels it owns retire with it, each locked first and every
22
23
  * assignment of it gone first (decision 0031). A retired trierarch clears
23
24
  * nothing: its pending clear requests go, one WorktreeClearRemoved each
24
- * (decision 0032). A retired networking plugin unregisters, its rules going
25
+ * (decision 0032). The network rules it declared go with its labels
26
+ * (decision 0037). A retired networking plugin unregisters, its rules going
25
27
  * with it: all-to-all (decision 0035). The caller's scope (fleet:manage) is
26
28
  * checked before this runs.
27
29
  *
@@ -90,6 +92,13 @@ export function createRetireShip(deps) {
90
92
  for (const event of labels.events) {
91
93
  await recordEvent(recorded, event);
92
94
  }
95
+ const withdrawn = withdrawWithRetiredShip(await tx.declaredNetworkRules.find(fleetId, shipId), { at, actor });
96
+ if (withdrawn !== undefined) {
97
+ await tx.declaredNetworkRules.save(withdrawn.declared);
98
+ for (const event of withdrawn.events) {
99
+ await recordEvent(recorded, event);
100
+ }
101
+ }
93
102
  // Any ship but the fleet's networking plugin leaves the settings as they are.
94
103
  const unregistered = unregisterNetworkPlugin(await tx.networkSettings.findForUpdate(fleetId), { shipId, at, actor });
95
104
  if (unregistered.isOk) {
@@ -1 +1 @@
1
- {"version":3,"file":"retire-ship.js","sourceRoot":"","sources":["../../../src/domain/registry/retire-ship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retire-ship.js","sourceRoot":"","sources":["../../../src/domain/registry/retire-ship.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@ import { type EventLog } from '../shared/events.js';
5
5
  import { type Result } from '../shared/result.js';
6
6
  import type { UnitOfWork } from '../shared/unit-of-work.js';
7
7
  import { type NetworkRule, type SetNetworkRulesRefusal } from './network-settings.js';
8
- import type { NetworkSettingsRepository } from './ports.js';
8
+ import type { DeclaredNetworkRulesRepository, NetworkSettingsRepository } from './ports.js';
9
9
  export interface SetNetworkRulesTx {
10
10
  networkSettings: Pick<NetworkSettingsRepository, 'findForUpdate' | 'save'>;
11
+ declaredNetworkRules: Pick<DeclaredNetworkRulesRepository, 'list'>;
11
12
  events: EventLog;
12
13
  }
13
14
  export type SetNetworkRules = (caller: Caller, input: {
@@ -17,7 +18,8 @@ export type SetNetworkRules = (caller: Caller, input: {
17
18
  }, SetNetworkRulesRefusal>>;
18
19
  /**
19
20
  * Use case: the caller sets the fleet's network rules, the whole list, or
20
- * none for all-to-all (decision 0034). Its scope (fleet:network, which argo
21
+ * none for all-to-all (decision 0034), argo's with the rules the fleet's
22
+ * ships declared added (decision 0037), which the limit counts. Its scope (fleet:network, which argo
21
23
  * holds) is checked before this runs. In one unit of work, holding the
22
24
  * settings exclusively so no send is checked halfway: the settings at their
23
25
  * next version, and NetworkRulesSet.
@@ -3,7 +3,8 @@ import { ok } from '../shared/result.js';
3
3
  import { setNetworkRules } from './network-settings.js';
4
4
  /**
5
5
  * Use case: the caller sets the fleet's network rules, the whole list, or
6
- * none for all-to-all (decision 0034). Its scope (fleet:network, which argo
6
+ * none for all-to-all (decision 0034), argo's with the rules the fleet's
7
+ * ships declared added (decision 0037), which the limit counts. Its scope (fleet:network, which argo
7
8
  * holds) is checked before this runs. In one unit of work, holding the
8
9
  * settings exclusively so no send is checked halfway: the settings at their
9
10
  * next version, and NetworkRulesSet.
@@ -11,7 +12,8 @@ import { setNetworkRules } from './network-settings.js';
11
12
  export function createSetNetworkRules(deps) {
12
13
  return (caller, input) => deps.uow.run(async (tx) => {
13
14
  const current = await tx.networkSettings.findForUpdate(caller.fleetId);
14
- const set = setNetworkRules(current, { rules: input.rules, shipId: caller.shipId, at: deps.clock.now(), actor: shipActor(caller.shipId) });
15
+ const declaredRules = (await tx.declaredNetworkRules.list(caller.fleetId)).reduce((count, declared) => count + declared.rules.length, 0);
16
+ const set = setNetworkRules(current, { rules: input.rules, declaredRules, shipId: caller.shipId, at: deps.clock.now(), actor: shipActor(caller.shipId) });
15
17
  if (!set.isOk) {
16
18
  return set;
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"set-network-rules.js","sourceRoot":"","sources":["../../../src/domain/registry/set-network-rules.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAiD,MAAM,uBAAuB,CAAC;AAUvG;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA4E;IAChH,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAgE,EAAE;QACtF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3I,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"set-network-rules.js","sourceRoot":"","sources":["../../../src/domain/registry/set-network-rules.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAiD,MAAM,uBAAuB,CAAC;AAWvG;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA4E;IAChH,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAgE,EAAE;QACtF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzI,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1J,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -21,7 +21,7 @@ export function createUnassignLabel(deps) {
21
21
  return refuse('LABEL_VALUE_NOT_FOUND', `The fleet has no label value ${input.valueId}`);
22
22
  }
23
23
  const owner = await tx.ships.find(fleetId, label.ownerShipId);
24
- const unassigned = unassignLabel({ label, ownerName: owner?.name ?? label.ownerShipId, ship, carried: await tx.labels.carriedBy(fleetId, ship.id) }, { callerShipId: caller.shipId, valueId: input.valueId, at: deps.clock.now(), actor: shipActor(caller.shipId) });
24
+ const unassigned = unassignLabel({ label, ownerName: owner?.name ?? label.ownerShipId, carried: await tx.labels.carriedBy(fleetId, ship.id) }, { callerShipId: caller.shipId, valueId: input.valueId, at: deps.clock.now(), actor: shipActor(caller.shipId) });
25
25
  if (!unassigned.isOk) {
26
26
  return unassigned;
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"unassign-label.js","sourceRoot":"","sources":["../../../src/domain/registry/unassign-label.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAA6B,MAAM,YAAY,CAAC;AAatE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA0E;IAC5G,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAoD,EAAE;QAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1E,sFAAsF;QACtF,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,OAAO,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,aAAa,CAC9B,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAClH,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAC/G,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"unassign-label.js","sourceRoot":"","sources":["../../../src/domain/registry/unassign-label.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAA6B,MAAM,YAAY,CAAC;AAatE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA0E;IAC5G,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAoD,EAAE;QAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1E,sFAAsF;QACtF,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,OAAO,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,aAAa,CAC9B,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAC5G,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAC/G,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type Err } from './result.js';
2
2
  /** Every reason the domain refuses a request. */
3
- export type DomainErrorKind = 'ASSIGNEE_NOT_ACTIVE' | 'CLEAR_REQUEST_LIMIT_REACHED' | 'CLEAR_REQUEST_NOT_FOUND' | 'CREW_REQUEST_ALREADY_ASSIGNED' | 'CREW_REQUEST_NOT_ASSIGNED_TO_CALLER' | 'CREW_REQUEST_NOT_FOUND' | 'CREW_REQUEST_NOT_RELEASING' | 'CREW_REQUEST_RELEASING' | 'CREW_REQUEST_FINAL' | 'CREW_REQUEST_SETTINGS_CHANGED' | 'CREW_REQUEST_SETTINGS_TOO_LARGE' | 'DELIVERY_HELD_BY_ANOTHER_SHIP' | 'DELIVERY_NOT_FOUND' | 'DELIVERY_NOT_A_PING' | 'DELIVERY_NOT_IN_FLIGHT' | 'DELIVERY_NOT_OPEN' | 'DELIVERY_NOT_UNDELIVERABLE' | 'FLEET_ALREADY_EXISTS' | 'FLEET_LIMIT_REACHED' | 'FLEET_NOT_FOUND' | 'FLEET_HAS_NO_VIEWER' | 'NOTICE_NOT_FOUND' | 'NOTICE_NOT_DISMISSIBLE' | 'GUIDE_NOT_FOUND' | 'GUIDE_STEP_NOT_FOUND' | 'IDEMPOTENCY_KEY_REUSED' | 'IN_REPLY_TO_NOT_FOUND' | 'MESSAGE_LIMIT_REACHED' | 'MODEL_REQUIRED' | 'INVALID_HARNESS' | 'MODEL_FROM_ARGO' | 'INVALID_CONTENT_TYPE' | 'INVALID_EMAIL' | 'INVALID_FLEET_NAME' | 'INVALID_FOLLOW_MAX' | 'INVALID_FOLLOW_WAIT' | 'INVALID_IDEMPOTENCY_KEY' | 'INVALID_INBOX_WAIT' | 'INVALID_LABEL_KEY' | 'INVALID_LABEL_VALUE' | 'INVALID_LABEL_VALUES' | 'INVALID_LIMIT' | 'INVALID_LOCATION' | 'INVALID_NETWORK_RULES' | 'INVALID_PASSWORD' | 'INVALID_RECEIVE_MAX' | 'INVALID_CREW_REQUEST_REASON' | 'INVALID_REPORT_DETAILS' | 'INVALID_REPORT_NOTE' | 'INVALID_REPORT_STATE' | 'INVALID_SHIP_NAME' | 'INVALID_SHIP_NOTE' | 'INVALID_SHIP_TYPE' | 'LABEL_CARRIED' | 'LABEL_KEY_TAKEN' | 'LABEL_NOT_FOUND' | 'LABEL_ON_OWN_SHIP' | 'LABEL_VALUE_CARRIED' | 'LABEL_VALUE_NOT_FOUND' | 'LEASE_ENDED' | 'MESSAGE_NOT_FOUND' | 'NETWORK_PLUGIN_REGISTERED' | 'NOT_A_TRIERARCH' | 'NOT_THE_LABEL_OWNER' | 'NOT_REACHABLE' | 'NOT_THE_NETWORK_PLUGIN' | 'NOT_THE_OPERATOR_SHIP' | 'OPERATOR_EMAIL_TAKEN' | 'OPERATOR_HAS_NO_PASSWORD' | 'OPERATOR_SHIP_GETS_NO_STARTING_PROMPT' | 'OPERATOR_SHIP_HAS_NO_SECRET' | 'OPERATOR_SHIP_IS_NOT_PINGED' | 'OPERATOR_SHIP_IS_PERMANENT' | 'PAYLOAD_TOO_LARGE' | 'PING_NOT_RESENT' | 'REPORT_DETAILS_TOO_LARGE' | 'RESERVED_CONTENT_TYPE' | 'SHIP_ALREADY_RETIRED' | 'SHIP_NAME_RESERVED' | 'SHIP_NAME_TAKEN' | 'SHIP_NOT_AWAITING_CREW' | 'SHIP_NOT_CREWED' | 'SHIP_LABEL_LIMIT_REACHED' | 'SHIP_LIMIT_REACHED' | 'SHIP_NOT_FOUND' | 'SIGN_IN_TICKET_INVALID' | 'UNKNOWN_CREW_TOKEN' | 'UNRESOLVABLE_SELECTOR' | 'WRONG_EMAIL_OR_PASSWORD' | 'WRONG_SHIP_ID_OR_SECRET';
3
+ export type DomainErrorKind = 'ASSIGNEE_NOT_ACTIVE' | 'CLEAR_REQUEST_LIMIT_REACHED' | 'CLEAR_REQUEST_NOT_FOUND' | 'CREW_REQUEST_ALREADY_ASSIGNED' | 'CREW_REQUEST_NOT_ASSIGNED_TO_CALLER' | 'CREW_REQUEST_NOT_FOUND' | 'CREW_REQUEST_NOT_RELEASING' | 'CREW_REQUEST_RELEASING' | 'CREW_REQUEST_FINAL' | 'CREW_REQUEST_SETTINGS_CHANGED' | 'CREW_REQUEST_SETTINGS_TOO_LARGE' | 'DELIVERY_HELD_BY_ANOTHER_SHIP' | 'DELIVERY_NOT_FOUND' | 'DELIVERY_NOT_A_PING' | 'DELIVERY_NOT_IN_FLIGHT' | 'DELIVERY_NOT_OPEN' | 'DELIVERY_NOT_UNDELIVERABLE' | 'FLEET_ALREADY_EXISTS' | 'FLEET_LIMIT_REACHED' | 'FLEET_NOT_FOUND' | 'FLEET_HAS_NO_VIEWER' | 'NOTICE_NOT_FOUND' | 'NOTICE_NOT_DISMISSIBLE' | 'GUIDE_NOT_FOUND' | 'GUIDE_STEP_NOT_FOUND' | 'IDEMPOTENCY_KEY_REUSED' | 'IN_REPLY_TO_NOT_FOUND' | 'MESSAGE_LIMIT_REACHED' | 'MODEL_REQUIRED' | 'INVALID_HARNESS' | 'MODEL_FROM_ARGO' | 'INVALID_CONTENT_TYPE' | 'INVALID_EMAIL' | 'INVALID_FLEET_NAME' | 'INVALID_FOLLOW_MAX' | 'INVALID_FOLLOW_WAIT' | 'INVALID_IDEMPOTENCY_KEY' | 'INVALID_INBOX_WAIT' | 'INVALID_LABEL_KEY' | 'INVALID_LABEL_VALUE' | 'INVALID_LABEL_VALUES' | 'INVALID_LIMIT' | 'INVALID_LOCATION' | 'INVALID_NETWORK_RULES' | 'INVALID_PASSWORD' | 'INVALID_RECEIVE_MAX' | 'INVALID_CREW_REQUEST_REASON' | 'INVALID_REPORT_DETAILS' | 'INVALID_REPORT_NOTE' | 'INVALID_REPORT_STATE' | 'INVALID_SHIP_NAME' | 'INVALID_SHIP_NOTE' | 'INVALID_SHIP_TYPE' | 'LABEL_CARRIED' | 'LABEL_KEY_TAKEN' | 'LABEL_NOT_FOUND' | 'LABEL_VALUE_CARRIED' | 'LABEL_VALUE_NOT_FOUND' | 'LEASE_ENDED' | 'MESSAGE_NOT_FOUND' | 'NETWORK_PLUGIN_REGISTERED' | 'NOT_A_TRIERARCH' | 'NOT_THE_LABEL_OWNER' | 'NOT_REACHABLE' | 'NOT_THE_NETWORK_PLUGIN' | 'NOT_THE_OPERATOR_SHIP' | 'OPERATOR_EMAIL_TAKEN' | 'OPERATOR_HAS_NO_PASSWORD' | 'OPERATOR_SHIP_GETS_NO_STARTING_PROMPT' | 'OPERATOR_SHIP_HAS_NO_SECRET' | 'OPERATOR_SHIP_IS_NOT_PINGED' | 'OPERATOR_SHIP_IS_PERMANENT' | 'PAYLOAD_TOO_LARGE' | 'PING_NOT_RESENT' | 'REPORT_DETAILS_TOO_LARGE' | 'RESERVED_CONTENT_TYPE' | 'SHIP_ALREADY_RETIRED' | 'SHIP_NAME_RESERVED' | 'SHIP_NAME_TAKEN' | 'SHIP_NOT_AWAITING_CREW' | 'SHIP_NOT_CREWED' | 'SHIP_LABEL_LIMIT_REACHED' | 'SHIP_LIMIT_REACHED' | 'SHIP_NOT_FOUND' | 'SIGN_IN_TICKET_INVALID' | 'UNKNOWN_CREW_TOKEN' | 'UNRESOLVABLE_SELECTOR' | 'WRONG_EMAIL_OR_PASSWORD' | 'WRONG_SHIP_ID_OR_SECRET';
4
4
  /**
5
5
  * Why the domain refused a request. Adapters map the kind to their own error
6
6
  * shape (a tRPC code, an exit code); the message is safe to show a caller.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/domain/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AAwG5C,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAA4B,IAAO,EAAE,OAAe;IACxE,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/domain/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AAuG5C,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAA4B,IAAO,EAAE,OAAe;IACxE,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAChC,CAAC"}
package/dist/wiring.d.ts CHANGED
@@ -53,7 +53,10 @@ import { type ReadClearRequests } from './domain/registry/read-clear-requests.js
53
53
  import { type RequestWorktreeClear } from './domain/registry/request-worktree-clear.js';
54
54
  import { type ExplainCrewRequest } from './domain/registry/explain-crew-request.js';
55
55
  import { type DefineLabel } from './domain/registry/define-label.js';
56
+ import { type ExplainReach } from './domain/registry/explain-reach.js';
56
57
  import { type ReadReachRefusals } from './domain/registry/read-reach-refusals.js';
58
+ import { type DeclareNetworkRules } from './domain/registry/declare-network-rules.js';
59
+ import { type ReadDeclaredNetworkRules } from './domain/registry/read-declared-network-rules.js';
57
60
  import { type RegisterNetworkPlugin } from './domain/registry/register-network-plugin.js';
58
61
  import { type SetNetworkRules } from './domain/registry/set-network-rules.js';
59
62
  import { type UnregisterNetworkPlugin } from './domain/registry/unregister-network-plugin.js';
@@ -115,6 +118,9 @@ export interface UseCases {
115
118
  registerNetworkPlugin: RegisterNetworkPlugin;
116
119
  unregisterNetworkPlugin: UnregisterNetworkPlugin;
117
120
  readReachRefusals: ReadReachRefusals;
121
+ declareNetworkRules: DeclareNetworkRules;
122
+ readDeclaredNetworkRules: ReadDeclaredNetworkRules;
123
+ explainReach: ExplainReach;
118
124
  changeLabelValues: ChangeLabelValues;
119
125
  assignLabel: AssignLabel;
120
126
  unassignLabel: UnassignLabel;
package/dist/wiring.js CHANGED
@@ -8,7 +8,7 @@ import { createPrismaFleetListing, createPrismaFleetRepository, createPrismaClea
8
8
  import { createPrismaGuideProgress, createPrismaNoticeDismissals, createPrismaOperatorAccountLookup } from './adapters/prisma/identity.js';
9
9
  import { createReceiverWakeups } from './adapters/prisma/receiver-wakeups.js';
10
10
  import { createPrismaFleetLimitReads, createPrismaGuideRepository, createPrismaInstallationFleets, createPrismaInstallationSettings, createPrismaNoticeRepository, } from './adapters/prisma/installation.js';
11
- import { createPrismaReachRefusalRepository } from './adapters/prisma/network.js';
11
+ import { createPrismaDeclaredNetworkRulesRepository, createPrismaReachRefusalRepository } from './adapters/prisma/network.js';
12
12
  import { createPrismaCallers, createPrismaUnitOfWork } from './adapters/prisma/unit-of-work.js';
13
13
  import { createAuthenticate } from './domain/identity/authenticate.js';
14
14
  import { createDismissNotice } from './domain/identity/dismiss-notice.js';
@@ -62,7 +62,10 @@ import { createReadClearRequests } from './domain/registry/read-clear-requests.j
62
62
  import { createRequestWorktreeClear } from './domain/registry/request-worktree-clear.js';
63
63
  import { createExplainCrewRequest } from './domain/registry/explain-crew-request.js';
64
64
  import { createDefineLabel } from './domain/registry/define-label.js';
65
+ import { createExplainReach } from './domain/registry/explain-reach.js';
65
66
  import { createReadReachRefusals } from './domain/registry/read-reach-refusals.js';
67
+ import { createDeclareNetworkRules } from './domain/registry/declare-network-rules.js';
68
+ import { createReadDeclaredNetworkRules } from './domain/registry/read-declared-network-rules.js';
66
69
  import { createRegisterNetworkPlugin } from './domain/registry/register-network-plugin.js';
67
70
  import { createSetNetworkRules } from './domain/registry/set-network-rules.js';
68
71
  import { createUnregisterNetworkPlugin } from './domain/registry/unregister-network-plugin.js';
@@ -162,6 +165,9 @@ export function createUseCases(options) {
162
165
  registerNetworkPlugin: createRegisterNetworkPlugin({ uow, clock, ids }),
163
166
  unregisterNetworkPlugin: createUnregisterNetworkPlugin({ uow, clock, ids }),
164
167
  readReachRefusals: createReadReachRefusals({ reachRefusals: createPrismaReachRefusalRepository(prisma) }),
168
+ declareNetworkRules: createDeclareNetworkRules({ uow, clock, ids }),
169
+ readDeclaredNetworkRules: createReadDeclaredNetworkRules({ declaredNetworkRules: createPrismaDeclaredNetworkRulesRepository(prisma) }),
170
+ explainReach: createExplainReach({ uow, clock }),
165
171
  changeLabelValues: createChangeLabelValues({ uow, clock, ids }),
166
172
  assignLabel: createAssignLabel({ uow, clock, ids }),
167
173
  unassignLabel: createUnassignLabel({ uow, clock, ids }),
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeolus-fleet/core",
3
- "version": "0.20.5",
3
+ "version": "0.22.0",
4
4
  "description": "Aeolus server: the tRPC API and the fleet domain on Postgres.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -42,7 +42,7 @@
42
42
  "postpack": "rm LICENSE"
43
43
  },
44
44
  "dependencies": {
45
- "@aeolus-fleet/common": "0.20.5",
45
+ "@aeolus-fleet/common": "0.22.0",
46
46
  "@fastify/websocket": "^11.3.1",
47
47
  "@modelcontextprotocol/server": "^2.3.0",
48
48
  "@prisma/adapter-pg": "^7.10.0",
@@ -60,6 +60,7 @@
60
60
  "@trpc/client": "^11.19.0",
61
61
  "@types/pg": "^8.23.1",
62
62
  "@types/ws": "^8.18.2",
63
+ "testcontainers": "^12.2.0",
63
64
  "tsx": "^4.23.15"
64
65
  }
65
66
  }