@aeolus-fleet/core 0.27.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/crypto/account-token-signatures.d.ts +12 -0
  3. package/dist/adapters/crypto/account-token-signatures.js +104 -0
  4. package/dist/adapters/crypto/account-token-signatures.js.map +1 -0
  5. package/dist/adapters/http/request-credentials.d.ts +7 -1
  6. package/dist/adapters/http/request-credentials.js +18 -5
  7. package/dist/adapters/http/request-credentials.js.map +1 -1
  8. package/dist/adapters/http/server.js +4 -2
  9. package/dist/adapters/http/server.js.map +1 -1
  10. package/dist/adapters/prisma/event-log.js +13 -1
  11. package/dist/adapters/prisma/event-log.js.map +1 -1
  12. package/dist/adapters/prisma/generated/browser.d.ts +36 -0
  13. package/dist/adapters/prisma/generated/client.d.ts +36 -0
  14. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +150 -0
  15. package/dist/adapters/prisma/generated/enums.d.ts +33 -0
  16. package/dist/adapters/prisma/generated/enums.js +29 -1
  17. package/dist/adapters/prisma/generated/enums.js.map +1 -1
  18. package/dist/adapters/prisma/generated/internal/class.d.ts +55 -0
  19. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  20. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  21. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +463 -8
  22. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +45 -10
  23. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  24. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +47 -7
  25. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +45 -10
  26. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  27. package/dist/adapters/prisma/generated/models/AccountCutOff.d.ts +944 -0
  28. package/dist/adapters/prisma/generated/models/AccountCutOff.js +2 -0
  29. package/dist/adapters/prisma/generated/models/AccountCutOff.js.map +1 -0
  30. package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +59 -1
  31. package/dist/adapters/prisma/generated/models/Event.d.ts +426 -1
  32. package/dist/adapters/prisma/generated/models/Fleet.d.ts +1270 -116
  33. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.d.ts +1031 -0
  34. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js +2 -0
  35. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js.map +1 -0
  36. package/dist/adapters/prisma/generated/models/Label.d.ts +113 -39
  37. package/dist/adapters/prisma/generated/models/Lease.d.ts +60 -1
  38. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.d.ts +1133 -0
  39. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js +2 -0
  40. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js.map +1 -0
  41. package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +24 -223
  42. package/dist/adapters/prisma/generated/models/PluginConnection.d.ts +1180 -0
  43. package/dist/adapters/prisma/generated/models/PluginConnection.js +2 -0
  44. package/dist/adapters/prisma/generated/models/PluginConnection.js.map +1 -0
  45. package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +1 -40
  46. package/dist/adapters/prisma/generated/models/Ship.d.ts +1072 -6
  47. package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +39 -1
  48. package/dist/adapters/prisma/generated/models/VerifiedFacts.d.ts +1325 -0
  49. package/dist/adapters/prisma/generated/models/VerifiedFacts.js +2 -0
  50. package/dist/adapters/prisma/generated/models/VerifiedFacts.js.map +1 -0
  51. package/dist/adapters/prisma/generated/models.d.ts +5 -0
  52. package/dist/adapters/prisma/history.js +5 -2
  53. package/dist/adapters/prisma/history.js.map +1 -1
  54. package/dist/adapters/prisma/identity.d.ts +3 -1
  55. package/dist/adapters/prisma/identity.js +41 -8
  56. package/dist/adapters/prisma/identity.js.map +1 -1
  57. package/dist/adapters/prisma/messaging.js +5 -2
  58. package/dist/adapters/prisma/messaging.js.map +1 -1
  59. package/dist/adapters/prisma/network.d.ts +7 -2
  60. package/dist/adapters/prisma/network.js +92 -62
  61. package/dist/adapters/prisma/network.js.map +1 -1
  62. package/dist/adapters/prisma/overdue.js +4 -3
  63. package/dist/adapters/prisma/overdue.js.map +1 -1
  64. package/dist/adapters/prisma/plugin-connections.d.ts +4 -0
  65. package/dist/adapters/prisma/plugin-connections.js +20 -0
  66. package/dist/adapters/prisma/plugin-connections.js.map +1 -0
  67. package/dist/adapters/prisma/registry.js +22 -16
  68. package/dist/adapters/prisma/registry.js.map +1 -1
  69. package/dist/adapters/prisma/rows.d.ts +9 -4
  70. package/dist/adapters/prisma/rows.js +77 -19
  71. package/dist/adapters/prisma/rows.js.map +1 -1
  72. package/dist/adapters/prisma/unit-of-work.d.ts +5 -2
  73. package/dist/adapters/prisma/unit-of-work.js +7 -2
  74. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  75. package/dist/adapters/prisma/verified-facts.d.ts +4 -0
  76. package/dist/adapters/prisma/verified-facts.js +65 -0
  77. package/dist/adapters/prisma/verified-facts.js.map +1 -0
  78. package/dist/adapters/rest/rest-api.js +2 -2
  79. package/dist/adapters/rest/rest-api.js.map +1 -1
  80. package/dist/adapters/trpc/console.d.ts +3 -1
  81. package/dist/adapters/trpc/context.d.ts +28 -6
  82. package/dist/adapters/trpc/fleet.d.ts +314 -51
  83. package/dist/adapters/trpc/fleet.js +137 -75
  84. package/dist/adapters/trpc/fleet.js.map +1 -1
  85. package/dist/adapters/trpc/installation-token.d.ts +7 -0
  86. package/dist/adapters/trpc/installation-token.js +10 -0
  87. package/dist/adapters/trpc/installation-token.js.map +1 -0
  88. package/dist/adapters/trpc/installation.d.ts +32 -2
  89. package/dist/adapters/trpc/installation.js +14 -10
  90. package/dist/adapters/trpc/installation.js.map +1 -1
  91. package/dist/adapters/trpc/router.d.ts +435 -42
  92. package/dist/adapters/trpc/ship-contract.js +6 -3
  93. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  94. package/dist/adapters/trpc/ship-protocol.js +1 -1
  95. package/dist/adapters/trpc/ship-protocol.js.map +1 -1
  96. package/dist/adapters/trpc/ship.d.ts +117 -1
  97. package/dist/adapters/trpc/ship.js +52 -6
  98. package/dist/adapters/trpc/ship.js.map +1 -1
  99. package/dist/adapters/trpc/trpc.d.ts +43 -17
  100. package/dist/adapters/trpc/trpc.js +131 -31
  101. package/dist/adapters/trpc/trpc.js.map +1 -1
  102. package/dist/app.d.ts +2 -0
  103. package/dist/app.js +22 -0
  104. package/dist/app.js.map +1 -1
  105. package/dist/config.d.ts +5 -0
  106. package/dist/config.js +3 -1
  107. package/dist/config.js.map +1 -1
  108. package/dist/domain/identity/authenticate-account.d.ts +35 -0
  109. package/dist/domain/identity/authenticate-account.js +54 -0
  110. package/dist/domain/identity/authenticate-account.js.map +1 -0
  111. package/dist/domain/identity/authenticate-installation.d.ts +23 -0
  112. package/dist/domain/identity/authenticate-installation.js +20 -0
  113. package/dist/domain/identity/authenticate-installation.js.map +1 -0
  114. package/dist/domain/identity/authenticate.d.ts +2 -2
  115. package/dist/domain/identity/console-session.d.ts +6 -3
  116. package/dist/domain/identity/console-session.js.map +1 -1
  117. package/dist/domain/identity/cut-off-account.d.ts +29 -0
  118. package/dist/domain/identity/cut-off-account.js +37 -0
  119. package/dist/domain/identity/cut-off-account.js.map +1 -0
  120. package/dist/domain/identity/dismiss-notice.d.ts +2 -2
  121. package/dist/domain/identity/issue-sign-in-ticket.d.ts +9 -3
  122. package/dist/domain/identity/issue-sign-in-ticket.js +8 -2
  123. package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -1
  124. package/dist/domain/identity/ports.d.ts +52 -5
  125. package/dist/domain/identity/read-account.d.ts +8 -4
  126. package/dist/domain/identity/read-account.js +1 -1
  127. package/dist/domain/identity/read-account.js.map +1 -1
  128. package/dist/domain/identity/read-guide.d.ts +2 -2
  129. package/dist/domain/identity/read-notices.d.ts +2 -2
  130. package/dist/domain/identity/record-guide-progress.d.ts +2 -2
  131. package/dist/domain/identity/redeem-sign-in-ticket.d.ts +2 -1
  132. package/dist/domain/identity/redeem-sign-in-ticket.js +3 -2
  133. package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -1
  134. package/dist/domain/identity/set-theme.d.ts +2 -2
  135. package/dist/domain/identity/sign-in-ticket.d.ts +3 -1
  136. package/dist/domain/identity/sign-in.d.ts +2 -2
  137. package/dist/domain/identity/sign-in.js +2 -0
  138. package/dist/domain/identity/sign-in.js.map +1 -1
  139. package/dist/domain/identity/sign-out.d.ts +2 -2
  140. package/dist/domain/identity/sign-out.js +1 -1
  141. package/dist/domain/identity/sign-out.js.map +1 -1
  142. package/dist/domain/identity/start-console-session.d.ts +4 -2
  143. package/dist/domain/identity/start-console-session.js +6 -4
  144. package/dist/domain/identity/start-console-session.js.map +1 -1
  145. package/dist/domain/identity/start-viewer-session.js +1 -0
  146. package/dist/domain/identity/start-viewer-session.js.map +1 -1
  147. package/dist/domain/messaging/delivery.d.ts +11 -3
  148. package/dist/domain/messaging/delivery.js +23 -15
  149. package/dist/domain/messaging/delivery.js.map +1 -1
  150. package/dist/domain/messaging/dismiss-delivery.d.ts +2 -2
  151. package/dist/domain/messaging/hand-over-delivery.d.ts +1 -0
  152. package/dist/domain/messaging/hand-over-delivery.js +1 -0
  153. package/dist/domain/messaging/hand-over-delivery.js.map +1 -1
  154. package/dist/domain/messaging/message.d.ts +3 -1
  155. package/dist/domain/messaging/message.js +1 -1
  156. package/dist/domain/messaging/message.js.map +1 -1
  157. package/dist/domain/messaging/overdue.d.ts +2 -0
  158. package/dist/domain/messaging/overdue.js +3 -0
  159. package/dist/domain/messaging/overdue.js.map +1 -1
  160. package/dist/domain/messaging/ping-ship.d.ts +2 -2
  161. package/dist/domain/messaging/ping-ship.js +1 -1
  162. package/dist/domain/messaging/ping-ship.js.map +1 -1
  163. package/dist/domain/messaging/ports.d.ts +2 -0
  164. package/dist/domain/messaging/push-receive-deliveries.d.ts +4 -1
  165. package/dist/domain/messaging/push-receive-deliveries.js +5 -3
  166. package/dist/domain/messaging/push-receive-deliveries.js.map +1 -1
  167. package/dist/domain/messaging/receive-deliveries.d.ts +21 -0
  168. package/dist/domain/messaging/receive-deliveries.js +5 -3
  169. package/dist/domain/messaging/receive-deliveries.js.map +1 -1
  170. package/dist/domain/messaging/receive-reply.d.ts +32 -0
  171. package/dist/domain/messaging/receive-reply.js +25 -0
  172. package/dist/domain/messaging/receive-reply.js.map +1 -0
  173. package/dist/domain/messaging/resend-delivery.d.ts +2 -2
  174. package/dist/domain/messaging/resend-delivery.js +1 -0
  175. package/dist/domain/messaging/resend-delivery.js.map +1 -1
  176. package/dist/domain/messaging/send-message.d.ts +3 -3
  177. package/dist/domain/messaging/send-message.js +1 -0
  178. package/dist/domain/messaging/send-message.js.map +1 -1
  179. package/dist/domain/registry/apply-network-rules.d.ts +32 -0
  180. package/dist/domain/registry/apply-network-rules.js +33 -0
  181. package/dist/domain/registry/apply-network-rules.js.map +1 -0
  182. package/dist/domain/registry/assign-crew.d.ts +2 -2
  183. package/dist/domain/registry/assign-crew.js +3 -2
  184. package/dist/domain/registry/assign-crew.js.map +1 -1
  185. package/dist/domain/registry/assign-label.d.ts +7 -5
  186. package/dist/domain/registry/assign-label.js +16 -6
  187. package/dist/domain/registry/assign-label.js.map +1 -1
  188. package/dist/domain/registry/change-label-values.d.ts +1 -1
  189. package/dist/domain/registry/change-label-values.js +4 -3
  190. package/dist/domain/registry/change-label-values.js.map +1 -1
  191. package/dist/domain/registry/check-reach.d.ts +49 -24
  192. package/dist/domain/registry/check-reach.js +77 -42
  193. package/dist/domain/registry/check-reach.js.map +1 -1
  194. package/dist/domain/registry/clear-request.d.ts +1 -1
  195. package/dist/domain/registry/clear-request.js +1 -1
  196. package/dist/domain/registry/clear-request.js.map +1 -1
  197. package/dist/domain/registry/commission-ship.d.ts +26 -13
  198. package/dist/domain/registry/commission-ship.js +199 -22
  199. package/dist/domain/registry/commission-ship.js.map +1 -1
  200. package/dist/domain/registry/confirm-crew-release.d.ts +2 -2
  201. package/dist/domain/registry/confirm-crew-release.js +3 -2
  202. package/dist/domain/registry/confirm-crew-release.js.map +1 -1
  203. package/dist/domain/registry/confirm-worktree-cleared.d.ts +2 -2
  204. package/dist/domain/registry/confirm-worktree-cleared.js +3 -2
  205. package/dist/domain/registry/confirm-worktree-cleared.js.map +1 -1
  206. package/dist/domain/registry/connect-plugin.d.ts +31 -0
  207. package/dist/domain/registry/connect-plugin.js +34 -0
  208. package/dist/domain/registry/connect-plugin.js.map +1 -0
  209. package/dist/domain/registry/crew-request.d.ts +2 -2
  210. package/dist/domain/registry/crew-request.js.map +1 -1
  211. package/dist/domain/registry/declare-network-rules.d.ts +9 -6
  212. package/dist/domain/registry/declare-network-rules.js +13 -8
  213. package/dist/domain/registry/declare-network-rules.js.map +1 -1
  214. package/dist/domain/registry/declare-scopes.d.ts +2 -2
  215. package/dist/domain/registry/declared-network-rules.d.ts +30 -21
  216. package/dist/domain/registry/declared-network-rules.js +46 -22
  217. package/dist/domain/registry/declared-network-rules.js.map +1 -1
  218. package/dist/domain/registry/define-label.d.ts +1 -1
  219. package/dist/domain/registry/define-label.js +5 -5
  220. package/dist/domain/registry/define-label.js.map +1 -1
  221. package/dist/domain/registry/delete-label.d.ts +1 -1
  222. package/dist/domain/registry/delete-label.js +4 -3
  223. package/dist/domain/registry/delete-label.js.map +1 -1
  224. package/dist/domain/registry/discard-network-rules-draft.d.ts +23 -0
  225. package/dist/domain/registry/discard-network-rules-draft.js +24 -0
  226. package/dist/domain/registry/discard-network-rules-draft.js.map +1 -0
  227. package/dist/domain/registry/discover.d.ts +12 -10
  228. package/dist/domain/registry/discover.js +11 -5
  229. package/dist/domain/registry/discover.js.map +1 -1
  230. package/dist/domain/registry/explain-crew-request.d.ts +2 -2
  231. package/dist/domain/registry/explain-crew-request.js +3 -2
  232. package/dist/domain/registry/explain-crew-request.js.map +1 -1
  233. package/dist/domain/registry/explain-reach.d.ts +22 -14
  234. package/dist/domain/registry/explain-reach.js +53 -53
  235. package/dist/domain/registry/explain-reach.js.map +1 -1
  236. package/dist/domain/registry/get-ship.d.ts +2 -2
  237. package/dist/domain/registry/get-starting-prompt.d.ts +4 -2
  238. package/dist/domain/registry/get-starting-prompt.js +7 -5
  239. package/dist/domain/registry/get-starting-prompt.js.map +1 -1
  240. package/dist/domain/registry/give-back-crew-request.d.ts +2 -2
  241. package/dist/domain/registry/give-back-crew-request.js +3 -2
  242. package/dist/domain/registry/give-back-crew-request.js.map +1 -1
  243. package/dist/domain/registry/grant-scopes.d.ts +8 -5
  244. package/dist/domain/registry/grant-scopes.js +14 -5
  245. package/dist/domain/registry/grant-scopes.js.map +1 -1
  246. package/dist/domain/registry/label.d.ts +69 -18
  247. package/dist/domain/registry/label.js +79 -28
  248. package/dist/domain/registry/label.js.map +1 -1
  249. package/dist/domain/registry/lease.d.ts +1 -1
  250. package/dist/domain/registry/leases.d.ts +6 -3
  251. package/dist/domain/registry/leases.js +7 -5
  252. package/dist/domain/registry/leases.js.map +1 -1
  253. package/dist/domain/registry/list-fleet.d.ts +2 -0
  254. package/dist/domain/registry/list-fleet.js +1 -0
  255. package/dist/domain/registry/list-fleet.js.map +1 -1
  256. package/dist/domain/registry/list-scopes.d.ts +2 -1
  257. package/dist/domain/registry/list-scopes.js +2 -1
  258. package/dist/domain/registry/list-scopes.js.map +1 -1
  259. package/dist/domain/registry/managed-or-assigned.d.ts +12 -4
  260. package/dist/domain/registry/managed-or-assigned.js +25 -7
  261. package/dist/domain/registry/managed-or-assigned.js.map +1 -1
  262. package/dist/domain/registry/network-rules-draft.d.ts +45 -0
  263. package/dist/domain/registry/network-rules-draft.js +41 -0
  264. package/dist/domain/registry/network-rules-draft.js.map +1 -0
  265. package/dist/domain/registry/network-settings.d.ts +96 -115
  266. package/dist/domain/registry/network-settings.js +101 -150
  267. package/dist/domain/registry/network-settings.js.map +1 -1
  268. package/dist/domain/registry/plugin-connection.d.ts +48 -0
  269. package/dist/domain/registry/plugin-connection.js +35 -0
  270. package/dist/domain/registry/plugin-connection.js.map +1 -0
  271. package/dist/domain/registry/ports.d.ts +60 -12
  272. package/dist/domain/registry/reach-refusal.d.ts +18 -4
  273. package/dist/domain/registry/read-assigned-crew-requests.d.ts +2 -2
  274. package/dist/domain/registry/read-built-in-rules.d.ts +5 -4
  275. package/dist/domain/registry/read-built-in-rules.js +9 -7
  276. package/dist/domain/registry/read-built-in-rules.js.map +1 -1
  277. package/dist/domain/registry/read-clear-requests.d.ts +2 -2
  278. package/dist/domain/registry/read-clear-requests.js.map +1 -1
  279. package/dist/domain/registry/read-declared-network-rules.d.ts +5 -5
  280. package/dist/domain/registry/read-declared-network-rules.js +4 -4
  281. package/dist/domain/registry/read-declared-network-rules.js.map +1 -1
  282. package/dist/domain/registry/read-network-rules-draft-changes.d.ts +22 -0
  283. package/dist/domain/registry/read-network-rules-draft-changes.js +53 -0
  284. package/dist/domain/registry/read-network-rules-draft-changes.js.map +1 -0
  285. package/dist/domain/registry/read-network-rules.d.ts +30 -0
  286. package/dist/domain/registry/read-network-rules.js +18 -0
  287. package/dist/domain/registry/read-network-rules.js.map +1 -0
  288. package/dist/domain/registry/read-on-behalf.d.ts +3 -3
  289. package/dist/domain/registry/read-on-behalf.js.map +1 -1
  290. package/dist/domain/registry/read-reach-refusals.d.ts +6 -5
  291. package/dist/domain/registry/read-reach-refusals.js +13 -8
  292. package/dist/domain/registry/read-reach-refusals.js.map +1 -1
  293. package/dist/domain/registry/read-reach.d.ts +10 -10
  294. package/dist/domain/registry/read-reach.js +26 -16
  295. package/dist/domain/registry/read-reach.js.map +1 -1
  296. package/dist/domain/registry/recrew-ship.d.ts +2 -2
  297. package/dist/domain/registry/recrew-ship.js +5 -3
  298. package/dist/domain/registry/recrew-ship.js.map +1 -1
  299. package/dist/domain/registry/release-ship.d.ts +7 -4
  300. package/dist/domain/registry/release-ship.js +8 -4
  301. package/dist/domain/registry/release-ship.js.map +1 -1
  302. package/dist/domain/registry/remove-crew-request.d.ts +2 -2
  303. package/dist/domain/registry/remove-crew-request.js +4 -3
  304. package/dist/domain/registry/remove-crew-request.js.map +1 -1
  305. package/dist/domain/registry/rename-ship.d.ts +1 -1
  306. package/dist/domain/registry/rename-ship.js +4 -3
  307. package/dist/domain/registry/rename-ship.js.map +1 -1
  308. package/dist/domain/registry/report-crew-status.d.ts +2 -2
  309. package/dist/domain/registry/report-crew-status.js +3 -2
  310. package/dist/domain/registry/report-crew-status.js.map +1 -1
  311. package/dist/domain/registry/request-crew.d.ts +3 -3
  312. package/dist/domain/registry/request-crew.js +4 -3
  313. package/dist/domain/registry/request-crew.js.map +1 -1
  314. package/dist/domain/registry/request-worktree-clear.d.ts +2 -2
  315. package/dist/domain/registry/request-worktree-clear.js +4 -3
  316. package/dist/domain/registry/request-worktree-clear.js.map +1 -1
  317. package/dist/domain/registry/retire-ship.d.ts +17 -12
  318. package/dist/domain/registry/retire-ship.js +30 -21
  319. package/dist/domain/registry/retire-ship.js.map +1 -1
  320. package/dist/domain/registry/save-network-rules-draft.d.ts +31 -0
  321. package/dist/domain/registry/save-network-rules-draft.js +27 -0
  322. package/dist/domain/registry/save-network-rules-draft.js.map +1 -0
  323. package/dist/domain/registry/scope-grant.d.ts +19 -19
  324. package/dist/domain/registry/scope-grant.js +8 -9
  325. package/dist/domain/registry/scope-grant.js.map +1 -1
  326. package/dist/domain/registry/set-built-in-rule.d.ts +3 -3
  327. package/dist/domain/registry/set-built-in-rule.js +5 -9
  328. package/dist/domain/registry/set-built-in-rule.js.map +1 -1
  329. package/dist/domain/registry/set-owner.d.ts +9 -6
  330. package/dist/domain/registry/set-owner.js +14 -8
  331. package/dist/domain/registry/set-owner.js.map +1 -1
  332. package/dist/domain/registry/set-verified-facts.d.ts +36 -0
  333. package/dist/domain/registry/set-verified-facts.js +58 -0
  334. package/dist/domain/registry/set-verified-facts.js.map +1 -0
  335. package/dist/domain/registry/ship.d.ts +55 -17
  336. package/dist/domain/registry/ship.js +107 -16
  337. package/dist/domain/registry/ship.js.map +1 -1
  338. package/dist/domain/registry/statement.d.ts +2 -2
  339. package/dist/domain/registry/statement.js +2 -2
  340. package/dist/domain/registry/statement.js.map +1 -1
  341. package/dist/domain/registry/turn.d.ts +2 -2
  342. package/dist/domain/registry/turn.js +2 -2
  343. package/dist/domain/registry/turn.js.map +1 -1
  344. package/dist/domain/registry/unassign-label.d.ts +8 -5
  345. package/dist/domain/registry/unassign-label.js +17 -6
  346. package/dist/domain/registry/unassign-label.js.map +1 -1
  347. package/dist/domain/registry/verified-facts.d.ts +75 -0
  348. package/dist/domain/registry/verified-facts.js +107 -0
  349. package/dist/domain/registry/verified-facts.js.map +1 -0
  350. package/dist/domain/registry/whoami.d.ts +2 -2
  351. package/dist/domain/shared/caller.d.ts +40 -6
  352. package/dist/domain/shared/caller.js +20 -0
  353. package/dist/domain/shared/caller.js.map +1 -1
  354. package/dist/domain/shared/delivery-way.d.ts +9 -5
  355. package/dist/domain/shared/delivery-way.js +17 -5
  356. package/dist/domain/shared/delivery-way.js.map +1 -1
  357. package/dist/domain/shared/errors.d.ts +1 -1
  358. package/dist/domain/shared/errors.js.map +1 -1
  359. package/dist/domain/shared/events.d.ts +13 -2
  360. package/dist/domain/shared/events.js.map +1 -1
  361. package/dist/domain/shared/health.d.ts +3 -1
  362. package/dist/domain/shared/health.js +5 -3
  363. package/dist/domain/shared/health.js.map +1 -1
  364. package/dist/domain/shared/history.d.ts +5 -1
  365. package/dist/domain/shared/history.js.map +1 -1
  366. package/dist/domain/shared/read-fleet-limits.d.ts +2 -2
  367. package/dist/domain/shared/read-health.d.ts +4 -3
  368. package/dist/domain/shared/read-health.js +9 -3
  369. package/dist/domain/shared/read-health.js.map +1 -1
  370. package/dist/domain/shared/read-inbox.d.ts +2 -2
  371. package/dist/domain/shared/read-message.d.ts +2 -2
  372. package/dist/domain/shared/read-needs-attention.d.ts +2 -2
  373. package/dist/domain/shared/read-sent-message.d.ts +31 -0
  374. package/dist/domain/shared/read-sent-message.js +28 -0
  375. package/dist/domain/shared/read-sent-message.js.map +1 -0
  376. package/dist/domain/shared/read-ship-messages.d.ts +2 -2
  377. package/dist/domain/shared/read-ship-timeline.d.ts +2 -2
  378. package/dist/domain/shared/read-ship-way.d.ts +2 -2
  379. package/dist/domain/shared/read-ship-way.js +1 -1
  380. package/dist/domain/shared/read-ship-way.js.map +1 -1
  381. package/dist/domain/shared/stuck.js +4 -2
  382. package/dist/domain/shared/stuck.js.map +1 -1
  383. package/dist/start.js +1 -0
  384. package/dist/start.js.map +1 -1
  385. package/dist/testing/account-token-issuer.d.ts +30 -0
  386. package/dist/testing/account-token-issuer.js +48 -0
  387. package/dist/testing/account-token-issuer.js.map +1 -0
  388. package/dist/testing/container-images.d.ts +14 -0
  389. package/dist/testing/container-images.js +18 -0
  390. package/dist/testing/container-images.js.map +1 -0
  391. package/dist/testing/database.d.ts +14 -0
  392. package/dist/testing/database.js +48 -0
  393. package/dist/testing/database.js.map +1 -0
  394. package/dist/testing/fleet.d.ts +13 -0
  395. package/dist/testing/fleet.js +17 -0
  396. package/dist/testing/fleet.js.map +1 -0
  397. package/dist/testing/index.d.ts +12 -0
  398. package/dist/testing/index.js +12 -0
  399. package/dist/testing/index.js.map +1 -0
  400. package/dist/testing/keys.d.ts +1 -0
  401. package/dist/testing/keys.js +7 -0
  402. package/dist/testing/keys.js.map +1 -0
  403. package/dist/testing/migrate-lock.d.ts +12 -0
  404. package/dist/testing/migrate-lock.js +51 -0
  405. package/dist/testing/migrate-lock.js.map +1 -0
  406. package/dist/testing/migrated-template.d.ts +12 -0
  407. package/dist/testing/migrated-template.js +29 -0
  408. package/dist/testing/migrated-template.js.map +1 -0
  409. package/dist/testing/postgres-container.d.ts +16 -0
  410. package/dist/testing/postgres-container.js +30 -0
  411. package/dist/testing/postgres-container.js.map +1 -0
  412. package/dist/testing/postgres-global-setup.d.ts +15 -0
  413. package/dist/testing/postgres-global-setup.js +20 -0
  414. package/dist/testing/postgres-global-setup.js.map +1 -0
  415. package/dist/testing/prisma-cli.d.ts +5 -0
  416. package/dist/testing/prisma-cli.js +15 -0
  417. package/dist/testing/prisma-cli.js.map +1 -0
  418. package/dist/testing/result.d.ts +5 -0
  419. package/dist/testing/result.js +15 -0
  420. package/dist/testing/result.js.map +1 -0
  421. package/dist/wiring.d.ts +27 -6
  422. package/dist/wiring.js +44 -11
  423. package/dist/wiring.js.map +1 -1
  424. package/package.json +26 -3
  425. package/src/adapters/prisma/migrations/20261018250000_scope_catalogue/migration.sql +8 -7
  426. package/src/adapters/prisma/migrations/20261019100000_on_behalf_scope/migration.sql +3 -1
  427. package/src/adapters/prisma/migrations/20261019130000_plugin_connections/migration.sql +54 -0
  428. package/src/adapters/prisma/migrations/20261019150000_network_plugin_registered_at/migration.sql +23 -0
  429. package/src/adapters/prisma/migrations/20261019160000_lease_waker/migration.sql +4 -0
  430. package/src/adapters/prisma/migrations/20261019200000_account_cut_offs/migration.sql +10 -0
  431. package/src/adapters/prisma/migrations/20261019210000_event_actors/migration.sql +32 -0
  432. package/src/adapters/prisma/migrations/20261020090000_argos_jobs_as_scopes/migration.sql +65 -0
  433. package/src/adapters/prisma/migrations/20261020100000_installation_labels/migration.sql +7 -0
  434. package/src/adapters/prisma/migrations/20261020110000_installation_declared_network_rules/migration.sql +10 -0
  435. package/src/adapters/prisma/migrations/20261020120000_commissioning_actors/migration.sql +14 -0
  436. package/src/adapters/prisma/migrations/20261020130000_console_sign_in_accounts/migration.sql +4 -0
  437. package/src/adapters/prisma/migrations/20261020140000_event_signed_in_accounts/migration.sql +4 -0
  438. package/src/adapters/prisma/migrations/20261020150000_account_cut_off_ends_console_sessions/migration.sql +2 -0
  439. package/src/adapters/prisma/migrations/20261020160000_network_in_core/migration.sql +30 -0
  440. package/src/adapters/prisma/migrations/20261020170000_verify_scope/migration.sql +64 -0
  441. package/src/adapters/prisma/migrations/20261020180000_verified_facts/migration.sql +21 -0
  442. package/src/adapters/prisma/migrations/20261020190000_verified_facts_by_writer/migration.sql +3 -0
  443. package/src/adapters/prisma/schema.prisma +160 -22
  444. package/dist/domain/registry/register-network-plugin.d.ts +0 -28
  445. package/dist/domain/registry/register-network-plugin.js +0 -26
  446. package/dist/domain/registry/register-network-plugin.js.map +0 -1
  447. package/dist/domain/registry/set-network-rules.d.ts +0 -31
  448. package/dist/domain/registry/set-network-rules.js +0 -27
  449. package/dist/domain/registry/set-network-rules.js.map +0 -1
  450. package/dist/domain/registry/unregister-network-plugin.d.ts +0 -27
  451. package/dist/domain/registry/unregister-network-plugin.js +0 -25
  452. package/dist/domain/registry/unregister-network-plugin.js.map +0 -1
