@aeolus-fleet/core 0.0.0 → 0.18.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 (608) hide show
  1. package/README.md +98 -1
  2. package/dist/adapters/cli/fleet-init.d.ts +14 -0
  3. package/dist/adapters/cli/fleet-init.js +68 -0
  4. package/dist/adapters/cli/fleet-init.js.map +1 -0
  5. package/dist/adapters/cli/io.d.ts +35 -0
  6. package/dist/adapters/cli/io.js +21 -0
  7. package/dist/adapters/cli/io.js.map +1 -0
  8. package/dist/adapters/cli/migrate.d.ts +11 -0
  9. package/dist/adapters/cli/migrate.js +12 -0
  10. package/dist/adapters/cli/migrate.js.map +1 -0
  11. package/dist/adapters/cli/operator-reset-password.d.ts +12 -0
  12. package/dist/adapters/cli/operator-reset-password.js +49 -0
  13. package/dist/adapters/cli/operator-reset-password.js.map +1 -0
  14. package/dist/adapters/cli/run.d.ts +14 -0
  15. package/dist/adapters/cli/run.js +40 -0
  16. package/dist/adapters/cli/run.js.map +1 -0
  17. package/dist/adapters/cli/terminal.d.ts +20 -0
  18. package/dist/adapters/cli/terminal.js +68 -0
  19. package/dist/adapters/cli/terminal.js.map +1 -0
  20. package/dist/adapters/crypto/passwords.d.ts +2 -0
  21. package/dist/adapters/crypto/passwords.js +59 -0
  22. package/dist/adapters/crypto/passwords.js.map +1 -0
  23. package/dist/adapters/crypto/secrets.d.ts +5 -0
  24. package/dist/adapters/crypto/secrets.js +10 -0
  25. package/dist/adapters/crypto/secrets.js.map +1 -0
  26. package/dist/adapters/http/device-label.d.ts +9 -0
  27. package/dist/adapters/http/device-label.js +39 -0
  28. package/dist/adapters/http/device-label.js.map +1 -0
  29. package/dist/adapters/http/rate-limiter.d.ts +21 -0
  30. package/dist/adapters/http/rate-limiter.js +44 -0
  31. package/dist/adapters/http/rate-limiter.js.map +1 -0
  32. package/dist/adapters/http/request-credentials.d.ts +23 -0
  33. package/dist/adapters/http/request-credentials.js +45 -0
  34. package/dist/adapters/http/request-credentials.js.map +1 -0
  35. package/dist/adapters/http/server.d.ts +47 -0
  36. package/dist/adapters/http/server.js +216 -0
  37. package/dist/adapters/http/server.js.map +1 -0
  38. package/dist/adapters/http/version.d.ts +9 -0
  39. package/dist/adapters/http/version.js +23 -0
  40. package/dist/adapters/http/version.js.map +1 -0
  41. package/dist/adapters/mcp/mcp-endpoint.d.ts +8 -0
  42. package/dist/adapters/mcp/mcp-endpoint.js +127 -0
  43. package/dist/adapters/mcp/mcp-endpoint.js.map +1 -0
  44. package/dist/adapters/prisma/client.d.ts +10 -0
  45. package/dist/adapters/prisma/client.js +20 -0
  46. package/dist/adapters/prisma/client.js.map +1 -0
  47. package/dist/adapters/prisma/delivery-notices.d.ts +34 -0
  48. package/dist/adapters/prisma/delivery-notices.js +113 -0
  49. package/dist/adapters/prisma/delivery-notices.js.map +1 -0
  50. package/dist/adapters/prisma/event-log.d.ts +11 -0
  51. package/dist/adapters/prisma/event-log.js +61 -0
  52. package/dist/adapters/prisma/event-log.js.map +1 -0
  53. package/dist/adapters/prisma/failure-log.d.ts +22 -0
  54. package/dist/adapters/prisma/failure-log.js +70 -0
  55. package/dist/adapters/prisma/failure-log.js.map +1 -0
  56. package/dist/adapters/prisma/fleet-counter.d.ts +3 -0
  57. package/dist/adapters/prisma/fleet-counter.js +6 -0
  58. package/dist/adapters/prisma/fleet-counter.js.map +1 -0
  59. package/dist/adapters/prisma/fleet-event-wakeups.d.ts +33 -0
  60. package/dist/adapters/prisma/fleet-event-wakeups.js +86 -0
  61. package/dist/adapters/prisma/fleet-event-wakeups.js.map +1 -0
  62. package/dist/adapters/prisma/generated/browser.d.ts +127 -0
  63. package/dist/adapters/prisma/generated/browser.js +18 -0
  64. package/dist/adapters/prisma/generated/browser.js.map +1 -0
  65. package/dist/adapters/prisma/generated/client.d.ts +146 -0
  66. package/dist/adapters/prisma/generated/client.js +38 -0
  67. package/dist/adapters/prisma/generated/client.js.map +1 -0
  68. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +879 -0
  69. package/dist/adapters/prisma/generated/commonInputTypes.js +11 -0
  70. package/dist/adapters/prisma/generated/commonInputTypes.js.map +1 -0
  71. package/dist/adapters/prisma/generated/enums.d.ts +75 -0
  72. package/dist/adapters/prisma/generated/enums.js +73 -0
  73. package/dist/adapters/prisma/generated/enums.js.map +1 -0
  74. package/dist/adapters/prisma/generated/internal/class.d.ts +308 -0
  75. package/dist/adapters/prisma/generated/internal/class.js +52 -0
  76. package/dist/adapters/prisma/generated/internal/class.js.map +1 -0
  77. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +2131 -0
  78. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +295 -0
  79. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -0
  80. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +273 -0
  81. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +265 -0
  82. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -0
  83. package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +2137 -0
  84. package/dist/adapters/prisma/generated/models/ConsoleSession.js +2 -0
  85. package/dist/adapters/prisma/generated/models/ConsoleSession.js.map +1 -0
  86. package/dist/adapters/prisma/generated/models/Credential.d.ts +1360 -0
  87. package/dist/adapters/prisma/generated/models/Credential.js +2 -0
  88. package/dist/adapters/prisma/generated/models/Credential.js.map +1 -0
  89. package/dist/adapters/prisma/generated/models/CrewRequest.d.ts +1558 -0
  90. package/dist/adapters/prisma/generated/models/CrewRequest.js +2 -0
  91. package/dist/adapters/prisma/generated/models/CrewRequest.js.map +1 -0
  92. package/dist/adapters/prisma/generated/models/Delivery.d.ts +2211 -0
  93. package/dist/adapters/prisma/generated/models/Delivery.js +2 -0
  94. package/dist/adapters/prisma/generated/models/Delivery.js.map +1 -0
  95. package/dist/adapters/prisma/generated/models/Event.d.ts +1991 -0
  96. package/dist/adapters/prisma/generated/models/Event.js +2 -0
  97. package/dist/adapters/prisma/generated/models/Event.js.map +1 -0
  98. package/dist/adapters/prisma/generated/models/Fleet.d.ts +3032 -0
  99. package/dist/adapters/prisma/generated/models/Fleet.js +2 -0
  100. package/dist/adapters/prisma/generated/models/Fleet.js.map +1 -0
  101. package/dist/adapters/prisma/generated/models/Guide.d.ts +943 -0
  102. package/dist/adapters/prisma/generated/models/Guide.js +2 -0
  103. package/dist/adapters/prisma/generated/models/Guide.js.map +1 -0
  104. package/dist/adapters/prisma/generated/models/GuideProgress.d.ts +1323 -0
  105. package/dist/adapters/prisma/generated/models/GuideProgress.js +2 -0
  106. package/dist/adapters/prisma/generated/models/GuideProgress.js.map +1 -0
  107. package/dist/adapters/prisma/generated/models/InstallationRequest.d.ts +1036 -0
  108. package/dist/adapters/prisma/generated/models/InstallationRequest.js +2 -0
  109. package/dist/adapters/prisma/generated/models/InstallationRequest.js.map +1 -0
  110. package/dist/adapters/prisma/generated/models/InstallationSettings.d.ts +1027 -0
  111. package/dist/adapters/prisma/generated/models/InstallationSettings.js +2 -0
  112. package/dist/adapters/prisma/generated/models/InstallationSettings.js.map +1 -0
  113. package/dist/adapters/prisma/generated/models/Lease.d.ts +2076 -0
  114. package/dist/adapters/prisma/generated/models/Lease.js +2 -0
  115. package/dist/adapters/prisma/generated/models/Lease.js.map +1 -0
  116. package/dist/adapters/prisma/generated/models/Message.d.ts +2869 -0
  117. package/dist/adapters/prisma/generated/models/Message.js +2 -0
  118. package/dist/adapters/prisma/generated/models/Message.js.map +1 -0
  119. package/dist/adapters/prisma/generated/models/Notice.d.ts +1068 -0
  120. package/dist/adapters/prisma/generated/models/Notice.js +2 -0
  121. package/dist/adapters/prisma/generated/models/Notice.js.map +1 -0
  122. package/dist/adapters/prisma/generated/models/NoticeDismissal.d.ts +1245 -0
  123. package/dist/adapters/prisma/generated/models/NoticeDismissal.js +2 -0
  124. package/dist/adapters/prisma/generated/models/NoticeDismissal.js.map +1 -0
  125. package/dist/adapters/prisma/generated/models/Operator.d.ts +1173 -0
  126. package/dist/adapters/prisma/generated/models/Operator.js +2 -0
  127. package/dist/adapters/prisma/generated/models/Operator.js.map +1 -0
  128. package/dist/adapters/prisma/generated/models/Ship.d.ts +3320 -0
  129. package/dist/adapters/prisma/generated/models/Ship.js +2 -0
  130. package/dist/adapters/prisma/generated/models/Ship.js.map +1 -0
  131. package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +1222 -0
  132. package/dist/adapters/prisma/generated/models/SignInTicket.js +2 -0
  133. package/dist/adapters/prisma/generated/models/SignInTicket.js.map +1 -0
  134. package/dist/adapters/prisma/generated/models.d.ts +18 -0
  135. package/dist/adapters/prisma/generated/models.js +2 -0
  136. package/dist/adapters/prisma/generated/models.js.map +1 -0
  137. package/dist/adapters/prisma/history.d.ts +3 -0
  138. package/dist/adapters/prisma/history.js +289 -0
  139. package/dist/adapters/prisma/history.js.map +1 -0
  140. package/dist/adapters/prisma/identity.d.ts +10 -0
  141. package/dist/adapters/prisma/identity.js +213 -0
  142. package/dist/adapters/prisma/identity.js.map +1 -0
  143. package/dist/adapters/prisma/installation.d.ts +13 -0
  144. package/dist/adapters/prisma/installation.js +155 -0
  145. package/dist/adapters/prisma/installation.js.map +1 -0
  146. package/dist/adapters/prisma/messaging.d.ts +4 -0
  147. package/dist/adapters/prisma/messaging.js +156 -0
  148. package/dist/adapters/prisma/messaging.js.map +1 -0
  149. package/dist/adapters/prisma/migrate.d.ts +5 -0
  150. package/dist/adapters/prisma/migrate.js +40 -0
  151. package/dist/adapters/prisma/migrate.js.map +1 -0
  152. package/dist/adapters/prisma/receiver-wakeups.d.ts +26 -0
  153. package/dist/adapters/prisma/receiver-wakeups.js +79 -0
  154. package/dist/adapters/prisma/receiver-wakeups.js.map +1 -0
  155. package/dist/adapters/prisma/registry.d.ts +8 -0
  156. package/dist/adapters/prisma/registry.js +427 -0
  157. package/dist/adapters/prisma/registry.js.map +1 -0
  158. package/dist/adapters/prisma/rows.d.ts +58 -0
  159. package/dist/adapters/prisma/rows.js +408 -0
  160. package/dist/adapters/prisma/rows.js.map +1 -0
  161. package/dist/adapters/prisma/unit-of-work.d.ts +36 -0
  162. package/dist/adapters/prisma/unit-of-work.js +66 -0
  163. package/dist/adapters/prisma/unit-of-work.js.map +1 -0
  164. package/dist/adapters/rest/openapi.d.ts +12 -0
  165. package/dist/adapters/rest/openapi.js +62 -0
  166. package/dist/adapters/rest/openapi.js.map +1 -0
  167. package/dist/adapters/rest/rest-api.d.ts +8 -0
  168. package/dist/adapters/rest/rest-api.js +61 -0
  169. package/dist/adapters/rest/rest-api.js.map +1 -0
  170. package/dist/adapters/trpc/console.d.ts +150 -0
  171. package/dist/adapters/trpc/console.js +102 -0
  172. package/dist/adapters/trpc/console.js.map +1 -0
  173. package/dist/adapters/trpc/context.d.ts +201 -0
  174. package/dist/adapters/trpc/context.js +2 -0
  175. package/dist/adapters/trpc/context.js.map +1 -0
  176. package/dist/adapters/trpc/fleet.d.ts +637 -0
  177. package/dist/adapters/trpc/fleet.js +437 -0
  178. package/dist/adapters/trpc/fleet.js.map +1 -0
  179. package/dist/adapters/trpc/installation.d.ts +414 -0
  180. package/dist/adapters/trpc/installation.js +138 -0
  181. package/dist/adapters/trpc/installation.js.map +1 -0
  182. package/dist/adapters/trpc/router.d.ts +1263 -0
  183. package/dist/adapters/trpc/router.js +15 -0
  184. package/dist/adapters/trpc/router.js.map +1 -0
  185. package/dist/adapters/trpc/ship-contract.d.ts +107 -0
  186. package/dist/adapters/trpc/ship-contract.js +165 -0
  187. package/dist/adapters/trpc/ship-contract.js.map +1 -0
  188. package/dist/adapters/trpc/ship-protocol.d.ts +9 -0
  189. package/dist/adapters/trpc/ship-protocol.js +25 -0
  190. package/dist/adapters/trpc/ship-protocol.js.map +1 -0
  191. package/dist/adapters/trpc/ship.d.ts +209 -0
  192. package/dist/adapters/trpc/ship.js +214 -0
  193. package/dist/adapters/trpc/ship.js.map +1 -0
  194. package/dist/adapters/trpc/starting-prompt-text.d.ts +7 -0
  195. package/dist/adapters/trpc/starting-prompt-text.js +60 -0
  196. package/dist/adapters/trpc/starting-prompt-text.js.map +1 -0
  197. package/dist/adapters/trpc/system.d.ts +29 -0
  198. package/dist/adapters/trpc/system.js +15 -0
  199. package/dist/adapters/trpc/system.js.map +1 -0
  200. package/dist/adapters/trpc/trpc.d.ts +131 -0
  201. package/dist/adapters/trpc/trpc.js +350 -0
  202. package/dist/adapters/trpc/trpc.js.map +1 -0
  203. package/dist/app.d.ts +31 -0
  204. package/dist/app.js +80 -0
  205. package/dist/app.js.map +1 -0
  206. package/dist/bin/aeolus-core.d.ts +2 -0
  207. package/dist/bin/aeolus-core.js +45 -0
  208. package/dist/bin/aeolus-core.js.map +1 -0
  209. package/dist/config.d.ts +35 -0
  210. package/dist/config.js +74 -0
  211. package/dist/config.js.map +1 -0
  212. package/dist/domain/identity/authenticate.d.ts +46 -0
  213. package/dist/domain/identity/authenticate.js +18 -0
  214. package/dist/domain/identity/authenticate.js.map +1 -0
  215. package/dist/domain/identity/console-session.d.ts +54 -0
  216. package/dist/domain/identity/console-session.js +29 -0
  217. package/dist/domain/identity/console-session.js.map +1 -0
  218. package/dist/domain/identity/credential.d.ts +76 -0
  219. package/dist/domain/identity/credential.js +63 -0
  220. package/dist/domain/identity/credential.js.map +1 -0
  221. package/dist/domain/identity/dismiss-notice.d.ts +19 -0
  222. package/dist/domain/identity/dismiss-notice.js +23 -0
  223. package/dist/domain/identity/dismiss-notice.js.map +1 -0
  224. package/dist/domain/identity/get-guide.d.ts +7 -0
  225. package/dist/domain/identity/get-guide.js +5 -0
  226. package/dist/domain/identity/get-guide.js.map +1 -0
  227. package/dist/domain/identity/get-notices.d.ts +7 -0
  228. package/dist/domain/identity/get-notices.js +5 -0
  229. package/dist/domain/identity/get-notices.js.map +1 -0
  230. package/dist/domain/identity/guide.d.ts +24 -0
  231. package/dist/domain/identity/guide.js +3 -0
  232. package/dist/domain/identity/guide.js.map +1 -0
  233. package/dist/domain/identity/issue-sign-in-ticket.d.ts +38 -0
  234. package/dist/domain/identity/issue-sign-in-ticket.js +39 -0
  235. package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -0
  236. package/dist/domain/identity/notice.d.ts +16 -0
  237. package/dist/domain/identity/notice.js +12 -0
  238. package/dist/domain/identity/notice.js.map +1 -0
  239. package/dist/domain/identity/operator-account.d.ts +28 -0
  240. package/dist/domain/identity/operator-account.js +21 -0
  241. package/dist/domain/identity/operator-account.js.map +1 -0
  242. package/dist/domain/identity/ports.d.ts +193 -0
  243. package/dist/domain/identity/ports.js +2 -0
  244. package/dist/domain/identity/ports.js.map +1 -0
  245. package/dist/domain/identity/public.d.ts +3 -0
  246. package/dist/domain/identity/public.js +5 -0
  247. package/dist/domain/identity/public.js.map +1 -0
  248. package/dist/domain/identity/read-account.d.ts +35 -0
  249. package/dist/domain/identity/read-account.js +27 -0
  250. package/dist/domain/identity/read-account.js.map +1 -0
  251. package/dist/domain/identity/read-guide.d.ts +18 -0
  252. package/dist/domain/identity/read-guide.js +21 -0
  253. package/dist/domain/identity/read-guide.js.map +1 -0
  254. package/dist/domain/identity/read-notices.d.ts +13 -0
  255. package/dist/domain/identity/read-notices.js +17 -0
  256. package/dist/domain/identity/read-notices.js.map +1 -0
  257. package/dist/domain/identity/record-guide-progress.d.ts +19 -0
  258. package/dist/domain/identity/record-guide-progress.js +24 -0
  259. package/dist/domain/identity/record-guide-progress.js.map +1 -0
  260. package/dist/domain/identity/redeem-sign-in-ticket.d.ts +34 -0
  261. package/dist/domain/identity/redeem-sign-in-ticket.js +25 -0
  262. package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -0
  263. package/dist/domain/identity/reset-operator-password.d.ts +34 -0
  264. package/dist/domain/identity/reset-operator-password.js +55 -0
  265. package/dist/domain/identity/reset-operator-password.js.map +1 -0
  266. package/dist/domain/identity/set-guide.d.ts +13 -0
  267. package/dist/domain/identity/set-guide.js +12 -0
  268. package/dist/domain/identity/set-guide.js.map +1 -0
  269. package/dist/domain/identity/set-notices.d.ts +13 -0
  270. package/dist/domain/identity/set-notices.js +12 -0
  271. package/dist/domain/identity/set-notices.js.map +1 -0
  272. package/dist/domain/identity/set-theme.d.ts +21 -0
  273. package/dist/domain/identity/set-theme.js +19 -0
  274. package/dist/domain/identity/set-theme.js.map +1 -0
  275. package/dist/domain/identity/sign-in-ticket.d.ts +21 -0
  276. package/dist/domain/identity/sign-in-ticket.js +5 -0
  277. package/dist/domain/identity/sign-in-ticket.js.map +1 -0
  278. package/dist/domain/identity/sign-in.d.ts +51 -0
  279. package/dist/domain/identity/sign-in.js +43 -0
  280. package/dist/domain/identity/sign-in.js.map +1 -0
  281. package/dist/domain/identity/sign-out.d.ts +20 -0
  282. package/dist/domain/identity/sign-out.js +32 -0
  283. package/dist/domain/identity/sign-out.js.map +1 -0
  284. package/dist/domain/identity/start-console-session.d.ts +27 -0
  285. package/dist/domain/identity/start-console-session.js +54 -0
  286. package/dist/domain/identity/start-console-session.js.map +1 -0
  287. package/dist/domain/identity/start-viewer-session.d.ts +29 -0
  288. package/dist/domain/identity/start-viewer-session.js +42 -0
  289. package/dist/domain/identity/start-viewer-session.js.map +1 -0
  290. package/dist/domain/messaging/acknowledge-delivery.d.ts +30 -0
  291. package/dist/domain/messaging/acknowledge-delivery.js +31 -0
  292. package/dist/domain/messaging/acknowledge-delivery.js.map +1 -0
  293. package/dist/domain/messaging/answer-ping.d.ts +33 -0
  294. package/dist/domain/messaging/answer-ping.js +37 -0
  295. package/dist/domain/messaging/answer-ping.js.map +1 -0
  296. package/dist/domain/messaging/check-inbox.d.ts +33 -0
  297. package/dist/domain/messaging/check-inbox.js +61 -0
  298. package/dist/domain/messaging/check-inbox.js.map +1 -0
  299. package/dist/domain/messaging/content-type.d.ts +9 -0
  300. package/dist/domain/messaging/content-type.js +18 -0
  301. package/dist/domain/messaging/content-type.js.map +1 -0
  302. package/dist/domain/messaging/daily-message-limit.d.ts +19 -0
  303. package/dist/domain/messaging/daily-message-limit.js +24 -0
  304. package/dist/domain/messaging/daily-message-limit.js.map +1 -0
  305. package/dist/domain/messaging/delivery.d.ts +116 -0
  306. package/dist/domain/messaging/delivery.js +201 -0
  307. package/dist/domain/messaging/delivery.js.map +1 -0
  308. package/dist/domain/messaging/dismiss-delivery.d.ts +28 -0
  309. package/dist/domain/messaging/dismiss-delivery.js +29 -0
  310. package/dist/domain/messaging/dismiss-delivery.js.map +1 -0
  311. package/dist/domain/messaging/inbox-wait.d.ts +8 -0
  312. package/dist/domain/messaging/inbox-wait.js +19 -0
  313. package/dist/domain/messaging/inbox-wait.js.map +1 -0
  314. package/dist/domain/messaging/mark-done.d.ts +45 -0
  315. package/dist/domain/messaging/mark-done.js +49 -0
  316. package/dist/domain/messaging/mark-done.js.map +1 -0
  317. package/dist/domain/messaging/mark-read.d.ts +27 -0
  318. package/dist/domain/messaging/mark-read.js +34 -0
  319. package/dist/domain/messaging/mark-read.js.map +1 -0
  320. package/dist/domain/messaging/message.d.ts +104 -0
  321. package/dist/domain/messaging/message.js +84 -0
  322. package/dist/domain/messaging/message.js.map +1 -0
  323. package/dist/domain/messaging/payload.d.ts +9 -0
  324. package/dist/domain/messaging/payload.js +16 -0
  325. package/dist/domain/messaging/payload.js.map +1 -0
  326. package/dist/domain/messaging/ping-ship.d.ts +38 -0
  327. package/dist/domain/messaging/ping-ship.js +42 -0
  328. package/dist/domain/messaging/ping-ship.js.map +1 -0
  329. package/dist/domain/messaging/ports.d.ts +116 -0
  330. package/dist/domain/messaging/ports.js +2 -0
  331. package/dist/domain/messaging/ports.js.map +1 -0
  332. package/dist/domain/messaging/receive-deliveries.d.ts +68 -0
  333. package/dist/domain/messaging/receive-deliveries.js +119 -0
  334. package/dist/domain/messaging/receive-deliveries.js.map +1 -0
  335. package/dist/domain/messaging/receive-max.d.ts +8 -0
  336. package/dist/domain/messaging/receive-max.js +17 -0
  337. package/dist/domain/messaging/receive-max.js.map +1 -0
  338. package/dist/domain/messaging/reply-to-message.d.ts +35 -0
  339. package/dist/domain/messaging/reply-to-message.js +49 -0
  340. package/dist/domain/messaging/reply-to-message.js.map +1 -0
  341. package/dist/domain/messaging/resend-delivery.d.ts +48 -0
  342. package/dist/domain/messaging/resend-delivery.js +97 -0
  343. package/dist/domain/messaging/resend-delivery.js.map +1 -0
  344. package/dist/domain/messaging/send-message.d.ts +88 -0
  345. package/dist/domain/messaging/send-message.js +115 -0
  346. package/dist/domain/messaging/send-message.js.map +1 -0
  347. package/dist/domain/messaging/send-request.d.ts +16 -0
  348. package/dist/domain/messaging/send-request.js +18 -0
  349. package/dist/domain/messaging/send-request.js.map +1 -0
  350. package/dist/domain/registry/applied-limits.d.ts +15 -0
  351. package/dist/domain/registry/applied-limits.js +15 -0
  352. package/dist/domain/registry/applied-limits.js.map +1 -0
  353. package/dist/domain/registry/assign-crew.d.ts +31 -0
  354. package/dist/domain/registry/assign-crew.js +35 -0
  355. package/dist/domain/registry/assign-crew.js.map +1 -0
  356. package/dist/domain/registry/claim-ship.d.ts +49 -0
  357. package/dist/domain/registry/claim-ship.js +59 -0
  358. package/dist/domain/registry/claim-ship.js.map +1 -0
  359. package/dist/domain/registry/commission-ship.d.ts +54 -0
  360. package/dist/domain/registry/commission-ship.js +70 -0
  361. package/dist/domain/registry/commission-ship.js.map +1 -0
  362. package/dist/domain/registry/confirm-crew-release.d.ts +28 -0
  363. package/dist/domain/registry/confirm-crew-release.js +28 -0
  364. package/dist/domain/registry/confirm-crew-release.js.map +1 -0
  365. package/dist/domain/registry/create-fleet.d.ts +39 -0
  366. package/dist/domain/registry/create-fleet.js +56 -0
  367. package/dist/domain/registry/create-fleet.js.map +1 -0
  368. package/dist/domain/registry/crew-request.d.ts +148 -0
  369. package/dist/domain/registry/crew-request.js +175 -0
  370. package/dist/domain/registry/crew-request.js.map +1 -0
  371. package/dist/domain/registry/delete-fleet.d.ts +46 -0
  372. package/dist/domain/registry/delete-fleet.js +34 -0
  373. package/dist/domain/registry/delete-fleet.js.map +1 -0
  374. package/dist/domain/registry/deregister.d.ts +32 -0
  375. package/dist/domain/registry/deregister.js +38 -0
  376. package/dist/domain/registry/deregister.js.map +1 -0
  377. package/dist/domain/registry/explain-crew-request.d.ts +30 -0
  378. package/dist/domain/registry/explain-crew-request.js +31 -0
  379. package/dist/domain/registry/explain-crew-request.js.map +1 -0
  380. package/dist/domain/registry/fleet.d.ts +12 -0
  381. package/dist/domain/registry/fleet.js +12 -0
  382. package/dist/domain/registry/fleet.js.map +1 -0
  383. package/dist/domain/registry/found-fleet.d.ts +32 -0
  384. package/dist/domain/registry/found-fleet.js +43 -0
  385. package/dist/domain/registry/found-fleet.js.map +1 -0
  386. package/dist/domain/registry/get-fleet-limits.d.ts +17 -0
  387. package/dist/domain/registry/get-fleet-limits.js +14 -0
  388. package/dist/domain/registry/get-fleet-limits.js.map +1 -0
  389. package/dist/domain/registry/get-installation-fleet.d.ts +15 -0
  390. package/dist/domain/registry/get-installation-fleet.js +12 -0
  391. package/dist/domain/registry/get-installation-fleet.js.map +1 -0
  392. package/dist/domain/registry/get-installation-settings.d.ts +7 -0
  393. package/dist/domain/registry/get-installation-settings.js +5 -0
  394. package/dist/domain/registry/get-installation-settings.js.map +1 -0
  395. package/dist/domain/registry/get-ship.d.ts +34 -0
  396. package/dist/domain/registry/get-ship.js +36 -0
  397. package/dist/domain/registry/get-ship.js.map +1 -0
  398. package/dist/domain/registry/get-starting-prompt.d.ts +24 -0
  399. package/dist/domain/registry/get-starting-prompt.js +46 -0
  400. package/dist/domain/registry/get-starting-prompt.js.map +1 -0
  401. package/dist/domain/registry/initialise-fleet.d.ts +28 -0
  402. package/dist/domain/registry/initialise-fleet.js +39 -0
  403. package/dist/domain/registry/initialise-fleet.js.map +1 -0
  404. package/dist/domain/registry/installation-fleet.d.ts +36 -0
  405. package/dist/domain/registry/installation-fleet.js +22 -0
  406. package/dist/domain/registry/installation-fleet.js.map +1 -0
  407. package/dist/domain/registry/installation-request.d.ts +23 -0
  408. package/dist/domain/registry/installation-request.js +5 -0
  409. package/dist/domain/registry/installation-request.js.map +1 -0
  410. package/dist/domain/registry/lease.d.ts +51 -0
  411. package/dist/domain/registry/lease.js +39 -0
  412. package/dist/domain/registry/lease.js.map +1 -0
  413. package/dist/domain/registry/leases.d.ts +66 -0
  414. package/dist/domain/registry/leases.js +80 -0
  415. package/dist/domain/registry/leases.js.map +1 -0
  416. package/dist/domain/registry/limits.d.ts +50 -0
  417. package/dist/domain/registry/limits.js +24 -0
  418. package/dist/domain/registry/limits.js.map +1 -0
  419. package/dist/domain/registry/list-fleet.d.ts +70 -0
  420. package/dist/domain/registry/list-fleet.js +47 -0
  421. package/dist/domain/registry/list-fleet.js.map +1 -0
  422. package/dist/domain/registry/list-fleets.d.ts +11 -0
  423. package/dist/domain/registry/list-fleets.js +9 -0
  424. package/dist/domain/registry/list-fleets.js.map +1 -0
  425. package/dist/domain/registry/list-installation-fleets.d.ts +15 -0
  426. package/dist/domain/registry/list-installation-fleets.js +15 -0
  427. package/dist/domain/registry/list-installation-fleets.js.map +1 -0
  428. package/dist/domain/registry/ping-status.d.ts +17 -0
  429. package/dist/domain/registry/ping-status.js +28 -0
  430. package/dist/domain/registry/ping-status.js.map +1 -0
  431. package/dist/domain/registry/pingable-ship.d.ts +22 -0
  432. package/dist/domain/registry/pingable-ship.js +21 -0
  433. package/dist/domain/registry/pingable-ship.js.map +1 -0
  434. package/dist/domain/registry/ports.d.ts +318 -0
  435. package/dist/domain/registry/ports.js +2 -0
  436. package/dist/domain/registry/ports.js.map +1 -0
  437. package/dist/domain/registry/public.d.ts +8 -0
  438. package/dist/domain/registry/public.js +10 -0
  439. package/dist/domain/registry/public.js.map +1 -0
  440. package/dist/domain/registry/read-assigned-crew-requests.d.ts +14 -0
  441. package/dist/domain/registry/read-assigned-crew-requests.js +15 -0
  442. package/dist/domain/registry/read-assigned-crew-requests.js.map +1 -0
  443. package/dist/domain/registry/recrew-ship.d.ts +33 -0
  444. package/dist/domain/registry/recrew-ship.js +34 -0
  445. package/dist/domain/registry/recrew-ship.js.map +1 -0
  446. package/dist/domain/registry/release-ship.d.ts +38 -0
  447. package/dist/domain/registry/release-ship.js +47 -0
  448. package/dist/domain/registry/release-ship.js.map +1 -0
  449. package/dist/domain/registry/remove-crew-request.d.ts +28 -0
  450. package/dist/domain/registry/remove-crew-request.js +36 -0
  451. package/dist/domain/registry/remove-crew-request.js.map +1 -0
  452. package/dist/domain/registry/rename-ship.d.ts +30 -0
  453. package/dist/domain/registry/rename-ship.js +39 -0
  454. package/dist/domain/registry/rename-ship.js.map +1 -0
  455. package/dist/domain/registry/report-crew-status.d.ts +29 -0
  456. package/dist/domain/registry/report-crew-status.js +30 -0
  457. package/dist/domain/registry/report-crew-status.js.map +1 -0
  458. package/dist/domain/registry/report-details.d.ts +18 -0
  459. package/dist/domain/registry/report-details.js +41 -0
  460. package/dist/domain/registry/report-details.js.map +1 -0
  461. package/dist/domain/registry/report-log.d.ts +21 -0
  462. package/dist/domain/registry/report-log.js +16 -0
  463. package/dist/domain/registry/report-log.js.map +1 -0
  464. package/dist/domain/registry/report.d.ts +30 -0
  465. package/dist/domain/registry/report.js +30 -0
  466. package/dist/domain/registry/report.js.map +1 -0
  467. package/dist/domain/registry/request-crew.d.ts +32 -0
  468. package/dist/domain/registry/request-crew.js +29 -0
  469. package/dist/domain/registry/request-crew.js.map +1 -0
  470. package/dist/domain/registry/resolve-selector.d.ts +25 -0
  471. package/dist/domain/registry/resolve-selector.js +32 -0
  472. package/dist/domain/registry/resolve-selector.js.map +1 -0
  473. package/dist/domain/registry/retire-ship.d.ts +42 -0
  474. package/dist/domain/registry/retire-ship.js +68 -0
  475. package/dist/domain/registry/retire-ship.js.map +1 -0
  476. package/dist/domain/registry/set-fleet-limits.d.ts +30 -0
  477. package/dist/domain/registry/set-fleet-limits.js +54 -0
  478. package/dist/domain/registry/set-fleet-limits.js.map +1 -0
  479. package/dist/domain/registry/set-installation-settings.d.ts +18 -0
  480. package/dist/domain/registry/set-installation-settings.js +31 -0
  481. package/dist/domain/registry/set-installation-settings.js.map +1 -0
  482. package/dist/domain/registry/ship-handle.d.ts +5 -0
  483. package/dist/domain/registry/ship-handle.js +20 -0
  484. package/dist/domain/registry/ship-handle.js.map +1 -0
  485. package/dist/domain/registry/ship-note.d.ts +7 -0
  486. package/dist/domain/registry/ship-note.js +15 -0
  487. package/dist/domain/registry/ship-note.js.map +1 -0
  488. package/dist/domain/registry/ship-report.d.ts +42 -0
  489. package/dist/domain/registry/ship-report.js +93 -0
  490. package/dist/domain/registry/ship-report.js.map +1 -0
  491. package/dist/domain/registry/ship.d.ts +190 -0
  492. package/dist/domain/registry/ship.js +334 -0
  493. package/dist/domain/registry/ship.js.map +1 -0
  494. package/dist/domain/registry/ships.d.ts +25 -0
  495. package/dist/domain/registry/ships.js +22 -0
  496. package/dist/domain/registry/ships.js.map +1 -0
  497. package/dist/domain/registry/starting-prompt.d.ts +32 -0
  498. package/dist/domain/registry/starting-prompt.js +22 -0
  499. package/dist/domain/registry/starting-prompt.js.map +1 -0
  500. package/dist/domain/registry/whoami.d.ts +20 -0
  501. package/dist/domain/registry/whoami.js +15 -0
  502. package/dist/domain/registry/whoami.js.map +1 -0
  503. package/dist/domain/shared/caller.d.ts +25 -0
  504. package/dist/domain/shared/caller.js +8 -0
  505. package/dist/domain/shared/caller.js.map +1 -0
  506. package/dist/domain/shared/clock.d.ts +4 -0
  507. package/dist/domain/shared/clock.js +2 -0
  508. package/dist/domain/shared/clock.js.map +1 -0
  509. package/dist/domain/shared/errors.d.ts +13 -0
  510. package/dist/domain/shared/errors.js +6 -0
  511. package/dist/domain/shared/errors.js.map +1 -0
  512. package/dist/domain/shared/events.d.ts +75 -0
  513. package/dist/domain/shared/events.js +9 -0
  514. package/dist/domain/shared/events.js.map +1 -0
  515. package/dist/domain/shared/follow-fleet.d.ts +32 -0
  516. package/dist/domain/shared/follow-fleet.js +65 -0
  517. package/dist/domain/shared/follow-fleet.js.map +1 -0
  518. package/dist/domain/shared/history.d.ts +124 -0
  519. package/dist/domain/shared/history.js +16 -0
  520. package/dist/domain/shared/history.js.map +1 -0
  521. package/dist/domain/shared/idempotency-key.d.ts +8 -0
  522. package/dist/domain/shared/idempotency-key.js +14 -0
  523. package/dist/domain/shared/idempotency-key.js.map +1 -0
  524. package/dist/domain/shared/notifier.d.ts +17 -0
  525. package/dist/domain/shared/notifier.js +2 -0
  526. package/dist/domain/shared/notifier.js.map +1 -0
  527. package/dist/domain/shared/ping.d.ts +18 -0
  528. package/dist/domain/shared/ping.js +8 -0
  529. package/dist/domain/shared/ping.js.map +1 -0
  530. package/dist/domain/shared/read-fleet-events.d.ts +29 -0
  531. package/dist/domain/shared/read-fleet-events.js +25 -0
  532. package/dist/domain/shared/read-fleet-events.js.map +1 -0
  533. package/dist/domain/shared/read-fleet-limits.d.ts +39 -0
  534. package/dist/domain/shared/read-fleet-limits.js +24 -0
  535. package/dist/domain/shared/read-fleet-limits.js.map +1 -0
  536. package/dist/domain/shared/read-inbox.d.ts +20 -0
  537. package/dist/domain/shared/read-inbox.js +16 -0
  538. package/dist/domain/shared/read-inbox.js.map +1 -0
  539. package/dist/domain/shared/read-message.d.ts +21 -0
  540. package/dist/domain/shared/read-message.js +18 -0
  541. package/dist/domain/shared/read-message.js.map +1 -0
  542. package/dist/domain/shared/read-needs-attention.d.ts +12 -0
  543. package/dist/domain/shared/read-needs-attention.js +10 -0
  544. package/dist/domain/shared/read-needs-attention.js.map +1 -0
  545. package/dist/domain/shared/read-ship-messages.d.ts +28 -0
  546. package/dist/domain/shared/read-ship-messages.js +30 -0
  547. package/dist/domain/shared/read-ship-messages.js.map +1 -0
  548. package/dist/domain/shared/read-ship-timeline.d.ts +18 -0
  549. package/dist/domain/shared/read-ship-timeline.js +16 -0
  550. package/dist/domain/shared/read-ship-timeline.js.map +1 -0
  551. package/dist/domain/shared/result.d.ts +16 -0
  552. package/dist/domain/shared/result.js +7 -0
  553. package/dist/domain/shared/result.js.map +1 -0
  554. package/dist/domain/shared/secrets.d.ts +26 -0
  555. package/dist/domain/shared/secrets.js +2 -0
  556. package/dist/domain/shared/secrets.js.map +1 -0
  557. package/dist/domain/shared/selector.d.ts +29 -0
  558. package/dist/domain/shared/selector.js +2 -0
  559. package/dist/domain/shared/selector.js.map +1 -0
  560. package/dist/domain/shared/unit-of-work.d.ts +13 -0
  561. package/dist/domain/shared/unit-of-work.js +2 -0
  562. package/dist/domain/shared/unit-of-work.js.map +1 -0
  563. package/dist/domain/shared/utc-day.d.ts +4 -0
  564. package/dist/domain/shared/utc-day.js +9 -0
  565. package/dist/domain/shared/utc-day.js.map +1 -0
  566. package/dist/index.d.ts +1 -0
  567. package/dist/index.js +2 -0
  568. package/dist/index.js.map +1 -0
  569. package/dist/start.d.ts +6 -0
  570. package/dist/start.js +29 -0
  571. package/dist/start.js.map +1 -0
  572. package/dist/wiring.d.ts +158 -0
  573. package/dist/wiring.js +185 -0
  574. package/dist/wiring.js.map +1 -0
  575. package/package.json +56 -3
  576. package/prisma.config.ts +18 -0
  577. package/src/adapters/prisma/migrations/20260929124818_init/migration.sql +201 -0
  578. package/src/adapters/prisma/migrations/20260929160000_fleet_argo_console_session/migration.sql +130 -0
  579. package/src/adapters/prisma/migrations/20260929220017_operator_login/migration.sql +27 -0
  580. package/src/adapters/prisma/migrations/20260930090000_crew_token/migration.sql +5 -0
  581. package/src/adapters/prisma/migrations/20260930120000_send/migration.sql +30 -0
  582. package/src/adapters/prisma/migrations/20260930150000_receive/migration.sql +24 -0
  583. package/src/adapters/prisma/migrations/20261001010000_event_seq/migration.sql +34 -0
  584. package/src/adapters/prisma/migrations/20261001020000_console_session_end_reason/migration.sql +14 -0
  585. package/src/adapters/prisma/migrations/20261001030000_account_theme_session_device/migration.sql +8 -0
  586. package/src/adapters/prisma/migrations/20261001040000_lease_last_seen/migration.sql +2 -0
  587. package/src/adapters/prisma/migrations/20261002190000_lease_report/migration.sql +7 -0
  588. package/src/adapters/prisma/migrations/20261003140000_commission_key/migration.sql +7 -0
  589. package/src/adapters/prisma/migrations/20261003200000_message_model/migration.sql +5 -0
  590. package/src/adapters/prisma/migrations/20261003201000_lease_harness/migration.sql +2 -0
  591. package/src/adapters/prisma/migrations/20261004120000_operator_without_password/migration.sql +2 -0
  592. package/src/adapters/prisma/migrations/20261004121000_installation_requests/migration.sql +21 -0
  593. package/src/adapters/prisma/migrations/20261004122000_events_deleted_with_their_fleet/migration.sql +11 -0
  594. package/src/adapters/prisma/migrations/20261004130000_sign_in_tickets/migration.sql +16 -0
  595. package/src/adapters/prisma/migrations/20261004140000_fleet_limits/migration.sql +6 -0
  596. package/src/adapters/prisma/migrations/20261004141000_installation_settings/migration.sql +12 -0
  597. package/src/adapters/prisma/migrations/20261005090000_viewer_ship/migration.sql +2 -0
  598. package/src/adapters/prisma/migrations/20261005100000_viewer_sessions/migration.sql +20 -0
  599. package/src/adapters/prisma/migrations/20261005110000_notices/migration.sql +37 -0
  600. package/src/adapters/prisma/migrations/20261005120000_guide/migration.sql +34 -0
  601. package/src/adapters/prisma/migrations/20261006100000_fleet_crew_scope/migration.sql +8 -0
  602. package/src/adapters/prisma/migrations/20261006140000_lease_report_details/migration.sql +3 -0
  603. package/src/adapters/prisma/migrations/20261006160000_crew_requests/migration.sql +20 -0
  604. package/src/adapters/prisma/migrations/20261006180000_crew_scopes/migration.sql +9 -0
  605. package/src/adapters/prisma/migrations/20261006190000_crew_assignment/migration.sql +13 -0
  606. package/src/adapters/prisma/migrations/20261006200000_crew_request_reason/migration.sql +3 -0
  607. package/src/adapters/prisma/migrations/migration_lock.toml +3 -0
  608. package/src/adapters/prisma/schema.prisma +558 -0
