@shivaedev/work-fleet 0.1.1 → 0.2.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 (311) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +2 -2
  3. package/dist/admit.d.ts +54 -0
  4. package/dist/admit.d.ts.map +1 -1
  5. package/dist/engine/abandonStalled.d.ts +9807 -0
  6. package/dist/engine/abandonStalled.d.ts.map +1 -0
  7. package/dist/engine/abandonStalled.js +55 -0
  8. package/dist/engine/abandonStalled.js.map +1 -0
  9. package/dist/engine/applyResolution.d.ts +108 -0
  10. package/dist/engine/applyResolution.d.ts.map +1 -1
  11. package/dist/engine/applyResolution.js +3 -0
  12. package/dist/engine/applyResolution.js.map +1 -1
  13. package/dist/engine/approveBrief.d.ts +164 -2
  14. package/dist/engine/approveBrief.d.ts.map +1 -1
  15. package/dist/engine/approveBrief.js +7 -5
  16. package/dist/engine/approveBrief.js.map +1 -1
  17. package/dist/engine/authorizeResolution.d.ts +942 -24
  18. package/dist/engine/authorizeResolution.d.ts.map +1 -1
  19. package/dist/engine/boardBrief.d.ts +162 -0
  20. package/dist/engine/boardBrief.d.ts.map +1 -1
  21. package/dist/engine/capacityRetry.d.ts +2883 -75
  22. package/dist/engine/capacityRetry.d.ts.map +1 -1
  23. package/dist/engine/closeDecisions.d.ts +108 -0
  24. package/dist/engine/closeDecisions.d.ts.map +1 -1
  25. package/dist/engine/completeBoardWork.d.ts +108 -0
  26. package/dist/engine/completeBoardWork.d.ts.map +1 -1
  27. package/dist/engine/completeReport.d.ts +108 -0
  28. package/dist/engine/completeReport.d.ts.map +1 -1
  29. package/dist/engine/continueCommand.d.ts +54 -0
  30. package/dist/engine/continueCommand.d.ts.map +1 -1
  31. package/dist/engine/continueWorker.d.ts +108 -0
  32. package/dist/engine/continueWorker.d.ts.map +1 -1
  33. package/dist/engine/deliverPendingAnswers.d.ts +1104 -24
  34. package/dist/engine/deliverPendingAnswers.d.ts.map +1 -1
  35. package/dist/engine/dispatchCommand.d.ts +54 -0
  36. package/dist/engine/dispatchCommand.d.ts.map +1 -1
  37. package/dist/engine/ensureDecisionOwner.d.ts +108 -0
  38. package/dist/engine/ensureDecisionOwner.d.ts.map +1 -1
  39. package/dist/engine/ensurePublication.d.ts +108 -0
  40. package/dist/engine/ensurePublication.d.ts.map +1 -1
  41. package/dist/engine/inspectRenewal.d.ts +108 -0
  42. package/dist/engine/inspectRenewal.d.ts.map +1 -1
  43. package/dist/engine/launchInput.d.ts +54 -0
  44. package/dist/engine/launchInput.d.ts.map +1 -1
  45. package/dist/engine/launchReceipt.d.ts +54 -0
  46. package/dist/engine/launchReceipt.d.ts.map +1 -1
  47. package/dist/engine/makeAdopt.d.ts +108 -0
  48. package/dist/engine/makeAdopt.d.ts.map +1 -1
  49. package/dist/engine/makeAdvance.d.ts +54 -0
  50. package/dist/engine/makeAdvance.d.ts.map +1 -1
  51. package/dist/engine/makeDeliver.d.ts +108 -0
  52. package/dist/engine/makeDeliver.d.ts.map +1 -1
  53. package/dist/engine/makeHuman.d.ts +108 -0
  54. package/dist/engine/makeHuman.d.ts.map +1 -1
  55. package/dist/engine/makeLaunch.d.ts +108 -0
  56. package/dist/engine/makeLaunch.d.ts.map +1 -1
  57. package/dist/engine/makeObserve.d.ts +108 -0
  58. package/dist/engine/makeObserve.d.ts.map +1 -1
  59. package/dist/engine/makeReview.d.ts +108 -0
  60. package/dist/engine/makeReview.d.ts.map +1 -1
  61. package/dist/engine/makeState.d.ts +888 -24
  62. package/dist/engine/makeState.d.ts.map +1 -1
  63. package/dist/engine/makeValidate.d.ts +108 -0
  64. package/dist/engine/makeValidate.d.ts.map +1 -1
  65. package/dist/engine/mergeReadiness.d.ts +1212 -24
  66. package/dist/engine/mergeReadiness.d.ts.map +1 -1
  67. package/dist/engine/observeDeliveryFailure.d.ts +996 -24
  68. package/dist/engine/observeDeliveryFailure.d.ts.map +1 -1
  69. package/dist/engine/observeRenewal.d.ts +189 -0
  70. package/dist/engine/observeRenewal.d.ts.map +1 -1
  71. package/dist/engine/observedAttempt.d.ts.map +1 -1
  72. package/dist/engine/observedAttempt.js +3 -0
  73. package/dist/engine/observedAttempt.js.map +1 -1
  74. package/dist/engine/obtainReview.d.ts +54 -0
  75. package/dist/engine/obtainReview.d.ts.map +1 -1
  76. package/dist/engine/operationRecord.d.ts +726 -24
  77. package/dist/engine/operationRecord.d.ts.map +1 -1
  78. package/dist/engine/persistTerminalReceipts.d.ts +108 -0
  79. package/dist/engine/persistTerminalReceipts.d.ts.map +1 -1
  80. package/dist/engine/prepareCommand.d.ts +54 -0
  81. package/dist/engine/prepareCommand.d.ts.map +1 -1
  82. package/dist/engine/prepareCommand.js +19 -0
  83. package/dist/engine/prepareCommand.js.map +1 -1
  84. package/dist/engine/queueAnswerCommand.d.ts +54 -0
  85. package/dist/engine/queueAnswerCommand.d.ts.map +1 -1
  86. package/dist/engine/readOrContinueReview.d.ts +54 -0
  87. package/dist/engine/readOrContinueReview.d.ts.map +1 -1
  88. package/dist/engine/readRetry.d.ts +1995 -51
  89. package/dist/engine/readRetry.d.ts.map +1 -1
  90. package/dist/engine/reassignCommand.d.ts +54 -0
  91. package/dist/engine/reassignCommand.d.ts.map +1 -1
  92. package/dist/engine/reconcileAttempt.d.ts +81 -0
  93. package/dist/engine/reconcileAttempt.d.ts.map +1 -1
  94. package/dist/engine/reconcileCommand.d.ts +54 -0
  95. package/dist/engine/reconcileCommand.d.ts.map +1 -1
  96. package/dist/engine/recoverStall.d.ts +1023 -24
  97. package/dist/engine/recoverStall.d.ts.map +1 -1
  98. package/dist/engine/recoverStall.js +5 -1
  99. package/dist/engine/recoverStall.js.map +1 -1
  100. package/dist/engine/recoverUnobservable.d.ts +1023 -24
  101. package/dist/engine/recoverUnobservable.d.ts.map +1 -1
  102. package/dist/engine/refreshBrief.d.ts +1997 -53
  103. package/dist/engine/refreshBrief.d.ts.map +1 -1
  104. package/dist/engine/refreshReviewResult.d.ts +108 -0
  105. package/dist/engine/refreshReviewResult.d.ts.map +1 -1
  106. package/dist/engine/releaseClosedPreparation.d.ts +996 -24
  107. package/dist/engine/releaseClosedPreparation.d.ts.map +1 -1
  108. package/dist/engine/releaseExecution.d.ts +996 -24
  109. package/dist/engine/releaseExecution.d.ts.map +1 -1
  110. package/dist/engine/releaseFinishedWork.d.ts +54 -0
  111. package/dist/engine/releaseFinishedWork.d.ts.map +1 -1
  112. package/dist/engine/repository.d.ts +672 -24
  113. package/dist/engine/repository.d.ts.map +1 -1
  114. package/dist/engine/repository.js +1 -0
  115. package/dist/engine/repository.js.map +1 -1
  116. package/dist/engine/requestConflictRepair.d.ts +996 -24
  117. package/dist/engine/requestConflictRepair.d.ts.map +1 -1
  118. package/dist/engine/requestRework.d.ts +108 -0
  119. package/dist/engine/requestRework.d.ts.map +1 -1
  120. package/dist/engine/resolveCommand.d.ts +54 -0
  121. package/dist/engine/resolveCommand.d.ts.map +1 -1
  122. package/dist/engine/resolveExecution.d.ts +996 -24
  123. package/dist/engine/resolveExecution.d.ts.map +1 -1
  124. package/dist/engine/resolveExecution.js +3 -1
  125. package/dist/engine/resolveExecution.js.map +1 -1
  126. package/dist/engine/resumeAttempt.d.ts +1023 -24
  127. package/dist/engine/resumeAttempt.d.ts.map +1 -1
  128. package/dist/engine/retireUnacknowledged.d.ts +108 -0
  129. package/dist/engine/retireUnacknowledged.d.ts.map +1 -1
  130. package/dist/engine/retryTerminal.d.ts +942 -24
  131. package/dist/engine/retryTerminal.d.ts.map +1 -1
  132. package/dist/engine/scheduler.d.ts +108 -0
  133. package/dist/engine/scheduler.d.ts.map +1 -1
  134. package/dist/engine/sessionCleanup.d.ts +108 -0
  135. package/dist/engine/sessionCleanup.d.ts.map +1 -1
  136. package/dist/engine/sessionCleanup.js +3 -1
  137. package/dist/engine/sessionCleanup.js.map +1 -1
  138. package/dist/engine/sessionStatus.d.ts.map +1 -1
  139. package/dist/engine/sessionStatus.js +3 -0
  140. package/dist/engine/sessionStatus.js.map +1 -1
  141. package/dist/engine/settleMergedDelivery.d.ts +996 -24
  142. package/dist/engine/settleMergedDelivery.d.ts.map +1 -1
  143. package/dist/engine/steerBrief.d.ts +10340 -0
  144. package/dist/engine/steerBrief.d.ts.map +1 -0
  145. package/dist/engine/steerBrief.js +42 -0
  146. package/dist/engine/steerBrief.js.map +1 -0
  147. package/dist/engine/submissionFailure.d.ts +888 -24
  148. package/dist/engine/submissionFailure.d.ts.map +1 -1
  149. package/dist/engine/submitLaunch.d.ts +942 -24
  150. package/dist/engine/submitLaunch.d.ts.map +1 -1
  151. package/dist/engine/views.js +1 -0
  152. package/dist/engine/views.js.map +1 -1
  153. package/dist/engine/workerReport.d.ts +162 -0
  154. package/dist/engine/workerReport.d.ts.map +1 -1
  155. package/dist/fleet.d.ts +540 -0
  156. package/dist/fleet.d.ts.map +1 -1
  157. package/dist/host/admission.d.ts +108 -0
  158. package/dist/host/admission.d.ts.map +1 -1
  159. package/dist/host/admission.js +2 -1
  160. package/dist/host/admission.js.map +1 -1
  161. package/dist/host/answerWork.d.ts +54 -0
  162. package/dist/host/answerWork.d.ts.map +1 -1
  163. package/dist/host/commands.d.ts +108 -0
  164. package/dist/host/commands.d.ts.map +1 -1
  165. package/dist/host/daemon.d.ts +1465 -865
  166. package/dist/host/daemon.d.ts.map +1 -1
  167. package/dist/host/daemonClient.d.ts +691 -91
  168. package/dist/host/daemonClient.d.ts.map +1 -1
  169. package/dist/host/daemonContract.d.ts +984 -0
  170. package/dist/host/daemonContract.d.ts.map +1 -1
  171. package/dist/host/readWaitStates.d.ts.map +1 -1
  172. package/dist/host/readWaitStates.js +13 -4
  173. package/dist/host/readWaitStates.js.map +1 -1
  174. package/dist/host/reassignWork.d.ts +54 -0
  175. package/dist/host/reassignWork.d.ts.map +1 -1
  176. package/dist/host/recordPayloads.d.ts.map +1 -1
  177. package/dist/host/recordPayloads.js +8 -3
  178. package/dist/host/recordPayloads.js.map +1 -1
  179. package/dist/host/releaseWork.d.ts +108 -0
  180. package/dist/host/releaseWork.d.ts.map +1 -1
  181. package/dist/host/status.d.ts +30 -0
  182. package/dist/host/status.d.ts.map +1 -1
  183. package/dist/model.d.ts +144 -0
  184. package/dist/model.d.ts.map +1 -1
  185. package/dist/model.js +14 -1
  186. package/dist/model.js.map +1 -1
  187. package/dist/operations.d.ts +1224 -0
  188. package/dist/operations.d.ts.map +1 -1
  189. package/dist/packageInfo.d.ts +1 -1
  190. package/dist/packageInfo.js +1 -1
  191. package/dist/prompt/briefEdit.d.ts +2 -0
  192. package/dist/prompt/briefEdit.d.ts.map +1 -0
  193. package/dist/prompt/briefEdit.js +41 -0
  194. package/dist/prompt/briefEdit.js.map +1 -0
  195. package/dist/prompt/worker.d.ts.map +1 -1
  196. package/dist/prompt/worker.js +11 -2
  197. package/dist/prompt/worker.js.map +1 -1
  198. package/dist/qualifyDependencies.d.ts +54 -0
  199. package/dist/qualifyDependencies.d.ts.map +1 -1
  200. package/dist/scheduling/areas.d.ts +162 -0
  201. package/dist/scheduling/areas.d.ts.map +1 -1
  202. package/dist/storage/attemptV12.d.ts +108 -0
  203. package/dist/storage/attemptV12.d.ts.map +1 -0
  204. package/dist/storage/attemptV12.js +94 -0
  205. package/dist/storage/attemptV12.js.map +1 -0
  206. package/dist/storage/createCollections.d.ts +5 -0
  207. package/dist/storage/createCollections.d.ts.map +1 -0
  208. package/dist/storage/createCollections.js +21 -0
  209. package/dist/storage/createCollections.js.map +1 -0
  210. package/dist/storage/cycleV12.d.ts +287 -0
  211. package/dist/storage/cycleV12.d.ts.map +1 -0
  212. package/dist/storage/cycleV12.js +124 -0
  213. package/dist/storage/cycleV12.js.map +1 -0
  214. package/dist/storage/fleetMigrations.d.ts +0 -39
  215. package/dist/storage/fleetMigrations.d.ts.map +1 -1
  216. package/dist/storage/fleetMigrations.js +3 -9
  217. package/dist/storage/fleetMigrations.js.map +1 -1
  218. package/dist/storage/legacyColumns.d.ts +40 -0
  219. package/dist/storage/legacyColumns.d.ts.map +1 -0
  220. package/dist/storage/legacyColumns.js +12 -0
  221. package/dist/storage/legacyColumns.js.map +1 -0
  222. package/dist/storage/makeForeignReservations.d.ts +15 -0
  223. package/dist/storage/makeForeignReservations.d.ts.map +1 -0
  224. package/dist/storage/makeForeignReservations.js +34 -0
  225. package/dist/storage/makeForeignReservations.js.map +1 -0
  226. package/dist/storage/makePostgresFleetStore.d.ts +36 -16
  227. package/dist/storage/makePostgresFleetStore.d.ts.map +1 -1
  228. package/dist/storage/makePostgresFleetStore.js +24 -32
  229. package/dist/storage/makePostgresFleetStore.js.map +1 -1
  230. package/dist/storage/model.d.ts +53 -59
  231. package/dist/storage/model.d.ts.map +1 -1
  232. package/dist/storage/model.js +18 -60
  233. package/dist/storage/model.js.map +1 -1
  234. package/dist/storage/operationEntries.d.ts +6 -5
  235. package/dist/storage/operationEntries.d.ts.map +1 -1
  236. package/dist/storage/operationEntries.js +12 -15
  237. package/dist/storage/operationEntries.js.map +1 -1
  238. package/dist/storage/preparationV12.d.ts +44 -0
  239. package/dist/storage/preparationV12.d.ts.map +1 -0
  240. package/dist/storage/preparationV12.js +30 -0
  241. package/dist/storage/preparationV12.js.map +1 -0
  242. package/dist/storage/readRecords.d.ts +4 -0
  243. package/dist/storage/readRecords.d.ts.map +1 -0
  244. package/dist/storage/readRecords.js +10 -0
  245. package/dist/storage/readRecords.js.map +1 -0
  246. package/dist/storage/recordChildren.d.ts +11 -0
  247. package/dist/storage/recordChildren.d.ts.map +1 -0
  248. package/dist/storage/recordChildren.js +105 -0
  249. package/dist/storage/recordChildren.js.map +1 -0
  250. package/dist/storage/recordShape.d.ts +23 -0
  251. package/dist/storage/recordShape.d.ts.map +1 -0
  252. package/dist/storage/recordShape.js +112 -0
  253. package/dist/storage/recordShape.js.map +1 -0
  254. package/dist/storage/recordValue.d.ts +9 -6
  255. package/dist/storage/recordValue.d.ts.map +1 -1
  256. package/dist/storage/recordValue.js +42 -32
  257. package/dist/storage/recordValue.js.map +1 -1
  258. package/dist/storage/shapeV12.d.ts +794 -0
  259. package/dist/storage/shapeV12.d.ts.map +1 -0
  260. package/dist/storage/shapeV12.js +10 -0
  261. package/dist/storage/shapeV12.js.map +1 -0
  262. package/dist/storage/textRecordValue.d.ts +3 -0
  263. package/dist/storage/textRecordValue.d.ts.map +1 -0
  264. package/dist/storage/textRecordValue.js +13 -0
  265. package/dist/storage/textRecordValue.js.map +1 -0
  266. package/dist/storage/typedDecisionsV12.d.ts +103 -0
  267. package/dist/storage/typedDecisionsV12.d.ts.map +1 -0
  268. package/dist/storage/typedDecisionsV12.js +97 -0
  269. package/dist/storage/typedDecisionsV12.js.map +1 -0
  270. package/dist/storage/typedTables.d.ts +4 -0
  271. package/dist/storage/typedTables.d.ts.map +1 -0
  272. package/dist/storage/typedTables.js +39 -0
  273. package/dist/storage/typedTables.js.map +1 -0
  274. package/package.json +8 -8
  275. package/src/engine/abandonStalled.ts +63 -0
  276. package/src/engine/applyResolution.ts +3 -0
  277. package/src/engine/approveBrief.ts +34 -32
  278. package/src/engine/observedAttempt.ts +3 -0
  279. package/src/engine/prepareCommand.ts +21 -0
  280. package/src/engine/recoverStall.ts +6 -2
  281. package/src/engine/repository.ts +1 -0
  282. package/src/engine/resolveExecution.ts +3 -1
  283. package/src/engine/sessionCleanup.ts +3 -1
  284. package/src/engine/sessionStatus.ts +5 -0
  285. package/src/engine/steerBrief.ts +54 -0
  286. package/src/engine/views.ts +1 -0
  287. package/src/host/admission.ts +2 -1
  288. package/src/host/readWaitStates.ts +12 -11
  289. package/src/host/recordPayloads.ts +11 -3
  290. package/src/model.ts +20 -1
  291. package/src/packageInfo.ts +1 -1
  292. package/src/prompt/briefEdit.ts +44 -0
  293. package/src/prompt/worker.ts +11 -2
  294. package/src/storage/attemptV12.ts +95 -0
  295. package/src/storage/createCollections.ts +21 -0
  296. package/src/storage/cycleV12.ts +125 -0
  297. package/src/storage/fleetMigrations.ts +3 -10
  298. package/src/storage/legacyColumns.ts +12 -0
  299. package/src/storage/makeForeignReservations.ts +41 -0
  300. package/src/storage/makePostgresFleetStore.ts +30 -43
  301. package/src/storage/model.ts +19 -69
  302. package/src/storage/operationEntries.ts +12 -22
  303. package/src/storage/preparationV12.ts +31 -0
  304. package/src/storage/readRecords.ts +12 -0
  305. package/src/storage/recordChildren.ts +131 -0
  306. package/src/storage/recordShape.ts +137 -0
  307. package/src/storage/recordValue.ts +47 -34
  308. package/src/storage/shapeV12.ts +11 -0
  309. package/src/storage/textRecordValue.ts +16 -0
  310. package/src/storage/typedDecisionsV12.ts +100 -0
  311. package/src/storage/typedTables.ts +39 -0
