@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
@@ -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.
@@ -196,8 +212,9 @@ enum CrewStatus {
196
212
  }
197
213
 
198
214
  /// A standing request that a ship be kept crewed (decision 0029): at most one per
199
- /// ship, so the ship's id is its key. Its settings are stored without meaning, at
200
- /// most 16 KB; each request replaces them and moves their version by one.
215
+ /// ship, so the ship's id is its key. Its settings are crew settings of at most
216
+ /// 16 KB, checked but never acted on; each request replaces them and moves their
217
+ /// version by one.
201
218
  model CrewRequest {
202
219
  shipId String @id @map("ship_id")
203
220
  fleetId String @map("fleet_id")
@@ -461,8 +478,11 @@ model Message {
461
478
 
462
479
  enum DeliveryState {
463
480
  pending
464
- delivered
481
+ received
482
+ handed
465
483
  acknowledged
484
+ handled
485
+ notHandled
466
486
  undeliverable
467
487
  dismissed
468
488
  abandoned
@@ -471,9 +491,11 @@ enum DeliveryState {
471
491
  }
472
492
 
473
493
  /// 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.
494
+ /// A receive hands it to the ship and the lease of the crew receiving, or a push
495
+ /// receive takes it for them: set while it is received or handed, kept once
496
+ /// acknowledged, none while it is pending. Attempts count the hand-overs; the fifth
497
+ /// makes it undeliverable. The hand-over number is the last one the crew reported
498
+ /// with handed (decision 0040), none while pending.
477
499
  /// The read date is set when the operator opens a message to argo.
478
500
  /// For a type under network rules, the ships of the type its sender may reach,
479
501
  /// fixed at send time: only they claim it (decision 0034). Empty: any ship of
@@ -488,6 +510,9 @@ model Delivery {
488
510
  claimedByShipId String? @map("claimed_by_ship_id")
489
511
  claimedByLeaseId String? @map("claimed_by_lease_id")
490
512
  attempts Int @default(0)
513
+ handOverNumber Int? @map("hand_over_number")
514
+ /// When its crew handed it once more after the turn that took it died; only once (decision 0040).
515
+ handedOnceMoreAt DateTime? @map("handed_once_more_at") @db.Timestamptz(3)
491
516
  reachableShipIds String[] @default([]) @map("reachable_ship_ids")
492
517
  readAt DateTime? @map("read_at") @db.Timestamptz(3)
493
518
  createdAt DateTime @map("created_at") @db.Timestamptz(3)
@@ -498,6 +523,7 @@ model Delivery {
498
523
  claimedByShip Ship? @relation("DeliveryClaimedByShip", fields: [fleetId, claimedByShipId], references: [fleetId, id], onDelete: Restrict)
499
524
  claimedByLease Lease? @relation(fields: [fleetId, claimedByLeaseId], references: [fleetId, id], onDelete: Restrict)
500
525
  events Event[]
526
+ overdue OverdueDelivery[]
501
527
 
502
528
  @@unique([fleetId, id])
503
529
  /// One row per recipient.
@@ -505,6 +531,8 @@ model Delivery {
505
531
  @@unique([messageId, recipientType])
506
532
  @@index([fleetId, recipientShipId, state])
507
533
  @@index([fleetId, recipientType, state])
534
+ /// The installation's health figures scan a fleet's open deliveries by state (decision 0041). Partial, so a foreign key check never picks it.
535
+ @@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
536
  /// A crew's own deliveries in flight, which its next receive returns first.
509
537
  @@index([fleetId, claimedByLeaseId, state])
510
538
  /// Every foreign key has an index leading with its columns, so deleting a
@@ -514,6 +542,41 @@ model Delivery {
514
542
  @@map("deliveries")
515
543
  }
516
544
 
545
+ /// Which of the 10 and 60 minute clocks ran out (decision 0040).
546
+ enum OverdueClock {
547
+ notConfirmed
548
+ idle
549
+ busy
550
+
551
+ @@map("overdue_clock")
552
+ }
553
+
554
+ /// A delivery argo was told is overdue on a pushed lease: its clock ran out
555
+ /// while it waited in the state kept here. Once per lease and delivery, so a
556
+ /// pass after a restart, or a second pass at once, tells nothing again.
557
+ model OverdueDelivery {
558
+ fleetId String @map("fleet_id")
559
+ leaseId String @map("lease_id")
560
+ deliveryId String @map("delivery_id")
561
+ shipId String @map("ship_id")
562
+ state DeliveryState
563
+ clock OverdueClock
564
+ minutes Int
565
+ toldAt DateTime @map("told_at") @db.Timestamptz(3)
566
+
567
+ fleet Fleet @relation(fields: [fleetId], references: [id])
568
+ lease Lease @relation(fields: [fleetId, leaseId], references: [fleetId, id], onDelete: Restrict)
569
+ delivery Delivery @relation(fields: [fleetId, deliveryId], references: [fleetId, id], onDelete: Restrict)
570
+ ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id], onDelete: Restrict)
571
+
572
+ @@id([fleetId, leaseId, deliveryId])
573
+ /// Every foreign key has an index leading with its columns, so deleting a
574
+ /// referenced row checks it with an index, not a scan (#331).
575
+ @@index([fleetId, deliveryId])
576
+ @@index([fleetId, shipId])
577
+ @@map("overdue_deliveries")
578
+ }
579
+
517
580
  /// Append-only log of every state change: never updated or deleted. Ids start with evt_.
518
581
  /// Records its type and time, who caused it (a ship, or the system when
519
582
  /// actor_ship_id is null), the ship, message and delivery it concerns, and a few