@@ -1,26 +1,185 @@
1
+ import { actorOf, isShipCaller } 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 { idempotencyKey } from '../shared/idempotency-key.js';
4
5
  import { ok } from '../shared/result.js';
5
6
  import { appliedLimits } from './applied-limits.js';
6
7
  import { lockNamedNamespaces } from './named-namespaces.js';
8
+ import { GROUP_LABEL_KEY } from './check-reach.js';
9
+ import { labelOwnerOf, labelsAtCommission, ownerNameOf } from './label.js';
7
10
  import { commissionShip } from './ship.js';
8
11
  import { issueStartingPrompt } from './starting-prompt.js';
9
12
  /** The request as one text, so a repeat is known by its hash: the scopes in a fixed order, each once. */
10
13
  function commissionRequestText(input) {
11
14
  const scopes = [...new Set(input.scopes)].toSorted();
12
- return JSON.stringify({ name: input.name, type: input.type, kind: input.kind ?? 'agent', note: input.note ?? null, scopes, ownerOf: input.ownerOf ?? null });
15
+ const valueIds = [...new Set(input.valueIds)].toSorted();
16
+ return JSON.stringify({
17
+ name: input.name,
18
+ type: input.type,
19
+ kind: input.kind ?? 'agent',
20
+ note: input.note ?? null,
21
+ scopes,
22
+ valueIds,
23
+ ownerOf: input.ownerOf ?? null,
24
+ owner: input.owner ?? null,
25
+ });
26
+ }
27
+ /**
28
+ * The ship, read again once its owner is held FOR SHARE, so the owner the new
29
+ * ship gets is never a retired one. A retire locks the owner first: one that
30
+ * committed before has moved the ship to argo, so the owner read changed and
31
+ * its new owner is held instead; one after waits for this commission and finds
32
+ * the new ship among those it hands to argo.
33
+ */
34
+ async function findWithOwnerHeld(tx, ref) {
35
+ let ship = await tx.ships.find(ref.fleetId, ref.shipId);
36
+ while (ship?.owner) {
37
+ const owner = ship.owner;
38
+ await tx.ships.findForShare(ref.fleetId, owner);
39
+ ship = await tx.ships.find(ref.fleetId, ref.shipId);
40
+ if (ship?.owner === owner) {
41
+ return ship;
42
+ }
43
+ }
44
+ return ship;
45
+ }
46
+ /**
47
+ * The values given, each with its label read FOR SHARE, so a change of its
48
+ * values waits; undefined names a value the fleet does not have.
49
+ */
50
+ async function givenValues(tx, ref) {
51
+ const given = [];
52
+ for (const valueId of ref.valueIds) {
53
+ const label = await tx.labels.findByValueForShare(ref.fleetId, valueId);
54
+ if (!label?.values.some((value) => value.id === valueId)) {
55
+ return { given, missing: valueId };
56
+ }
57
+ given.push({ label, valueId, ownerName: await ownerNameOf(label.owner, async (shipId) => (await tx.ships.find(ref.fleetId, shipId))?.name) });
58
+ }
59
+ return { given, missing: undefined };
60
+ }
61
+ /** How many characters of the account's id a person ship's name keeps (decision 0052). */
62
+ const PERSON_SHIP_NAME_ACCOUNT_ID_LENGTH = 12;
63
+ /** The idempotency key the installation commissions an account's person ship under, the same from pagasae and from core (decision 0052). */
64
+ export function personShipKey(accountId) {
65
+ return `person-${accountId}`;
66
+ }
67
+ function personShipName(accountId) {
68
+ return `person-${accountId.slice(0, PERSON_SHIP_NAME_ACCOUNT_ID_LENGTH)}`;
69
+ }
70
+ /** Stores a commissioned ship: the ship, its label values, its events and its first starting prompt. */
71
+ async function storeCommissioned(context, commissioned) {
72
+ const { tx, deps } = context;
73
+ const { ship, actor, at } = commissioned;
74
+ await tx.ships.create(ship);
75
+ for (const assignment of commissioned.assignments) {
76
+ await tx.labels.assign(assignment);
77
+ }
78
+ for (const event of commissioned.events) {
79
+ await recordEvent({ events: tx.events, ids: deps.ids }, event);
80
+ }
81
+ return issueStartingPrompt({ tx, secrets: { ...deps.secrets, ids: deps.ids } }, { fleetId: ship.fleetId, shipId: ship.id, actor, at });
82
+ }
83
+ /**
84
+ * The person ship of an account whose token names none (decisions 0052,
85
+ * 0057): the one the installation commissioned under the account's key, held
86
+ * FOR SHARE, if there is one; else none yet, with its key locked, for core to
87
+ * commission with the account's first ship.
88
+ */
89
+ async function heldPersonShipOf(tx, account) {
90
+ const key = { fleetId: account.fleetId, by: { kind: 'installation' }, idempotencyKey: personShipKey(account.accountId) };
91
+ await tx.ships.lockCommissionKey(key);
92
+ const commissioned = await tx.ships.findByCommissionKey(key);
93
+ return commissioned && (await tx.ships.findForShare(account.fleetId, commissioned.id));
94
+ }
95
+ /**
96
+ * Core commissions the account's person ship as the installation would (decision
97
+ * 0052): named for the account, owning itself, with the scopes every ship has
98
+ * and the values of group its token carries, kept as the installation's
99
+ * commission under the account's key, so the installation's own commission
100
+ * under that key answers it. The account is the actor of its events.
101
+ */
102
+ async function commissionPersonShip(context, ref) {
103
+ const { tx, deps } = context;
104
+ const { account, actor, at } = ref;
105
+ const { fleetId } = account;
106
+ const name = personShipName(account.accountId);
107
+ const request = { name, type: 'person', kind: 'person', idempotencyKey: personShipKey(account.accountId) };
108
+ await tx.ships.lockName(fleetId, name);
109
+ const commissioned = commissionShip({
110
+ ...request,
111
+ id: deps.ids('ship'),
112
+ fleetId,
113
+ // The installation's own job (decision 0052), which core does for it here: the account needs no fleet:person.
114
+ commissioner: { kind: 'installation', scopes: ['fleet:person'] },
115
+ argoShipId: ref.argoShipId,
116
+ at,
117
+ actor,
118
+ commission: { by: { kind: 'installation' }, idempotencyKey: request.idempotencyKey, requestHash: deps.secrets.hasher.hash(commissionRequestText(request)) },
119
+ }, { activeShipNamed: await tx.ships.findActiveByName(fleetId, name), namespaces: new Map() });
120
+ if (!commissioned.isOk) {
121
+ return commissioned;
122
+ }
123
+ const { ship, events } = commissioned.value;
124
+ const carried = await carriedBy(tx, account);
125
+ const { given } = await givenValues(tx, { fleetId, valueIds: carried });
126
+ const labelled = labelsAtCommission(given, { ship, owner: undefined, carried, at, actor });
127
+ if (!labelled.isOk) {
128
+ return labelled;
129
+ }
130
+ await storeCommissioned(context, { ship, assignments: labelled.value.assignments, events: [...events, ...labelled.value.events], actor, at });
131
+ return ok(ship);
132
+ }
133
+ /** The values the caller carries itself: a ship's labels, or the values of group an account's token carries. */
134
+ async function carriedBy(tx, caller) {
135
+ if (isShipCaller(caller)) {
136
+ return (await tx.labels.carriedBy(caller.fleetId, caller.shipId)).map((carried) => carried.valueId);
137
+ }
138
+ if (caller.kind === 'installation') {
139
+ return [];
140
+ }
141
+ const group = await tx.labels.findByKey(caller.fleetId, GROUP_LABEL_KEY);
142
+ return (group?.values ?? []).filter((value) => caller.groupValues.includes(value.value)).map((value) => value.id);
143
+ }
144
+ /** The actor a commission is kept under, with its idempotency keys: an account by its id only. */
145
+ function commissionerOf(caller) {
146
+ if (isShipCaller(caller)) {
147
+ return { kind: 'ship', shipId: caller.shipId };
148
+ }
149
+ return caller.kind === 'account' ? { kind: 'account', accountId: caller.accountId } : { kind: 'installation' };
13
150
  }
