@aeolus-fleet/core 0.24.0 → 0.25.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 (158) hide show
  1. package/README.md +5 -5
  2. package/dist/adapters/prisma/generated/browser.d.ts +12 -3
  3. package/dist/adapters/prisma/generated/client.d.ts +12 -3
  4. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +60 -0
  5. package/dist/adapters/prisma/generated/enums.d.ts +15 -1
  6. package/dist/adapters/prisma/generated/enums.js +13 -1
  7. package/dist/adapters/prisma/generated/enums.js.map +1 -1
  8. package/dist/adapters/prisma/generated/internal/class.d.ts +11 -0
  9. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  10. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  11. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +109 -1
  12. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +16 -0
  13. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  14. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +17 -0
  15. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +16 -0
  16. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  17. package/dist/adapters/prisma/generated/models/Delivery.d.ts +304 -4
  18. package/dist/adapters/prisma/generated/models/Fleet.d.ts +267 -0
  19. package/dist/adapters/prisma/generated/models/Lease.d.ts +332 -1
  20. package/dist/adapters/prisma/generated/models/OverdueDelivery.d.ts +1687 -0
  21. package/dist/adapters/prisma/generated/models/OverdueDelivery.js +2 -0
  22. package/dist/adapters/prisma/generated/models/OverdueDelivery.js.map +1 -0
  23. package/dist/adapters/prisma/generated/models/Ship.d.ts +271 -0
  24. package/dist/adapters/prisma/generated/models.d.ts +1 -0
  25. package/dist/adapters/prisma/history.js +231 -46
  26. package/dist/adapters/prisma/history.js.map +1 -1
  27. package/dist/adapters/prisma/installation.js +30 -1
  28. package/dist/adapters/prisma/installation.js.map +1 -1
  29. package/dist/adapters/prisma/messaging.js +11 -7
  30. package/dist/adapters/prisma/messaging.js.map +1 -1
  31. package/dist/adapters/prisma/overdue.d.ts +4 -0
  32. package/dist/adapters/prisma/overdue.js +63 -0
  33. package/dist/adapters/prisma/overdue.js.map +1 -0
  34. package/dist/adapters/prisma/registry.js +32 -7
  35. package/dist/adapters/prisma/registry.js.map +1 -1
  36. package/dist/adapters/prisma/rows.d.ts +12 -1
  37. package/dist/adapters/prisma/rows.js +46 -1
  38. package/dist/adapters/prisma/rows.js.map +1 -1
  39. package/dist/adapters/prisma/unit-of-work.d.ts +2 -1
  40. package/dist/adapters/prisma/unit-of-work.js +2 -0
  41. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  42. package/dist/adapters/trpc/context.d.ts +16 -0
  43. package/dist/adapters/trpc/fleet.d.ts +232 -14
  44. package/dist/adapters/trpc/fleet.js +49 -6
  45. package/dist/adapters/trpc/fleet.js.map +1 -1
  46. package/dist/adapters/trpc/installation.d.ts +14 -0
  47. package/dist/adapters/trpc/installation.js +7 -1
  48. package/dist/adapters/trpc/installation.js.map +1 -1
  49. package/dist/adapters/trpc/router.d.ts +301 -9
  50. package/dist/adapters/trpc/ship-protocol.js +2 -2
  51. package/dist/adapters/trpc/ship-protocol.js.map +1 -1
  52. package/dist/adapters/trpc/ship.d.ts +87 -0
  53. package/dist/adapters/trpc/ship.js +96 -1
  54. package/dist/adapters/trpc/ship.js.map +1 -1
  55. package/dist/adapters/trpc/starting-prompt-text.d.ts +1 -1
  56. package/dist/adapters/trpc/starting-prompt-text.js +22 -25
  57. package/dist/adapters/trpc/starting-prompt-text.js.map +1 -1
  58. package/dist/adapters/trpc/trpc.js +3 -0
  59. package/dist/adapters/trpc/trpc.js.map +1 -1
  60. package/dist/app.d.ts +4 -2
  61. package/dist/app.js +21 -9
  62. package/dist/app.js.map +1 -1
  63. package/dist/domain/messaging/delivery.d.ts +88 -28
  64. package/dist/domain/messaging/delivery.js +213 -39
  65. package/dist/domain/messaging/delivery.js.map +1 -1
  66. package/dist/domain/messaging/dismiss-delivery.d.ts +1 -1
  67. package/dist/domain/messaging/dismiss-delivery.js +1 -1
  68. package/dist/domain/messaging/hand-over-delivery.d.ts +38 -0
  69. package/dist/domain/messaging/hand-over-delivery.js +46 -0
  70. package/dist/domain/messaging/hand-over-delivery.js.map +1 -0
  71. package/dist/domain/messaging/message.d.ts +12 -1
  72. package/dist/domain/messaging/message.js +2 -0
  73. package/dist/domain/messaging/message.js.map +1 -1
  74. package/dist/domain/messaging/overdue.d.ts +60 -0
  75. package/dist/domain/messaging/overdue.js +52 -0
  76. package/dist/domain/messaging/overdue.js.map +1 -0
  77. package/dist/domain/messaging/ports.d.ts +20 -0
  78. package/dist/domain/messaging/public.d.ts +1 -0
  79. package/dist/domain/messaging/public.js +2 -0
  80. package/dist/domain/messaging/public.js.map +1 -0
  81. package/dist/domain/messaging/push-receive-deliveries.d.ts +48 -0
  82. package/dist/domain/messaging/push-receive-deliveries.js +70 -0
  83. package/dist/domain/messaging/push-receive-deliveries.js.map +1 -0
  84. package/dist/domain/messaging/receive-deliveries.d.ts +39 -6
  85. package/dist/domain/messaging/receive-deliveries.js +80 -50
  86. package/dist/domain/messaging/receive-deliveries.js.map +1 -1
  87. package/dist/domain/messaging/report-handled.d.ts +22 -0
  88. package/dist/domain/messaging/report-handled.js +13 -0
  89. package/dist/domain/messaging/report-handled.js.map +1 -0
  90. package/dist/domain/messaging/report-not-handled.d.ts +22 -0
  91. package/dist/domain/messaging/report-not-handled.js +13 -0
  92. package/dist/domain/messaging/report-not-handled.js.map +1 -0
  93. package/dist/domain/messaging/report-turn-end.d.ts +29 -0
  94. package/dist/domain/messaging/report-turn-end.js +36 -0
  95. package/dist/domain/messaging/report-turn-end.js.map +1 -0
  96. package/dist/domain/messaging/resend-delivery.d.ts +1 -1
  97. package/dist/domain/messaging/resend-delivery.js +1 -1
  98. package/dist/domain/messaging/tell-overdue-deliveries.d.ts +25 -0
  99. package/dist/domain/messaging/tell-overdue-deliveries.js +30 -0
  100. package/dist/domain/messaging/tell-overdue-deliveries.js.map +1 -0
  101. package/dist/domain/registry/installation-fleet.d.ts +3 -2
  102. package/dist/domain/registry/installation-fleet.js.map +1 -1
  103. package/dist/domain/registry/leases.d.ts +26 -0
  104. package/dist/domain/registry/leases.js +26 -1
  105. package/dist/domain/registry/leases.js.map +1 -1
  106. package/dist/domain/registry/ping-status.d.ts +2 -2
  107. package/dist/domain/registry/ping-status.js +7 -4
  108. package/dist/domain/registry/ping-status.js.map +1 -1
  109. package/dist/domain/registry/ports.d.ts +40 -0
  110. package/dist/domain/registry/public.d.ts +2 -2
  111. package/dist/domain/registry/public.js +1 -1
  112. package/dist/domain/registry/public.js.map +1 -1
  113. package/dist/domain/registry/report-turn.d.ts +28 -0
  114. package/dist/domain/registry/report-turn.js +28 -0
  115. package/dist/domain/registry/report-turn.js.map +1 -0
  116. package/dist/domain/registry/turn.d.ts +25 -0
  117. package/dist/domain/registry/turn.js +30 -0
  118. package/dist/domain/registry/turn.js.map +1 -0
  119. package/dist/domain/shared/delivery-way.d.ts +83 -0
  120. package/dist/domain/shared/delivery-way.js +89 -0
  121. package/dist/domain/shared/delivery-way.js.map +1 -0
  122. package/dist/domain/shared/errors.d.ts +1 -1
  123. package/dist/domain/shared/errors.js.map +1 -1
  124. package/dist/domain/shared/history.d.ts +116 -19
  125. package/dist/domain/shared/history.js +1 -1
  126. package/dist/domain/shared/history.js.map +1 -1
  127. package/dist/domain/shared/read-message.d.ts +7 -3
  128. package/dist/domain/shared/read-message.js +7 -4
  129. package/dist/domain/shared/read-message.js.map +1 -1
  130. package/dist/domain/shared/read-needs-attention.d.ts +5 -5
  131. package/dist/domain/shared/read-needs-attention.js +4 -4
  132. package/dist/domain/shared/read-needs-attention.js.map +1 -1
  133. package/dist/domain/shared/read-no-ship-can-take.d.ts +13 -0
  134. package/dist/domain/shared/read-no-ship-can-take.js +12 -0
  135. package/dist/domain/shared/read-no-ship-can-take.js.map +1 -0
  136. package/dist/domain/shared/read-overdue.d.ts +13 -0
  137. package/dist/domain/shared/read-overdue.js +12 -0
  138. package/dist/domain/shared/read-overdue.js.map +1 -0
  139. package/dist/domain/shared/read-ship-messages.d.ts +4 -1
  140. package/dist/domain/shared/read-ship-messages.js +6 -1
  141. package/dist/domain/shared/read-ship-messages.js.map +1 -1
  142. package/dist/domain/shared/read-ship-way.d.ts +41 -0
  143. package/dist/domain/shared/read-ship-way.js +39 -0
  144. package/dist/domain/shared/read-ship-way.js.map +1 -0
  145. package/dist/repeating-pass.d.ts +15 -0
  146. package/dist/repeating-pass.js +31 -0
  147. package/dist/repeating-pass.js.map +1 -0
  148. package/dist/wiring.d.ts +19 -0
  149. package/dist/wiring.js +25 -0
  150. package/dist/wiring.js.map +1 -1
  151. package/package.json +2 -2
  152. package/src/adapters/prisma/migrations/20261012190000_delivery_handed/migration.sql +11 -0
  153. package/src/adapters/prisma/migrations/20261012210000_push_receive/migration.sql +7 -0
  154. package/src/adapters/prisma/migrations/20261013090000_handled/migration.sql +6 -0
  155. package/src/adapters/prisma/migrations/20261013100000_turn/migration.sql +6 -0
  156. package/src/adapters/prisma/migrations/20261013120000_overdue/migration.sql +28 -0
  157. package/src/adapters/prisma/migrations/20261013140000_delivery_state_index/migration.sql +4 -0
  158. package/src/adapters/prisma/schema.prisma +66 -4