@@ -0,0 +1,40 @@
1
+ export declare const legacyColumns: {
2
+ readonly admissionReady: "boolean";
3
+ readonly areas: "json";
4
+ readonly attempts: "json";
5
+ readonly attentionOwner: "string";
6
+ readonly blocker: "string";
7
+ readonly boardContext: "string";
8
+ readonly boardRevision: "string";
9
+ readonly boardSourcePath: "string";
10
+ readonly checks: "json";
11
+ readonly conflictRepairs: "json";
12
+ readonly cwd: "string";
13
+ readonly decision: "json";
14
+ readonly decisionAcknowledged: "boolean";
15
+ readonly decisionPublished: "boolean";
16
+ readonly deliverable: "string";
17
+ readonly history: "json";
18
+ readonly launch: "json";
19
+ readonly launchRetry: "json";
20
+ readonly mergeAreasReleased: "boolean";
21
+ readonly mergeReadyAt: "number";
22
+ readonly mergeReadyHead: "string";
23
+ readonly outcome: "json";
24
+ readonly preparation: "json";
25
+ readonly prompt: "string";
26
+ readonly report: "json";
27
+ readonly responses: "json";
28
+ readonly result: "json";
29
+ readonly resultObservations: "json";
30
+ readonly review: "json";
31
+ readonly stage: "string";
32
+ readonly supersededDecisions: "json";
33
+ readonly completedAt: "number";
34
+ readonly integrationRetry: "json";
35
+ readonly pendingAnswers: "json";
36
+ readonly releaseReason: "string";
37
+ readonly stageEnteredAt: "number";
38
+ readonly updatedAt: "number";
39
+ };
40
+ //# sourceMappingURL=legacyColumns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyColumns.d.ts","sourceRoot":"","sources":["../../src/storage/legacyColumns.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAEZ,QAAQ;+BACH,MAAM;6BACR,MAAM;4BACP,QAAQ;6BACP,QAAQ;wBACb,QAAQ;CACV,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { modelTableColumns } from "#storage/modelTables.ts";
2
+ // PostgreSQL text cannot distinguish scalar strings from serialized JSON.
3
+ export const legacyColumns = {
4
+ ...modelTableColumns,
5
+ completedAt: "number",
6
+ integrationRetry: "json",
7
+ pendingAnswers: "json",
8
+ releaseReason: "string",
9
+ stageEnteredAt: "number",
10
+ updatedAt: "number",
11
+ };
12
+ //# sourceMappingURL=legacyColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyColumns.js","sourceRoot":"","sources":["../../src/storage/legacyColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,GAAG,iBAAiB;IACpB,WAAW,EAAE,QAAQ;IACrB,gBAAgB,EAAE,MAAM;IACxB,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,QAAQ;IACxB,SAAS,EAAE,QAAQ;CACV,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Effect } from "effect";
2
+ import { SqlClient } from "effect/sql";
3
+ export declare const makeForeignReservations: (namespace: string) => Effect.Effect<{
4
+ foreignReservations: () => Effect.Effect<Pick<{
5
+ readonly backlog: boolean;
6
+ readonly executing: boolean;
7
+ readonly owner: string;
8
+ }, "backlog" | "executing" | "owner">[], import("effect/Schema").SchemaError | import("effect/sql/SqlError").SqlError, never>;
9
+ releaseForeign: (owner: string) => Effect.Effect<void, import("effect/Schema").SchemaError | import("effect/sql/SqlError").SqlError, never>;
10
+ reserveForeign: (owner: string, occupancy?: {
11
+ readonly executing: boolean;
12
+ readonly backlog: boolean;
13
+ }) => Effect.Effect<void, import("effect/Schema").SchemaError | import("effect/sql/SqlError").SqlError, never>;
14
+ }, never, SqlClient.SqlClient>;
15
+ //# sourceMappingURL=makeForeignReservations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeForeignReservations.d.ts","sourceRoot":"","sources":["../../src/storage/makeForeignReservations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMvC,eAAO,MAAM,uBAAuB;;;;;;4BAWV,MAAM;4BAQN,MAAM,cAAa;QAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE;8BAcrG,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { Effect } from "effect";
2
+ import { SqlClient } from "effect/sql";
3
+ import { makeRepository } from "@shivaedev/effect-sql/repository.ts";
4
+ import { fleetRecords } from "#fleetRecords.ts";
5
+ import { makeFleetTransaction } from "#storage/makeFleetTransaction.ts";
6
+ import { ForeignReservationRow } from "#storage/model.ts";
7
+ export const makeForeignReservations = Effect.fn("FleetStore.makeForeignReservations")(function* (namespace) {
8
+ const sql = yield* SqlClient.SqlClient;
9
+ const commit = yield* makeFleetTransaction;
10
+ const reservations = yield* makeRepository(ForeignReservationRow, {
11
+ idColumn: "owner",
12
+ spanPrefix: "FleetForeign",
13
+ tableName: `${namespace}_foreign_reservations`,
14
+ });
15
+ const lock = sql `select pg_advisory_xact_lock(hashtextextended(${`work_fleet_admission:${namespace}`}, 0))`;
16
+ return {
17
+ foreignReservations: () => reservations.findMany({ orderBy: { direction: "asc", field: "owner" } }),
18
+ releaseForeign: (owner) => commit([fleetRecords.list], Effect.gen(function* () {
19
+ yield* lock;
20
+ yield* reservations.delete(owner);
21
+ })),
22
+ reserveForeign: (owner, occupancy = { backlog: true, executing: true }) => commit([fleetRecords.list], Effect.gen(function* () {
23
+ yield* lock;
24
+ const existing = yield* reservations.findMany({ where: { owner } });
25
+ if (existing.length === 0) {
26
+ yield* reservations.insertVoid({ owner, ...occupancy });
27
+ }
28
+ else {
29
+ yield* reservations.updateVoid({ owner, ...occupancy });
30
+ }
31
+ })),
32
+ };
33
+ });
34
+ //# sourceMappingURL=makeForeignReservations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeForeignReservations.js","sourceRoot":"","sources":["../../src/storage/makeForeignReservations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAAC,QAAQ,CAAC,EAAE,SAAiB;IAClH,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAAC;IAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,qBAAqB,EAAE;QACjE,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,cAAc;QAC1B,SAAS,EAAE,GAAG,SAAS,uBAAuB;KAC9C,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,GAAG,CAAA,iDAAiD,wBAAwB,SAAS,EAAE,OAAO,CAAC;IAC5G,OAAO;QACN,mBAAmB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;QACnG,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CACjC,MAAM,CACL,CAAC,YAAY,CAAC,IAAI,CAAC,EACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnB,KAAK,CAAC,CAAC,IAAI,CAAC;YACZ,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CACF;QACF,cAAc,EAAE,CAAC,KAAa,EAAE,SAAS,GAA+D,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAC7I,MAAM,CACL,CAAC,YAAY,CAAC,IAAI,CAAC,EACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnB,KAAK,CAAC,CAAC,IAAI,CAAC;YACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACzD,CAAC;QACF,CAAC,CAAC,CACF;KACF,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -10,37 +10,57 @@ export declare const makePostgresFleetStore: <TSchema extends Schema.Top & {
10
10
  readonly DecodingServices: never;