14
151
  /**
15
- * Use case: the caller commissions a ship in its own fleet, an agent unless
16
- * it states another kind (only argo commissions a person or app ship). The ship
17
- * awaits crew and gets its first starting prompt, all in one transaction. The
18
- * caller's scope (fleet:commission) is checked before this runs. The ship gets
19
- * the agent scopes and the scopes asked for, each one the caller's ship may
20
- * grant, read from the server (decision 0046); each plugin namespace they
21
- * name is locked after the name. Its owner is the caller's owner; a caller
152
+ * The commissioning actor as the commission checks it: a ship read again with
153
+ * its owner held, its scopes from the server; an account with its person
154
+ * ship held FOR SHARE, so a retire of it waits; the installation as it is.
155
+ */
156
+ async function commissioningActorOf(tx, caller) {
157
+ if (isShipCaller(caller)) {
158
+ const ship = await findWithOwnerHeld(tx, { fleetId: caller.fleetId, shipId: caller.shipId });
159
+ return ship && { kind: 'ship', ship };
160
+ }
161
+ if (caller.kind === 'account') {
162
+ const personShip = caller.personShipId === null ? undefined : await tx.ships.findForShare(caller.fleetId, caller.personShipId);
163
+ return { kind: 'account', scopes: caller.scopes, personShip };
164
+ }
165
+ return { kind: 'installation', scopes: caller.scopes };
166
+ }
167
+ /**
168
+ * Use case: an actor, a ship, an account or the installation, commissions a
169
+ * ship in its own fleet (decision 0053), an agent unless
170
+ * it states another kind and holds the scope for it, read from the server
171
+ * (fleet:commission for an agent, with fleet:on-behalf for an app ship,
172
+ * fleet:person for a person ship, which owns itself). The ship
173
+ * awaits crew and gets its first starting prompt, all in one transaction. The ship gets
174
+ * the agent scopes and the scopes asked for, each one the caller may grant:
175
+ * a ship's read from the server (decision 0046); each plugin namespace they
176
+ * name is locked after the name. It carries the label values given, each of
177
+ * a label the caller defined or one it carries (decision 0053). Its owner is the caller's owner, the caller
178
+ * when it is a person ship, or an account's person ship, commissioned first
179
+ * when the account has none (decisions 0052, 0057); a caller
22
180
  * holding fleet:on-behalf may name the ship that asked it instead, whose owner
23
- * it gets (decision 0045). The caller's idempotency key makes
181
+ * it gets, or for an app ship the owner argo picked (decision 0045). The
182
+ * caller's idempotency key, its own apart from every other actor's, makes
24
183
  * a retry safe: the same key with the same request answers the ship it
25
184
  * commissioned, with no secret, and changes nothing; the same key with another
26
185
  * request is refused.
@@ -28,18 +187,20 @@ function commissionRequestText(input) {
28
187
  export function createCommissionShip(deps) {
29
188
  return (caller, input) => deps.uow.run(async (tx) => {
30
189
  const { fleetId } = caller;
31
- const actor = shipActor(caller.shipId);
190
+ const actor = actorOf(caller);
32
191
  const at = deps.clock.now();
33
192
  const key = idempotencyKey(input.idempotencyKey);
34
193
  if (!key.isOk) {
35
194
  return key;
36
195
  }
37
196
  const requestHash = deps.secrets.hasher.hash(commissionRequestText(input));
38
- const commissionKey = { fleetId, by: caller.shipId, idempotencyKey: key.value };
197
+ const commissionKey = { fleetId, by: commissionerOf(caller), idempotencyKey: key.value };
39
198
  await tx.ships.lockCommissionKey(commissionKey);
40
199
  const original = await tx.ships.findByCommissionKey(commissionKey);
41
200
  if (original) {
42
- if (original.commission?.requestHash !== requestHash) {
201
+ // A person ship the installation commissioned is found by its key alone: core may have commissioned it with an account's first ship (decision 0052).
202
+ const isFoundByKeyAlone = commissionKey.by.kind === 'installation' && original.kind === 'person';
203
+ if (!isFoundByKeyAlone && original.commission?.requestHash !== requestHash) {
43
204
  return refuse('IDEMPOTENCY_KEY_REUSED', 'This idempotency key was already used for another commission: commission with a new key');
44
205
  }
45
206
  const secret = await tx.credentials.findValidForShipForUpdate(fleetId, original.id);
@@ -49,35 +210,51 @@ export function createCommissionShip(deps) {
49
210
  startingPrompt: secret ? { issuedAt: secret.issuedAt, isClaimed: secret.claimedAt !== null } : null,
50
211
  });
51
212
  }
213
+ const account = caller.kind === 'account' && caller.personShipId === null ? caller : undefined;
214
+ const heldPersonShip = account && (await heldPersonShipOf(tx, account));
215
+ const isPersonShipNeeded = account !== undefined && heldPersonShip === undefined;
52
216
  const { ships: shipLimit } = await appliedLimits(tx, fleetId);
53
217
  if (shipLimit !== null) {
54
218
  // Counted under the fleet's lock, held until the ship is stored: commissions at the limit never overshoot it.
55
219
  await tx.ships.lockShipCount(fleetId);
56
- if ((await tx.ships.countActive(fleetId)) >= shipLimit) {
220
+ if ((await tx.ships.countActive(fleetId)) + (isPersonShipNeeded ? 2 : 1) > shipLimit) {
57
221
  return refuse('SHIP_LIMIT_REACHED', `The fleet is at its limit of ${String(shipLimit)} ships, so it takes no new one.`);
58
222
  }
59
223
  }
60
- const commissioner = await tx.ships.find(fleetId, caller.shipId);
61
224
  const argo = await tx.ships.findOperatorShip(fleetId);
225
+ let commissioner = await commissioningActorOf(tx, caller);
62
226
  if (!commissioner || !argo) {
63
- return refuse('SHIP_NOT_FOUND', `Ship ${caller.shipId} or its fleet's argo does not exist`);
227
+ return refuse('SHIP_NOT_FOUND', "The commissioning ship or its fleet's argo does not exist");
64
228
  }
65
- const askingShip = input.ownerOf === undefined ? undefined : await tx.ships.find(fleetId, input.ownerOf);
229
+ if (account !== undefined) {
230
+ const personShip = heldPersonShip === undefined ? await commissionPersonShip({ tx, deps }, { account, argoShipId: argo.id, actor, at }) : ok(heldPersonShip);
231
+ if (!personShip.isOk) {
232
+ return personShip;
233
+ }
234
+ commissioner = { kind: 'account', scopes: account.scopes, personShip: personShip.value };
235
+ }
236
+ const askingShip = input.ownerOf === undefined ? undefined : await findWithOwnerHeld(tx, { fleetId, shipId: input.ownerOf });
66
237
  if (input.ownerOf !== undefined && askingShip === undefined) {
67
238
  return refuse('SHIP_NOT_FOUND', `Ship ${input.ownerOf}, named as the ship that asked, does not exist`);
68
239
  }
240
+ // Held FOR SHARE, as an asking ship's owner is: a retire of the named owner waits, so the new ship never keeps a retired owner.
241
+ const namedOwner = input.owner === undefined ? undefined : await tx.ships.findForShare(fleetId, input.owner);
69
242
  await tx.ships.lockName(fleetId, input.name);
70
243
  const namespaces = await lockNamedNamespaces(tx, { fleetId, scopes: input.scopes ?? [] });
71
- const commissioned = commissionShip({ ...input, id: deps.ids('ship'), fleetId, commissioner, argoShipId: argo.id, askingShip, at, actor, commission: { by: caller.shipId, idempotencyKey: key.value, requestHash } }, { activeShipNamed: await tx.ships.findActiveByName(fleetId, input.name), namespaces });
244
+ const commissioned = commissionShip({ ...input, id: deps.ids('ship'), fleetId, commissioner, argoShipId: argo.id, askingShip, namedOwner, at, actor, commission: { by: commissionKey.by, idempotencyKey: key.value, requestHash } }, { activeShipNamed: await tx.ships.findActiveByName(fleetId, input.name), namespaces });
72
245
  if (!commissioned.isOk) {
73
246
  return commissioned;
74
247
  }
75
248
  const { ship, events } = commissioned.value;
76
- await tx.ships.create(ship);
77
- for (const event of events) {
78
- await recordEvent({ events: tx.events, ids: deps.ids }, event);
249
+ const { given, missing } = await givenValues(tx, { fleetId, valueIds: input.valueIds ?? [] });
250
+ if (missing !== undefined) {
251
+ return refuse('LABEL_VALUE_NOT_FOUND', `The fleet has no label value ${missing}`);
252
+ }
253
+ const labelled = labelsAtCommission(given, { ship, owner: labelOwnerOf(caller), carried: await carriedBy(tx, caller), at, actor });
254
+ if (!labelled.isOk) {
255
+ return labelled;
79
256
  }
80
- const issued = await issueStartingPrompt({ tx, secrets: { ...deps.secrets, ids: deps.ids } }, { fleetId, shipId: ship.id, actor, at });
257
+ const issued = await storeCommissioned({ tx, deps }, { ship, assignments: labelled.value.assignments, events: [...events, ...labelled.value.events], actor, at });
81
258
  return ok({ ...issued, startingPrompt: { issuedAt: at, isClaimed: false } });
82
259
  });
83
260
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commission-ship.js","sourceRoot":"","sources":["../../../src/domain/registry/commission-ship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commission-ship.js","sourceRoot":"","sources":["../../../src/domain/registry/commission-ship.ts"],"names":[],"mappings":"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"}
@@ -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,7 +12,7 @@ export interface ConfirmCrewReleaseTx {
12
12
  events: EventLog;
13
13
  }
14
14
  export type ConfirmCrewReleaseRefusal = DomainError<'SHIP_NOT_FOUND' | 'CREW_REQUEST_NOT_FOUND' | 'CREW_REQUEST_NOT_ASSIGNED_TO_CALLER' | 'CREW_REQUEST_NOT_RELEASING'>;
15
- export type ConfirmCrewRelease = (caller: Caller, input: {
15
+ export type ConfirmCrewRelease = (caller: ShipCaller, input: {
16
16
  shipId: ShipId;
17
17
  }) => Promise<Result<undefined, ConfirmCrewReleaseRefusal>>;
18
18
  /**
@@ -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 { confirmCrewRelease } from './crew-request.js';
5
6
  /**
@@ -14,7 +15,7 @@ export function createConfirmCrewRelease(deps) {
14
15
  if (!ship) {
15
16
  return refuse('SHIP_NOT_FOUND', `Ship ${input.shipId} does not exist`);
16
17
  }
17
- const confirmed = confirmCrewRelease({ ship, current: await tx.crewRequests.find(caller.fleetId, ship.id), trierarchShipId: caller.shipId }, { at: deps.clock.now(), actor: shipActor(caller.shipId) });
18
+ const confirmed = confirmCrewRelease({ ship, current: await tx.crewRequests.find(caller.fleetId, ship.id), trierarchShipId: caller.shipId }, { at: deps.clock.now(), actor: actorOf(caller) });
18
19
  if (!confirmed.isOk) {
19
20
  return confirmed;
20
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"confirm-crew-release.js","sourceRoot":"","sources":["../../../src/domain/registry/confirm-crew-release.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,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAevD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA+E;IACtH,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAyD,EAAE;QAC/E,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,SAAS,GAAG,kBAAkB,CAClC,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,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAC1D,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,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,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"confirm-crew-release.js","sourceRoot":"","sources":["../../../src/domain/registry/confirm-crew-release.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,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAevD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA+E;IACtH,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAyD,EAAE;QAC/E,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,SAAS,GAAG,kBAAkB,CAClC,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,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CACjD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,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,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ClearOutcome, 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';
@@ -13,7 +13,7 @@ export interface ConfirmWorktreeClearedTx {
13
13
  events: EventLog;
14
14
  }
15
15
  export type ConfirmWorktreeClearedUseCaseRefusal = DomainError<'SHIP_NOT_FOUND'> | ConfirmWorktreeClearedRefusal;
16
- export type ConfirmWorktreeCleared = (caller: Caller, input: {
16
+ export type ConfirmWorktreeCleared = (caller: ShipCaller, input: {
17
17
  shipId: ShipId;
18
18
  repository: string;
19
19
  outcome: ClearOutcome;
@@ -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 { confirmWorktreeCleared } from './clear-request.js';
5
6
  /**
@@ -16,7 +17,7 @@ export function createConfirmWorktreeCleared(deps) {
16
17
  return refuse('SHIP_NOT_FOUND', `Ship ${caller.shipId} does not exist`);
17
18
  }
18
19
  const key = { trierarchShipId: trierarch.id, shipId: input.shipId, repository: input.repository };
19
- const confirmed = confirmWorktreeCleared({ trierarch, worktreeShipName: (await tx.ships.find(fleetId, input.shipId))?.name ?? input.shipId, current: await tx.clearRequests.find(fleetId, key) }, { repository: input.repository, outcome: input.outcome, at: deps.clock.now(), actor: shipActor(caller.shipId) });
20
+ const confirmed = confirmWorktreeCleared({ trierarch, worktreeShipName: (await tx.ships.find(fleetId, input.shipId))?.name ?? input.shipId, current: await tx.clearRequests.find(fleetId, key) }, { repository: input.repository, outcome: input.outcome, at: deps.clock.now(), actor: actorOf(caller) });
20
21
  if (!confirmed.isOk) {
21
22
  return confirmed;
22
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"confirm-worktree-cleared.js","sourceRoot":"","sources":["../../../src/domain/registry/confirm-worktree-cleared.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,sBAAsB,EAAsC,MAAM,oBAAoB,CAAC;AAgBhG;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAmF;IAC9H,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAoE,EAAE;QAC1F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAClG,MAAM,SAAS,GAAG,sBAAsB,CACtC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EACvJ,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,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,CAChH,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5C,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,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"confirm-worktree-cleared.js","sourceRoot":"","sources":["../../../src/domain/registry/confirm-worktree-cleared.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,sBAAsB,EAAsC,MAAM,oBAAoB,CAAC;AAgBhG;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAmF;IAC9H,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAoE,EAAE;QAC1F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAClG,MAAM,SAAS,GAAG,sBAAsB,CACtC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EACvJ,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CACvG,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5C,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,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { IdGenerator, ShipId } from '@aeolus-fleet/common';
2
+ import { type Caller } from '../shared/caller.js';
3
+ import type { Clock } from '../shared/clock.js';
4
+ import { type DomainError } from '../shared/errors.js';
5
+ import { type EventLog } from '../shared/events.js';
6
+ import { type Result } from '../shared/result.js';
7
+ import type { UnitOfWork } from '../shared/unit-of-work.js';
8
+ import { type ConnectPluginRefusal } from './plugin-connection.js';
9
+ import type { PluginConnectionRepository, ShipRepository } from './ports.js';
10
+ export interface ConnectPluginTx {
11
+ ships: Pick<ShipRepository, 'findForUpdate'>;
12
+ pluginConnections: PluginConnectionRepository;
13
+ events: EventLog;
14
+ }
15
+ export type ConnectPluginUseCaseRefusal = DomainError<'SHIP_NOT_FOUND'> | ConnectPluginRefusal;
16
+ export type ConnectPlugin = (caller: Caller, input: {
17
+ shipId: ShipId;
18
+ }) => Promise<Result<undefined, ConnectPluginUseCaseRefusal>>;
19
+ /**
20
+ * Use case: an actor holding fleet:connect connects a ship as a plugin of its
21
+ * fleet, as the console's Connect does (decisions 0034, 0053), the scope
22
+ * checked before this runs: from then on the ship reads
23
+ * every ship, whatever the rules, until a release or a retire of the ship
24
+ * ends it. PluginConnected in the same unit of work. It holds the ship, as a
25
+ * release and a retire do, so neither passes it by.
26
+ */
27
+ export declare function createConnectPlugin(deps: {
28
+ uow: UnitOfWork<ConnectPluginTx>;
29
+ clock: Clock;
30
+ ids: IdGenerator;
31
+ }): ConnectPlugin;
@@ -0,0 +1,34 @@
1
+ import { actorOf } from '../shared/caller.js';
2
+ import { refuse } from '../shared/errors.js';
3
+ import { recordEvent } from '../shared/events.js';
4
+ import { ok } from '../shared/result.js';
5
+ import { connectPlugin } from './plugin-connection.js';
6
+ /**
7
+ * Use case: an actor holding fleet:connect connects a ship as a plugin of its
8
+ * fleet, as the console's Connect does (decisions 0034, 0053), the scope
9
+ * checked before this runs: from then on the ship reads
10
+ * every ship, whatever the rules, until a release or a retire of the ship
11
+ * ends it. PluginConnected in the same unit of work. It holds the ship, as a
12
+ * release and a retire do, so neither passes it by.
13
+ */
14
+ export function createConnectPlugin(deps) {
15
+ return (caller, input) => deps.uow.run(async (tx) => {
16
+ const { fleetId } = caller;
17
+ const ship = await tx.ships.findForUpdate(fleetId, input.shipId);
18
+ if (!ship) {
19
+ return refuse('SHIP_NOT_FOUND', `Ship ${input.shipId} does not exist`);
20
+ }
21
+ const connected = connectPlugin(ship, { current: await tx.pluginConnections.find(fleetId, ship.id), at: deps.clock.now(), actor: actorOf(caller) });
22
+ if (!connected.isOk) {
23
+ return connected;
24
+ }
25
+ if (connected.value.connection) {
26
+ await tx.pluginConnections.connect(connected.value.connection);
27
+ }
28
+ for (const event of connected.value.events) {
29
+ await recordEvent({ events: tx.events, ids: deps.ids }, event);
30
+ }
31
+ return ok(undefined);
32
+ });
33
+ }
34
+ //# sourceMappingURL=connect-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-plugin.js","sourceRoot":"","sources":["../../../src/domain/registry/connect-plugin.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,aAAa,EAA6B,MAAM,wBAAwB,CAAC;AAalF;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA0E;IAC5G,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAA2D,EAAE;QACjF,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,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpJ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC;QACD,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,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type CrewStatus, type FleetId, type LabelValueId, type Scope, type 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 DomainError } from '../shared/errors.js';
4
4
  import type { Actor, NewEvent } from '../shared/events.js';