@@ -0,0 +1,15 @@
1
+ /** A background pass core runs while it serves: one at a time, each after the last one ended. */
2
+ export interface RepeatingPass {
3
+ /** Stops passing; settles once a pass that runs has ended. */
4
+ stop(): Promise<void>;
5
+ }
6
+ /**
7
+ * Runs `pass` every `everyMs`, the first one `everyMs` after it starts. A pass
8
+ * that fails goes to `onError` and the next one runs as usual: what a pass
9
+ * missed, the next one finds, since it reads its work from the database.
10
+ */
11
+ export declare function repeatPass(options: {
12
+ pass: () => Promise<void>;
13
+ everyMs: number;
14
+ onError: (error: unknown) => void;
15
+ }): RepeatingPass;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Runs `pass` every `everyMs`, the first one `everyMs` after it starts. A pass
3
+ * that fails goes to `onError` and the next one runs as usual: what a pass
4
+ * missed, the next one finds, since it reads its work from the database.
5
+ */
6
+ export function repeatPass(options) {
7
+ let timer;
8
+ let running = Promise.resolve();
9
+ let isStopped = false;
10
+ const schedule = () => {
11
+ timer = setTimeout(() => {
12
+ running = options
13
+ .pass()
14
+ .catch(options.onError)
15
+ .finally(() => {
16
+ if (!isStopped) {
17
+ schedule();
18
+ }
19
+ });
20
+ }, options.everyMs);
21
+ };
22
+ schedule();
23
+ return {
24
+ stop: async () => {
25
+ isStopped = true;
26
+ clearTimeout(timer);
27
+ await running;
28
+ },
29
+ };
30
+ }
31
+ //# sourceMappingURL=repeating-pass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeating-pass.js","sourceRoot":"","sources":["../src/repeating-pass.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0F;IACnH,IAAI,KAAiC,CAAC;IACtC,IAAI,OAAO,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,OAAO,GAAG,OAAO;iBACd,IAAI,EAAE;iBACN,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;iBACtB,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,EAAE,CAAC;gBACb,CAAC;YACH,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,QAAQ,EAAE,CAAC;IACX,OAAO;QACL,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,OAAO,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/wiring.d.ts CHANGED
@@ -17,12 +17,17 @@ import { type SetTheme } from './domain/identity/set-theme.js';
17
17
  import { type SignIn } from './domain/identity/sign-in.js';
