@aeolus-fleet/core 0.24.1 → 0.25.1

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 (165) hide show
  1. package/README.md +5 -5
  2. package/dist/adapters/prisma/generated/browser.d.ts +15 -5
  3. package/dist/adapters/prisma/generated/client.d.ts +15 -5
  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/CrewRequest.d.ts +3 -2
  18. package/dist/adapters/prisma/generated/models/Delivery.d.ts +304 -4
  19. package/dist/adapters/prisma/generated/models/Fleet.d.ts +267 -0
  20. package/dist/adapters/prisma/generated/models/Lease.d.ts +332 -1
  21. package/dist/adapters/prisma/generated/models/OverdueDelivery.d.ts +1687 -0
  22. package/dist/adapters/prisma/generated/models/OverdueDelivery.js +2 -0
  23. package/dist/adapters/prisma/generated/models/OverdueDelivery.js.map +1 -0
  24. package/dist/adapters/prisma/generated/models/Ship.d.ts +271 -0
  25. package/dist/adapters/prisma/generated/models.d.ts +1 -0
  26. package/dist/adapters/prisma/history.js +231 -46
  27. package/dist/adapters/prisma/history.js.map +1 -1
  28. package/dist/adapters/prisma/installation.js +30 -1
  29. package/dist/adapters/prisma/installation.js.map +1 -1
  30. package/dist/adapters/prisma/messaging.js +11 -7
  31. package/dist/adapters/prisma/messaging.js.map +1 -1
  32. package/dist/adapters/prisma/overdue.d.ts +4 -0
  33. package/dist/adapters/prisma/overdue.js +63 -0
  34. package/dist/adapters/prisma/overdue.js.map +1 -0
  35. package/dist/adapters/prisma/registry.js +32 -7
  36. package/dist/adapters/prisma/registry.js.map +1 -1
  37. package/dist/adapters/prisma/rows.d.ts +12 -1
  38. package/dist/adapters/prisma/rows.js +46 -1
  39. package/dist/adapters/prisma/rows.js.map +1 -1
  40. package/dist/adapters/prisma/unit-of-work.d.ts +2 -1
  41. package/dist/adapters/prisma/unit-of-work.js +2 -0
  42. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  43. package/dist/adapters/trpc/context.d.ts +16 -0
  44. package/dist/adapters/trpc/fleet.d.ts +233 -15
  45. package/dist/adapters/trpc/fleet.js +52 -8
  46. package/dist/adapters/trpc/fleet.js.map +1 -1
  47. package/dist/adapters/trpc/installation.d.ts +14 -0
  48. package/dist/adapters/trpc/installation.js +7 -1
  49. package/dist/adapters/trpc/installation.js.map +1 -1
  50. package/dist/adapters/trpc/router.d.ts +301 -9
  51. package/dist/adapters/trpc/ship-protocol.js +2 -2
  52. package/dist/adapters/trpc/ship-protocol.js.map +1 -1
  53. package/dist/adapters/trpc/ship.d.ts +87 -0
  54. package/dist/adapters/trpc/ship.js +96 -1
  55. package/dist/adapters/trpc/ship.js.map +1 -1
  56. package/dist/adapters/trpc/starting-prompt-text.d.ts +1 -1
  57. package/dist/adapters/trpc/starting-prompt-text.js +22 -25
  58. package/dist/adapters/trpc/starting-prompt-text.js.map +1 -1
  59. package/dist/adapters/trpc/trpc.js +5 -0
  60. package/dist/adapters/trpc/trpc.js.map +1 -1
  61. package/dist/app.d.ts +4 -2
  62. package/dist/app.js +21 -9
  63. package/dist/app.js.map +1 -1
  64. package/dist/domain/messaging/delivery.d.ts +88 -28
  65. package/dist/domain/messaging/delivery.js +213 -39
  66. package/dist/domain/messaging/delivery.js.map +1 -1
  67. package/dist/domain/messaging/dismiss-delivery.d.ts +1 -1
  68. package/dist/domain/messaging/dismiss-delivery.js +1 -1
  69. package/dist/domain/messaging/hand-over-delivery.d.ts +38 -0
  70. package/dist/domain/messaging/hand-over-delivery.js +46 -0
  71. package/dist/domain/messaging/hand-over-delivery.js.map +1 -0
  72. package/dist/domain/messaging/message.d.ts +12 -1
  73. package/dist/domain/messaging/message.js +2 -0
  74. package/dist/domain/messaging/message.js.map +1 -1
  75. package/dist/domain/messaging/overdue.d.ts +60 -0
  76. package/dist/domain/messaging/overdue.js +52 -0
  77. package/dist/domain/messaging/overdue.js.map +1 -0
  78. package/dist/domain/messaging/ports.d.ts +20 -0
  79. package/dist/domain/messaging/public.d.ts +1 -0
  80. package/dist/domain/messaging/public.js +2 -0
  81. package/dist/domain/messaging/public.js.map +1 -0
  82. package/dist/domain/messaging/push-receive-deliveries.d.ts +48 -0
  83. package/dist/domain/messaging/push-receive-deliveries.js +70 -0
  84. package/dist/domain/messaging/push-receive-deliveries.js.map +1 -0
  85. package/dist/domain/messaging/receive-deliveries.d.ts +39 -6
  86. package/dist/domain/messaging/receive-deliveries.js +80 -50
  87. package/dist/domain/messaging/receive-deliveries.js.map +1 -1
  88. package/dist/domain/messaging/report-handled.d.ts +22 -0
  89. package/dist/domain/messaging/report-handled.js +13 -0
  90. package/dist/domain/messaging/report-handled.js.map +1 -0
  91. package/dist/domain/messaging/report-not-handled.d.ts +22 -0
  92. package/dist/domain/messaging/report-not-handled.js +13 -0
  93. package/dist/domain/messaging/report-not-handled.js.map +1 -0
  94. package/dist/domain/messaging/report-turn-end.d.ts +29 -0
  95. package/dist/domain/messaging/report-turn-end.js +36 -0
  96. package/dist/domain/messaging/report-turn-end.js.map +1 -0
  97. package/dist/domain/messaging/resend-delivery.d.ts +1 -1
  98. package/dist/domain/messaging/resend-delivery.js +1 -1
  99. package/dist/domain/messaging/tell-overdue-deliveries.d.ts +25 -0
  100. package/dist/domain/messaging/tell-overdue-deliveries.js +30 -0
  101. package/dist/domain/messaging/tell-overdue-deliveries.js.map +1 -0
  102. package/dist/domain/registry/crew-request.d.ts +12 -6
  103. package/dist/domain/registry/crew-request.js +21 -3
  104. package/dist/domain/registry/crew-request.js.map +1 -1
  105. package/dist/domain/registry/installation-fleet.d.ts +3 -2
  106. package/dist/domain/registry/installation-fleet.js.map +1 -1
  107. package/dist/domain/registry/leases.d.ts +26 -0
  108. package/dist/domain/registry/leases.js +26 -1
  109. package/dist/domain/registry/leases.js.map +1 -1
  110. package/dist/domain/registry/ping-status.d.ts +2 -2
  111. package/dist/domain/registry/ping-status.js +7 -4
  112. package/dist/domain/registry/ping-status.js.map +1 -1
  113. package/dist/domain/registry/ports.d.ts +40 -0
  114. package/dist/domain/registry/public.d.ts +2 -2
  115. package/dist/domain/registry/public.js +1 -1
  116. package/dist/domain/registry/public.js.map +1 -1
  117. package/dist/domain/registry/report-turn.d.ts +28 -0
  118. package/dist/domain/registry/report-turn.js +28 -0
  119. package/dist/domain/registry/report-turn.js.map +1 -0
  120. package/dist/domain/registry/request-crew.d.ts +6 -2
  121. package/dist/domain/registry/request-crew.js +14 -3
  122. package/dist/domain/registry/request-crew.js.map +1 -1
  123. package/dist/domain/registry/turn.d.ts +25 -0
  124. package/dist/domain/registry/turn.js +30 -0
  125. package/dist/domain/registry/turn.js.map +1 -0
  126. package/dist/domain/shared/delivery-way.d.ts +83 -0
  127. package/dist/domain/shared/delivery-way.js +89 -0
  128. package/dist/domain/shared/delivery-way.js.map +1 -0
  129. package/dist/domain/shared/errors.d.ts +1 -1
  130. package/dist/domain/shared/errors.js.map +1 -1
  131. package/dist/domain/shared/history.d.ts +116 -19
  132. package/dist/domain/shared/history.js +1 -1
  133. package/dist/domain/shared/history.js.map +1 -1
  134. package/dist/domain/shared/read-message.d.ts +7 -3
  135. package/dist/domain/shared/read-message.js +7 -4
  136. package/dist/domain/shared/read-message.js.map +1 -1
  137. package/dist/domain/shared/read-needs-attention.d.ts +5 -5
  138. package/dist/domain/shared/read-needs-attention.js +4 -4
  139. package/dist/domain/shared/read-needs-attention.js.map +1 -1
  140. package/dist/domain/shared/read-no-ship-can-take.d.ts +13 -0
  141. package/dist/domain/shared/read-no-ship-can-take.js +12 -0
  142. package/dist/domain/shared/read-no-ship-can-take.js.map +1 -0
  143. package/dist/domain/shared/read-overdue.d.ts +13 -0
  144. package/dist/domain/shared/read-overdue.js +12 -0
  145. package/dist/domain/shared/read-overdue.js.map +1 -0
  146. package/dist/domain/shared/read-ship-messages.d.ts +4 -1
  147. package/dist/domain/shared/read-ship-messages.js +6 -1
  148. package/dist/domain/shared/read-ship-messages.js.map +1 -1
  149. package/dist/domain/shared/read-ship-way.d.ts +41 -0
  150. package/dist/domain/shared/read-ship-way.js +39 -0
  151. package/dist/domain/shared/read-ship-way.js.map +1 -0
  152. package/dist/repeating-pass.d.ts +15 -0
  153. package/dist/repeating-pass.js +31 -0
  154. package/dist/repeating-pass.js.map +1 -0
  155. package/dist/wiring.d.ts +19 -0
  156. package/dist/wiring.js +25 -0
  157. package/dist/wiring.js.map +1 -1
  158. package/package.json +2 -2
  159. package/src/adapters/prisma/migrations/20261012190000_delivery_handed/migration.sql +11 -0
  160. package/src/adapters/prisma/migrations/20261012210000_push_receive/migration.sql +7 -0
  161. package/src/adapters/prisma/migrations/20261013090000_handled/migration.sql +6 -0
  162. package/src/adapters/prisma/migrations/20261013100000_turn/migration.sql +6 -0
  163. package/src/adapters/prisma/migrations/20261013120000_overdue/migration.sql +28 -0
  164. package/src/adapters/prisma/migrations/20261013140000_delivery_state_index/migration.sql +4 -0
  165. package/src/adapters/prisma/schema.prisma +69 -6