11
11
  readonly EncodingServices: never;
12
12
  }>(schema: TSchema, options: FleetStoreOptions<TSchema["Type"]>) => Effect.Effect<{
13
- compareAndSet: (workId: string, expectedVersion: number, record: TSchema["Type"], limits?: AdmissionLimits) => Effect.Effect<{
14
- value: TSchema["Type"];
15
- version: number;
16
- }, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, TSchema["DecodingServices"] | TSchema["EncodingServices"]>;
17
13
  foreignReservations: () => Effect.Effect<Pick<{
18
14
  readonly backlog: boolean;
19
15
  readonly executing: boolean;
20
16
  readonly owner: string;
21
17
  }, "backlog" | "executing" | "owner">[], Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
18
+ releaseForeign: (owner: string) => Effect.Effect<void, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
19
+ reserveForeign: (owner: string, occupancy?: {
20
+ readonly executing: boolean;
21
+ readonly backlog: boolean;
22
+ }) => Effect.Effect<void, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
23
+ compareAndSet: (workId: string, expectedVersion: number, record: TSchema["Type"], limits?: AdmissionLimits) => Effect.Effect<{
24
+ value: TSchema["Type"];
25
+ version: number;
26
+ }, [Effect.Effect<{
27
+ readonly [x: string]: unknown;
28
+ }, Schema.SchemaError, never> | Effect.Effect<{
29
+ value: TSchema["Type"];
30
+ version: number;
31
+ }, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity> | Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient> | Exclude<Exclude<TSchema["EncodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity>> | Effect.Effect<TSchema["Encoded"], Schema.SchemaError, TSchema["EncodingServices"]>] extends [Effect.Effect<infer _A, infer E, infer _R>] ? E : never, [Effect.Effect<{
32
+ readonly [x: string]: unknown;
33
+ }, Schema.SchemaError, never> | Effect.Effect<{
34
+ value: TSchema["Type"];
35
+ version: number;
36
+ }, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity> | Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient> | Exclude<Exclude<TSchema["EncodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity>> | Effect.Effect<TSchema["Encoded"], Schema.SchemaError, TSchema["EncodingServices"]>] extends [Effect.Effect<infer _A_1, infer _E, infer R>] ? R : never>;
22
37
  hasLaunchRetry: () => Effect.Effect<boolean, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
23
38
  initialize: () => Effect.Effect<readonly (readonly [id: number, name: string])[], import("effect/sql/Migrator").MigrationError | import("effect/sql/SqlError").SqlError, never>;
24
39
  insert: (record: TSchema["Type"], limits?: AdmissionLimits) => Effect.Effect<{
25
40
  value: TSchema["Type"];
26
41
  version: number;
27
- }, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, TSchema["DecodingServices"] | TSchema["EncodingServices"]>;
42
+ }, [Effect.Effect<{
43
+ readonly [x: string]: unknown;
44
+ }, Schema.SchemaError, never> | Effect.Effect<{
45
+ value: TSchema["Type"];
46
+ version: number;
47
+ }, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity> | Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient> | Exclude<Exclude<TSchema["EncodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity>> | Effect.Effect<TSchema["Encoded"], Schema.SchemaError, TSchema["EncodingServices"]>] extends [Effect.Effect<infer _A, infer E, infer _R>] ? E : never, [Effect.Effect<{
48
+ readonly [x: string]: unknown;
49
+ }, Schema.SchemaError, never> | Effect.Effect<{
50
+ value: TSchema["Type"];
51
+ version: number;
52
+ }, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity> | Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient> | Exclude<Exclude<TSchema["EncodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity>> | Effect.Effect<TSchema["Encoded"], Schema.SchemaError, TSchema["EncodingServices"]>] extends [Effect.Effect<infer _A_1, infer _E, infer R>] ? R : never>;
28
53
  list: () => Effect.Effect<{
29
54
  value: TSchema["Type"];
30
55
  version: number;
31
- }[], Schema.SchemaError | import("effect/sql/SqlError").SqlError, TSchema["DecodingServices"]>;
56
+ }[], Schema.SchemaError | import("effect/sql/SqlError").SqlError, Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>>;
32
57
  load: (workId: string) => Effect.Effect<{
33
58
  value: TSchema["Type"];
34
59
  version: number;
35
- } | undefined, Schema.SchemaError | import("effect/sql/SqlError").SqlError, TSchema["DecodingServices"]>;
36
- operationEntries: (operationId: string) => Effect.Effect<{
37
- version: number;
38
- workId: string;
39
- }[], Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
40
- releaseForeign: (owner: string) => Effect.Effect<void, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
41
- reserveForeign: (owner: string, occupancy?: {
42
- readonly executing: boolean;
43
- readonly backlog: boolean;
44
- }) => Effect.Effect<void, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
60
+ } | undefined, Schema.SchemaError | import("effect/sql/SqlError").SqlError, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient>>;
61
+ operationEntries: (operationId: string) => Effect.Effect<readonly {
62
+ readonly workId: string;
63
+ readonly version: number;
64
+ }[], import("effect/sql/SqlError").SqlError, never>;
45
65
  }, never, SqlClient.SqlClient>;
46
66
  //# sourceMappingURL=makePostgresFleetStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makePostgresFleetStore.d.ts","sourceRoot":"","sources":["../../src/storage/makePostgresFleetStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAwB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAKvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EAAE,KAAK,eAAe,EAAkF,MAAM,mBAAmB,CAAC;AAMzI,eAAO,MAAM,sBAAsB,GAClC,OAAO,SAAS,MAAM,CAAC,GAAG,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;CACjC;4BA2FwB,MAAM,mBAAmB,MAAM,UAAU,OAAO,CAAC,MAAM,CAAC,WAAW,eAAe;;;;;;;;;;;qBAKzF,OAAO,CAAC,MAAM,CAAC,WAAW,eAAe;;;;;;;;mBAtErC,MAAM;;;;oCAyEK,MAAM;;;;4BAId,MAAM;4BAQN,MAAM,cAAa;QAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE;8BAcrG,CAAC"}
1
+ {"version":3,"file":"makePostgresFleetStore.d.ts","sourceRoot":"","sources":["../../src/storage/makePostgresFleetStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAwB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAKvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIvE,OAAO,EAAE,KAAK,eAAe,EAA+B,MAAM,mBAAmB,CAAC;AAStF,eAAO,MAAM,sBAAsB,GAClC,OAAO,SAAS,MAAM,CAAC,GAAG,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;CACjC;;;;;;;;;;;4BAkGwB,MAAM,mBAAmB,MAAM,UAAU,OAAO,CAAC,MAAM,CAAC,WAAW,eAAe;;;;;;;;;;;;;;;;qBAKzF,OAAO,CAAC,MAAM,CAAC,WAAW,eAAe;;;;;;;;;;;;;;;;;;mBAzErC,MAAM;;;;oCA4EK,MAAM;;;;8BAEtC,CAAC"}
@@ -1,15 +1,19 @@
1
1
  import { Effect, Array as EffectArray, Schema } from "effect";
2
2
  import { SqlClient } from "effect/sql";
3
- import { makeRepository } from "@shivaedev/effect-sql/repository.ts";
3
+ import { makeRepository, OptimisticConcurrencyError } from "@shivaedev/effect-sql/repository.ts";
4
4
  import { fleetRecords } from "#fleetRecords.ts";
5
5
  import { checkRecordAdmission } from "#storage/admission.ts";
6
6
  import { admissionReads } from "#storage/admissionReads.ts";
7
7
  import { StorageConflict } from "#storage/errors.ts";
8
8
  import { makeFleetTransaction } from "#storage/makeFleetTransaction.ts";
9
+ import { makeForeignReservations } from "#storage/makeForeignReservations.ts";
9
10
  import { migrateFleet } from "#storage/migrateFleet.ts";
10
- import { ForeignReservationRow, recordColumns, recordInput, recordModel } from "#storage/model.ts";
11
+ import { recordModel } from "#storage/model.ts";
11
12
  import { nextAdmissionOrder } from "#storage/nextAdmissionOrder.ts";
12
13
  import { operationEntries } from "#storage/operationEntries.ts";
14
+ import { readRecords } from "#storage/readRecords.ts";
15
+ import { inputColumns, makeRecordChildren } from "#storage/recordChildren.ts";
16
+ import { recordShape } from "#storage/recordShape.ts";
13
17
  import { withRecordTimes } from "#storage/recordTimes.ts";
14
18
  import { recordValue, recordValues } from "#storage/recordValue.ts";
15
19
  export const makePostgresFleetStore = Effect.fn("FleetStore.makePostgresFleetStore")(function* (schema, options) {
@@ -17,38 +21,41 @@ export const makePostgresFleetStore = Effect.fn("FleetStore.makePostgresFleetSto
17
21
  const namespace = options.namespace ?? "work_fleet";
18
22
  const commit = yield* makeFleetTransaction;
19
23
  const records = `${namespace}_records`;
20
- const foreign = `${namespace}_foreign_reservations`;
21
- const columns = recordColumns(schema);
24
+ const shape = recordShape(schema);
22
25
  const model = recordModel(schema);
26
+ const saveChildren = yield* makeRecordChildren(namespace, shape);
23
27
  const rows = yield* makeRepository(model, { idColumn: "work_id", spanPrefix: "FleetRow", tableName: records, versionColumn: "version" });
24
- const reservations = yield* makeRepository(ForeignReservationRow, { idColumn: "owner", spanPrefix: "FleetForeign", tableName: foreign });
28
+ const foreign = yield* makeForeignReservations(namespace);
25
29
  const encodeRecord = Schema.encodeEffect(schema);
26
30
  const decodeObject = Schema.decodeUnknownEffect(Schema.Record(Schema.String, Schema.Unknown));
27
31
  const decodeInsert = Schema.decodeUnknownEffect(model.insert);
28
32
  const decodeRecord = Schema.decodeUnknownEffect(schema);
29
33
  const decodeRecords = Schema.decodeUnknownEffect(Schema.Array(schema));
30
34
  function decode(row) {
31
- return recordValue(row, columns).pipe(Effect.flatMap(decodeRecord), Effect.map((value) => ({ value, version: row.version + 1 })));
35
+ return recordValue(row, shape, namespace).pipe(Effect.flatMap(decodeRecord), Effect.provideService(SqlClient.SqlClient, sql), Effect.map((value) => ({ value, version: row.version + 1 })));
32
36
  }
33
- const loadEntry = Effect.fn("FleetStore.loadEntry")(function* (workId) {
37
+ const readEntry = Effect.fn("FleetStore.readEntry")(function* (workId) {
34
38
  const found = yield* rows.findById(workId).pipe(Effect.catchTag("NoSuchElementError", () => Effect.succeed(undefined)));
35
39
  return found === undefined ? undefined : { order: found.admission_order, stored: yield* decode(found) };
36
40
  });
41
+ function loadEntry(workId) {
42
+ return readRecords(namespace, readEntry(workId)).pipe(Effect.provideService(SqlClient.SqlClient, sql));
43
+ }
37
44
  function load(workId) {
38
45
  return loadEntry(workId).pipe(Effect.map((entry) => entry?.stored));
39
46
  }
40
- const list = Effect.fn("FleetStore.list")(function* () {
47
+ const readList = Effect.fn("FleetStore.readList")(function* () {
41
48
  const found = yield* rows.findMany({ orderBy: { direction: "asc", field: "admission_order" } });
42
- const values = yield* decodeRecords(yield* recordValues(found, columns));
49
+ const values = yield* decodeRecords(yield* recordValues(found, shape, namespace).pipe(Effect.provideService(SqlClient.SqlClient, sql)));
43
50
  return EffectArray.zipWith(values, found, (value, row) => ({ value, version: row.version + 1 }));
44
51
  });
45
- function foreignReservations() {
46
- return reservations.findMany({ orderBy: { direction: "asc", field: "owner" } });
52
+ function list() {
53
+ return readRecords(namespace, readList()).pipe(Effect.provideService(SqlClient.SqlClient, sql));
47
54
  }
48
55
  const lock = sql `select pg_advisory_xact_lock(hashtextextended(${`work_fleet_admission:${namespace}`}, 0))`.pipe(Effect.asVoid);
49
56
  const persist = Effect.fn("FleetStore.persist")(function* (workId, expectedVersion, record, encoded, entry) {
50
57
  const requeue = entry !== undefined && options.requeue?.(record, entry.stored.value) === true;
51
- const input = yield* decodeInsert({ ...recordInput(encoded, columns), "work_id": workId });
58
+ const input = yield* decodeInsert({ ...inputColumns(encoded, shape), "work_id": workId });
52
59
  if (entry === undefined) {
53
60
  yield* rows.insertVoid(input);
54
61
  }
@@ -56,6 +63,7 @@ export const makePostgresFleetStore = Effect.fn("FleetStore.makePostgresFleetSto
56
63
  const order = requeue ? yield* nextAdmissionOrder(sql, records) : entry.order;
57
64
  yield* rows.updateVoid({ ...input, "admission_order": order, version: expectedVersion === null ? 0 : expectedVersion - 1 });
58
65
  }
66
+ yield* saveChildren(workId, encoded, entry !== undefined);
59
67
  return { value: record, version: (expectedVersion ?? 0) + 1 };
60
68
  });
61
69
  const write = Effect.fn("FleetStore.write")(function* (workId, expectedVersion, record, limits = {}) {
@@ -73,37 +81,21 @@ export const makePostgresFleetStore = Effect.fn("FleetStore.makePostgresFleetSto
73
81
  }
74
82
  const reads = admissionReads(options, record, previous?.value, limits);
75
83
  const entries = reads.records ? yield* list() : [];
76
- const external = reads.foreign ? yield* foreignReservations() : [];
84
+ const external = reads.foreign ? yield* foreign.foreignReservations() : [];
77
85
  yield* checkRecordAdmission(options, record, previous?.value, entries, external, limits);
78
86
  const timed = yield* withRecordTimes(schema, encoded, previous?.value);
79
87
  return yield* persist(workId, expectedVersion, timed.value, timed.encoded, entry);
80
- })).pipe(Effect.catchTag("OptimisticConcurrencyError", () => Effect.flatMap(load(workId), (actual) => Effect.fail(new StorageConflict({ actualVersion: actual?.version ?? null, expectedVersion, workId })))));
88
+ })).pipe(Effect.catchIf((error) => error instanceof OptimisticConcurrencyError, () => Effect.flatMap(load(workId), (actual) => Effect.fail(new StorageConflict({ actualVersion: actual?.version ?? null, expectedVersion, workId })))));
81
89
  });
82
90
  return {
83
91
  compareAndSet: (workId, expectedVersion, record, limits) => write(workId, expectedVersion, record, limits),
84
- foreignReservations,
92
+ ...foreign,
85
93
  hasLaunchRetry: () => rows.findMany({ select: ["launchRetry"] }).pipe(Effect.map((entries) => entries.some((row) => row.launchRetry !== null))),
86
94
  initialize: () => commit([fleetRecords.list], migrateFleet(namespace)),
87
95
  insert: (record, limits) => write(record.workId, null, record, limits),
88
96
  list,
89
97
  load,
90
- operationEntries: (operationId) => rows
91
- .findMany({ select: ["work_id", "version", "attempts", "history"] })
92
- .pipe(Effect.flatMap((entries) => operationEntries(entries, operationId))),
93
- releaseForeign: (owner) => commit([fleetRecords.list], Effect.gen(function* () {
94
- yield* lock;
95
- yield* reservations.delete(owner);
96
- })),
97
- reserveForeign: (owner, occupancy = { backlog: true, executing: true }) => commit([fleetRecords.list], Effect.gen(function* () {
98
- yield* lock;
99
- const existing = yield* reservations.findMany({ where: { owner } });
100
- if (existing.length === 0) {
101
- yield* reservations.insertVoid({ owner, ...occupancy });
102
- }
103
- else {
104
- yield* reservations.updateVoid({ owner, ...occupancy });
105
- }
106
- })),
98
+ operationEntries: (operationId) => operationEntries(namespace, operationId).pipe(Effect.provideService(SqlClient.SqlClient, sql)),
107
99
  };
108
100
  });
109
101
  //# sourceMappingURL=makePostgresFleetStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"makePostgresFleetStore.js","sourceRoot":"","sources":["../../src/storage/makePostgresFleetStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"makePostgresFleetStore.js","sourceRoot":"","sources":["../../src/storage/makePostgresFleetStore.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Effect, Schema } from "effect";
2
+ import { type ColumnKind } from "#storage/recordShape.ts";
2
3
  export interface Versioned<A> {
3
4
  readonly value: A;
4
5
  readonly version: number;
@@ -15,22 +16,20 @@ export interface AdmissionLimits {
15
16
  readonly areaMergeWaitMs: number;
16
17
  };
17
18
  }
18
- export declare function recordColumns(schema?: Schema.Top): {
19
- [k: string]: "boolean" | "json" | "number" | "string";
20
- };
19
+ export declare function recordColumns(schema?: Schema.Top): Record<string, ColumnKind>;
21
20
  declare const FleetRow_base: import("effect/schema/VariantSchema").Class<FleetRow, {
22
21
  admission_order: import("effect/schema/VariantSchema").Field<{
23
22
  readonly select: Schema.BigInt;
24
23
  readonly update: Schema.BigInt;
25
24
  }>;
26
- attempts: Schema.NullOr<Schema.String>;
25
+ attempts: Schema.NullOr<Schema.Boolean>;
27
26
  attentionOwner: Schema.NullOr<Schema.String>;
28
27
  blocker: Schema.NullOr<Schema.String>;
29
- checks: Schema.NullOr<Schema.String>;
30
- decision: Schema.NullOr<Schema.String>;
31
- history: Schema.NullOr<Schema.String>;
32
- launchRetry: Schema.NullOr<Schema.String>;
33
- outcome: Schema.NullOr<Schema.String>;
28
+ checks: Schema.NullOr<Schema.Boolean>;
29
+ decision: Schema.NullOr<Schema.Boolean>;
30
+ history: Schema.NullOr<Schema.Boolean>;
31
+ launchRetry: Schema.NullOr<Schema.Boolean>;
32
+ outcome: Schema.NullOr<Schema.Boolean>;
34
33
  stage: Schema.NullOr<Schema.String>;
35
34
  version: import("effect/schema/VariantSchema").Field<{
36
35
  readonly select: Schema.Number;
@@ -42,14 +41,14 @@ declare const FleetRow_base: import("effect/schema/VariantSchema").Class<FleetRo
42
41
  readonly select: Schema.BigInt;
43
42
  readonly update: Schema.BigInt;
44
43
  }>;
45
- attempts: Schema.NullOr<Schema.String>;
44
+ attempts: Schema.NullOr<Schema.Boolean>;
46
45
  attentionOwner: Schema.NullOr<Schema.String>;
47
46
  blocker: Schema.NullOr<Schema.String>;
48
- checks: Schema.NullOr<Schema.String>;
49
- decision: Schema.NullOr<Schema.String>;
50
- history: Schema.NullOr<Schema.String>;
51
- launchRetry: Schema.NullOr<Schema.String>;
52
- outcome: Schema.NullOr<Schema.String>;
47
+ checks: Schema.NullOr<Schema.Boolean>;
48
+ decision: Schema.NullOr<Schema.Boolean>;
49
+ history: Schema.NullOr<Schema.Boolean>;
50
+ launchRetry: Schema.NullOr<Schema.Boolean>;
51
+ outcome: Schema.NullOr<Schema.Boolean>;
53
52
  stage: Schema.NullOr<Schema.String>;
54
53
  version: import("effect/schema/VariantSchema").Field<{
55
54
  readonly select: Schema.Number;
@@ -58,77 +57,77 @@ declare const FleetRow_base: import("effect/schema/VariantSchema").Class<FleetRo
58
57
  work_id: Schema.String;
59
58
  }, true>>> & {
60
59
  readonly insert: Schema.Struct<{
61
- readonly attempts: Schema.NullOr<Schema.String>;
60
+ readonly attempts: Schema.NullOr<Schema.Boolean>;
62
61
  readonly attentionOwner: Schema.NullOr<Schema.String>;
63
62
  readonly blocker: Schema.NullOr<Schema.String>;
64
- readonly checks: Schema.NullOr<Schema.String>;
65
- readonly decision: Schema.NullOr<Schema.String>;
66
- readonly history: Schema.NullOr<Schema.String>;
67
- readonly launchRetry: Schema.NullOr<Schema.String>;
68
- readonly outcome: Schema.NullOr<Schema.String>;
63
+ readonly checks: Schema.NullOr<Schema.Boolean>;
64
+ readonly decision: Schema.NullOr<Schema.Boolean>;
65
+ readonly history: Schema.NullOr<Schema.Boolean>;
66
+ readonly launchRetry: Schema.NullOr<Schema.Boolean>;
67
+ readonly outcome: Schema.NullOr<Schema.Boolean>;
69
68
  readonly stage: Schema.NullOr<Schema.String>;
70
69
  readonly work_id: Schema.String;
71
70
  }>;
72
71
  readonly json: Schema.Struct<{
73
- readonly attempts: Schema.NullOr<Schema.String>;
72
+ readonly attempts: Schema.NullOr<Schema.Boolean>;
74
73
  readonly attentionOwner: Schema.NullOr<Schema.String>;
75
74
  readonly blocker: Schema.NullOr<Schema.String>;
76
- readonly checks: Schema.NullOr<Schema.String>;
77
- readonly decision: Schema.NullOr<Schema.String>;
78
- readonly history: Schema.NullOr<Schema.String>;
79
- readonly launchRetry: Schema.NullOr<Schema.String>;
80
- readonly outcome: Schema.NullOr<Schema.String>;
75
+ readonly checks: Schema.NullOr<Schema.Boolean>;
76
+ readonly decision: Schema.NullOr<Schema.Boolean>;
77
+ readonly history: Schema.NullOr<Schema.Boolean>;
78
+ readonly launchRetry: Schema.NullOr<Schema.Boolean>;
79
+ readonly outcome: Schema.NullOr<Schema.Boolean>;
81
80
  readonly stage: Schema.NullOr<Schema.String>;
82
81
  readonly work_id: Schema.String;
83
82
  }>;
84
83
  readonly jsonCreate: Schema.Struct<{
85
- readonly attempts: Schema.NullOr<Schema.String>;
84
+ readonly attempts: Schema.NullOr<Schema.Boolean>;
86
85
  readonly attentionOwner: Schema.NullOr<Schema.String>;
87
86
  readonly blocker: Schema.NullOr<Schema.String>;
88
- readonly checks: Schema.NullOr<Schema.String>;
89
- readonly decision: Schema.NullOr<Schema.String>;
90
- readonly history: Schema.NullOr<Schema.String>;
91
- readonly launchRetry: Schema.NullOr<Schema.String>;
92
- readonly outcome: Schema.NullOr<Schema.String>;
87
+ readonly checks: Schema.NullOr<Schema.Boolean>;
88
+ readonly decision: Schema.NullOr<Schema.Boolean>;
89
+ readonly history: Schema.NullOr<Schema.Boolean>;
90
+ readonly launchRetry: Schema.NullOr<Schema.Boolean>;
91
+ readonly outcome: Schema.NullOr<Schema.Boolean>;
93
92
  readonly stage: Schema.NullOr<Schema.String>;
94
93
  readonly work_id: Schema.String;
95
94
  }>;
96
95
  readonly jsonUpdate: Schema.Struct<{
97
- readonly attempts: Schema.NullOr<Schema.String>;
96
+ readonly attempts: Schema.NullOr<Schema.Boolean>;
98
97
  readonly attentionOwner: Schema.NullOr<Schema.String>;
99
98
  readonly blocker: Schema.NullOr<Schema.String>;
100
- readonly checks: Schema.NullOr<Schema.String>;
101
- readonly decision: Schema.NullOr<Schema.String>;
102
- readonly history: Schema.NullOr<Schema.String>;
103
- readonly launchRetry: Schema.NullOr<Schema.String>;
104
- readonly outcome: Schema.NullOr<Schema.String>;
99
+ readonly checks: Schema.NullOr<Schema.Boolean>;
100
+ readonly decision: Schema.NullOr<Schema.Boolean>;
101
+ readonly history: Schema.NullOr<Schema.Boolean>;
102
+ readonly launchRetry: Schema.NullOr<Schema.Boolean>;
103
+ readonly outcome: Schema.NullOr<Schema.Boolean>;
105
104
  readonly stage: Schema.NullOr<Schema.String>;
106
105
  readonly work_id: Schema.String;
107
106
  }>;
108
107
  readonly select: Schema.Struct<{
109
108
  readonly admission_order: Schema.BigInt;
110
- readonly attempts: Schema.NullOr<Schema.String>;
109
+ readonly attempts: Schema.NullOr<Schema.Boolean>;
111
110
  readonly attentionOwner: Schema.NullOr<Schema.String>;
112
111
  readonly blocker: Schema.NullOr<Schema.String>;
113
- readonly checks: Schema.NullOr<Schema.String>;
114
- readonly decision: Schema.NullOr<Schema.String>;
115
- readonly history: Schema.NullOr<Schema.String>;
116
- readonly launchRetry: Schema.NullOr<Schema.String>;
117
- readonly outcome: Schema.NullOr<Schema.String>;
112
+ readonly checks: Schema.NullOr<Schema.Boolean>;
113
+ readonly decision: Schema.NullOr<Schema.Boolean>;
114
+ readonly history: Schema.NullOr<Schema.Boolean>;
115
+ readonly launchRetry: Schema.NullOr<Schema.Boolean>;
116
+ readonly outcome: Schema.NullOr<Schema.Boolean>;
118
117
  readonly stage: Schema.NullOr<Schema.String>;
119
118
  readonly version: Schema.Number;
120
119
  readonly work_id: Schema.String;
121
120
  }>;
122
121
  readonly update: Schema.Struct<{
123
122
  readonly admission_order: Schema.BigInt;
124
- readonly attempts: Schema.NullOr<Schema.String>;
123
+ readonly attempts: Schema.NullOr<Schema.Boolean>;
125
124
  readonly attentionOwner: Schema.NullOr<Schema.String>;
126
125
  readonly blocker: Schema.NullOr<Schema.String>;
127
- readonly checks: Schema.NullOr<Schema.String>;
128
- readonly decision: Schema.NullOr<Schema.String>;
129
- readonly history: Schema.NullOr<Schema.String>;
130
- readonly launchRetry: Schema.NullOr<Schema.String>;
131
- readonly outcome: Schema.NullOr<Schema.String>;
126
+ readonly checks: Schema.NullOr<Schema.Boolean>;
127
+ readonly decision: Schema.NullOr<Schema.Boolean>;
128
+ readonly history: Schema.NullOr<Schema.Boolean>;
129
+ readonly launchRetry: Schema.NullOr<Schema.Boolean>;
130
+ readonly outcome: Schema.NullOr<Schema.Boolean>;
132
131
  readonly stage: Schema.NullOr<Schema.String>;
133
132
  readonly version: Schema.Number;
134
133
  readonly work_id: Schema.String;
@@ -137,6 +136,7 @@ declare const FleetRow_base: import("effect/schema/VariantSchema").Class<FleetRo
137
136
  declare class FleetRow extends FleetRow_base {
138
137
  }
139
138
  export declare function recordModel(schema?: Schema.Top): typeof FleetRow;
139
+ export declare function modelFromColumns(columns: Readonly<Record<string, ColumnKind>>): typeof FleetRow;
140
140
  export declare const ForeignReservation: Schema.Struct<{
141
141
  readonly backlog: Schema.Boolean;
142
142
  readonly executing: Schema.Boolean;
@@ -185,13 +185,7 @@ declare const ForeignReservationRow_base: import("effect/schema/VariantSchema").
185
185
  };
186
186
  export declare class ForeignReservationRow extends ForeignReservationRow_base {
187
187
  }
188
- export declare function recordInput(value: string | object, columns: ReturnType<typeof recordColumns>): {
189
- [k: string]: {} | null;
190
- };
191
- export declare function recordJson(row: object, columns: ReturnType<typeof recordColumns>): Effect.Effect<string, Schema.SchemaError, never>;
192
- export interface StoredRow {
193
- readonly value: string;
194
- readonly version: number;
195
- }
188
+ export declare function recordInput(value: object, schema?: Schema.Top): Record<string, unknown>;
189
+ export declare function recordJson(row: object, namespace: string): Effect.Effect<string, import("effect/sql/SqlError").SqlError, import("effect/sql/SqlClient").SqlClient>;
196
190
  export {};
197
191
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/storage/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAInD,MAAM,WAAW,SAAS,CAAC,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CACjF;AAgCD,wBAAgB,aAAa,CAAC,MAAM,GAAE,MAAM,CAAC,GAAiB;;EAK7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BD,cAAM,QAAS,SAAQ,aAA4C;CAAG;AAEtE,wBAAgB,WAAW,CAAC,MAAM,GAAE,MAAM,CAAC,GAAiB,GAAG,OAAO,QAAQ,CAK7E;AAED,eAAO,MAAM,kBAAkB;;;;EAI7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhE,qBAAa,qBAAsB,SAAQ,0BAAsF;CAAG;AAEpI,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC;;EAU5F;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,oDAEhF;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/storage/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIxC,OAAO,EAAE,KAAK,UAAU,EAA2C,MAAM,yBAAyB,CAAC;AAEnG,MAAM,WAAW,SAAS,CAAC,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CACjF;AAED,wBAAgB,aAAa,CAAC,MAAM,GAAE,MAAM,CAAC,GAAiB,8BAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBD,cAAM,QAAS,SAAQ,aAA4C;CAAG;AAEtE,wBAAgB,WAAW,CAAC,MAAM,GAAE,MAAM,CAAC,GAAiB,GAAG,OAAO,QAAQ,CAE7E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,OAAO,QAAQ,CAK/F;AAED,eAAO,MAAM,kBAAkB;;;;EAI7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhE,qBAAa,qBAAsB,SAAQ,0BAAsF;CAAG;AAEpI,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,GAAiB,2BAE1E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,2GAExD"}