18
18
  import { type SignOut } from './domain/identity/sign-out.js';
19
19
  import { type AcknowledgeDelivery } from './domain/messaging/acknowledge-delivery.js';
20
+ import { type HandOverDelivery } from './domain/messaging/hand-over-delivery.js';
21
+ import { type ReportHandled } from './domain/messaging/report-handled.js';
22
+ import { type ReportNotHandled } from './domain/messaging/report-not-handled.js';
23
+ import { type TellOverdueDeliveries } from './domain/messaging/tell-overdue-deliveries.js';
20
24
  import { type AnswerPing } from './domain/messaging/answer-ping.js';
21
25
  import { type CheckInbox } from './domain/messaging/check-inbox.js';
22
26
  import { type DismissDelivery } from './domain/messaging/dismiss-delivery.js';
23
27
  import { type MarkDone } from './domain/messaging/mark-done.js';
24
28
  import { type MarkRead } from './domain/messaging/mark-read.js';
25
29
  import type { ReceiverWakeups } from './domain/messaging/ports.js';
30
+ import { type PushReceiveDeliveries } from './domain/messaging/push-receive-deliveries.js';
26
31
  import { type ReceiveDeliveries } from './domain/messaging/receive-deliveries.js';
27
32
  import { type ReplyToMessage } from './domain/messaging/reply-to-message.js';