@@ -0,0 +1,12 @@
1
+ import { withPing } from './history.js';
2
+ /**
3
+ * Use case: the pending deliveries of the caller's fleet to a type no active
4
+ * ship can take (decision 0041), oldest sent first, for Needs attention. Each
5
+ * clears by itself once a ship of the type can take it; there is nothing to
6
+ * resend or dismiss. The caller's scope (fleet:read) is checked before this
7
+ * runs.
8
+ */
9
+ export function createReadNoShipCanTake(deps) {
10
+ return async (caller) => (await deps.history.noShipCanTake(caller.fleetId)).map((entry) => ({ ...entry, message: withPing(entry.message) }));
11
+ }
12
+ //# sourceMappingURL=read-no-ship-can-take.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-no-ship-can-take.js","sourceRoot":"","sources":["../../../src/domain/shared/read-no-ship-can-take.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAkD,MAAM,cAAc,CAAC;AAIxF;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAA8B;IACpE,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/I,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Caller } from './caller.js';
2
+ import { type ShipHistory, type ShownOverdueEntry } from './history.js';
3
+ export type ReadOverdue = (caller: Caller) => Promise<ShownOverdueEntry[]>;
4
+ /**
5
+ * Use case: the deliveries of the caller's fleet argo was told are overdue by
6
+ * the 10 and 60 minute clocks (decision 0040), oldest told first, for Needs
7
+ * attention. Each clears by itself once its delivery leaves the state it was
8
+ * told in or its lease ends; there is nothing to resend or dismiss. The
9
+ * caller's scope (fleet:read) is checked before this runs.
10
+ */
11
+ export declare function createReadOverdue(deps: {
12
+ history: ShipHistory;
13
+ }): ReadOverdue;
@@ -0,0 +1,12 @@
1
+ import { withPing } from './history.js';
2
+ /**
3
+ * Use case: the deliveries of the caller's fleet argo was told are overdue by
4
+ * the 10 and 60 minute clocks (decision 0040), oldest told first, for Needs
5
+ * attention. Each clears by itself once its delivery leaves the state it was
6
+ * told in or its lease ends; there is nothing to resend or dismiss. The
7
+ * caller's scope (fleet:read) is checked before this runs.
8
+ */
9
+ export function createReadOverdue(deps) {
10
+ return async (caller) => (await deps.history.overdue(caller.fleetId)).map((entry) => ({ ...entry, message: withPing(entry.message) }));
11
+ }
12
+ //# sourceMappingURL=read-overdue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-overdue.js","sourceRoot":"","sources":["../../../src/domain/shared/read-overdue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAA4C,MAAM,cAAc,CAAC;AAIlF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA8B;IAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACzI,CAAC"}
@@ -10,7 +10,10 @@ export declare const PREVIEW_LENGTH = 120;
10
10
  /** A message as the ship page lists it: its payload cut to a preview. */