@@ -0,0 +1,5 @@
1
+ -- AlterTable
2
+ ALTER TABLE "leases" ADD COLUMN "crew_token_hash" TEXT;
3
+
4
+ -- CreateIndex
5
+ CREATE UNIQUE INDEX "leases_crew_token_hash_key" ON "leases"("crew_token_hash");
@@ -0,0 +1,30 @@
1
+ -- No message was stored before this migration: nothing sent one yet. So the
2
+ -- new required columns need no default for existing rows.
3
+
4
+ -- CreateEnum
5
+ CREATE TYPE "selector_kind" AS ENUM ('ship', 'type');
6
+
7
+ -- AlterTable
8
+ ALTER TABLE "messages" ADD COLUMN "request_hash" TEXT NOT NULL,
9
+ ADD COLUMN "selector_kind" "selector_kind" NOT NULL,
10
+ ADD COLUMN "selector_ship_id" TEXT,
11
+ ADD COLUMN "selector_type" TEXT,
12
+ ADD COLUMN "sender_ship_id" TEXT NOT NULL;
13
+
14
+ -- CreateIndex
15
+ CREATE UNIQUE INDEX "messages_fleet_id_sender_ship_id_idempotency_key_key" ON "messages"("fleet_id", "sender_ship_id", "idempotency_key");
16
+
17
+ -- AddForeignKey
18
+ ALTER TABLE "messages" ADD CONSTRAINT "messages_fleet_id_sender_ship_id_fkey" FOREIGN KEY ("fleet_id", "sender_ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
19
+
20
+ -- AddForeignKey
21
+ ALTER TABLE "messages" ADD CONSTRAINT "messages_fleet_id_selector_ship_id_fkey" FOREIGN KEY ("fleet_id", "selector_ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
22
+
23
+
24
+ -- Written by hand from here on: rules Prisma does not model.
25
+
26
+ -- A ship selector names a ship's id and no type; a type selector names a type and no ship.
27
+ ALTER TABLE "messages" ADD CONSTRAINT "messages_one_selector" CHECK (
28
+ ("selector_kind" = 'ship' AND "selector_ship_id" IS NOT NULL AND "selector_type" IS NULL)
29
+ OR ("selector_kind" = 'type' AND "selector_type" IS NOT NULL AND "selector_ship_id" IS NULL)
30
+ );
@@ -0,0 +1,24 @@
1
+ -- No delivery was claimed before this migration: nothing received one yet. So
2
+ -- every existing delivery is pending, or was returned to pending, and names no
3
+ -- claim; the check below holds for it.
4
+
5
+ -- AlterTable
6
+ ALTER TABLE "deliveries" ADD COLUMN "claimed_by_lease_id" TEXT;
7
+
8
+ -- CreateIndex
9
+ CREATE INDEX "deliveries_fleet_id_claimed_by_lease_id_state_idx" ON "deliveries"("fleet_id", "claimed_by_lease_id", "state");
10
+
11
+ -- AddForeignKey
12
+ ALTER TABLE "deliveries" ADD CONSTRAINT "deliveries_fleet_id_claimed_by_lease_id_fkey" FOREIGN KEY ("fleet_id", "claimed_by_lease_id") REFERENCES "leases"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
13
+
14
+
15
+ -- Written by hand from here on: rules Prisma does not model.
16
+
17
+ -- A claim names both the ship and the lease of the crew that claimed, or
18
+ -- neither. A delivery in flight or acknowledged names its claim; a pending one
19
+ -- names none.
20
+ ALTER TABLE "deliveries" ADD CONSTRAINT "deliveries_claim" CHECK (
21
+ num_nonnulls("claimed_by_ship_id", "claimed_by_lease_id") IN (0, 2)
22
+ AND ("state" NOT IN ('delivered', 'acknowledged') OR "claimed_by_ship_id" IS NOT NULL)
23
+ AND ("state" <> 'pending' OR "claimed_by_ship_id" IS NULL)
24
+ );
@@ -0,0 +1,34 @@
1
+ -- AlterTable
2
+ ALTER TABLE "fleets" ADD COLUMN "last_event_seq" BIGINT NOT NULL DEFAULT 0;
3
+
4
+ -- AlterTable
5
+ ALTER TABLE "events" ADD COLUMN "seq" BIGINT;
6
+
7
+
8
+ -- Written by hand from here on: numbering the events already written.
9
+
10
+ -- Events written before this migration have committed, so any order is a
11
+ -- valid stream; time, then id, is the closest to the order they happened in.
12
+ -- Events are append-only; this one-time numbering is the single exception, so
13
+ -- the guard is off for this statement alone.
14
+ ALTER TABLE "events" DISABLE TRIGGER "events_append_only";
15
+
16
+ UPDATE "events" AS e
17
+ SET "seq" = numbered."seq"
18
+ FROM (
19
+ SELECT "id", ROW_NUMBER() OVER (PARTITION BY "fleet_id" ORDER BY "occurred_at", "id") AS "seq"
20
+ FROM "events"
21
+ ) AS numbered
22
+ WHERE e."id" = numbered."id";
23
+
24
+ ALTER TABLE "events" ENABLE TRIGGER "events_append_only";
25
+
26
+ UPDATE "fleets" AS f
27
+ SET "last_event_seq" = counted."last_seq"
28
+ FROM (SELECT "fleet_id", MAX("seq") AS "last_seq" FROM "events" GROUP BY "fleet_id") AS counted
29
+ WHERE f."id" = counted."fleet_id";
30
+
31
+ ALTER TABLE "events" ALTER COLUMN "seq" SET NOT NULL;
32
+
33
+ -- CreateIndex
34
+ CREATE UNIQUE INDEX "events_fleet_id_seq_key" ON "events"("fleet_id", "seq");
@@ -0,0 +1,14 @@
1
+ -- CreateEnum
2
+ CREATE TYPE "console_session_end_reason" AS ENUM ('takenOver', 'signedOut', 'passwordReset');
3
+
4
+ -- AlterTable
5
+ ALTER TABLE "console_sessions" ADD COLUMN "end_reason" "console_session_end_reason";
6
+
7
+
8
+ -- Written by hand from here on: rules Prisma does not model.
9
+
10
+ -- Only an ended session has a reason. Sessions that ended before this
11
+ -- migration keep none: why they ended was not recorded.
12
+ ALTER TABLE "console_sessions" ADD CONSTRAINT "console_sessions_end_reason" CHECK (
13
+ "end_reason" IS NULL OR "ended_at" IS NOT NULL
14
+ );
@@ -0,0 +1,8 @@
1
+ -- CreateEnum
2
+ CREATE TYPE "theme" AS ENUM ('light', 'dark', 'system');
3
+
4
+ -- AlterTable
5
+ ALTER TABLE "operators" ADD COLUMN "theme" "theme" NOT NULL DEFAULT 'system';
6
+
7
+ -- AlterTable
8
+ ALTER TABLE "console_sessions" ADD COLUMN "device" TEXT NOT NULL DEFAULT 'Unknown device';
@@ -0,0 +1,2 @@
1
+ -- AlterTable
2
+ ALTER TABLE "leases" ADD COLUMN "last_seen_at" TIMESTAMPTZ(3);
@@ -0,0 +1,7 @@
1
+ -- CreateEnum
2
+ CREATE TYPE "report_state" AS ENUM ('working', 'blocked', 'idle');
3
+
4
+ -- AlterTable
5
+ ALTER TABLE "leases" ADD COLUMN "report_state" "report_state",
6
+ ADD COLUMN "report_note" TEXT,
7
+ ADD COLUMN "reported_at" TIMESTAMPTZ(3);
@@ -0,0 +1,7 @@
1
+ -- AlterTable
2
+ ALTER TABLE "ships" ADD COLUMN "commission_key" TEXT,
3
+ ADD COLUMN "commission_request_hash" TEXT,
4
+ ADD COLUMN "commissioned_by" TEXT;
5
+
6
+ -- CreateIndex
7
+ CREATE UNIQUE INDEX "ships_fleet_id_commissioned_by_commission_key_key" ON "ships"("fleet_id", "commissioned_by", "commission_key");
@@ -0,0 +1,5 @@
1
+ -- AlterTable
2
+ ALTER TABLE "messages" ADD COLUMN "model" TEXT;
3
+
4
+ -- CreateIndex
5
+ CREATE INDEX "messages_fleet_id_sender_ship_id_created_at_idx" ON "messages"("fleet_id", "sender_ship_id", "created_at");
@@ -0,0 +1,2 @@
1
+ -- AlterTable
2
+ ALTER TABLE "leases" ADD COLUMN "harness" TEXT;
@@ -0,0 +1,2 @@
1
+ -- An operator a hosting installation created has no password.
2
+ ALTER TABLE "operators" ALTER COLUMN "password_hash" DROP NOT NULL;
@@ -0,0 +1,21 @@
1
+ -- CreateEnum
2
+ CREATE TYPE "installation_request_kind" AS ENUM ('create_fleet', 'delete_fleet');
3
+
4
+ -- CreateTable
5
+ CREATE TABLE "installation_requests" (
6
+ "request_id" TEXT NOT NULL,
7
+ "kind" "installation_request_kind" NOT NULL,
8
+ "request_hash" TEXT NOT NULL,
9
+ "fleet_id" TEXT,
10
+ "operator_ship_id" TEXT,
11
+ "at" TIMESTAMPTZ(3) NOT NULL,
12
+
13
+ CONSTRAINT "installation_requests_pkey" PRIMARY KEY ("request_id")
14
+ );
15
+
16
+ -- CreateIndex
17
+ CREATE INDEX "installation_requests_fleet_id_idx" ON "installation_requests"("fleet_id");
18
+
19
+ -- A create names its fleet and argo; a delete names nothing of the fleet it deleted.
20
+ ALTER TABLE "installation_requests" ADD CONSTRAINT "installation_requests_create_names_its_fleet"
21
+ CHECK (("kind" = 'create_fleet') = ("fleet_id" IS NOT NULL AND "operator_ship_id" IS NOT NULL));
@@ -0,0 +1,11 @@
1
+ -- Events stay append-only. The one exception is deleting a whole fleet
2
+ -- (decision 0020): its transaction names the fleet in the transaction-local
3
+ -- setting aeolus.deleting_fleet, and only that fleet's events may go.
4
+ CREATE OR REPLACE FUNCTION "events_reject_change"() RETURNS trigger LANGUAGE plpgsql AS $$
5
+ BEGIN
6
+ IF TG_OP = 'DELETE' AND OLD."fleet_id" = current_setting('aeolus.deleting_fleet', true) THEN
7
+ RETURN OLD;
8
+ END IF;
9
+ RAISE EXCEPTION 'events are append-only: % is not allowed', TG_OP;
10
+ END;
11
+ $$;
@@ -0,0 +1,16 @@
1
+ -- CreateTable
2
+ CREATE TABLE "sign_in_tickets" (
3
+ "token_hash" TEXT NOT NULL,
4
+ "fleet_id" TEXT NOT NULL,
5
+ "issued_at" TIMESTAMPTZ(3) NOT NULL,
6
+ "expires_at" TIMESTAMPTZ(3) NOT NULL,
7
+ "used_at" TIMESTAMPTZ(3),
8
+
9
+ CONSTRAINT "sign_in_tickets_pkey" PRIMARY KEY ("token_hash")
10
+ );
11
+
12
+ -- CreateIndex
13
+ CREATE INDEX "sign_in_tickets_fleet_id_idx" ON "sign_in_tickets"("fleet_id");
14
+
15
+ -- AddForeignKey
16
+ ALTER TABLE "sign_in_tickets" ADD CONSTRAINT "sign_in_tickets_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,6 @@
1
+ -- How a fleet sets its ship and daily message limits: its own (null for no
2
+ -- limit), or the installation default when not set.
3
+ ALTER TABLE "fleets" ADD COLUMN "ship_limit_set" BOOLEAN NOT NULL DEFAULT false,
4
+ ADD COLUMN "ship_limit" INTEGER,
5
+ ADD COLUMN "daily_message_limit_set" BOOLEAN NOT NULL DEFAULT false,
6
+ ADD COLUMN "daily_message_limit" INTEGER;
@@ -0,0 +1,12 @@
1
+ -- CreateTable
2
+ CREATE TABLE "installation_settings" (
3
+ "id" INTEGER NOT NULL DEFAULT 1,
4
+ "default_ship_limit" INTEGER,
5
+ "default_daily_message_limit" INTEGER,
6
+ "fleet_cap" INTEGER,
7
+
8
+ CONSTRAINT "installation_settings_pkey" PRIMARY KEY ("id")
9
+ );
10
+
11
+ -- The installation has one set of settings: one row at most.
12
+ ALTER TABLE "installation_settings" ADD CONSTRAINT "installation_settings_one_row" CHECK ("id" = 1);
@@ -0,0 +1,2 @@
1
+ -- The viewer ship (decision 0022): a third kind of ship, the fleet's read-only door into the console.
2
+ ALTER TYPE "ship_kind" ADD VALUE 'viewer';
@@ -0,0 +1,20 @@
1
+ -- Viewer sessions (decision 0022): console sessions of the viewer ship, many at
2
+ -- once, holding no lease, each with its own idle limit and a moment it ends by.
3
+
4
+ -- At most one viewer ship per fleet, as one operator ship.
5
+ CREATE UNIQUE INDEX "ships_fleet_id_viewer_key" ON "ships"("fleet_id") WHERE (kind = 'viewer'::ship_kind);
6
+
7
+ ALTER TABLE "console_sessions" ALTER COLUMN "lease_id" DROP NOT NULL;
8
+ -- Every session so far is the operator's, valid 30 days after its last use.
9
+ ALTER TABLE "console_sessions" ADD COLUMN "idle_limit_seconds" INTEGER NOT NULL DEFAULT 2592000;
10
+ ALTER TABLE "console_sessions" ALTER COLUMN "idle_limit_seconds" DROP DEFAULT;
11
+ ALTER TABLE "console_sessions" ADD COLUMN "ends_by" TIMESTAMPTZ(3);
12
+
13
+ -- One live session holding argo's lease per fleet; viewer sessions hold none and run beside it.
14
+ DROP INDEX "console_sessions_fleet_id_open_key";
15
+ CREATE UNIQUE INDEX "console_sessions_fleet_id_open_key" ON "console_sessions"("fleet_id") WHERE ("ended_at" IS NULL AND "lease_id" IS NOT NULL);
16
+
17
+ -- Whom a sign-in ticket signs in as. Every ticket so far is the operator's.
18
+ CREATE TYPE "sign_in_as" AS ENUM ('operator', 'viewer');
19
+ ALTER TABLE "sign_in_tickets" ADD COLUMN "sign_in_as" "sign_in_as" NOT NULL DEFAULT 'operator';
20
+ ALTER TABLE "sign_in_tickets" ALTER COLUMN "sign_in_as" DROP DEFAULT;
@@ -0,0 +1,37 @@
1
+ -- Notices (decision 0023): the installation's console notices, which belong
2
+ -- to no fleet, and the ones each console session dismissed for itself.
3
+
4
+ -- CreateEnum
5
+ CREATE TYPE "notice_audience" AS ENUM ('everyone', 'operators', 'viewers');
6
+
7
+ -- CreateTable
8
+ CREATE TABLE "notices" (
9
+ "id" TEXT NOT NULL,
10
+ "position" INTEGER NOT NULL,
11
+ "audience" "notice_audience" NOT NULL,
12
+ "text" TEXT NOT NULL,
13
+ "links" JSONB NOT NULL DEFAULT '[]',
14
+ "is_dismissible" BOOLEAN NOT NULL DEFAULT false,
15
+
16
+ CONSTRAINT "notices_pkey" PRIMARY KEY ("id")
17
+ );
18
+
19
+ -- CreateTable
20
+ CREATE TABLE "notice_dismissals" (
21
+ "fleet_id" TEXT NOT NULL,
22
+ "console_session_id" TEXT NOT NULL,
23
+ "notice_id" TEXT NOT NULL,
24
+ "dismissed_at" TIMESTAMPTZ(3) NOT NULL,
25
+
26
+ CONSTRAINT "notice_dismissals_pkey" PRIMARY KEY ("console_session_id","notice_id")
27
+ );
28
+
29
+ -- CreateIndex
30
+ CREATE INDEX "notice_dismissals_fleet_id_idx" ON "notice_dismissals"("fleet_id");
31
+
32
+ -- AddForeignKey
33
+ ALTER TABLE "notice_dismissals" ADD CONSTRAINT "notice_dismissals_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
34
+
35
+ -- AddForeignKey
36
+ ALTER TABLE "notice_dismissals" ADD CONSTRAINT "notice_dismissals_console_session_id_fkey" FOREIGN KEY ("console_session_id") REFERENCES "console_sessions"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
37
+
@@ -0,0 +1,34 @@
1
+ -- The guide (decision 0024): the installation's guide, which belongs to no
2
+ -- fleet, and where each console session is in it.
3
+
4
+ -- CreateEnum
5
+ CREATE TYPE "guide_progress_state" AS ENUM ('open', 'skipped', 'finished');
6
+
7
+ -- CreateTable
8
+ CREATE TABLE "guides" (
9
+ "id" TEXT NOT NULL,
10
+ "audience" "notice_audience" NOT NULL,
11
+ "steps" JSONB NOT NULL,
12
+
13
+ CONSTRAINT "guides_pkey" PRIMARY KEY ("id")
14
+ );
15
+
16
+ -- CreateTable
17
+ CREATE TABLE "guide_progress" (
18
+ "fleet_id" TEXT NOT NULL,
19
+ "console_session_id" TEXT NOT NULL,
20
+ "step" INTEGER NOT NULL,
21
+ "state" "guide_progress_state" NOT NULL,
22
+ "recorded_at" TIMESTAMPTZ(3) NOT NULL,
23
+
24
+ CONSTRAINT "guide_progress_pkey" PRIMARY KEY ("console_session_id")
25
+ );
26
+
27
+ -- CreateIndex
28
+ CREATE INDEX "guide_progress_fleet_id_idx" ON "guide_progress"("fleet_id");
29
+
30
+ -- AddForeignKey
31
+ ALTER TABLE "guide_progress" ADD CONSTRAINT "guide_progress_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
32
+
33
+ -- AddForeignKey
34
+ ALTER TABLE "guide_progress" ADD CONSTRAINT "guide_progress_console_session_id_fkey" FOREIGN KEY ("console_session_id") REFERENCES "console_sessions"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,8 @@
1
+ -- fleet:crew (decision 0002): a trierarch's scope, the fifth known one. argo
2
+ -- holds every scope, so each fleet's argo gets it too.
3
+ ALTER TABLE "ships" DROP CONSTRAINT "ships_scopes_known";
4
+ ALTER TABLE "ships" ADD CONSTRAINT "ships_scopes_known" CHECK (
5
+ "scopes" IS NOT NULL AND "scopes" <@ ARRAY['messages:send', 'messages:receive', 'fleet:read', 'fleet:manage', 'fleet:crew']::TEXT[]
6
+ );
7
+
8
+ UPDATE "ships" SET "scopes" = array_append("scopes", 'fleet:crew') WHERE "kind" = 'operator' AND NOT ('fleet:crew' = ANY("scopes"));
@@ -0,0 +1,3 @@
1
+ -- AlterTable
2
+ ALTER TABLE "leases" ADD COLUMN "report_details" JSONB,
3
+ ADD COLUMN "report_details_version" INTEGER NOT NULL DEFAULT 0;
@@ -0,0 +1,20 @@
1
+ -- CreateTable
2
+ CREATE TABLE "crew_requests" (
3
+ "ship_id" TEXT NOT NULL,
4
+ "fleet_id" TEXT NOT NULL,
5
+ "settings" JSONB NOT NULL,
6
+ "settings_version" INTEGER NOT NULL,
7
+ "requested_at" TIMESTAMPTZ(3) NOT NULL,
8
+
9
+ CONSTRAINT "crew_requests_pkey" PRIMARY KEY ("ship_id")
10
+ );
11
+
12
+ -- CreateIndex
13
+ CREATE UNIQUE INDEX "crew_requests_fleet_id_ship_id_key" ON "crew_requests"("fleet_id", "ship_id");
14
+
15
+ -- AddForeignKey
16
+ ALTER TABLE "crew_requests" ADD CONSTRAINT "crew_requests_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
17
+
18
+ -- AddForeignKey
19
+ ALTER TABLE "crew_requests" ADD CONSTRAINT "crew_requests_fleet_id_ship_id_fkey" FOREIGN KEY ("fleet_id", "ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
20
+
@@ -0,0 +1,9 @@
1
+ -- crew:assign and crew:run (decision 0029): the trierarch plugin's and a
2
+ -- trierarch's scopes. argo holds every scope, so each fleet's argo gets them too.
3
+ ALTER TABLE "ships" DROP CONSTRAINT "ships_scopes_known";
4
+ ALTER TABLE "ships" ADD CONSTRAINT "ships_scopes_known" CHECK (
5
+ "scopes" IS NOT NULL AND "scopes" <@ ARRAY['messages:send', 'messages:receive', 'fleet:read', 'fleet:manage', 'fleet:crew', 'crew:assign', 'crew:run']::TEXT[]
6
+ );
7
+
8
+ UPDATE "ships" SET "scopes" = array_append("scopes", 'crew:assign') WHERE "kind" = 'operator' AND NOT ('crew:assign' = ANY("scopes"));
9
+ UPDATE "ships" SET "scopes" = array_append("scopes", 'crew:run') WHERE "kind" = 'operator' AND NOT ('crew:run' = ANY("scopes"));
@@ -0,0 +1,13 @@
1
+ -- CreateEnum
2
+ CREATE TYPE "crew_status" AS ENUM ('crewing', 'running', 'restarting', 'crashed', 'releasing');
3
+
4
+ -- AlterTable
5
+ ALTER TABLE "crew_requests" ADD COLUMN "assigned_to_ship_id" TEXT,
6
+ ADD COLUMN "status" "crew_status";
7
+
8
+ -- CreateIndex
9
+ CREATE INDEX "crew_requests_fleet_id_assigned_to_ship_id_idx" ON "crew_requests"("fleet_id", "assigned_to_ship_id");
10
+
11
+ -- AddForeignKey
12
+ ALTER TABLE "crew_requests" ADD CONSTRAINT "crew_requests_fleet_id_assigned_to_ship_id_fkey" FOREIGN KEY ("fleet_id", "assigned_to_ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
13
+
@@ -0,0 +1,3 @@
1
+ -- AlterTable
2
+ ALTER TABLE "crew_requests" ADD COLUMN "reason" TEXT;
3
+
@@ -0,0 +1,3 @@
1
+ # Please do not edit this file manually
2
+ # It should be added in your version-control system (e.g., Git)
3
+ provider = "postgresql"