28
33
  import { type ResendDelivery } from './domain/messaging/resend-delivery.js';
@@ -41,6 +46,7 @@ import { type ReleaseShip } from './domain/registry/release-ship.js';
41
46
  import { type RenameShip } from './domain/registry/rename-ship.js';
42
47
  import { type RetireShip } from './domain/registry/retire-ship.js';
43
48
  import { type Report } from './domain/registry/report.js';
49
+ import { type ReportTurn } from './domain/registry/report-turn.js';
44
50
  import { type RequestCrew } from './domain/registry/request-crew.js';
45
51
  import { type RemoveCrewRequest } from './domain/registry/remove-crew-request.js';
46
52
  import { type AssignCrew } from './domain/registry/assign-crew.js';
@@ -84,7 +90,10 @@ import { type GetInstallationFleet } from './domain/registry/get-installation-fl
84
90
  import { type ListInstallationFleets } from './domain/registry/list-installation-fleets.js';
85
91
  import { type ReadInbox } from './domain/shared/read-inbox.js';
86
92
  import { type ReadMessage } from './domain/shared/read-message.js';
93
+ import { type ReadShipWay } from './domain/shared/read-ship-way.js';
87
94
  import { type ReadNeedsAttention } from './domain/shared/read-needs-attention.js';
95
+ import { type ReadNoShipCanTake } from './domain/shared/read-no-ship-can-take.js';
96
+ import { type ReadOverdue } from './domain/shared/read-overdue.js';
88
97
  import { type ReadShipMessages } from './domain/shared/read-ship-messages.js';
89
98
  import { type ReadShipTimeline } from './domain/shared/read-ship-timeline.js';
