@aeolus-fleet/core 0.27.1 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/dist/adapters/crypto/account-token-signatures.d.ts +12 -0
  2. package/dist/adapters/crypto/account-token-signatures.js +104 -0
  3. package/dist/adapters/crypto/account-token-signatures.js.map +1 -0
  4. package/dist/adapters/http/request-credentials.d.ts +7 -1
  5. package/dist/adapters/http/request-credentials.js +18 -5
  6. package/dist/adapters/http/request-credentials.js.map +1 -1
  7. package/dist/adapters/http/server.js +4 -2
  8. package/dist/adapters/http/server.js.map +1 -1
  9. package/dist/adapters/prisma/event-log.js +13 -1
  10. package/dist/adapters/prisma/event-log.js.map +1 -1
  11. package/dist/adapters/prisma/generated/browser.d.ts +30 -0
  12. package/dist/adapters/prisma/generated/client.d.ts +30 -0
  13. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +120 -0
  14. package/dist/adapters/prisma/generated/enums.d.ts +25 -0
  15. package/dist/adapters/prisma/generated/enums.js +22 -1
  16. package/dist/adapters/prisma/generated/enums.js.map +1 -1
  17. package/dist/adapters/prisma/generated/internal/class.d.ts +44 -0
  18. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  19. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  20. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +372 -9
  21. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +38 -11
  22. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  23. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +39 -8
  24. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +38 -11
  25. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  26. package/dist/adapters/prisma/generated/models/AccountCutOff.d.ts +944 -0
  27. package/dist/adapters/prisma/generated/models/AccountCutOff.js +2 -0
  28. package/dist/adapters/prisma/generated/models/AccountCutOff.js.map +1 -0
  29. package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +59 -1
  30. package/dist/adapters/prisma/generated/models/Event.d.ts +426 -1
  31. package/dist/adapters/prisma/generated/models/Fleet.d.ts +871 -0
  32. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.d.ts +1031 -0
  33. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js +2 -0
  34. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js.map +1 -0
  35. package/dist/adapters/prisma/generated/models/Label.d.ts +113 -39
  36. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.d.ts +1133 -0
  37. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js +2 -0
  38. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js.map +1 -0
  39. package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +24 -255
  40. package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +1 -40
  41. package/dist/adapters/prisma/generated/models/Ship.d.ts +782 -6
  42. package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +39 -1
  43. package/dist/adapters/prisma/generated/models/VerifiedFacts.d.ts +1325 -0
  44. package/dist/adapters/prisma/generated/models/VerifiedFacts.js +2 -0
  45. package/dist/adapters/prisma/generated/models/VerifiedFacts.js.map +1 -0
  46. package/dist/adapters/prisma/generated/models.d.ts +4 -0
  47. package/dist/adapters/prisma/history.js +1 -0
  48. package/dist/adapters/prisma/history.js.map +1 -1
  49. package/dist/adapters/prisma/identity.d.ts +3 -1
  50. package/dist/adapters/prisma/identity.js +41 -8
  51. package/dist/adapters/prisma/identity.js.map +1 -1
  52. package/dist/adapters/prisma/network.d.ts +7 -2
  53. package/dist/adapters/prisma/network.js +92 -65
  54. package/dist/adapters/prisma/network.js.map +1 -1
  55. package/dist/adapters/prisma/registry.js +19 -14
  56. package/dist/adapters/prisma/registry.js.map +1 -1
  57. package/dist/adapters/prisma/rows.d.ts +9 -4
  58. package/dist/adapters/prisma/rows.js +75 -19
  59. package/dist/adapters/prisma/rows.js.map +1 -1
  60. package/dist/adapters/prisma/unit-of-work.d.ts +4 -2
  61. package/dist/adapters/prisma/unit-of-work.js +5 -2
  62. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  63. package/dist/adapters/prisma/verified-facts.d.ts +4 -0
  64. package/dist/adapters/prisma/verified-facts.js +65 -0
  65. package/dist/adapters/prisma/verified-facts.js.map +1 -0
  66. package/dist/adapters/rest/rest-api.js +2 -2
  67. package/dist/adapters/rest/rest-api.js.map +1 -1
  68. package/dist/adapters/trpc/console.d.ts +3 -1
  69. package/dist/adapters/trpc/context.d.ts +22 -8
  70. package/dist/adapters/trpc/fleet.d.ts +259 -52
  71. package/dist/adapters/trpc/fleet.js +121 -84
  72. package/dist/adapters/trpc/fleet.js.map +1 -1
  73. package/dist/adapters/trpc/installation-token.d.ts +7 -0
  74. package/dist/adapters/trpc/installation-token.js +10 -0
  75. package/dist/adapters/trpc/installation-token.js.map +1 -0
  76. package/dist/adapters/trpc/installation.d.ts +32 -2
  77. package/dist/adapters/trpc/installation.js +14 -10
  78. package/dist/adapters/trpc/installation.js.map +1 -1
  79. package/dist/adapters/trpc/router.d.ts +307 -43
  80. package/dist/adapters/trpc/ship-contract.js +6 -4
  81. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  82. package/dist/adapters/trpc/ship.d.ts +32 -1
  83. package/dist/adapters/trpc/ship.js +4 -2
  84. package/dist/adapters/trpc/ship.js.map +1 -1
  85. package/dist/adapters/trpc/trpc.d.ts +36 -13
  86. package/dist/adapters/trpc/trpc.js +117 -26
  87. package/dist/adapters/trpc/trpc.js.map +1 -1
  88. package/dist/app.d.ts +2 -0
  89. package/dist/app.js +22 -0
  90. package/dist/app.js.map +1 -1
  91. package/dist/config.d.ts +5 -0
  92. package/dist/config.js +3 -1
  93. package/dist/config.js.map +1 -1
  94. package/dist/domain/identity/authenticate-account.d.ts +35 -0
  95. package/dist/domain/identity/authenticate-account.js +54 -0
  96. package/dist/domain/identity/authenticate-account.js.map +1 -0
  97. package/dist/domain/identity/authenticate-installation.d.ts +23 -0
  98. package/dist/domain/identity/authenticate-installation.js +20 -0
  99. package/dist/domain/identity/authenticate-installation.js.map +1 -0
  100. package/dist/domain/identity/authenticate.d.ts +2 -2
  101. package/dist/domain/identity/console-session.d.ts +6 -3
  102. package/dist/domain/identity/console-session.js.map +1 -1
  103. package/dist/domain/identity/cut-off-account.d.ts +29 -0
  104. package/dist/domain/identity/cut-off-account.js +37 -0
  105. package/dist/domain/identity/cut-off-account.js.map +1 -0
  106. package/dist/domain/identity/dismiss-notice.d.ts +2 -2
  107. package/dist/domain/identity/issue-sign-in-ticket.d.ts +9 -3
  108. package/dist/domain/identity/issue-sign-in-ticket.js +8 -2
  109. package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -1
  110. package/dist/domain/identity/ports.d.ts +52 -5
  111. package/dist/domain/identity/read-account.d.ts +8 -4
  112. package/dist/domain/identity/read-account.js +1 -1
  113. package/dist/domain/identity/read-account.js.map +1 -1
  114. package/dist/domain/identity/read-guide.d.ts +2 -2
  115. package/dist/domain/identity/read-notices.d.ts +2 -2
  116. package/dist/domain/identity/record-guide-progress.d.ts +2 -2
  117. package/dist/domain/identity/redeem-sign-in-ticket.d.ts +2 -1
  118. package/dist/domain/identity/redeem-sign-in-ticket.js +3 -2
  119. package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -1
  120. package/dist/domain/identity/set-theme.d.ts +2 -2
  121. package/dist/domain/identity/sign-in-ticket.d.ts +3 -1
  122. package/dist/domain/identity/sign-in.d.ts +2 -2
  123. package/dist/domain/identity/sign-in.js +2 -0
  124. package/dist/domain/identity/sign-in.js.map +1 -1
  125. package/dist/domain/identity/sign-out.d.ts +2 -2
  126. package/dist/domain/identity/sign-out.js +1 -1
  127. package/dist/domain/identity/sign-out.js.map +1 -1
  128. package/dist/domain/identity/start-console-session.d.ts +4 -2
  129. package/dist/domain/identity/start-console-session.js +6 -4
  130. package/dist/domain/identity/start-console-session.js.map +1 -1
  131. package/dist/domain/identity/start-viewer-session.js +1 -0
  132. package/dist/domain/identity/start-viewer-session.js.map +1 -1
  133. package/dist/domain/messaging/delivery.d.ts +3 -1
  134. package/dist/domain/messaging/delivery.js +9 -6
  135. package/dist/domain/messaging/delivery.js.map +1 -1
  136. package/dist/domain/messaging/dismiss-delivery.d.ts +2 -2
  137. package/dist/domain/messaging/message.d.ts +3 -1
  138. package/dist/domain/messaging/message.js +1 -1
  139. package/dist/domain/messaging/message.js.map +1 -1
  140. package/dist/domain/messaging/ping-ship.d.ts +2 -2
  141. package/dist/domain/messaging/ping-ship.js +1 -1
  142. package/dist/domain/messaging/ping-ship.js.map +1 -1
  143. package/dist/domain/messaging/resend-delivery.d.ts +2 -2
  144. package/dist/domain/messaging/resend-delivery.js +1 -0
  145. package/dist/domain/messaging/resend-delivery.js.map +1 -1
  146. package/dist/domain/messaging/send-message.d.ts +3 -3
  147. package/dist/domain/messaging/send-message.js +1 -0
  148. package/dist/domain/messaging/send-message.js.map +1 -1
  149. package/dist/domain/registry/apply-network-rules.d.ts +32 -0
  150. package/dist/domain/registry/apply-network-rules.js +33 -0
  151. package/dist/domain/registry/apply-network-rules.js.map +1 -0
  152. package/dist/domain/registry/assign-crew.d.ts +2 -2
  153. package/dist/domain/registry/assign-crew.js +3 -2
  154. package/dist/domain/registry/assign-crew.js.map +1 -1
  155. package/dist/domain/registry/assign-label.d.ts +7 -5
  156. package/dist/domain/registry/assign-label.js +16 -6
  157. package/dist/domain/registry/assign-label.js.map +1 -1
  158. package/dist/domain/registry/change-label-values.d.ts +1 -1
  159. package/dist/domain/registry/change-label-values.js +4 -3
  160. package/dist/domain/registry/change-label-values.js.map +1 -1
  161. package/dist/domain/registry/check-reach.d.ts +45 -24
  162. package/dist/domain/registry/check-reach.js +76 -42
  163. package/dist/domain/registry/check-reach.js.map +1 -1
  164. package/dist/domain/registry/clear-request.d.ts +1 -1
  165. package/dist/domain/registry/clear-request.js +1 -1
  166. package/dist/domain/registry/clear-request.js.map +1 -1
  167. package/dist/domain/registry/commission-ship.d.ts +23 -14
  168. package/dist/domain/registry/commission-ship.js +167 -21
  169. package/dist/domain/registry/commission-ship.js.map +1 -1
  170. package/dist/domain/registry/confirm-crew-release.d.ts +2 -2
  171. package/dist/domain/registry/confirm-crew-release.js +3 -2
  172. package/dist/domain/registry/confirm-crew-release.js.map +1 -1
  173. package/dist/domain/registry/confirm-worktree-cleared.d.ts +2 -2
  174. package/dist/domain/registry/confirm-worktree-cleared.js +3 -2
  175. package/dist/domain/registry/confirm-worktree-cleared.js.map +1 -1
  176. package/dist/domain/registry/connect-plugin.d.ts +5 -4
  177. package/dist/domain/registry/connect-plugin.js +6 -7
  178. package/dist/domain/registry/connect-plugin.js.map +1 -1
  179. package/dist/domain/registry/crew-request.d.ts +2 -2
  180. package/dist/domain/registry/crew-request.js.map +1 -1
  181. package/dist/domain/registry/declare-network-rules.d.ts +9 -6
  182. package/dist/domain/registry/declare-network-rules.js +13 -8
  183. package/dist/domain/registry/declare-network-rules.js.map +1 -1
  184. package/dist/domain/registry/declare-scopes.d.ts +2 -2
  185. package/dist/domain/registry/declared-network-rules.d.ts +30 -21
  186. package/dist/domain/registry/declared-network-rules.js +46 -22
  187. package/dist/domain/registry/declared-network-rules.js.map +1 -1
  188. package/dist/domain/registry/define-label.d.ts +1 -1
  189. package/dist/domain/registry/define-label.js +5 -5
  190. package/dist/domain/registry/define-label.js.map +1 -1
  191. package/dist/domain/registry/delete-label.d.ts +1 -1
  192. package/dist/domain/registry/delete-label.js +4 -3
  193. package/dist/domain/registry/delete-label.js.map +1 -1
  194. package/dist/domain/registry/discard-network-rules-draft.d.ts +23 -0
  195. package/dist/domain/registry/discard-network-rules-draft.js +24 -0
  196. package/dist/domain/registry/discard-network-rules-draft.js.map +1 -0
  197. package/dist/domain/registry/discover.d.ts +11 -10
  198. package/dist/domain/registry/discover.js +11 -5
  199. package/dist/domain/registry/discover.js.map +1 -1
  200. package/dist/domain/registry/explain-crew-request.d.ts +2 -2
  201. package/dist/domain/registry/explain-crew-request.js +3 -2
  202. package/dist/domain/registry/explain-crew-request.js.map +1 -1
  203. package/dist/domain/registry/explain-reach.d.ts +21 -14
  204. package/dist/domain/registry/explain-reach.js +53 -53
  205. package/dist/domain/registry/explain-reach.js.map +1 -1
  206. package/dist/domain/registry/get-ship.d.ts +2 -2
  207. package/dist/domain/registry/get-starting-prompt.d.ts +4 -2
  208. package/dist/domain/registry/get-starting-prompt.js +7 -5
  209. package/dist/domain/registry/get-starting-prompt.js.map +1 -1
  210. package/dist/domain/registry/give-back-crew-request.d.ts +2 -2
  211. package/dist/domain/registry/give-back-crew-request.js +3 -2
  212. package/dist/domain/registry/give-back-crew-request.js.map +1 -1
  213. package/dist/domain/registry/grant-scopes.d.ts +8 -5
  214. package/dist/domain/registry/grant-scopes.js +14 -5
  215. package/dist/domain/registry/grant-scopes.js.map +1 -1
  216. package/dist/domain/registry/label.d.ts +69 -18
  217. package/dist/domain/registry/label.js +79 -28
  218. package/dist/domain/registry/label.js.map +1 -1
  219. package/dist/domain/registry/lease.d.ts +1 -1
  220. package/dist/domain/registry/list-fleet.d.ts +2 -0
  221. package/dist/domain/registry/list-fleet.js +1 -0
  222. package/dist/domain/registry/list-fleet.js.map +1 -1
  223. package/dist/domain/registry/list-scopes.d.ts +2 -1
  224. package/dist/domain/registry/list-scopes.js +2 -1
  225. package/dist/domain/registry/list-scopes.js.map +1 -1
  226. package/dist/domain/registry/managed-or-assigned.d.ts +12 -4
  227. package/dist/domain/registry/managed-or-assigned.js +25 -7
  228. package/dist/domain/registry/managed-or-assigned.js.map +1 -1
  229. package/dist/domain/registry/network-rules-draft.d.ts +45 -0
  230. package/dist/domain/registry/network-rules-draft.js +41 -0
  231. package/dist/domain/registry/network-rules-draft.js.map +1 -0
  232. package/dist/domain/registry/network-settings.d.ts +92 -122
  233. package/dist/domain/registry/network-settings.js +99 -159
  234. package/dist/domain/registry/network-settings.js.map +1 -1
  235. package/dist/domain/registry/ports.d.ts +47 -11
  236. package/dist/domain/registry/reach-refusal.d.ts +18 -4
  237. package/dist/domain/registry/read-assigned-crew-requests.d.ts +2 -2
  238. package/dist/domain/registry/read-built-in-rules.d.ts +4 -3
  239. package/dist/domain/registry/read-built-in-rules.js +7 -6
  240. package/dist/domain/registry/read-built-in-rules.js.map +1 -1
  241. package/dist/domain/registry/read-clear-requests.d.ts +2 -2
  242. package/dist/domain/registry/read-clear-requests.js.map +1 -1
  243. package/dist/domain/registry/read-declared-network-rules.d.ts +5 -5
  244. package/dist/domain/registry/read-declared-network-rules.js +4 -4
  245. package/dist/domain/registry/read-declared-network-rules.js.map +1 -1
  246. package/dist/domain/registry/read-network-rules-draft-changes.d.ts +22 -0
  247. package/dist/domain/registry/read-network-rules-draft-changes.js +53 -0
  248. package/dist/domain/registry/read-network-rules-draft-changes.js.map +1 -0
  249. package/dist/domain/registry/read-network-rules.d.ts +30 -0
  250. package/dist/domain/registry/read-network-rules.js +18 -0
  251. package/dist/domain/registry/read-network-rules.js.map +1 -0
  252. package/dist/domain/registry/read-on-behalf.d.ts +3 -3
  253. package/dist/domain/registry/read-on-behalf.js.map +1 -1
  254. package/dist/domain/registry/read-reach-refusals.d.ts +6 -5
  255. package/dist/domain/registry/read-reach-refusals.js +13 -8
  256. package/dist/domain/registry/read-reach-refusals.js.map +1 -1
  257. package/dist/domain/registry/read-reach.d.ts +6 -8
  258. package/dist/domain/registry/read-reach.js +21 -16
  259. package/dist/domain/registry/read-reach.js.map +1 -1
  260. package/dist/domain/registry/recrew-ship.d.ts +2 -2
  261. package/dist/domain/registry/recrew-ship.js +3 -3
  262. package/dist/domain/registry/recrew-ship.js.map +1 -1
  263. package/dist/domain/registry/release-ship.d.ts +3 -2
  264. package/dist/domain/registry/release-ship.js +4 -3
  265. package/dist/domain/registry/release-ship.js.map +1 -1
  266. package/dist/domain/registry/remove-crew-request.d.ts +2 -2
  267. package/dist/domain/registry/remove-crew-request.js +4 -3
  268. package/dist/domain/registry/remove-crew-request.js.map +1 -1
  269. package/dist/domain/registry/rename-ship.d.ts +1 -1
  270. package/dist/domain/registry/rename-ship.js +4 -3
  271. package/dist/domain/registry/rename-ship.js.map +1 -1
  272. package/dist/domain/registry/report-crew-status.d.ts +2 -2
  273. package/dist/domain/registry/report-crew-status.js +3 -2
  274. package/dist/domain/registry/report-crew-status.js.map +1 -1
  275. package/dist/domain/registry/request-crew.d.ts +3 -3
  276. package/dist/domain/registry/request-crew.js +4 -3
  277. package/dist/domain/registry/request-crew.js.map +1 -1
  278. package/dist/domain/registry/request-worktree-clear.d.ts +2 -2
  279. package/dist/domain/registry/request-worktree-clear.js +4 -3
  280. package/dist/domain/registry/request-worktree-clear.js.map +1 -1
  281. package/dist/domain/registry/retire-ship.d.ts +16 -12
  282. package/dist/domain/registry/retire-ship.js +28 -21
  283. package/dist/domain/registry/retire-ship.js.map +1 -1
  284. package/dist/domain/registry/save-network-rules-draft.d.ts +31 -0
  285. package/dist/domain/registry/save-network-rules-draft.js +27 -0
  286. package/dist/domain/registry/save-network-rules-draft.js.map +1 -0
  287. package/dist/domain/registry/scope-grant.d.ts +19 -19
  288. package/dist/domain/registry/scope-grant.js +8 -9
  289. package/dist/domain/registry/scope-grant.js.map +1 -1
  290. package/dist/domain/registry/set-built-in-rule.d.ts +3 -3
  291. package/dist/domain/registry/set-built-in-rule.js +5 -9
  292. package/dist/domain/registry/set-built-in-rule.js.map +1 -1
  293. package/dist/domain/registry/set-owner.d.ts +9 -6
  294. package/dist/domain/registry/set-owner.js +14 -8
  295. package/dist/domain/registry/set-owner.js.map +1 -1
  296. package/dist/domain/registry/set-verified-facts.d.ts +36 -0
  297. package/dist/domain/registry/set-verified-facts.js +58 -0
  298. package/dist/domain/registry/set-verified-facts.js.map +1 -0
  299. package/dist/domain/registry/ship.d.ts +52 -18
  300. package/dist/domain/registry/ship.js +76 -18
  301. package/dist/domain/registry/ship.js.map +1 -1
  302. package/dist/domain/registry/statement.d.ts +2 -2
  303. package/dist/domain/registry/statement.js +2 -2
  304. package/dist/domain/registry/statement.js.map +1 -1
  305. package/dist/domain/registry/turn.d.ts +2 -2
  306. package/dist/domain/registry/turn.js +2 -2
  307. package/dist/domain/registry/turn.js.map +1 -1
  308. package/dist/domain/registry/unassign-label.d.ts +8 -5
  309. package/dist/domain/registry/unassign-label.js +17 -6
  310. package/dist/domain/registry/unassign-label.js.map +1 -1
  311. package/dist/domain/registry/verified-facts.d.ts +75 -0
  312. package/dist/domain/registry/verified-facts.js +107 -0
  313. package/dist/domain/registry/verified-facts.js.map +1 -0
  314. package/dist/domain/registry/whoami.d.ts +2 -2
  315. package/dist/domain/shared/caller.d.ts +40 -6
  316. package/dist/domain/shared/caller.js +20 -0
  317. package/dist/domain/shared/caller.js.map +1 -1
  318. package/dist/domain/shared/errors.d.ts +1 -1
  319. package/dist/domain/shared/errors.js.map +1 -1
  320. package/dist/domain/shared/events.d.ts +13 -2
  321. package/dist/domain/shared/events.js.map +1 -1
  322. package/dist/domain/shared/history.d.ts +3 -1
  323. package/dist/domain/shared/history.js.map +1 -1
  324. package/dist/domain/shared/read-fleet-limits.d.ts +2 -2
  325. package/dist/domain/shared/read-health.d.ts +2 -2
  326. package/dist/domain/shared/read-inbox.d.ts +2 -2
  327. package/dist/domain/shared/read-message.d.ts +2 -2
  328. package/dist/domain/shared/read-needs-attention.d.ts +2 -2
  329. package/dist/domain/shared/read-sent-message.d.ts +2 -2
  330. package/dist/domain/shared/read-ship-messages.d.ts +2 -2
  331. package/dist/domain/shared/read-ship-timeline.d.ts +2 -2
  332. package/dist/domain/shared/read-ship-way.d.ts +2 -2
  333. package/dist/domain/shared/read-ship-way.js +1 -1
  334. package/dist/domain/shared/read-ship-way.js.map +1 -1
  335. package/dist/start.js +1 -0
  336. package/dist/start.js.map +1 -1
  337. package/dist/testing/account-token-issuer.d.ts +30 -0
  338. package/dist/testing/account-token-issuer.js +48 -0
  339. package/dist/testing/account-token-issuer.js.map +1 -0
  340. package/dist/testing/fleet.d.ts +2 -2
  341. package/dist/testing/index.d.ts +1 -1
  342. package/dist/wiring.d.ts +21 -8
  343. package/dist/wiring.js +32 -13
  344. package/dist/wiring.js.map +1 -1
  345. package/package.json +2 -5
  346. package/src/adapters/prisma/migrations/20261019200000_account_cut_offs/migration.sql +10 -0
  347. package/src/adapters/prisma/migrations/20261019210000_event_actors/migration.sql +32 -0
  348. package/src/adapters/prisma/migrations/20261020090000_argos_jobs_as_scopes/migration.sql +65 -0
  349. package/src/adapters/prisma/migrations/20261020100000_installation_labels/migration.sql +7 -0
  350. package/src/adapters/prisma/migrations/20261020110000_installation_declared_network_rules/migration.sql +10 -0
  351. package/src/adapters/prisma/migrations/20261020120000_commissioning_actors/migration.sql +14 -0
  352. package/src/adapters/prisma/migrations/20261020130000_console_sign_in_accounts/migration.sql +4 -0
  353. package/src/adapters/prisma/migrations/20261020140000_event_signed_in_accounts/migration.sql +4 -0
  354. package/src/adapters/prisma/migrations/20261020150000_account_cut_off_ends_console_sessions/migration.sql +2 -0
  355. package/src/adapters/prisma/migrations/20261020160000_network_in_core/migration.sql +30 -0
  356. package/src/adapters/prisma/migrations/20261020170000_verify_scope/migration.sql +64 -0
  357. package/src/adapters/prisma/migrations/20261020180000_verified_facts/migration.sql +21 -0
  358. package/src/adapters/prisma/migrations/20261020190000_verified_facts_by_writer/migration.sql +3 -0
  359. package/src/adapters/prisma/schema.prisma +132 -23
  360. package/dist/domain/registry/read-network-plugin.d.ts +0 -23
  361. package/dist/domain/registry/read-network-plugin.js +0 -15
  362. package/dist/domain/registry/read-network-plugin.js.map +0 -1
  363. package/dist/domain/registry/register-network-plugin.d.ts +0 -28
  364. package/dist/domain/registry/register-network-plugin.js +0 -26
  365. package/dist/domain/registry/register-network-plugin.js.map +0 -1
  366. package/dist/domain/registry/set-network-rules.d.ts +0 -31
  367. package/dist/domain/registry/set-network-rules.js +0 -27
  368. package/dist/domain/registry/set-network-rules.js.map +0 -1
  369. package/dist/domain/registry/unregister-network-plugin.d.ts +0 -27
  370. package/dist/domain/registry/unregister-network-plugin.js +0 -25
  371. package/dist/domain/registry/unregister-network-plugin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"remove-crew-request.js","sourceRoot":"","sources":["../../../src/domain/registry/remove-crew-request.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,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAyC,MAAM,kBAAkB,CAAC;AAc3G;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAA8E;IACpH,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAuG,EAAE;QAC9I,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3J,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,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":"remove-crew-request.js","sourceRoot":"","sources":["../../../src/domain/registry/remove-crew-request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAyC,MAAM,kBAAkB,CAAC;AAc3G;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAA8E;IACpH,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAuG,EAAE;QAC9I,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,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,5 +1,5 @@
1
1
  import type { IdGenerator, ShipId } from '@aeolus-fleet/common';
2
- import type { Caller } from '../shared/caller.js';
2
+ import { type Caller } from '../shared/caller.js';
3
3
  import type { Clock } from '../shared/clock.js';
4
4
  import { type DomainError } from '../shared/errors.js';
5
5
  import { type EventLog } from '../shared/events.js';
@@ -1,5 +1,6 @@
1
+ import { actorOf } from '../shared/caller.js';
1
2
  import { refuse } from '../shared/errors.js';
2
- import { recordEvent, shipActor } from '../shared/events.js';
3
+ import { recordEvent } from '../shared/events.js';
3
4
  import { ok } from '../shared/result.js';
4
5
  import { checkManage, keepingReachRefusal } from './check-reach.js';
5
6
  import { renameShip } from './ship.js';
@@ -18,7 +19,7 @@ export function createRenameShip(deps) {
18
19
  if (!ship) {
19
20
  return refuse('SHIP_NOT_FOUND', `Ship ${input.shipId} does not exist`);
20
21
  }
21
- const managed = await checkManage({ tx, ids: deps.ids }, { fleetId, managerShipId: caller.shipId, shipId: ship.id, at: deps.clock.now() });
22
+ const managed = await checkManage({ tx, ids: deps.ids }, { manager: caller, shipId: ship.id, at: deps.clock.now() });
22
23
  if (!managed.isOk) {
23
24
  return managed;
24
25
  }
@@ -26,7 +27,7 @@ export function createRenameShip(deps) {
26
27
  const renamed = renameShip(ship, {
27
28
  name: input.name,
28
29
  at: deps.clock.now(),
29
- actor: shipActor(caller.shipId),
30
+ actor: actorOf(caller),
30
31
  activeShipNamed: await tx.ships.findActiveByName(fleetId, input.name),
31
32
  });
32
33
  if (!renamed.isOk) {
@@ -1 +1 @@
1
- {"version":3,"file":"rename-ship.js","sourceRoot":"","sources":["../../../src/domain/registry/rename-ship.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,WAAW,EAAE,mBAAmB,EAAyC,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,UAAU,EAAsB,MAAM,WAAW,CAAC;AAc3D;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAuE;IACtG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAiD,EAAE;QACxF,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,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3I,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE;YAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC/B,eAAe,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC;SACtE,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,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":"rename-ship.js","sourceRoot":"","sources":["../../../src/domain/registry/rename-ship.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAyC,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,UAAU,EAAsB,MAAM,WAAW,CAAC;AAc3D;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAuE;IACtG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAiD,EAAE;QACxF,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,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE;YAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;YACtB,eAAe,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC;SACtE,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,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,5 +1,5 @@
1
1
  import type { CrewStatus, IdGenerator, ShipId } from '@aeolus-fleet/common';
2
- import type { Caller } from '../shared/caller.js';
2
+ import { type ShipCaller } from '../shared/caller.js';
3
3
  import type { Clock } from '../shared/clock.js';
4
4
  import { type DomainError } from '../shared/errors.js';
5
5
  import { type EventLog } from '../shared/events.js';
@@ -12,7 +12,7 @@ export interface ReportCrewStatusTx {
12
12
  events: EventLog;
13
13
  }
14
14
  export type ReportCrewStatusRefusal = DomainError<'SHIP_NOT_FOUND' | 'CREW_REQUEST_NOT_FOUND' | 'CREW_REQUEST_NOT_ASSIGNED_TO_CALLER' | 'CREW_REQUEST_RELEASING'>;
15
- export type ReportCrewStatus = (caller: Caller, input: {
15
+ export type ReportCrewStatus = (caller: ShipCaller, input: {
16
16
  shipId: ShipId;
17
17
  status: CrewStatus;
18
18
  attempt?: number;
@@ -1,5 +1,6 @@
1
+ import { actorOf } from '../shared/caller.js';
1
2
  import { refuse } from '../shared/errors.js';
2
- import { recordEvent, shipActor } from '../shared/events.js';
3
+ import { recordEvent } from '../shared/events.js';
3
4
  import { ok } from '../shared/result.js';
4
5
  import { reportCrewStatus } from './crew-request.js';
5
6
  /**
@@ -20,7 +21,7 @@ export function createReportCrewStatus(deps) {
20
21
  attempt: input.attempt ?? 0,
21
22
  sessionStartedAt: input.startedAt === undefined || input.startedAt === null ? null : new Date(input.startedAt),
22
23
  at: deps.clock.now(),
23
- actor: shipActor(caller.shipId),
24
+ actor: actorOf(caller),
24
25
  });
25
26
  if (!reported.isOk) {
26
27
  return reported;
@@ -1 +1 @@
1
- {"version":3,"file":"report-crew-status.js","sourceRoot":"","sources":["../../../src/domain/registry/report-crew-status.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,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAkBrD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA6E;IAClH,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAuD,EAAE;QAC7E,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,EACtG;YACE,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;YAC3B,gBAAgB,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC9G,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;SAChC,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1C,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":"report-crew-status.js","sourceRoot":"","sources":["../../../src/domain/registry/report-crew-status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAkBrD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA6E;IAClH,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAuD,EAAE;QAC7E,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,EACtG;YACE,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;YAC3B,gBAAgB,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC9G,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;SACvB,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1C,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,5 +1,5 @@
1
1
  import type { IdGenerator, ShipId } from '@aeolus-fleet/common';
2
- import type { Caller } from '../shared/caller.js';
2
+ import { type ShipCaller } from '../shared/caller.js';
3
3
  import type { Clock } from '../shared/clock.js';
4
4
  import { type DomainError } from '../shared/errors.js';
5
5
  import { type EventLog } from '../shared/events.js';
@@ -12,10 +12,10 @@ import type { JsonObject } from './report-details.js';
12
12
  export interface RequestCrewTx extends Omit<CheckManageTx, 'ships' | 'labels'> {
13
13
  ships: Pick<ShipRepository, 'find' | 'findForUpdate'>;
14
14
  crewRequests: CrewRequestRepository;
15
- labels: Pick<LabelRepository, 'findByValueForShare' | 'carriedBy' | 'find'>;
15
+ labels: Pick<LabelRepository, 'findByValueForShare' | 'carriedBy' | 'find' | 'findByKey'>;
16
16
  events: EventLog;
17
17
  }
18
- export type RequestCrew = (caller: Caller, input: {
18
+ export type RequestCrew = (caller: ShipCaller, input: {
19
19
  shipId: ShipId;
20
20
  settings: JsonObject;
21
21
  }) => Promise<Result<{
@@ -1,5 +1,6 @@
1
+ import { actorOf } from '../shared/caller.js';
1
2
  import { refuse } from '../shared/errors.js';
2
- import { recordEvent, shipActor } from '../shared/events.js';
3
+ import { recordEvent } from '../shared/events.js';
3
4
  import { ok } from '../shared/result.js';
4
5
  import { machineLabelsOf, requestCrew } from './crew-request.js';
5
6
  import { checkManage, keepingReachRefusal } from './check-reach.js';
@@ -18,7 +19,7 @@ export function createRequestCrew(deps) {
18
19
  if (!ship) {
19
20
  return refuse('SHIP_NOT_FOUND', `Ship ${input.shipId} does not exist`);
20
21
  }
21
- const managed = await checkManage({ tx, ids: deps.ids }, { fleetId: caller.fleetId, managerShipId: caller.shipId, shipId: ship.id, at: deps.clock.now() });
22
+ const managed = await checkManage({ tx, ids: deps.ids }, { manager: caller, shipId: ship.id, at: deps.clock.now() });
22
23
  if (!managed.isOk) {
23
24
  return managed;
24
25
  }
@@ -31,7 +32,7 @@ export function createRequestCrew(deps) {
31
32
  labelValues.add(valueId);
32
33
  }
33
34
  }
34
- const requested = requestCrew({ ship, current, labelValues }, { settings: input.settings, at: deps.clock.now(), actor: shipActor(caller.shipId) });
35
+ const requested = requestCrew({ ship, current, labelValues }, { settings: input.settings, at: deps.clock.now(), actor: actorOf(caller) });
35
36
  if (!requested.isOk) {
36
37
  return requested;
37
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request-crew.js","sourceRoot":"","sources":["../../../src/domain/registry/request-crew.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,eAAe,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAyC,MAAM,kBAAkB,CAAC;AAgB3G;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwE;IACxG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAmH,EAAE;QAC1J,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3J,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgB,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3E,sFAAsF;YACtF,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;gBACxD,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnJ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,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,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"request-crew.js","sourceRoot":"","sources":["../../../src/domain/registry/request-crew.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAyC,MAAM,kBAAkB,CAAC;AAgB3G;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwE;IACxG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAmH,EAAE;QAC1J,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgB,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3E,sFAAsF;YACtF,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;gBACxD,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1I,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,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,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { IdGenerator, ShipId } from '@aeolus-fleet/common';
2
- import type { Caller } from '../shared/caller.js';
2
+ import { type ShipCaller } from '../shared/caller.js';
3
3
  import type { Clock } from '../shared/clock.js';
4
4
  import { type DomainError } from '../shared/errors.js';
5
5
  import { type EventLog } from '../shared/events.js';
@@ -14,7 +14,7 @@ export interface RequestWorktreeClearTx extends Omit<CheckManageTx, 'ships'> {
14
14
  events: EventLog;
15
15
  }
16
16
  export type RequestWorktreeClearUseCaseRefusal = DomainError<'SHIP_NOT_FOUND'> | NotReachable | RequestWorktreeClearRefusal;
17
- export type RequestWorktreeClear = (caller: Caller, input: {
17
+ export type RequestWorktreeClear = (caller: ShipCaller, input: {
18
18
  trierarchShipId: ShipId;
19
19
  shipId: ShipId;
20
20
  repository: string;
@@ -1,5 +1,6 @@
1
+ import { actorOf } from '../shared/caller.js';
1
2
  import { refuse } from '../shared/errors.js';
2
- import { recordEvent, shipActor } from '../shared/events.js';
3
+ import { recordEvent } from '../shared/events.js';
3
4
  import { ok } from '../shared/result.js';
4
5
  import { requestWorktreeClear } from './clear-request.js';
5
6
  import { checkManage, keepingReachRefusal } from './check-reach.js';
@@ -19,12 +20,12 @@ export function createRequestWorktreeClear(deps) {
19
20
  if (!(await tx.ships.find(fleetId, input.shipId))) {
20
21
  return refuse('SHIP_NOT_FOUND', `Ship ${input.shipId} does not exist`);
21
22
  }
22
- const managed = await checkManage({ tx, ids: deps.ids }, { fleetId: fleetId, managerShipId: caller.shipId, shipId: input.shipId, at: deps.clock.now() });
23
+ const managed = await checkManage({ tx, ids: deps.ids }, { manager: caller, shipId: input.shipId, at: deps.clock.now() });
23
24
  if (!managed.isOk) {
24
25
  return managed;
25
26
  }
26
27
  const key = { trierarchShipId: trierarch.id, shipId: input.shipId, repository: input.repository };
27
- const requested = requestWorktreeClear({ trierarch, current: await tx.clearRequests.find(fleetId, key), pending: (await tx.clearRequests.listFor(fleetId, trierarch.id)).length }, { shipId: input.shipId, repository: input.repository, requestedBy: caller.shipId, at: deps.clock.now(), actor: shipActor(caller.shipId) });
28
+ const requested = requestWorktreeClear({ trierarch, current: await tx.clearRequests.find(fleetId, key), pending: (await tx.clearRequests.listFor(fleetId, trierarch.id)).length }, { shipId: input.shipId, repository: input.repository, requestedBy: caller.shipId, at: deps.clock.now(), actor: actorOf(caller) });
28
29
  if (!requested.isOk) {
29
30
  return requested;
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request-worktree-clear.js","sourceRoot":"","sources":["../../../src/domain/registry/request-worktree-clear.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-worktree-clear.js","sourceRoot":"","sources":["../../../src/domain/registry/request-worktree-clear.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,24 @@
1
1
  import type { IdGenerator, ShipId } from '@aeolus-fleet/common';
2
2
  import { type CredentialTx } from '../identity/public.js';
3
- import type { Caller } from '../shared/caller.js';
3
+ import { type Caller } from '../shared/caller.js';
4
4
  import type { Clock } from '../shared/clock.js';
5
5
  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 CheckManageTx, type NotReachable } from './check-reach.js';
9
9
  import { type LeaseTx } from './leases.js';
10
- import type { ClearRequestRepository, CrewRequestRepository, DeclaredNetworkRulesRepository, LabelRepository, NetworkSettingsRepository, PluginConnectionRepository, ScopeNamespaceRepository, ShipRepository } from './ports.js';
10
+ import type { ClearRequestRepository, CrewRequestRepository, DeclaredNetworkRulesRepository, LabelRepository, NetworkSettingsRepository, PluginConnectionRepository, ScopeNamespaceRepository, ShipRepository, VerifiedFactsRepository } from './ports.js';
11
11
  import { type RetireRefusal } from './ship.js';
12
- export interface RetireShipTx extends LeaseTx, CredentialTx, Omit<CheckManageTx, 'ships' | 'leases' | 'labels' | 'networkSettings'> {
12
+ export interface RetireShipTx extends LeaseTx, CredentialTx, Omit<CheckManageTx, 'ships' | 'labels' | 'networkSettings' | 'declaredNetworkRules'> {
13
13
  ships: ShipRepository;
14
14
  pluginConnections: PluginConnectionRepository;
15
15
  crewRequests: CrewRequestRepository;
16
16
  clearRequests: ClearRequestRepository;
17
17
  labels: LabelRepository;
18
18
  networkSettings: Pick<NetworkSettingsRepository, 'find' | 'findForShare' | 'findForUpdate' | 'save'>;
19
- declaredNetworkRules: Pick<DeclaredNetworkRulesRepository, 'find' | 'save'>;
19
+ declaredNetworkRules: Pick<DeclaredNetworkRulesRepository, 'list' | 'find' | 'save'>;
20
20
  scopeNamespaces: Pick<ScopeNamespaceRepository, 'findByDeclarer' | 'lockNamespace' | 'remove'>;
21
+ verifiedFacts: Pick<VerifiedFactsRepository, 'listAbout' | 'listBy' | 'lockWriter' | 'remove'>;
21
22
  }
22
23
  export type RetireShipRefusal = DomainError<'SHIP_NOT_FOUND'> | NotReachable | RetireRefusal;
23
24
  export type RetireShip = (caller: Caller, input: {
@@ -38,15 +39,18 @@ export type RetireShip = (caller: Caller, input: {
38
39
  * and the labels it owns retire with it, each locked first and every
39
40
  * assignment of it gone first (decision 0031). A retired trierarch clears
40
41
  * nothing: its pending clear requests go, one WorktreeClearRemoved each
41
- * (decision 0032). The network rules it declared go with its labels
42
- * (decision 0037). Each active ship it owned falls to argo, one
43
- * OwnerChanged each, locked after the ship as a set owner locks the owner
44
- * first (decision 0045). A retired networking plugin unregisters, its rules going
45
- * with it: all-to-all (decision 0035). A plugin namespace it declared goes,
42
+ * (decision 0032). The network rules it declared go with its labels, the
43
+ * settings at their next version (decision 0037). Each active ship it owned
44
+ * falls to argo, one OwnerChanged each, locked after the ship as a set owner
45
+ * locks the owner first (decision 0045). A plugin namespace it declared goes,
46
46
  * and its scopes leave every ship, one ScopesChanged each (decision 0046).
47
- * The caller's scope (fleet:manage) is
48
- * checked before this runs, and manage reach on the ship here (decision
49
- * 0034), a refusal storing only its record. That check reads the network
47
+ * Every writer's verified facts about it go, and its own about every ship,
48
+ * one VerifiedFactsRemoved each, under its writer lock, taken last, after
49
+ * every ship this locks, as a set takes it after the ship it writes about
50
+ * (decision 0059).
51
+ * The caller, any actor (decision 0057), needs fleet:manage, checked before
52
+ * this runs, and manage reach on the ship here (decision 0034), a refusal
53
+ * storing only its record. That check reads the network
50
54
  * settings without a lock: retire takes them exclusively later, after the
51
55
  * ships it owns, and a shared hold taken first would deadlock two retires.
52
56
  *
@@ -1,6 +1,7 @@
1
1
  import { revokeShipSecret } from '../identity/public.js';
2
+ import { actorOf } from '../shared/caller.js';
2
3
  import { refuse } from '../shared/errors.js';
3
- import { recordEvent, shipActor } from '../shared/events.js';
4
+ import { recordEvent } from '../shared/events.js';
4
5
  import { ok } from '../shared/result.js';
5
6
  import { checkManage, keepingReachRefusal } from './check-reach.js';
6
7
  import { removeClearRequestsOf } from './clear-request.js';
@@ -8,10 +9,10 @@ import { removeCrewRequest } from './crew-request.js';
8
9
  import { retireLabelsWith } from './label.js';
9
10
  import { endLease } from './leases.js';
10
11
  import { withdrawWithRetiredShip } from './declared-network-rules.js';
11
- import { unregisterNetworkPlugin } from './network-settings.js';
12
12
  import { endPluginConnection } from './plugin-connection.js';
13
13
  import { changeOwner, checkCanRetire } from './ship.js';
14
14
  import { releaseWithDeclarer } from './scope-namespace.js';
15
+ import { removeWithRetiredShip } from './verified-facts.js';
15
16
  /**
16
17
  * Use case: the caller retires a ship of its fleet for good (Retire): any ship
17
18
  * but argo, crewed or not. In one unit of work: its secret stops working; a
@@ -25,15 +26,18 @@ import { releaseWithDeclarer } from './scope-namespace.js';
25
26
  * and the labels it owns retire with it, each locked first and every
26
27
  * assignment of it gone first (decision 0031). A retired trierarch clears
27
28
  * nothing: its pending clear requests go, one WorktreeClearRemoved each
28
- * (decision 0032). The network rules it declared go with its labels
29
- * (decision 0037). Each active ship it owned falls to argo, one
30
- * OwnerChanged each, locked after the ship as a set owner locks the owner
31
- * first (decision 0045). A retired networking plugin unregisters, its rules going
32
- * with it: all-to-all (decision 0035). A plugin namespace it declared goes,
29
+ * (decision 0032). The network rules it declared go with its labels, the
30
+ * settings at their next version (decision 0037). Each active ship it owned
31
+ * falls to argo, one OwnerChanged each, locked after the ship as a set owner
32
+ * locks the owner first (decision 0045). A plugin namespace it declared goes,
33
33
  * and its scopes leave every ship, one ScopesChanged each (decision 0046).
34
- * The caller's scope (fleet:manage) is
35
- * checked before this runs, and manage reach on the ship here (decision
36
- * 0034), a refusal storing only its record. That check reads the network
34
+ * Every writer's verified facts about it go, and its own about every ship,
35
+ * one VerifiedFactsRemoved each, under its writer lock, taken last, after
36
+ * every ship this locks, as a set takes it after the ship it writes about
37
+ * (decision 0059).
38
+ * The caller, any actor (decision 0057), needs fleet:manage, checked before
39
+ * this runs, and manage reach on the ship here (decision 0034), a refusal
40
+ * storing only its record. That check reads the network
37
41
  * settings without a lock: retire takes them exclusively later, after the
38
42
  * ships it owns, and a shared hold taken first would deadlock two retires.
39
43
  *
@@ -50,7 +54,7 @@ export function createRetireShip(deps) {
50
54
  if (!ship) {
51
55
  return refuse('SHIP_NOT_FOUND', `Ship ${shipId} does not exist`);
52
56
  }
53
- const managed = await checkManage({ tx, ids: deps.ids }, { fleetId, managerShipId: caller.shipId, shipId, at: deps.clock.now(), settings: await tx.networkSettings.find(fleetId) });
57
+ const managed = await checkManage({ tx, ids: deps.ids }, { manager: caller, shipId, at: deps.clock.now(), settings: await tx.networkSettings.find(fleetId) });
54
58
  if (!managed.isOk) {
55
59
  return managed;
56
60
  }
@@ -58,7 +62,7 @@ export function createRetireShip(deps) {
58
62
  if (!retirable.isOk) {
59
63
  return retirable;
60
64
  }
61
- const actor = shipActor(caller.shipId);
65
+ const actor = actorOf(caller);
62
66
  const at = deps.clock.now();
63
67
  const recorded = { events: tx.events, ids: deps.ids };
64
68
  await revokeShipSecret({ tx, ids: deps.ids }, { fleetId, shipId, actor, at });
@@ -118,21 +122,16 @@ export function createRetireShip(deps) {
118
122
  for (const event of labels.events) {
119
123
  await recordEvent(recorded, event);
120
124
  }
121
- const withdrawn = withdrawWithRetiredShip(await tx.declaredNetworkRules.find(fleetId, shipId), { at, actor });
125
+ // A ship that declared no rules leaves the settings as they are.
126
+ const settings = await tx.networkSettings.findForUpdate(fleetId);
127
+ const withdrawn = withdrawWithRetiredShip(await tx.declaredNetworkRules.find(fleetId, { kind: 'ship', shipId }), { settings, at, actor });
122
128
  if (withdrawn !== undefined) {
123
129
  await tx.declaredNetworkRules.save(withdrawn.declared);
130
+ await tx.networkSettings.save(withdrawn.settings);
124
131
  for (const event of withdrawn.events) {
125
132
  await recordEvent(recorded, event);
126
133
  }
127
134
  }
128
- // Any ship but the fleet's networking plugin leaves the settings as they are.
129
- const unregistered = unregisterNetworkPlugin(await tx.networkSettings.findForUpdate(fleetId), { shipId, at, actor });
130
- if (unregistered.isOk) {
131
- await tx.networkSettings.save(unregistered.value.settings);
132
- for (const event of unregistered.value.events) {
133
- await recordEvent(recorded, event);
134
- }
135
- }
136
135
  const declared = await tx.scopeNamespaces.findByDeclarer(fleetId, shipId);
137
136
  if (declared !== undefined) {
138
137
  // The holders first, as every grant locks its ship before the
@@ -150,6 +149,14 @@ export function createRetireShip(deps) {
150
149
  await recordEvent(recorded, event);
151
150
  }
152
151
  }
152
+ await tx.verifiedFacts.lockWriter(fleetId, shipId);
153
+ const facts = removeWithRetiredShip({ about: await tx.verifiedFacts.listAbout(fleetId, shipId), by: await tx.verifiedFacts.listBy(fleetId, shipId) }, { at, actor });
154
+ for (const written of facts.removed) {
155
+ await tx.verifiedFacts.remove(fleetId, { shipId: written.shipId, writer: written.writer });
156
+ }
157
+ for (const event of facts.events) {
158
+ await recordEvent(recorded, event);
159
+ }
153
160
  return ok({ abandonedDeliveries: abandoned.length });
154
161
  });
155
162
  }
@@ -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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"}
@@ -0,0 +1,31 @@
1
+ import type { IdGenerator } from '@aeolus-fleet/common';
2
+ import { type Caller } from '../shared/caller.js';
3
+ import type { Clock } from '../shared/clock.js';
4
+ import { type EventLog } from '../shared/events.js';
5
+ import { type Result } from '../shared/result.js';
6
+ import type { UnitOfWork } from '../shared/unit-of-work.js';
7
+ import type { InvalidNetworkRules, NetworkRule } from './network-settings.js';
8
+ import type { NetworkRulesDraftRepository, NetworkSettingsRepository } from './ports.js';
9
+ export interface SaveNetworkRulesDraftTx {
10
+ networkSettings: Pick<NetworkSettingsRepository, 'findForShare'>;
11
+ networkRulesDrafts: Pick<NetworkRulesDraftRepository, 'save'>;
12
+ events: EventLog;
13
+ }
14
+ export type SaveNetworkRulesDraft = (caller: Caller, input: {
15
+ rules: readonly NetworkRule[] | null;
16
+ }) => Promise<Result<{
17
+ savedAgainstVersion: number;
18
+ }, InvalidNetworkRules>>;
19
+ /**
20
+ * Use case: any actor holding fleet:network saves the draft of the fleet's
21
+ * own rules, a whole list or none for all-to-all (decisions 0034, 0053),
22
+ * checked before this runs. In one unit of work: the draft in place of the
23
+ * one before, against the settings version as it is, and
24
+ * NetworkRulesDraftSaved. Nothing in force changes, so the settings are only
25
+ * read, shared.
26
+ */
27
+ export declare function createSaveNetworkRulesDraft(deps: {
28
+ uow: UnitOfWork<SaveNetworkRulesDraftTx>;
29
+ clock: Clock;
30
+ ids: IdGenerator;
31
+ }): SaveNetworkRulesDraft;
@@ -0,0 +1,27 @@
1
+ import { actorOf } from '../shared/caller.js';
2
+ import { recordEvent } from '../shared/events.js';
3
+ import { ok } from '../shared/result.js';
4
+ import { saveNetworkRulesDraft } from './network-rules-draft.js';
5
+ /**
6
+ * Use case: any actor holding fleet:network saves the draft of the fleet's
7
+ * own rules, a whole list or none for all-to-all (decisions 0034, 0053),
8
+ * checked before this runs. In one unit of work: the draft in place of the
9
+ * one before, against the settings version as it is, and
10
+ * NetworkRulesDraftSaved. Nothing in force changes, so the settings are only
11
+ * read, shared.
12
+ */
13
+ export function createSaveNetworkRulesDraft(deps) {
14
+ return (caller, input) => deps.uow.run(async (tx) => {
15
+ const settings = await tx.networkSettings.findForShare(caller.fleetId);
16
+ const saved = saveNetworkRulesDraft(settings, { rules: input.rules, at: deps.clock.now(), actor: actorOf(caller) });
17
+ if (!saved.isOk) {
18
+ return saved;
19
+ }
20
+ await tx.networkRulesDrafts.save(saved.value.draft);
21
+ for (const event of saved.value.events) {
22
+ await recordEvent({ events: tx.events, ids: deps.ids }, event);
23
+ }
24
+ return ok({ savedAgainstVersion: saved.value.draft.savedAgainstVersion });
25
+ });
26
+ }
27
+ //# sourceMappingURL=save-network-rules-draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-network-rules-draft.js","sourceRoot":"","sources":["../../../src/domain/registry/save-network-rules-draft.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAYjE;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAkF;IAC5H,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAyE,EAAE;QAC/F,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpH,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvC,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,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,26 +1,30 @@
1
- import { type ScopeName, type ShipId, type ShipKind } from '@aeolus-fleet/common';
1
+ import { type ScopeName, type ShipId } from '@aeolus-fleet/common';
2
2
  import { type DomainError } from '../shared/errors.js';
3
3
  import type { Actor, NewEvent } from '../shared/events.js';
4
4
  import { type Result } from '../shared/result.js';
5
5
  import type { ScopeNamespace } from './scope-namespace.js';
6
6
  import type { Ship } from './ship.js';
7
- export type GrantScopesRefusal = DomainError<'INVALID_SCOPE' | 'BASE_SCOPE' | 'SCOPE_NOT_DECLARED' | 'SCOPE_NOT_HELD' | 'PLUGIN_SCOPE_NOT_YOURS' | 'SHIP_SCOPES_FIXED' | 'OWN_SHIP_SCOPES' | 'SHIP_ALREADY_RETIRED'>;
7
+ export type GrantScopesRefusal = DomainError<'INVALID_SCOPE' | 'BASE_SCOPE' | 'SCOPE_NOT_DECLARED' | 'SCOPE_NOT_HELD' | 'SHIP_SCOPES_FIXED' | 'OWN_SHIP_SCOPES' | 'SHIP_ALREADY_RETIRED'>;
8
8
  /**
9
- * A granter grants and revokes scopes on a live ship (decision 0046), each
10
- * within what it may grant: a core scope it holds (argo holds every one), or
11
- * a declared scope of a plugin namespace when it is argo or that namespace's
12
- * declarer. Revoking follows the same rule. Refused: a malformed or unknown
9
+ * Who grants: a ship by its id, or an account or the installation, with none;
10
+ * argo holds every scope, plugin scopes included (decision 0046).
11
+ */
12
+ export interface Granter {
13
+ shipId: ShipId | null;
14
+ isOperator: boolean;
15
+ scopes: readonly ScopeName[];
16
+ }
17
+ /**
18
+ * A granter grants and revokes scopes on a live ship (decisions 0046, 0053),
19
+ * each within what it may grant: a scope it holds, or a declared scope of a
20
+ * plugin namespace it declared. Revoking follows the same rule. Refused: a malformed or unknown
13
21
  * scope, one both granted and revoked, revoking sending or receiving, argo's
14
22
  * and the viewer's scopes, the granter's own ship and a retired ship. Writes
15
23
  * ScopesChanged when anything changes.
16
24
  */
17
25
  export declare function grantScopes(input: {
18
26
  ship: Ship;
19
- granter: {
20
- shipId: ShipId;
21
- kind: ShipKind;
22
- scopes: readonly ScopeName[];
23
- };
27
+ granter: Granter;
24
28
  grant: readonly string[];
25
29
  revoke: readonly string[];
26
30
  at: Date;
@@ -37,17 +41,13 @@ export declare function grantScopes(input: {
37
41
  }, GrantScopesRefusal>;
38
42
  /**
39
43
  * Whether the granter may grant or revoke the scope, at commission or on a
40
- * live ship: a core scope it holds, or a declared plugin scope when it is
41
- * argo or the declarer.
44
+ * live ship: a core scope it holds, or a declared plugin scope it holds or
45
+ * declared (decision 0053).
42
46
  */
43
47
  export declare function mayGrant(scope: string, at: {
44
- granter: {
45
- shipId: ShipId;
46
- kind: ShipKind;
47
- scopes: readonly ScopeName[];
48
- };
48
+ granter: Granter;
49
49
  namespaces: ReadonlyMap<string, {
50
50
  namespace: ScopeNamespace;
51
51
  declarerName: string;
52
52
  }>;
53
- }): Result<null, DomainError<'INVALID_SCOPE' | 'SCOPE_NOT_DECLARED' | 'SCOPE_NOT_HELD' | 'PLUGIN_SCOPE_NOT_YOURS'>>;
53
+ }): Result<null, DomainError<'INVALID_SCOPE' | 'SCOPE_NOT_DECLARED' | 'SCOPE_NOT_HELD'>>;
@@ -4,10 +4,9 @@ import { ok } from '../shared/result.js';
4
4
  /** The scopes every agent, person and app ship holds: never revoked (decision 0046). */
5
5
  const BASE_SCOPES = ['messages:send', 'messages:receive'];
6
6
  /**
7
- * A granter grants and revokes scopes on a live ship (decision 0046), each
8
- * within what it may grant: a core scope it holds (argo holds every one), or
9
- * a declared scope of a plugin namespace when it is argo or that namespace's
10
- * declarer. Revoking follows the same rule. Refused: a malformed or unknown
7
+ * A granter grants and revokes scopes on a live ship (decisions 0046, 0053),
8
+ * each within what it may grant: a scope it holds, or a declared scope of a
9
+ * plugin namespace it declared. Revoking follows the same rule. Refused: a malformed or unknown
11
10
  * scope, one both granted and revoked, revoking sending or receiving, argo's
12
11
  * and the viewer's scopes, the granter's own ship and a retired ship. Writes
13
12
  * ScopesChanged when anything changes.
@@ -50,8 +49,8 @@ export function grantScopes(input, fleet) {
50
49
  }
51
50
  /**
52
51
  * Whether the granter may grant or revoke the scope, at commission or on a
53
- * live ship: a core scope it holds, or a declared plugin scope when it is
54
- * argo or the declarer.
52
+ * live ship: a core scope it holds, or a declared plugin scope it holds or
53
+ * declared (decision 0053).
55
54
  */
56
55
  export function mayGrant(scope, at) {
57
56
  const { granter, namespaces } = at;
@@ -59,15 +58,15 @@ export function mayGrant(scope, at) {
59
58
  return refuse('INVALID_SCOPE', `${scope} is no scope: a core scope, or a plugin's <namespace>:<action>`);
60
59
  }
61
60
  if (scopeSchema.safeParse(scope).success) {
62
- return granter.kind === 'operator' || granter.scopes.includes(scope) ? ok(null) : refuse('SCOPE_NOT_HELD', `Your ship does not hold ${scope}, so it cannot grant it`);
61
+ return granter.isOperator || granter.scopes.includes(scope) ? ok(null) : refuse('SCOPE_NOT_HELD', `You do not hold ${scope}, so you cannot grant it`);
63
62
  }
64
63
  const namespace = scope.slice(0, scope.indexOf(':'));
65
64
  const declared = namespaces.get(namespace);
66
65
  if (declared?.namespace.scopes.some((each) => each.scope === scope) !== true) {
67
66
  return refuse('SCOPE_NOT_DECLARED', `No plugin declared ${scope}`);
68
67
  }
69
- if (granter.kind !== 'operator' && declared.namespace.declaredBy !== granter.shipId) {
70
- return refuse('PLUGIN_SCOPE_NOT_YOURS', `Only argo and ${declared.declarerName}, which declared ${namespace}, grant ${scope}`);
68
+ if (!granter.isOperator && !granter.scopes.includes(scope) && declared.namespace.declaredBy !== granter.shipId) {
69
+ return refuse('SCOPE_NOT_HELD', `You do not hold ${scope}, so you cannot grant it`);
71
70
  }
72
71
  return ok(null);
73
72
  }