5
5
  import { type Result } from '../shared/result.js';
@@ -190,7 +190,7 @@ export declare function giveBackCrewRequest({ ship, current, trierarchShipId }:
190
190
  * of the broad scopes, or with crew:run: crew:run reaches only the ships
191
191
  * whose requests are assigned to the caller's ship (decision 0029).
192
192
  */
193
- export declare function checkReaches(caller: Caller, { ship, current, broadScopes }: {
193
+ export declare function checkReaches(caller: ShipCaller, { ship, current, broadScopes }: {
194
194
  ship: Ship;
195
195
  current: CrewRequest | null | undefined;
196
196
  broadScopes: readonly Scope[];
@@ -1 +1 @@
1
- {"version":3,"file":"crew-request.js","sourceRoot":"","sources":["../../../src/domain/registry/crew-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crew-request.js","sourceRoot":"","sources":["../../../src/domain/registry/crew-request.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,17 @@
1
1
  import type { IdGenerator } 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 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 DeclareNetworkRulesRefusal } from './declared-network-rules.js';
8
8
  import type { NetworkRule } from './network-settings.js';
9
- import type { DeclaredNetworkRulesRepository, LabelRepository, ShipRepository } from './ports.js';
9
+ import type { DeclaredNetworkRulesRepository, LabelRepository, NetworkSettingsRepository, ShipRepository } from './ports.js';
10
10
  export interface DeclareNetworkRulesTx {
11
11
  labels: Pick<LabelRepository, 'find' | 'findByValueForShare'>;
12
12
  ships: Pick<ShipRepository, 'find'>;
13
13
  declaredNetworkRules: Pick<DeclaredNetworkRulesRepository, 'save'>;
14
+ networkSettings: Pick<NetworkSettingsRepository, 'findForUpdate' | 'save'>;
14
15
  events: EventLog;
15
16
  }
16
17
  export type DeclareNetworkRules = (caller: Caller, input: {
@@ -19,12 +20,14 @@ export type DeclareNetworkRules = (caller: Caller, input: {
19
20
  rules: number;
20
21
  }, DeclareNetworkRulesRefusal>>;
21
22
  /**
22
- * Use case: a ship declares the network rules it needs on the labels it owns,
23
- * its whole list, or none to withdraw them (decision 0037). Its scope
23
+ * Use case: a ship or the installation declares the network rules it needs
24
+ * on the labels it owns, its whole list, or none to withdraw them (decisions
25
+ * 0037, 0052); an account owns no label, so it is refused. Its scope
24
26
  * (labels:define) is checked before this runs. In one unit of work: the
25
27
  * labels its terms name as the fleet has them now, its list in place of the
26
- * one before, and NetworkRulesDeclared. Nothing comes in force here: the
27
- * networking plugin adds them to argo's rules when it supplies the list.
28
+ * one before, in force beside the fleet's own rules, the settings at their
29
+ * next version, and NetworkRulesDeclared. The settings are held exclusively
30
+ * after the labels, as an assignment takes them, so no check runs halfway.
28
31
  */
29
32
  export declare function createDeclareNetworkRules(deps: {
30
33
  uow: UnitOfWork<DeclareNetworkRulesTx>;