90
99
  export interface UseCases {
@@ -102,6 +111,7 @@ export interface UseCases {
102
111
  claimShip: ClaimShip;
103
112
  whoami: Whoami;
104
113
  report: Report;
114
+ reportTurn: ReportTurn;
105
115
  requestCrew: RequestCrew;
106
116
  removeCrewRequest: RemoveCrewRequest;
107
117
  assignCrew: AssignCrew;
@@ -131,6 +141,12 @@ export interface UseCases {
131
141
  deregister: Deregister;
132
142
  sendMessage: SendMessage;
133
143
  receiveDeliveries: ReceiveDeliveries;
144
+ pushReceiveDeliveries: PushReceiveDeliveries;
145
+ handOverDelivery: HandOverDelivery;
146
+ reportHandled: ReportHandled;
147
+ reportNotHandled: ReportNotHandled;
148
+ /** One pass of the 10 and 60 minute clocks; core runs it, never the API. */
149
+ tellOverdueDeliveries: TellOverdueDeliveries;
134
150
  acknowledgeDelivery: AcknowledgeDelivery;
135
151
  answerPing: AnswerPing;
136
152
  pingShip: PingShip;
@@ -145,7 +161,10 @@ export interface UseCases {
145
161
  readShipTimeline: ReadShipTimeline;
146
162
  readShipMessages: ReadShipMessages;
147
163
  readMessage: ReadMessage;
164
+ readShipWay: ReadShipWay;
148
165
  readNeedsAttention: ReadNeedsAttention;
166
+ readOverdue: ReadOverdue;
167
+ readNoShipCanTake: ReadNoShipCanTake;
149
168
  readInbox: ReadInbox;
150
169
  signIn: SignIn;
151
170
  signOut: SignOut;
package/dist/wiring.js CHANGED
@@ -4,6 +4,7 @@ import { cryptoRandomTokens, sha256Hasher } from './adapters/crypto/secrets.js';
4
4
  import { createPrismaFleetEventFeed } from './adapters/prisma/event-log.js';
5
5
  import { createPrismaFleetCounter } from './adapters/prisma/fleet-counter.js';
6
6
  import { createPrismaShipHistory } from './adapters/prisma/history.js';
7
+ import { createPrismaPushedCrews } from './adapters/prisma/overdue.js';
7
8
  import { createPrismaFleetListing, createPrismaFleetRepository, createPrismaClearRequestRepository, createPrismaCrewRequestRepository, createPrismaLeaseRepository, createPrismaShipRepository, } from './adapters/prisma/registry.js';
8
9
  import { createPrismaGuideProgress, createPrismaNoticeDismissals, createPrismaOperatorAccountLookup } from './adapters/prisma/identity.js';
9
10
  import { createReceiverWakeups } from './adapters/prisma/receiver-wakeups.js';
@@ -27,11 +28,16 @@ import { createSetTheme } from './domain/identity/set-theme.js';
27
28
  import { createSignIn } from './domain/identity/sign-in.js';
28
29
  import { createSignOut } from './domain/identity/sign-out.js';
29
30
  import { createAcknowledgeDelivery } from './domain/messaging/acknowledge-delivery.js';
31
+ import { createHandOverDelivery } from './domain/messaging/hand-over-delivery.js';
32
+ import { createReportHandled } from './domain/messaging/report-handled.js';
33
+ import { createReportNotHandled } from './domain/messaging/report-not-handled.js';
34
+ import { createTellOverdueDeliveries } from './domain/messaging/tell-overdue-deliveries.js';
30
35
  import { createAnswerPing } from './domain/messaging/answer-ping.js';
31
36
  import { createCheckInbox } from './domain/messaging/check-inbox.js';
32
37
  import { createDismissDelivery } from './domain/messaging/dismiss-delivery.js';
33
38
  import { createMarkDone } from './domain/messaging/mark-done.js';
34
39
  import { createMarkRead } from './domain/messaging/mark-read.js';
40
+ import { createPushReceiveDeliveries } from './domain/messaging/push-receive-deliveries.js';
35
41
  import { createReceiveDeliveries } from './domain/messaging/receive-deliveries.js';
36
42
  import { createReplyToMessage } from './domain/messaging/reply-to-message.js';
37
43
  import { createResendDelivery } from './domain/messaging/resend-delivery.js';
@@ -50,6 +56,7 @@ import { createReleaseShip } from './domain/registry/release-ship.js';
50
56
  import { createRenameShip } from './domain/registry/rename-ship.js';
51
57
  import { createRetireShip } from './domain/registry/retire-ship.js';
52
58
  import { createReport } from './domain/registry/report.js';
59
+ import { createReportTurn } from './domain/registry/report-turn.js';
53
60
  import { createRequestCrew } from './domain/registry/request-crew.js';
54
61
  import { createRemoveCrewRequest } from './domain/registry/remove-crew-request.js';
55
62
  import { createAssignCrew } from './domain/registry/assign-crew.js';
@@ -92,7 +99,10 @@ import { createGetInstallationFleet } from './domain/registry/get-installation-f
92
99
  import { createListInstallationFleets } from './domain/registry/list-installation-fleets.js';
93
100
  import { createReadInbox } from './domain/shared/read-inbox.js';
94
101
  import { createReadMessage } from './domain/shared/read-message.js';
102
+ import { createReadShipWay } from './domain/shared/read-ship-way.js';
95
103
  import { createReadNeedsAttention } from './domain/shared/read-needs-attention.js';
104
+ import { createReadNoShipCanTake } from './domain/shared/read-no-ship-can-take.js';
105
+ import { createReadOverdue } from './domain/shared/read-overdue.js';
96
106
  import { createReadShipMessages } from './domain/shared/read-ship-messages.js';
97
107
  import { createReadShipTimeline } from './domain/shared/read-ship-timeline.js';
98
108
  export const systemClock = { now: () => new Date() };
@@ -151,6 +161,7 @@ export function createUseCases(options) {
151
161
  claimShip: createClaimShip({ uow, clock, ids, secrets }),
152
162
  whoami: createWhoami({ ships: createPrismaShipRepository(prisma) }),
153
163
  report: createReport({ uow, clock, ids }),
164
+ reportTurn: createReportTurn({ uow, clock, ids }),
154
165
  requestCrew: createRequestCrew({ uow, clock, ids }),
155
166
  removeCrewRequest: createRemoveCrewRequest({ uow, clock, ids }),
156
167
  assignCrew: createAssignCrew({ uow, clock, ids }),
@@ -186,6 +197,17 @@ export function createUseCases(options) {
186
197
  wakeups,
187
198
  waitMs: options.receiveWaitMs,
188
199
  }),
200
+ pushReceiveDeliveries: createPushReceiveDeliveries({
201
+ uow,
202
+ clock,
203
+ ids,
204
+ wakeups,
205
+ waitMs: options.receiveWaitMs,
206
+ }),
207
+ handOverDelivery: createHandOverDelivery({ uow, clock, ids }),
208
+ reportHandled: createReportHandled({ uow, clock, ids }),
209
+ reportNotHandled: createReportNotHandled({ uow, clock, ids }),
210
+ tellOverdueDeliveries: createTellOverdueDeliveries({ fleets: createPrismaFleetRepository(prisma), pushedCrews: createPrismaPushedCrews(prisma), uow, clock, ids }),
189
211
  acknowledgeDelivery: createAcknowledgeDelivery({ uow, clock, ids }),
190
212
  answerPing: createAnswerPing({ uow, clock, ids }),
191
213
  pingShip: createPingShip({ uow, clock, ids, hasher: sha256Hasher }),
@@ -204,7 +226,10 @@ export function createUseCases(options) {
204
226
  readShipTimeline: createReadShipTimeline({ history: createPrismaShipHistory(prisma) }),
205
227
  readShipMessages: createReadShipMessages({ history: createPrismaShipHistory(prisma) }),
206
228
  readMessage: createReadMessage({ history: createPrismaShipHistory(prisma) }),
229
+ readShipWay: createReadShipWay({ history: createPrismaShipHistory(prisma) }),
207
230
  readNeedsAttention: createReadNeedsAttention({ history: createPrismaShipHistory(prisma) }),
231
+ readOverdue: createReadOverdue({ history: createPrismaShipHistory(prisma) }),
232
+ readNoShipCanTake: createReadNoShipCanTake({ history: createPrismaShipHistory(prisma) }),
208
233
  readInbox: createReadInbox({ history: createPrismaShipHistory(prisma), ships: createPrismaShipRepository(prisma) }),
209
234
  signIn: createSignIn({
210
235
  uow,
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeolus-fleet/core",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "The Aeolus fleet server: ships, guaranteed delivery and the API for Claude Code, Codex and any agent.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -51,7 +51,7 @@
51
51
  "postpack": "rm LICENSE"
52
52
  },
53
53
  "dependencies": {
54
- "@aeolus-fleet/common": "0.24.0",
54
+ "@aeolus-fleet/common": "0.25.0",
55
55
  "@fastify/websocket": "^11.3.1",
56
56
  "@modelcontextprotocol/server": "^2.3.0",
57
57
  "@prisma/adapter-pg": "^7.10.0",
@@ -0,0 +1,11 @@
1
+ -- A delivery a receive took is handed, not delivered (#756): the state and its
2
+ -- event take the new name, stored rows and events included (decision 0013).
3
+ ALTER TYPE "delivery_state" RENAME VALUE 'delivered' TO 'handed';
4
+
5
+ -- Events are append-only; this one-time rename is an exception, so the guard
6
+ -- is off for this statement alone.
7
+ ALTER TABLE "events" DISABLE TRIGGER "events_append_only";
8
+
9
+ UPDATE "events" SET "type" = 'DeliveryHanded' WHERE "type" = 'DeliveryClaimed';
10
+
11
+ ALTER TABLE "events" ENABLE TRIGGER "events_append_only";
@@ -0,0 +1,7 @@
1
+ -- A push receive takes a delivery for the computer side, which hands it to the
2
+ -- agent with a hand-over number, and marks its lease pushed (decision 0040).
3
+ ALTER TYPE "delivery_state" ADD VALUE 'received' BEFORE 'handed';
4
+
5
+ ALTER TABLE "deliveries" ADD COLUMN "hand_over_number" INTEGER;
6
+
7
+ ALTER TABLE "leases" ADD COLUMN "pushed_at" TIMESTAMPTZ(3);
@@ -0,0 +1,6 @@
1
+ -- A pushed crew reports how the turn that took a confirmed message ended:
2
+ -- handled, or not handled after it was handed once more (decision 0040).
3
+ ALTER TYPE "delivery_state" ADD VALUE 'handled' AFTER 'acknowledged';
4
+ ALTER TYPE "delivery_state" ADD VALUE 'notHandled' AFTER 'handled';
5
+
6
+ ALTER TABLE "deliveries" ADD COLUMN "handed_once_more_at" TIMESTAMPTZ(3);
@@ -0,0 +1,6 @@
1
+ -- The hooks of a pushed ship report its session's turn, idle or busy, with
2
+ -- the time they saw it; the lease keeps it (decision 0040).
3
+ CREATE TYPE "turn_state" AS ENUM ('idle', 'busy');
4
+
5
+ ALTER TABLE "leases" ADD COLUMN "turn" "turn_state";
6
+ ALTER TABLE "leases" ADD COLUMN "turn_at" TIMESTAMPTZ(3);
@@ -0,0 +1,28 @@
1
+ -- The 10 and 60 minute clocks (decision 0040): a delivery argo was told is
2
+ -- overdue on a pushed lease, once per lease and delivery.
3
+ CREATE TYPE "overdue_clock" AS ENUM ('notConfirmed', 'idle', 'busy');
4
+
5
+ CREATE TABLE "overdue_deliveries" (
6
+ "fleet_id" TEXT NOT NULL,
7
+ "lease_id" TEXT NOT NULL,
8
+ "delivery_id" TEXT NOT NULL,
9
+ "ship_id" TEXT NOT NULL,
10
+ "state" "delivery_state" NOT NULL,
11
+ "clock" "overdue_clock" NOT NULL,
12
+ "minutes" INTEGER NOT NULL,
13
+ "told_at" TIMESTAMPTZ(3) NOT NULL,
14
+
15
+ CONSTRAINT "overdue_deliveries_pkey" PRIMARY KEY ("fleet_id","lease_id","delivery_id")
16
+ );
17
+
18
+ CREATE INDEX "overdue_deliveries_fleet_id_delivery_id_idx" ON "overdue_deliveries"("fleet_id", "delivery_id");
19
+
20
+ CREATE INDEX "overdue_deliveries_fleet_id_ship_id_idx" ON "overdue_deliveries"("fleet_id", "ship_id");
21
+
22
+ ALTER TABLE "overdue_deliveries" ADD CONSTRAINT "overdue_deliveries_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
23
+
24
+ ALTER TABLE "overdue_deliveries" ADD CONSTRAINT "overdue_deliveries_fleet_id_lease_id_fkey" FOREIGN KEY ("fleet_id", "lease_id") REFERENCES "leases"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
25
+
26
+ ALTER TABLE "overdue_deliveries" ADD CONSTRAINT "overdue_deliveries_fleet_id_delivery_id_fkey" FOREIGN KEY ("fleet_id", "delivery_id") REFERENCES "deliveries"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
27
+
28
+ ALTER TABLE "overdue_deliveries" ADD CONSTRAINT "overdue_deliveries_fleet_id_ship_id_fkey" FOREIGN KEY ("fleet_id", "ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,4 @@
1
+ -- The installation's health figures scan a fleet's open deliveries by state (decision 0041).
2
+ -- Partial: a foreign key check on deliveries never matches its predicate, so a bulk delete never picks it.
3
+ CREATE INDEX "deliveries_open_fleet_id_state_created_at_idx" ON "deliveries"("fleet_id", "state", "created_at")
4
+ WHERE state IN ('pending', 'received', 'handed', 'undeliverable', 'notHandled');
@@ -57,6 +57,7 @@ model Fleet {
57
57
  credentials Credential[]
58
58
  messages Message[]
59
59
  deliveries Delivery[]
60
+ overdueDeliveries OverdueDelivery[]
60
61
  events Event[]
61
62
  consoleSessions ConsoleSession[]
62
63
  signInTickets SignInTicket[]
@@ -100,6 +101,7 @@ model Ship {
100
101
  addressedMessages Message[] @relation("MessageSelectorShip")
101
102
  deliveries Delivery[] @relation("DeliveryRecipientShip")
102
103
  claimedDeliveries Delivery[] @relation("DeliveryClaimedByShip")
104
+ overdueDeliveries OverdueDelivery[]
103
105
  consoleSessions ConsoleSession[]
104
106
  actorOfEvents Event[] @relation("EventActorShip")
105
107
  events Event[] @relation("EventShip")
@@ -134,6 +136,14 @@ enum ReportState {
134
136
  @@map("report_state")
135
137
  }
136
138
 
139
+ /// A pushed session's turn, as its hooks report it (decision 0040).
140
+ enum TurnState {
141
+ idle
142
+ busy
143
+
144
+ @@map("turn_state")
145
+ }
146
+
137
147
  enum LocationKind {
138
148
  DEVICE
139
149
  CLOUD
@@ -168,12 +178,18 @@ model Lease {
168
178
  reportDetails Json? @map("report_details")
169
179
  /// Moves by one each time the details change; 0 before any.
170
180
  reportDetailsVersion Int @default(0) @map("report_details_version")
181
+ /// From the lease's first push receive: the computer side takes its deliveries, and the agent's plain receive answers nothing (decision 0040).
182
+ pushedAt DateTime? @map("pushed_at") @db.Timestamptz(3)
183
+ /// The session's turn as its hooks last reported it, and when they saw it change; null until they report (decision 0040).
184
+ turn TurnState?
185
+ turnAt DateTime? @map("turn_at") @db.Timestamptz(3)
171
186
  endedAt DateTime? @map("ended_at") @db.Timestamptz(3)
172
187
 
173
188
  fleet Fleet @relation(fields: [fleetId], references: [id])
174
189
  ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])
175
190
  consoleSessions ConsoleSession[]
176
191
  claimedDeliveries Delivery[]
192
+ overdueDeliveries OverdueDelivery[]
177
193
 
178
194
  @@unique([fleetId, id])
179
195
  /// At most one open lease per ship.
@@ -461,8 +477,11 @@ model Message {
461
477
 
462
478
  enum DeliveryState {
463
479
  pending
464
- delivered
480
+ received
481
+ handed
465
482
  acknowledged
483
+ handled
484
+ notHandled
466
485
  undeliverable
467
486
  dismissed
468
487
  abandoned
@@ -471,9 +490,11 @@ enum DeliveryState {
471
490
  }
472
491
 
473
492
  /// One message to one resolved recipient: a ship or a type. Ids start with dlv_.
474
- /// A receive claims it for the ship and the lease of the crew receiving: set while it
475
- /// is in flight, kept once acknowledged, none while it is pending. Attempts count the
476
- /// claims; the fifth makes it undeliverable.
493
+ /// A receive hands it to the ship and the lease of the crew receiving, or a push
494
+ /// receive takes it for them: set while it is received or handed, kept once
495
+ /// acknowledged, none while it is pending. Attempts count the hand-overs; the fifth
496
+ /// makes it undeliverable. The hand-over number is the last one the crew reported
497
+ /// with handed (decision 0040), none while pending.
477
498
  /// The read date is set when the operator opens a message to argo.
478
499
  /// For a type under network rules, the ships of the type its sender may reach,
479
500
  /// fixed at send time: only they claim it (decision 0034). Empty: any ship of
@@ -488,6 +509,9 @@ model Delivery {
488
509
  claimedByShipId String? @map("claimed_by_ship_id")
489
510
  claimedByLeaseId String? @map("claimed_by_lease_id")
490
511
  attempts Int @default(0)
512
+ handOverNumber Int? @map("hand_over_number")
513
+ /// When its crew handed it once more after the turn that took it died; only once (decision 0040).
514
+ handedOnceMoreAt DateTime? @map("handed_once_more_at") @db.Timestamptz(3)
491
515
  reachableShipIds String[] @default([]) @map("reachable_ship_ids")
492
516
  readAt DateTime? @map("read_at") @db.Timestamptz(3)
493
517
  createdAt DateTime @map("created_at") @db.Timestamptz(3)
@@ -498,6 +522,7 @@ model Delivery {
498
522
  claimedByShip Ship? @relation("DeliveryClaimedByShip", fields: [fleetId, claimedByShipId], references: [fleetId, id], onDelete: Restrict)
499
523
  claimedByLease Lease? @relation(fields: [fleetId, claimedByLeaseId], references: [fleetId, id], onDelete: Restrict)
500
524
  events Event[]
525
+ overdue OverdueDelivery[]
501
526
 
502
527
  @@unique([fleetId, id])
503
528
  /// One row per recipient.
@@ -505,6 +530,8 @@ model Delivery {
505
530
  @@unique([messageId, recipientType])
506
531
  @@index([fleetId, recipientShipId, state])
507
532
  @@index([fleetId, recipientType, state])
533
+ /// The installation's health figures scan a fleet's open deliveries by state (decision 0041). Partial, so a foreign key check never picks it.
534
+ @@index([fleetId, state, createdAt], map: "deliveries_open_fleet_id_state_created_at_idx", where: raw("(state = ANY (ARRAY['pending'::delivery_state, 'received'::delivery_state, 'handed'::delivery_state, 'undeliverable'::delivery_state, 'notHandled'::delivery_state]))"))
508
535
  /// A crew's own deliveries in flight, which its next receive returns first.
509
536
  @@index([fleetId, claimedByLeaseId, state])
510
537
  /// Every foreign key has an index leading with its columns, so deleting a
@@ -514,6 +541,41 @@ model Delivery {
514
541
  @@map("deliveries")
515
542
  }
516
543
 
544
+ /// Which of the 10 and 60 minute clocks ran out (decision 0040).
545
+ enum OverdueClock {
546
+ notConfirmed
547
+ idle
548
+ busy
549
+
550
+ @@map("overdue_clock")
551
+ }
552
+
553
+ /// A delivery argo was told is overdue on a pushed lease: its clock ran out
554
+ /// while it waited in the state kept here. Once per lease and delivery, so a
555
+ /// pass after a restart, or a second pass at once, tells nothing again.
556
+ model OverdueDelivery {
557
+ fleetId String @map("fleet_id")
558
+ leaseId String @map("lease_id")
559
+ deliveryId String @map("delivery_id")
560
+ shipId String @map("ship_id")
561
+ state DeliveryState
562
+ clock OverdueClock
563
+ minutes Int
564
+ toldAt DateTime @map("told_at") @db.Timestamptz(3)
565
+
566
+ fleet Fleet @relation(fields: [fleetId], references: [id])
567
+ lease Lease @relation(fields: [fleetId, leaseId], references: [fleetId, id], onDelete: Restrict)
568
+ delivery Delivery @relation(fields: [fleetId, deliveryId], references: [fleetId, id], onDelete: Restrict)
569
+ ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id], onDelete: Restrict)
570
+
571
+ @@id([fleetId, leaseId, deliveryId])
572
+ /// Every foreign key has an index leading with its columns, so deleting a
573
+ /// referenced row checks it with an index, not a scan (#331).
574
+ @@index([fleetId, deliveryId])
575
+ @@index([fleetId, shipId])
576
+ @@map("overdue_deliveries")
577
+ }
578
+
517
579
  /// Append-only log of every state change: never updated or deleted. Ids start with evt_.
518
580
  /// Records its type and time, who caused it (a ship, or the system when
519
581
  /// actor_ship_id is null), the ship, message and delivery it concerns, and a few