11
11
  export type ListedMessage = Omit<HistoryMessage, 'payload' | 'delivery'> & {
12
12
  preview: string;
13
- delivery: Omit<HistoryMessage['delivery'], 'attempts'>;
13
+ delivery: Omit<HistoryMessage['delivery'], 'attempts' | 'handOverNumber'> & {
14
+ /** Handed by a plain receive, with no hand-over number: it reads handed (pulled). False in every other state. */
15
+ isPulled: boolean;
16
+ };
14
17
  };
15
18
  export type ReadShipMessages = (caller: Caller, input: {
16
19
  shipId: ShipId;
@@ -23,7 +23,12 @@ export function createReadShipMessages(deps) {
23
23
  return ok(messages.map(({ payload, delivery, ...message }) => ({
24
24
  ...message,
25
25
  preview: previewOf(payload),
26
- delivery: { id: delivery.id, state: delivery.state, claimedBy: delivery.claimedBy },
26
+ delivery: {
27
+ id: delivery.id,
28
+ state: delivery.state,
29
+ claimedBy: delivery.claimedBy,
30
+ isPulled: delivery.state === 'handed' && delivery.handOverNumber === null,
31
+ },
27
32
  })));
28
33
  };
29
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"read-ship-messages.js","sourceRoot":"","sources":["../../../src/domain/shared/read-ship-messages.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AAE9C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAalC,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA8B;IACnE,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,gBAAgB,EAAE,WAAW,MAAM,gBAAgB,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,EAAE,CACP,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,GAAG,OAAO;YACV,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC;YAC3B,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;SACpF,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"read-ship-messages.js","sourceRoot":"","sources":["../../../src/domain/shared/read-ship-messages.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AAE9C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAgBlC,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA8B;IACnE,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,gBAAgB,EAAE,WAAW,MAAM,gBAAgB,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,EAAE,CACP,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,GAAG,OAAO;YACV,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC;YAC3B,QAAQ,EAAE;gBACR,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,QAAQ,EAAE,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI;aAC1E;SACF,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { ComputerSide, DeliveryId, DeliveryState, MessageId, ShipId } from '@aeolus-fleet/common';
2
+ import type { Caller } from './caller.js';
3
+ import { type DeliveryWay, type WayLease } from './delivery-way.js';
4
+ import { type DomainError } from './errors.js';
5
+ import type { ShipHistory } from './history.js';
6
+ import { type Result } from './result.js';
7
+ /** The ship's side of the way (#756): which part serves it, its turn, and what waits for it. */
8
+ export interface ShipWay {
9
+ /** The open lease's computer side (none: a pull lease) and its turn; null while no session crews the ship. */
10
+ lease: {
11
+ by: ComputerSide | null;
12
+ turn: WayLease['turn'];
13
+ } | null;
14
+ /** How many deliveries wait for it. */
15
+ waiting: number;
16
+ /** The oldest one waiting, sent first, with its way; null when none waits. */
17
+ oldest: {
18
+ messageId: MessageId;
19
+ sentAt: Date;
20
+ contentType: string;
21
+ delivery: {
22
+ id: DeliveryId;
23
+ state: DeliveryState;
24
+ attempts: number;
25
+ way: DeliveryWay;
26
+ };
27
+ } | null;
28
+ }
29
+ export type ReadShipWay = (caller: Caller, input: {
30
+ shipId: ShipId;
31
+ }) => Promise<Result<ShipWay, DomainError<'SHIP_NOT_FOUND'>>>;
32
+ /**
33
+ * Use case: one ship's side of the way: the trierarch or plugin watcher that
34
+ * receives and hands over for its pushed lease, or none on a pull lease, the
35
+ * turn its hooks reported, and its oldest delivery waiting, with its way, as
36
+ * the clocks count it. The caller's scope (fleet:read) is checked before this
37
+ * runs.
38
+ */
39
+ export declare function createReadShipWay(deps: {
40
+ history: ShipHistory;
41
+ }): ReadShipWay;
@@ -0,0 +1,39 @@
1
+ import { computerSideOf, deliveryWayOf } from './delivery-way.js';
2
+ import { refuse } from './errors.js';
3
+ import { ok } from './result.js';
4
+ /**
5
+ * Use case: one ship's side of the way: the trierarch or plugin watcher that
6
+ * receives and hands over for its pushed lease, or none on a pull lease, the
7
+ * turn its hooks reported, and its oldest delivery waiting, with its way, as
8
+ * the clocks count it. The caller's scope (fleet:read) is checked before this
9
+ * runs.
10
+ */
11
+ export function createReadShipWay(deps) {
12
+ return async (caller, { shipId }) => {
13
+ const found = await deps.history.shipWay(caller.fleetId, shipId);
14
+ if (!found) {
15
+ return refuse('SHIP_NOT_FOUND', `No ship ${shipId} in this fleet`);
16
+ }
17
+ const { lease, waiting } = found;
18
+ const [oldestId] = waiting;
19
+ const oldest = oldestId === undefined ? undefined : await deps.history.message(caller.fleetId, oldestId);
20
+ return ok({
21
+ lease: lease && { by: computerSideOf(lease), turn: lease.turn },
22
+ waiting: waiting.length,
23
+ oldest: oldest
24
+ ? {
25
+ messageId: oldest.id,
26
+ sentAt: oldest.sentAt,
27
+ contentType: oldest.contentType,
28
+ delivery: {
29
+ id: oldest.delivery.id,
30
+ state: oldest.delivery.state,
31
+ attempts: oldest.delivery.attempts,
32
+ way: deliveryWayOf({ state: oldest.delivery.state, history: oldest.history, lease: oldest.lease, overdue: oldest.overdue, crew: oldest.crew }),
33
+ },
34
+ }
35
+ : null,
36
+ });
37
+ };
38
+ }
39
+ //# sourceMappingURL=read-ship-way.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-ship-way.js","sourceRoot":"","sources":["../../../src/domain/shared/read-ship-way.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAmC,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AAmB9C;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA8B;IAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,gBAAgB,EAAE,WAAW,MAAM,gBAAgB,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC3B,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzG,OAAO,EAAE,CAAC;YACR,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;YAC/D,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,MAAM,EAAE,MAAM;gBACZ,CAAC,CAAC;oBACE,SAAS,EAAE,MAAM,CAAC,EAAE;oBACpB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,QAAQ,EAAE;wBACR,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;wBACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;wBAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;wBAClC,GAAG,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;qBAC/I;iBACF;gBACH,CAAC,CAAC,IAAI;SACT,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -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.1",
3
+ "version": "0.25.1",
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.1",
54
+ "@aeolus-fleet/common": "0.25.1",
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');