@shivaedev/work-fleet 0.2.1 → 0.4.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 (515) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +61 -19
  3. package/dist/DispatchRequest.d.ts +13 -0
  4. package/dist/DispatchRequest.d.ts.map +1 -0
  5. package/dist/DispatchRequest.js +12 -0
  6. package/dist/DispatchRequest.js.map +1 -0
  7. package/dist/admit.d.ts +11 -0
  8. package/dist/admit.d.ts.map +1 -1
  9. package/dist/attention.d.ts +1 -0
  10. package/dist/attention.d.ts.map +1 -1
  11. package/dist/attention.js +4 -0
  12. package/dist/attention.js.map +1 -1
  13. package/dist/board/fleetField.d.ts +1 -0
  14. package/dist/board/fleetField.d.ts.map +1 -1
  15. package/dist/board/fleetField.js +4 -0
  16. package/dist/board/fleetField.js.map +1 -1
  17. package/dist/board/markdown.d.ts.map +1 -1
  18. package/dist/board/markdown.js +7 -2
  19. package/dist/board/markdown.js.map +1 -1
  20. package/dist/board/publish.d.ts +2 -0
  21. package/dist/board/publish.d.ts.map +1 -1
  22. package/dist/board/publishReport.d.ts +1 -0
  23. package/dist/board/publishReport.d.ts.map +1 -1
  24. package/dist/board/readPass.d.ts +1 -0
  25. package/dist/board/readPass.d.ts.map +1 -1
  26. package/dist/cli.js +13 -6
  27. package/dist/cli.js.map +1 -1
  28. package/dist/engine/abandonStalled.d.ts +1171 -1004
  29. package/dist/engine/abandonStalled.d.ts.map +1 -1
  30. package/dist/engine/admissionOrder.d.ts +1091 -0
  31. package/dist/engine/admissionOrder.d.ts.map +1 -0
  32. package/dist/engine/admissionOrder.js +15 -0
  33. package/dist/engine/admissionOrder.js.map +1 -0
  34. package/dist/engine/applyResolution.d.ts +20 -0
  35. package/dist/engine/applyResolution.d.ts.map +1 -1
  36. package/dist/engine/approveBrief.d.ts +31 -0
  37. package/dist/engine/approveBrief.d.ts.map +1 -1
  38. package/dist/engine/authorizeResolution.d.ts +1160 -1003
  39. package/dist/engine/authorizeResolution.d.ts.map +1 -1
  40. package/dist/engine/boardBrief.d.ts +32 -0
  41. package/dist/engine/boardBrief.d.ts.map +1 -1
  42. package/dist/engine/capacityRetry.d.ts +3488 -3007
  43. package/dist/engine/capacityRetry.d.ts.map +1 -1
  44. package/dist/engine/closeDecisions.d.ts +20 -0
  45. package/dist/engine/closeDecisions.d.ts.map +1 -1
  46. package/dist/engine/completeBoardWork.d.ts +20 -0
  47. package/dist/engine/completeBoardWork.d.ts.map +1 -1
  48. package/dist/engine/completeReport.d.ts +21 -0
  49. package/dist/engine/completeReport.d.ts.map +1 -1
  50. package/dist/engine/continueCommand.d.ts +10 -0
  51. package/dist/engine/continueCommand.d.ts.map +1 -1
  52. package/dist/engine/continueWorker.d.ts +20 -0
  53. package/dist/engine/continueWorker.d.ts.map +1 -1
  54. package/dist/engine/deliverPendingAnswers.d.ts +1085 -898
  55. package/dist/engine/deliverPendingAnswers.d.ts.map +1 -1
  56. package/dist/engine/dispatchCommand.d.ts +14 -1
  57. package/dist/engine/dispatchCommand.d.ts.map +1 -1
  58. package/dist/engine/dispatchCommand.js +25 -5
  59. package/dist/engine/dispatchCommand.js.map +1 -1
  60. package/dist/engine/ensureDecisionOwner.d.ts +20 -0
  61. package/dist/engine/ensureDecisionOwner.d.ts.map +1 -1
  62. package/dist/engine/ensurePublication.d.ts +20 -0
  63. package/dist/engine/ensurePublication.d.ts.map +1 -1
  64. package/dist/engine/failureContext.d.ts +1 -0
  65. package/dist/engine/failureContext.d.ts.map +1 -1
  66. package/dist/engine/failureContext.js.map +1 -1
  67. package/dist/engine/failureMessage.js +11 -1
  68. package/dist/engine/failureMessage.js.map +1 -1
  69. package/dist/engine/health.d.ts +10 -0
  70. package/dist/engine/health.d.ts.map +1 -1
  71. package/dist/engine/inspectRenewal.d.ts +21 -0
  72. package/dist/engine/inspectRenewal.d.ts.map +1 -1
  73. package/dist/engine/launchInput.d.ts +10 -0
  74. package/dist/engine/launchInput.d.ts.map +1 -1
  75. package/dist/engine/launchReceipt.d.ts +10 -0
  76. package/dist/engine/launchReceipt.d.ts.map +1 -1
  77. package/dist/engine/localOnlyCriteria.d.ts +1 -0
  78. package/dist/engine/localOnlyCriteria.d.ts.map +1 -1
  79. package/dist/engine/localOnlyCriteria.js +5 -1
  80. package/dist/engine/localOnlyCriteria.js.map +1 -1
  81. package/dist/engine/makeAdopt.d.ts +21 -0
  82. package/dist/engine/makeAdopt.d.ts.map +1 -1
  83. package/dist/engine/makeAdvance.d.ts +10 -0
  84. package/dist/engine/makeAdvance.d.ts.map +1 -1
  85. package/dist/engine/makeDeliver.d.ts +20 -0
  86. package/dist/engine/makeDeliver.d.ts.map +1 -1
  87. package/dist/engine/makeHuman.d.ts +20 -0
  88. package/dist/engine/makeHuman.d.ts.map +1 -1
  89. package/dist/engine/makeLaunch.d.ts +20 -0
  90. package/dist/engine/makeLaunch.d.ts.map +1 -1
  91. package/dist/engine/makeLaunch.js +4 -13
  92. package/dist/engine/makeLaunch.js.map +1 -1
  93. package/dist/engine/makeObserve.d.ts +20 -0
  94. package/dist/engine/makeObserve.d.ts.map +1 -1
  95. package/dist/engine/makeReview.d.ts +21 -0
  96. package/dist/engine/makeReview.d.ts.map +1 -1
  97. package/dist/engine/makeState.d.ts +1164 -1010
  98. package/dist/engine/makeState.d.ts.map +1 -1
  99. package/dist/engine/makeState.js +19 -11
  100. package/dist/engine/makeState.js.map +1 -1
  101. package/dist/engine/makeValidate.d.ts +21 -0
  102. package/dist/engine/makeValidate.d.ts.map +1 -1
  103. package/dist/engine/mergeReadiness.d.ts +1425 -1764
  104. package/dist/engine/mergeReadiness.d.ts.map +1 -1
  105. package/dist/engine/mergeReadiness.js +3 -4
  106. package/dist/engine/mergeReadiness.js.map +1 -1
  107. package/dist/engine/observeDeliveryFailure.d.ts +1170 -1003
  108. package/dist/engine/observeDeliveryFailure.d.ts.map +1 -1
  109. package/dist/engine/observeRenewal.d.ts +33 -0
  110. package/dist/engine/observeRenewal.d.ts.map +1 -1
  111. package/dist/engine/obtainReview.d.ts +11 -0
  112. package/dist/engine/obtainReview.d.ts.map +1 -1
  113. package/dist/engine/obtainReview.js +2 -1
  114. package/dist/engine/obtainReview.js.map +1 -1
  115. package/dist/engine/operationRecord.d.ts +1898 -1779
  116. package/dist/engine/operationRecord.d.ts.map +1 -1
  117. package/dist/engine/persistTerminalReceipts.d.ts +20 -0
  118. package/dist/engine/persistTerminalReceipts.d.ts.map +1 -1
  119. package/dist/engine/prepareCommand.d.ts +10 -0
  120. package/dist/engine/prepareCommand.d.ts.map +1 -1
  121. package/dist/engine/prepareCommand.js +1 -1
  122. package/dist/engine/prepareCommand.js.map +1 -1
  123. package/dist/engine/queueAnswerCommand.d.ts +10 -0
  124. package/dist/engine/queueAnswerCommand.d.ts.map +1 -1
  125. package/dist/engine/readOrContinueReview.d.ts +11 -0
  126. package/dist/engine/readOrContinueReview.d.ts.map +1 -1
  127. package/dist/engine/readOrContinueReview.js +2 -1
  128. package/dist/engine/readOrContinueReview.js.map +1 -1
  129. package/dist/engine/readResolution.d.ts +1 -0
  130. package/dist/engine/readResolution.d.ts.map +1 -1
  131. package/dist/engine/readRetry.d.ts +2345 -2010
  132. package/dist/engine/readRetry.d.ts.map +1 -1
  133. package/dist/engine/readRetry.js +22 -2
  134. package/dist/engine/readRetry.js.map +1 -1
  135. package/dist/engine/reassignCommand.d.ts +10 -0
  136. package/dist/engine/reassignCommand.d.ts.map +1 -1
  137. package/dist/engine/reconcileAttempt.d.ts +12 -1
  138. package/dist/engine/reconcileAttempt.d.ts.map +1 -1
  139. package/dist/engine/reconcileAttempt.js +2 -1
  140. package/dist/engine/reconcileAttempt.js.map +1 -1
  141. package/dist/engine/reconcileCommand.d.ts +10 -0
  142. package/dist/engine/reconcileCommand.d.ts.map +1 -1
  143. package/dist/engine/recordResponseCommand.d.ts +551 -0
  144. package/dist/engine/recordResponseCommand.d.ts.map +1 -0
  145. package/dist/engine/recordResponseCommand.js +30 -0
  146. package/dist/engine/recordResponseCommand.js.map +1 -0
  147. package/dist/engine/recoverStall.d.ts +1172 -1004
  148. package/dist/engine/recoverStall.d.ts.map +1 -1
  149. package/dist/engine/recoverStall.js +1 -1
  150. package/dist/engine/recoverStall.js.map +1 -1
  151. package/dist/engine/recoverUnobservable.d.ts +1172 -1004
  152. package/dist/engine/recoverUnobservable.d.ts.map +1 -1
  153. package/dist/engine/refreshBrief.d.ts +2344 -2009
  154. package/dist/engine/refreshBrief.d.ts.map +1 -1
  155. package/dist/engine/refreshReviewResult.d.ts +21 -0
  156. package/dist/engine/refreshReviewResult.d.ts.map +1 -1
  157. package/dist/engine/releaseClosedPreparation.d.ts +1171 -1003
  158. package/dist/engine/releaseClosedPreparation.d.ts.map +1 -1
  159. package/dist/engine/releaseExecution.d.ts +1170 -1003
  160. package/dist/engine/releaseExecution.d.ts.map +1 -1
  161. package/dist/engine/releaseFinishedWork.d.ts +10 -0
  162. package/dist/engine/releaseFinishedWork.d.ts.map +1 -1
  163. package/dist/engine/repository.d.ts +1115 -1003
  164. package/dist/engine/repository.d.ts.map +1 -1
  165. package/dist/engine/repository.js +12 -12
  166. package/dist/engine/repository.js.map +1 -1
  167. package/dist/engine/requestConflictRepair.d.ts +1170 -1003
  168. package/dist/engine/requestConflictRepair.d.ts.map +1 -1
  169. package/dist/engine/requestRework.d.ts +20 -0
  170. package/dist/engine/requestRework.d.ts.map +1 -1
  171. package/dist/engine/resolveCommand.d.ts +10 -0
  172. package/dist/engine/resolveCommand.d.ts.map +1 -1
  173. package/dist/engine/resolveExecution.d.ts +1170 -1003
  174. package/dist/engine/resolveExecution.d.ts.map +1 -1
  175. package/dist/engine/resumeAttempt.d.ts +1171 -1003
  176. package/dist/engine/resumeAttempt.d.ts.map +1 -1
  177. package/dist/engine/retireUnacknowledged.d.ts +20 -0
  178. package/dist/engine/retireUnacknowledged.d.ts.map +1 -1
  179. package/dist/engine/retryTerminal.d.ts +1160 -1003
  180. package/dist/engine/retryTerminal.d.ts.map +1 -1
  181. package/dist/engine/saveLaunch.d.ts +10598 -0
  182. package/dist/engine/saveLaunch.d.ts.map +1 -0
  183. package/dist/engine/saveLaunch.js +30 -0
  184. package/dist/engine/saveLaunch.js.map +1 -0
  185. package/dist/engine/scheduler.d.ts +21 -1
  186. package/dist/engine/scheduler.d.ts.map +1 -1
  187. package/dist/engine/scheduler.js +3 -5
  188. package/dist/engine/scheduler.js.map +1 -1
  189. package/dist/engine/sessionCleanup.d.ts +20 -0
  190. package/dist/engine/sessionCleanup.d.ts.map +1 -1
  191. package/dist/engine/settleMergedDelivery.d.ts +1170 -1003
  192. package/dist/engine/settleMergedDelivery.d.ts.map +1 -1
  193. package/dist/engine/steerBrief.d.ts +1075 -898
  194. package/dist/engine/steerBrief.d.ts.map +1 -1
  195. package/dist/engine/submissionFailure.d.ts +1150 -1003
  196. package/dist/engine/submissionFailure.d.ts.map +1 -1
  197. package/dist/engine/submitLaunch.d.ts +1160 -1003
  198. package/dist/engine/submitLaunch.d.ts.map +1 -1
  199. package/dist/engine/views.d.ts.map +1 -1
  200. package/dist/engine/views.js +4 -0
  201. package/dist/engine/views.js.map +1 -1
  202. package/dist/engine/workerReport.d.ts +30 -0
  203. package/dist/engine/workerReport.d.ts.map +1 -1
  204. package/dist/fleet.d.ts +2716 -983
  205. package/dist/fleet.d.ts.map +1 -1
  206. package/dist/fleet.js +4 -0
  207. package/dist/fleet.js.map +1 -1
  208. package/dist/host/actionCommands.d.ts.map +1 -1
  209. package/dist/host/actionCommands.js +7 -6
  210. package/dist/host/actionCommands.js.map +1 -1
  211. package/dist/host/admission.d.ts +24 -1
  212. package/dist/host/admission.d.ts.map +1 -1
  213. package/dist/host/admission.js +2 -2
  214. package/dist/host/admission.js.map +1 -1
  215. package/dist/host/answerWork.d.ts +12 -2
  216. package/dist/host/answerWork.d.ts.map +1 -1
  217. package/dist/host/answerWork.js +19 -23
  218. package/dist/host/answerWork.js.map +1 -1
  219. package/dist/host/cliOptions.d.ts +1 -1
  220. package/dist/host/cliOptions.d.ts.map +1 -1
  221. package/dist/host/cliOptions.js +1 -1
  222. package/dist/host/cliOptions.js.map +1 -1
  223. package/dist/host/commands.d.ts +28 -4
  224. package/dist/host/commands.d.ts.map +1 -1
  225. package/dist/host/commands.js +19 -5
  226. package/dist/host/commands.js.map +1 -1
  227. package/dist/host/config.d.ts +20 -5
  228. package/dist/host/config.d.ts.map +1 -1
  229. package/dist/host/config.js +17 -19
  230. package/dist/host/config.js.map +1 -1
  231. package/dist/host/configFile.d.ts +66 -0
  232. package/dist/host/configFile.d.ts.map +1 -0
  233. package/dist/host/configFile.js +37 -0
  234. package/dist/host/configFile.js.map +1 -0
  235. package/dist/host/configSettings.d.ts +488 -0
  236. package/dist/host/configSettings.d.ts.map +1 -0
  237. package/dist/host/configSettings.js +115 -0
  238. package/dist/host/configSettings.js.map +1 -0
  239. package/dist/host/daemon.d.ts +881 -1185
  240. package/dist/host/daemon.d.ts.map +1 -1
  241. package/dist/host/daemon.js +2 -1
  242. package/dist/host/daemon.js.map +1 -1
  243. package/dist/host/daemonClient.d.ts +301 -605
  244. package/dist/host/daemonClient.d.ts.map +1 -1
  245. package/dist/host/daemonClient.js +28 -7
  246. package/dist/host/daemonClient.js.map +1 -1
  247. package/dist/host/daemonContract.d.ts +1973 -3075
  248. package/dist/host/daemonContract.d.ts.map +1 -1
  249. package/dist/host/daemonContract.js +12 -4
  250. package/dist/host/daemonContract.js.map +1 -1
  251. package/dist/host/daemonDiagnostics.d.ts.map +1 -1
  252. package/dist/host/daemonDiagnostics.js +9 -3
  253. package/dist/host/daemonDiagnostics.js.map +1 -1
  254. package/dist/host/daemonHandlers.d.ts +2 -1
  255. package/dist/host/daemonHandlers.d.ts.map +1 -1
  256. package/dist/host/daemonHandlers.js +20 -7
  257. package/dist/host/daemonHandlers.js.map +1 -1
  258. package/dist/host/daemonSnapshots.d.ts.map +1 -1
  259. package/dist/host/daemonSnapshots.js +21 -1
  260. package/dist/host/daemonSnapshots.js.map +1 -1
  261. package/dist/host/dispatchRequests.d.ts +30 -0
  262. package/dist/host/dispatchRequests.d.ts.map +1 -0
  263. package/dist/host/dispatchRequests.js +40 -0
  264. package/dist/host/dispatchRequests.js.map +1 -0
  265. package/dist/host/follow.js +1 -1
  266. package/dist/host/follow.js.map +1 -1
  267. package/dist/host/followState.d.ts.map +1 -1
  268. package/dist/host/followState.js +5 -4
  269. package/dist/host/followState.js.map +1 -1
  270. package/dist/host/github.d.ts +5 -6
  271. package/dist/host/github.d.ts.map +1 -1
  272. package/dist/host/github.js +3 -4
  273. package/dist/host/github.js.map +1 -1
  274. package/dist/host/githubApi.d.ts +15 -0
  275. package/dist/host/githubApi.d.ts.map +1 -0
  276. package/dist/host/githubApi.js +117 -0
  277. package/dist/host/githubApi.js.map +1 -0
  278. package/dist/host/githubChecks.d.ts +13 -3
  279. package/dist/host/githubChecks.d.ts.map +1 -1
  280. package/dist/host/githubChecks.js +5 -5
  281. package/dist/host/githubChecks.js.map +1 -1
  282. package/dist/host/githubDelivery.d.ts +13 -1
  283. package/dist/host/githubDelivery.d.ts.map +1 -1
  284. package/dist/host/githubDelivery.js +39 -6
  285. package/dist/host/githubDelivery.js.map +1 -1
  286. package/dist/host/githubRateLimit.d.ts +23 -0
  287. package/dist/host/githubRateLimit.d.ts.map +1 -0
  288. package/dist/host/githubRateLimit.js +70 -0
  289. package/dist/host/githubRateLimit.js.map +1 -0
  290. package/dist/host/githubRequiredChecks.d.ts +1 -2
  291. package/dist/host/githubRequiredChecks.d.ts.map +1 -1
  292. package/dist/host/githubRequiredChecks.js +2 -2
  293. package/dist/host/githubRequiredChecks.js.map +1 -1
  294. package/dist/host/githubResponse.d.ts +10 -0
  295. package/dist/host/githubResponse.d.ts.map +1 -0
  296. package/dist/host/githubResponse.js +29 -0
  297. package/dist/host/githubResponse.js.map +1 -0
  298. package/dist/host/githubResult.d.ts +3 -2
  299. package/dist/host/githubResult.d.ts.map +1 -1
  300. package/dist/host/githubResult.js +9 -12
  301. package/dist/host/githubResult.js.map +1 -1
  302. package/dist/host/githubTransport.d.ts +13 -0
  303. package/dist/host/githubTransport.d.ts.map +1 -0
  304. package/dist/host/{githubRead.js → githubTransport.js} +9 -10
  305. package/dist/host/githubTransport.js.map +1 -0
  306. package/dist/host/integrations.d.ts +6 -0
  307. package/dist/host/integrations.d.ts.map +1 -0
  308. package/dist/host/integrations.js +34 -0
  309. package/dist/host/integrations.js.map +1 -0
  310. package/dist/host/liveConfig.d.ts +21 -0
  311. package/dist/host/liveConfig.d.ts.map +1 -0
  312. package/dist/host/liveConfig.js +75 -0
  313. package/dist/host/liveConfig.js.map +1 -0
  314. package/dist/host/providers.d.ts.map +1 -1
  315. package/dist/host/providers.js +2 -2
  316. package/dist/host/providers.js.map +1 -1
  317. package/dist/host/readWaitStates.d.ts.map +1 -1
  318. package/dist/host/readWaitStates.js +8 -18
  319. package/dist/host/readWaitStates.js.map +1 -1
  320. package/dist/host/reassignWork.d.ts +10 -0
  321. package/dist/host/reassignWork.d.ts.map +1 -1
  322. package/dist/host/recordDecisionResponse.d.ts +1 -0
  323. package/dist/host/recordDecisionResponse.d.ts.map +1 -1
  324. package/dist/host/releaseWork.d.ts +24 -3
  325. package/dist/host/releaseWork.d.ts.map +1 -1
  326. package/dist/host/releaseWork.js +11 -7
  327. package/dist/host/releaseWork.js.map +1 -1
  328. package/dist/host/renderStatus.d.ts +2 -2
  329. package/dist/host/renderStatus.d.ts.map +1 -1
  330. package/dist/host/renderStatus.js +8 -2
  331. package/dist/host/renderStatus.js.map +1 -1
  332. package/dist/host/reportBoard.d.ts +1 -1
  333. package/dist/host/reportBoard.d.ts.map +1 -1
  334. package/dist/host/reportBoard.js +6 -3
  335. package/dist/host/reportBoard.js.map +1 -1
  336. package/dist/host/reportPublication.d.ts +2 -1
  337. package/dist/host/reportPublication.d.ts.map +1 -1
  338. package/dist/host/reportPublication.js +5 -2
  339. package/dist/host/reportPublication.js.map +1 -1
  340. package/dist/host/runtime.d.ts +8 -6
  341. package/dist/host/runtime.d.ts.map +1 -1
  342. package/dist/host/runtime.js +38 -46
  343. package/dist/host/runtime.js.map +1 -1
  344. package/dist/host/snapshotStream.d.ts.map +1 -1
  345. package/dist/host/snapshotStream.js +4 -1
  346. package/dist/host/snapshotStream.js.map +1 -1
  347. package/dist/host/status.d.ts +22 -2
  348. package/dist/host/status.d.ts.map +1 -1
  349. package/dist/host/status.js +19 -5
  350. package/dist/host/status.js.map +1 -1
  351. package/dist/host/statusLayer.d.ts +3 -3
  352. package/dist/host/statusLayer.d.ts.map +1 -1
  353. package/dist/host/statusLayer.js +13 -3
  354. package/dist/host/statusLayer.js.map +1 -1
  355. package/dist/host/waitOutcome.d.ts.map +1 -1
  356. package/dist/host/waitOutcome.js +5 -2
  357. package/dist/host/waitOutcome.js.map +1 -1
  358. package/dist/model.d.ts +39 -0
  359. package/dist/model.d.ts.map +1 -1
  360. package/dist/model.js +5 -0
  361. package/dist/model.js.map +1 -1
  362. package/dist/operations.d.ts +270 -0
  363. package/dist/operations.d.ts.map +1 -1
  364. package/dist/packageInfo.d.ts +1 -1
  365. package/dist/packageInfo.js +1 -1
  366. package/dist/policy.d.ts +8 -0
  367. package/dist/policy.d.ts.map +1 -1
  368. package/dist/policy.js +2 -0
  369. package/dist/policy.js.map +1 -1
  370. package/dist/providers/codexCloud.d.ts +2 -0
  371. package/dist/providers/codexCloud.d.ts.map +1 -1
  372. package/dist/providers/codexCloud.js +2 -1
  373. package/dist/providers/codexCloud.js.map +1 -1
  374. package/dist/qualifyDependencies.d.ts +10 -0
  375. package/dist/qualifyDependencies.d.ts.map +1 -1
  376. package/dist/scheduling/admission.d.ts +1635 -0
  377. package/dist/scheduling/admission.d.ts.map +1 -0
  378. package/dist/scheduling/admission.js +11 -0
  379. package/dist/scheduling/admission.js.map +1 -0
  380. package/dist/scheduling/areas.d.ts +30 -0
  381. package/dist/scheduling/areas.d.ts.map +1 -1
  382. package/dist/scheduling/areas.js +1 -0
  383. package/dist/scheduling/areas.js.map +1 -1
  384. package/dist/scheduling/backPressure.d.ts +1637 -0
  385. package/dist/scheduling/backPressure.d.ts.map +1 -0
  386. package/dist/scheduling/backPressure.js +44 -0
  387. package/dist/scheduling/backPressure.js.map +1 -0
  388. package/dist/storage/FleetStoreOptions.d.ts +2 -2
  389. package/dist/storage/FleetStoreOptions.d.ts.map +1 -1
  390. package/dist/storage/addShapeColumns.d.ts +5 -0
  391. package/dist/storage/addShapeColumns.d.ts.map +1 -0
  392. package/dist/storage/addShapeColumns.js +24 -0
  393. package/dist/storage/addShapeColumns.js.map +1 -0
  394. package/dist/storage/dispatchStore.d.ts +47 -0
  395. package/dist/storage/dispatchStore.d.ts.map +1 -0
  396. package/dist/storage/dispatchStore.js +89 -0
  397. package/dist/storage/dispatchStore.js.map +1 -0
  398. package/dist/storage/errors.d.ts +2 -1
  399. package/dist/storage/errors.d.ts.map +1 -1
  400. package/dist/storage/errors.js +2 -1
  401. package/dist/storage/errors.js.map +1 -1
  402. package/dist/storage/fleetMigrations.d.ts +1 -1
  403. package/dist/storage/fleetMigrations.d.ts.map +1 -1
  404. package/dist/storage/fleetMigrations.js +24 -17
  405. package/dist/storage/fleetMigrations.js.map +1 -1
  406. package/dist/storage/listedRecords.d.ts +9 -0
  407. package/dist/storage/listedRecords.d.ts.map +1 -0
  408. package/dist/storage/listedRecords.js +40 -0
  409. package/dist/storage/listedRecords.js.map +1 -0
  410. package/dist/storage/makePostgresFleetStore.d.ts +2 -6
  411. package/dist/storage/makePostgresFleetStore.d.ts.map +1 -1
  412. package/dist/storage/makePostgresFleetStore.js +4 -10
  413. package/dist/storage/makePostgresFleetStore.js.map +1 -1
  414. package/dist/storage/model.d.ts +9 -0
  415. package/dist/storage/model.d.ts.map +1 -1
  416. package/dist/storage/model.js.map +1 -1
  417. package/dist/storage/shapeV14.d.ts +808 -0
  418. package/dist/storage/shapeV14.d.ts.map +1 -0
  419. package/dist/storage/shapeV14.js +18 -0
  420. package/dist/storage/shapeV14.js.map +1 -0
  421. package/package.json +6 -6
  422. package/src/DispatchRequest.ts +13 -0
  423. package/src/attention.ts +5 -0
  424. package/src/board/fleetField.ts +5 -0
  425. package/src/board/markdown.ts +7 -2
  426. package/src/cli.ts +24 -10
  427. package/src/engine/admissionOrder.ts +25 -0
  428. package/src/engine/dispatchCommand.ts +29 -5
  429. package/src/engine/failureContext.ts +1 -0
  430. package/src/engine/failureMessage.ts +12 -1
  431. package/src/engine/localOnlyCriteria.ts +6 -1
  432. package/src/engine/makeLaunch.ts +4 -17
  433. package/src/engine/makeState.ts +30 -26
  434. package/src/engine/mergeReadiness.ts +6 -5
  435. package/src/engine/obtainReview.ts +2 -1
  436. package/src/engine/prepareCommand.ts +1 -1
  437. package/src/engine/readOrContinueReview.ts +2 -1
  438. package/src/engine/readRetry.ts +26 -2
  439. package/src/engine/reconcileAttempt.ts +2 -1
  440. package/src/engine/recordResponseCommand.ts +38 -0
  441. package/src/engine/recoverStall.ts +1 -1
  442. package/src/engine/repository.ts +17 -16
  443. package/src/engine/saveLaunch.ts +45 -0
  444. package/src/engine/scheduler.ts +4 -6
  445. package/src/engine/views.ts +5 -0
  446. package/src/fleet.ts +4 -0
  447. package/src/host/actionCommands.ts +22 -7
  448. package/src/host/admission.ts +3 -3
  449. package/src/host/answerWork.ts +28 -27
  450. package/src/host/cliOptions.ts +1 -1
  451. package/src/host/commands.ts +29 -8
  452. package/src/host/config.ts +26 -22
  453. package/src/host/configFile.ts +40 -0
  454. package/src/host/configSettings.ts +126 -0
  455. package/src/host/daemon.ts +2 -1
  456. package/src/host/daemonClient.ts +42 -7
  457. package/src/host/daemonContract.ts +12 -4
  458. package/src/host/daemonDiagnostics.ts +11 -3
  459. package/src/host/daemonHandlers.ts +24 -7
  460. package/src/host/daemonSnapshots.ts +24 -1
  461. package/src/host/dispatchRequests.ts +53 -0
  462. package/src/host/follow.ts +1 -1
  463. package/src/host/followState.ts +6 -6
  464. package/src/host/github.ts +8 -6
  465. package/src/host/githubApi.ts +142 -0
  466. package/src/host/githubChecks.ts +6 -5
  467. package/src/host/githubDelivery.ts +47 -10
  468. package/src/host/githubRateLimit.ts +91 -0
  469. package/src/host/githubRequiredChecks.ts +2 -2
  470. package/src/host/githubResponse.ts +37 -0
  471. package/src/host/githubResult.ts +15 -17
  472. package/src/host/githubTransport.ts +31 -0
  473. package/src/host/integrations.ts +40 -0
  474. package/src/host/liveConfig.ts +135 -0
  475. package/src/host/providers.ts +4 -2
  476. package/src/host/readWaitStates.ts +8 -20
  477. package/src/host/releaseWork.ts +12 -9
  478. package/src/host/renderStatus.ts +10 -3
  479. package/src/host/reportBoard.ts +6 -3
  480. package/src/host/reportPublication.ts +6 -4
  481. package/src/host/runtime.ts +49 -56
  482. package/src/host/snapshotStream.ts +6 -1
  483. package/src/host/status.ts +24 -7
  484. package/src/host/statusLayer.ts +21 -5
  485. package/src/host/waitOutcome.ts +5 -2
  486. package/src/model.ts +6 -0
  487. package/src/packageInfo.ts +1 -1
  488. package/src/policy.ts +8 -0
  489. package/src/providers/codexCloud.ts +2 -1
  490. package/src/scheduling/admission.ts +19 -0
  491. package/src/scheduling/areas.ts +1 -0
  492. package/src/scheduling/backPressure.ts +55 -0
  493. package/src/storage/FleetStoreOptions.ts +7 -2
  494. package/src/storage/addShapeColumns.ts +24 -0
  495. package/src/storage/dispatchStore.ts +104 -0
  496. package/src/storage/errors.ts +2 -1
  497. package/src/storage/fleetMigrations.ts +24 -17
  498. package/src/storage/listedRecords.ts +53 -0
  499. package/src/storage/makePostgresFleetStore.ts +4 -10
  500. package/src/storage/model.ts +7 -0
  501. package/src/storage/shapeV14.ts +19 -0
  502. package/dist/host/githubRead.d.ts +0 -5
  503. package/dist/host/githubRead.d.ts.map +0 -1
  504. package/dist/host/githubRead.js.map +0 -1
  505. package/dist/host/recordPayloads.d.ts +0 -4
  506. package/dist/host/recordPayloads.d.ts.map +0 -1
  507. package/dist/host/recordPayloads.js +0 -21
  508. package/dist/host/recordPayloads.js.map +0 -1
  509. package/dist/storage/migrateFleet.d.ts +0 -3
  510. package/dist/storage/migrateFleet.d.ts.map +0 -1
  511. package/dist/storage/migrateFleet.js +0 -11
  512. package/dist/storage/migrateFleet.js.map +0 -1
  513. package/src/host/githubRead.ts +0 -20
  514. package/src/host/recordPayloads.ts +0 -24
  515. package/src/storage/migrateFleet.ts +0 -11
@@ -2,19 +2,23 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
2
2
  import { Effect, Layer } from "effect";
3
3
  import type { ReportInspection } from "#engine/ReportInspection.ts";
4
4
  import type { FleetHost } from "#host/config.ts";
5
+ import { GithubApi } from "#host/githubApi.ts";
6
+ import { LiveConfig } from "#host/liveConfig.ts";
5
7
  import { type MainSource } from "#host/mainSource.ts";
6
8
  import type { BoardGateway, FleetIntegrations, FleetPolicy } from "#policy.ts";
7
9
  import type { SessionTransport } from "#session/service.ts";
8
10
  export interface HostParts {
9
- readonly board?: Layer.Layer<BoardGateway | ReportInspection, unknown, MainSource>;
10
- readonly integrations?: Layer.Layer<FleetIntegrations, unknown, MainSource>;
11
+ readonly board?: Layer.Layer<BoardGateway | ReportInspection, unknown, MainSource | GithubApi>;
12
+ readonly github?: Layer.Layer<GithubApi>;
13
+ readonly integrations?: Layer.Layer<FleetIntegrations, unknown, MainSource | GithubApi>;
11
14
  readonly main: Layer.Layer<MainSource, unknown>;
12
15
  readonly policy?: Layer.Layer<FleetPolicy>;
13
16
  readonly provider: Layer.Layer<SessionTransport, unknown>;
14
17
  }
15
18
  export declare function productionParts(host: FleetHost): HostParts;
16
- export declare function hostLayer(host: FleetHost, parts: HostParts): Layer.Layer<"@shivaedev/work-fleet/Fleet" | "@shivaedev/work-fleet/SessionService" | import("@shivaedev/platform/appHost.ts").AppChanges | BoardGateway | FleetIntegrations | FleetPolicy | import("../engine/repository.ts").FleetRepository | import("../engine/health.ts").Health | import("../engine/health.ts").HealthPublication | import("../engine/health.ts").HealthSnapshot | MainSource | import("@effect/sql-pg/PgClient").PgClient | import("effect/reactivity/Reactivity").Reactivity | ReportInspection | import("#session/service.ts").SessionJournal | SessionTransport | import("effect/sql/SqlClient").SqlClient | NodeServices.NodeServices, unknown, never>;
17
- export declare function hostScheduler(host: FleetHost): Effect.Effect<void, import("effect/Schema").SchemaError | import("effect/sql/SqlError").SqlError, "@shivaedev/work-fleet/Fleet" | BoardGateway | import("effect/FileSystem").FileSystem | MainSource | import("effect/Path").Path | import("effect/Scope").Scope>;
19
+ export declare function hostLayer(host: FleetHost, parts: HostParts, config?: Layer.Layer<LiveConfig, unknown>): Layer.Layer<"@shivaedev/work-fleet/Fleet" | "@shivaedev/work-fleet/SessionService" | "Fleet/GithubApi" | import("@shivaedev/platform/appHost.ts").AppChanges | BoardGateway | FleetIntegrations | FleetPolicy | import("../engine/repository.ts").FleetRepository | import("../engine/health.ts").Health | import("../engine/health.ts").HealthPublication | import("../engine/health.ts").HealthSnapshot | LiveConfig | MainSource | import("@effect/sql-pg/PgClient").PgClient | import("effect/reactivity/Reactivity").Reactivity | ReportInspection | import("#session/service.ts").SessionJournal | SessionTransport | import("effect/sql/SqlClient").SqlClient | NodeServices.NodeServices, unknown, never>;
20
+ export declare const schedulerPause: Effect.Effect<void, never, "Fleet/GithubApi" | LiveConfig>;
21
+ export declare function hostScheduler(host: FleetHost): Effect.Effect<void, import("effect/Schema").SchemaError | import("effect/sql/SqlError").SqlError, "@shivaedev/work-fleet/Fleet" | "Fleet/GithubApi" | BoardGateway | import("effect/FileSystem").FileSystem | LiveConfig | MainSource | import("effect/Path").Path | import("effect/Scope").Scope>;
18
22
  export declare function runFleet(host: FleetHost, parts?: HostParts): Effect.Effect<void, unknown, never>;
19
23
  export declare function dispatchWork(host: FleetHost, workId: string, parts?: HostParts): Effect.Effect<import("../storage/model.ts").Versioned<{
20
24
  readonly admissionReady?: boolean | undefined;
@@ -52,6 +56,7 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
52
56
  readonly observationRetries?: number | undefined;
53
57
  readonly operationId: string;
54
58
  readonly output?: string | undefined;
59
+ readonly overLimit?: boolean | undefined;
55
60
  readonly progress?: {
56
61
  readonly at: number;
57
62
  readonly signature: string;
@@ -122,6 +127,7 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
122
127
  readonly context: string;
123
128
  readonly deliverable?: "report" | undefined;
124
129
  readonly dependsOn: readonly string[];
130
+ readonly priority?: "high" | "normal" | "urgent" | undefined;
125
131
  readonly revision: string;
126
132
  readonly sourcePath: string;
127
133
  readonly status?: string | undefined;
@@ -147,6 +153,9 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
147
153
  readonly decisionAcknowledged?: boolean | undefined;
148
154
  readonly decisionPublished?: boolean | undefined;
149
155
  readonly deliverable?: "report" | undefined;
156
+ readonly dispatchNow?: {
157
+ readonly ignoreAreas: boolean;
158
+ } | undefined;
150
159
  readonly integrationRetry?: {
151
160
  readonly error: string;
152
161
  readonly failures: number;
@@ -317,6 +326,7 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
317
326
  readonly observationRetries?: number | undefined;
318
327
  readonly operationId: string;
319
328
  readonly output?: string | undefined;
329
+ readonly overLimit?: boolean | undefined;
320
330
  readonly progress?: {
321
331
  readonly at: number;
322
332
  readonly signature: string;
@@ -387,6 +397,7 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
387
397
  readonly context: string;
388
398
  readonly deliverable?: "report" | undefined;
389
399
  readonly dependsOn: readonly string[];
400
+ readonly priority?: "high" | "normal" | "urgent" | undefined;
390
401
  readonly revision: string;
391
402
  readonly sourcePath: string;
392
403
  readonly status?: string | undefined;
@@ -412,6 +423,9 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
412
423
  readonly decisionAcknowledged?: boolean | undefined;
413
424
  readonly decisionPublished?: boolean | undefined;
414
425
  readonly deliverable?: "report" | undefined;
426
+ readonly dispatchNow?: {
427
+ readonly ignoreAreas: boolean;
428
+ } | undefined;
415
429
  readonly integrationRetry?: {
416
430
  readonly error: string;
417
431
  readonly failures: number;
@@ -586,6 +600,7 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
586
600
  readonly observationRetries?: number | undefined;
587
601
  readonly operationId: string;
588
602
  readonly output?: string | undefined;
603
+ readonly overLimit?: boolean | undefined;
589
604
  readonly progress?: {
590
605
  readonly at: number;
591
606
  readonly signature: string;
@@ -656,6 +671,7 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
656
671
  readonly context: string;
657
672
  readonly deliverable?: "report" | undefined;
658
673
  readonly dependsOn: readonly string[];
674
+ readonly priority?: "high" | "normal" | "urgent" | undefined;
659
675
  readonly revision: string;
660
676
  readonly sourcePath: string;
661
677
  readonly status?: string | undefined;
@@ -681,6 +697,9 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
681
697
  readonly decisionAcknowledged?: boolean | undefined;
682
698
  readonly decisionPublished?: boolean | undefined;
683
699
  readonly deliverable?: "report" | undefined;
700
+ readonly dispatchNow?: {
701
+ readonly ignoreAreas: boolean;
702
+ } | undefined;
684
703
  readonly integrationRetry?: {
685
704
  readonly error: string;
686
705
  readonly failures: number;
@@ -851,6 +870,7 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
851
870
  readonly observationRetries?: number | undefined;
852
871
  readonly operationId: string;
853
872
  readonly output?: string | undefined;
873
+ readonly overLimit?: boolean | undefined;
854
874
  readonly progress?: {
855
875
  readonly at: number;
856
876
  readonly signature: string;
@@ -921,6 +941,7 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
921
941
  readonly context: string;
922
942
  readonly deliverable?: "report" | undefined;
923
943
  readonly dependsOn: readonly string[];
944
+ readonly priority?: "high" | "normal" | "urgent" | undefined;
924
945
  readonly revision: string;
925
946
  readonly sourcePath: string;
926
947
  readonly status?: string | undefined;
@@ -946,6 +967,9 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
946
967
  readonly decisionAcknowledged?: boolean | undefined;
947
968
  readonly decisionPublished?: boolean | undefined;
948
969
  readonly deliverable?: "report" | undefined;
970
+ readonly dispatchNow?: {
971
+ readonly ignoreAreas: boolean;
972
+ } | undefined;
949
973
  readonly integrationRetry?: {
950
974
  readonly error: string;
951
975
  readonly failures: number;
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/host/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/host/commands.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import * as NodeServices from "@effect/platform-node/NodeServices";
2
- import { Console, Effect, Layer } from "effect";
2
+ import { Console, Effect, Layer, Stream } from "effect";
3
3
  import { run } from "#engine/scheduler.ts";
4
4
  import { Fleet } from "#fleet.ts";
5
5
  import { admitApproved, dispatchApproved } from "#host/admission.ts";
6
+ import { GithubApi } from "#host/githubApi.ts";
6
7
  import { healthLayer } from "#host/healthLayer.ts";
8
+ import { LiveConfig, staticConfig } from "#host/liveConfig.ts";
7
9
  import { gitMainSource } from "#host/mainSource.ts";
8
10
  import { hostProvider } from "#host/providers.ts";
9
11
  import { fleetHostLayer } from "#host/runtime.ts";
@@ -11,10 +13,22 @@ import { statusLayer } from "#host/statusLayer.ts";
11
13
  export function productionParts(host) {
12
14
  return { main: gitMainSource(host), provider: hostProvider(host) };
13
15
  }
14
- export function hostLayer(host, parts) {
15
- const runtime = Layer.mergeAll(fleetHostLayer(host, parts), NodeServices.layer).pipe(Layer.provideMerge(healthLayer(host.boardDir)));
16
- return statusLayer(host.boardDir, { concurrency: host.concurrency, staleAfterMs: Math.max(60_000, host.interval * 3000) }).pipe(Layer.provideMerge(runtime));
16
+ export function hostLayer(host, parts, config = staticConfig(host)) {
17
+ const runtime = Layer.mergeAll(fleetHostLayer(host, parts, config), NodeServices.layer).pipe(Layer.provideMerge(healthLayer(host.boardDir)));
18
+ const status = Layer.unwrap(Effect.map(LiveConfig, (live) => statusLayer(host.boardDir, Effect.map(live.current, ({ host: applied }) => ({
19
+ concurrency: applied.concurrency,
20
+ staleAfterMs: Math.max(60_000, applied.interval * 3000),
21
+ })))));
22
+ return status.pipe(Layer.provideMerge(runtime), Layer.provideMerge(config));
17
23
  }
24
+ // An applied config edit starts the next pass at once instead of after the interval it replaced, and a low GitHub budget stretches that interval.
25
+ export const schedulerPause = Effect.gen(function* () {
26
+ const live = yield* LiveConfig;
27
+ const github = yield* GithubApi;
28
+ const { host: applied } = yield* live.current;
29
+ const delay = yield* github.pace(applied.interval * 1000);
30
+ yield* Effect.raceFirst(Effect.sleep(delay), live.changes.pipe(Stream.drop(1), Stream.take(1), Stream.runDrain));
31
+ });
18
32
  export function hostScheduler(host) {
19
33
  let reported = new Set();
20
34
  const admission = admitApproved(host).pipe(Effect.catch((error) => Effect.succeed([`admission: ${error.message}`])), Effect.flatMap((failures) => Effect.gen(function* () {
@@ -23,7 +37,7 @@ export function hostScheduler(host) {
23
37
  }
24
38
  reported = new Set(failures);
25
39
  })));
26
- return run(`${host.interval} seconds`, admission);
40
+ return run(schedulerPause, admission);
27
41
  }
28
42
  export function runFleet(host, parts = productionParts(host)) {
29
43
  return Effect.scoped(hostScheduler(host)).pipe(Effect.provide(hostLayer(host, parts)));
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/host/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/host/commands.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import * as Effect from "effect/Effect";
2
- import * as FileSystem from "effect/FileSystem";
3
- import * as Path from "effect/Path";
4
1
  import * as Schema from "effect/Schema";
2
+ import type { OpenPullRequestCurve } from "#storage/model.ts";
5
3
  export declare const HostConfig: Schema.Struct<{
6
4
  readonly areaMergeWaitMs: Schema.optional<Schema.Int>;
7
5
  readonly backlog: Schema.optional<Schema.Int>;
@@ -12,6 +10,7 @@ export declare const HostConfig: Schema.Struct<{
12
10
  readonly endpoint: Schema.optional<Schema.String>;
13
11
  readonly environmentId: Schema.String;
14
12
  readonly projectId: Schema.optional<Schema.String>;
13
+ readonly recoveryGraceMs: Schema.optional<Schema.Int>;
15
14
  readonly refreshCommand: Schema.optional<Schema.Struct<{
16
15
  readonly args: Schema.$Array<Schema.String>;
17
16
  readonly command: Schema.String;
@@ -36,8 +35,14 @@ export declare const HostConfig: Schema.Struct<{
36
35
  readonly requestTimeoutMs: Schema.optional<Schema.Int>;
37
36
  }>>;
38
37
  readonly namespace: Schema.optional<Schema.String>;
38
+ readonly openPullRequests: Schema.optional<Schema.Struct<{
39
+ readonly ease: Schema.Int;
40
+ readonly floor: Schema.optional<Schema.Int>;
41
+ readonly max: Schema.Int;
42
+ }>>;
39
43
  readonly provider: Schema.Literals<readonly ["local", "cloud"]>;
40
44
  readonly quota: Schema.optional<Schema.Literals<readonly ["codex", "unlimited"]>>;
45
+ readonly readRetryMs: Schema.optional<Schema.Int>;
41
46
  readonly repository: Schema.optional<Schema.Struct<{
42
47
  readonly branch: Schema.String;
43
48
  readonly remote: Schema.String;
@@ -61,26 +66,36 @@ declare const HostFailure_base: Schema.Class<HostFailure, Schema.TaggedStruct<"H
61
66
  }>, import("effect/Cause").YieldableError>;
62
67
  export declare class HostFailure extends HostFailure_base {
63
68
  }
69
+ declare const HostConfigRejected_base: Schema.Class<HostConfigRejected, Schema.TaggedStruct<"HostConfigRejected", {
70
+ readonly field: Schema.optional<Schema.String>;
71
+ readonly file: Schema.String;
72
+ readonly message: Schema.String;
73
+ }>, import("effect/Cause").YieldableError>;
74
+ export declare class HostConfigRejected extends HostConfigRejected_base {
75
+ }
64
76
  export interface FleetHost {
65
77
  readonly areaMergeWaitMs: number;
66
78
  readonly backlog: number;
67
79
  readonly boardDir: string;
68
80
  readonly cloud: HostConfig["cloud"];
69
81
  readonly concurrency: number;
82
+ readonly config: HostConfig;
83
+ readonly configFile?: string;
70
84
  readonly databaseUrl: string;
71
85
  readonly interval: number;
72
86
  readonly launch: NonNullable<HostConfig["launch"]>;
73
87
  readonly local: HostConfig["local"];
74
88
  readonly maxConnections: number;
75
89
  readonly namespace: string;
90
+ readonly openPullRequests?: OpenPullRequestCurve;
76
91
  readonly provider: HostConfig["provider"];
77
92
  readonly quota: NonNullable<HostConfig["quota"]>;
93
+ readonly readRetryMs: number;
78
94
  readonly repository: NonNullable<HostConfig["repository"]>;
79
95
  readonly result?: HostConfig["result"];
80
96
  readonly stallMinutes: number;
81
97
  readonly worker: HostConfig["worker"];
82
98
  }
83
- export declare function resolveHost(boardDir: string, config: HostConfig): FleetHost;
84
- export declare const loadHost: (board: string, configPath?: string | undefined) => Effect.Effect<FleetHost, HostFailure, FileSystem.FileSystem | Path.Path>;
99
+ export declare function resolveHost(boardDir: string, config: HostConfig, configFile?: string): FleetHost;
85
100
  export {};
86
101
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/host/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AASxC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;;;;AAEhD,qBAAa,WAAY,SAAQ,gBAA4E;CAAG;AAEhH,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CACtC;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,CAoB3E;AAED,eAAO,MAAM,QAAQ,8HAenB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/host/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAO9D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;;;;AAEhD,qBAAa,WAAY,SAAQ,gBAA4E;CAAG;;;;;;AAEhH,qBAAa,kBAAmB,SAAQ,uBAItC;CAAG;AAEL,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CACtC;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAwBhG"}
@@ -1,11 +1,10 @@
1
- import * as Effect from "effect/Effect";
2
- import * as FileSystem from "effect/FileSystem";
3
- import * as Path from "effect/Path";
4
1
  import * as Schema from "effect/Schema";
5
- import { CONFIG_FILE, DEFAULT_NAMESPACE, NAMESPACE, SHARED_LOCAL_POSTGRES } from "#host/defaults.ts";
2
+ import { DEFAULT_READ_RETRY_MS } from "#engine/readRetry.ts";
3
+ import { DEFAULT_NAMESPACE, NAMESPACE, SHARED_LOCAL_POSTGRES } from "#host/defaults.ts";
6
4
  import { DEFAULT_AREA_MERGE_WAIT_MS } from "#scheduling/areas.ts";
7
5
  import { LaunchSettings } from "#session/schema.ts";
8
6
  const Positive = Schema.Int.check(Schema.isGreaterThan(0));
7
+ const Count = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
9
8
  const Text = Schema.String.check(Schema.isMinLength(1));
10
9
  const Guidance = Schema.Union([Text, Schema.Struct({ file: Text })]);
11
10
  export const HostConfig = Schema.Struct({
@@ -18,6 +17,7 @@ export const HostConfig = Schema.Struct({
18
17
  endpoint: Schema.optional(Text),
19
18
  environmentId: Text,
20
19
  projectId: Schema.optional(Text),
20
+ recoveryGraceMs: Schema.optional(Positive),
21
21
  refreshCommand: Schema.optional(Schema.Struct({ args: Schema.Array(Schema.String), command: Text })),
22
22
  requestTimeoutMs: Schema.optional(Positive),
23
23
  threadNamePrefix: Schema.optional(Text),
@@ -29,8 +29,10 @@ export const HostConfig = Schema.Struct({
29
29
  launch: Schema.optional(LaunchSettings),
30
30
  local: Schema.optional(Schema.Struct({ endpoint: Text, requestTimeoutMs: Schema.optional(Positive) })),
31
31
  namespace: Schema.optional(Schema.String.check(Schema.isPattern(NAMESPACE))),
32
+ openPullRequests: Schema.optional(Schema.Struct({ ease: Count, floor: Schema.optional(Count), max: Positive }).check(Schema.makeFilter((curve) => curve.ease <= curve.max || "openPullRequests.ease must not exceed openPullRequests.max"))),
32
33
  provider: Schema.Literals(["local", "cloud"]),
33
34
  quota: Schema.optional(Schema.Literals(["codex", "unlimited"])),
35
+ readRetryMs: Schema.optional(Positive),
34
36
  repository: Schema.optional(Schema.Struct({ branch: Text, remote: Text })),
35
37
  result: Schema.optional(Schema.Literal("github")),
36
38
  stallMinutes: Schema.optional(Positive),
@@ -43,39 +45,35 @@ export const HostConfig = Schema.Struct({
43
45
  });
44
46
  export class HostFailure extends Schema.TaggedError()("HostFailure", { message: Schema.String }) {
45
47
  }
46
- export function resolveHost(boardDir, config) {
48
+ export class HostConfigRejected extends Schema.TaggedError()("HostConfigRejected", {
49
+ field: Schema.optional(Schema.String),
50
+ file: Schema.String,
51
+ message: Schema.String,
52
+ }) {
53
+ }
54
+ export function resolveHost(boardDir, config, configFile) {
47
55
  return {
48
56
  areaMergeWaitMs: config.areaMergeWaitMs ?? DEFAULT_AREA_MERGE_WAIT_MS,
49
57
  backlog: config.backlog ?? 100,
50
58
  boardDir,
51
59
  cloud: config.cloud,
52
60
  concurrency: config.concurrency ?? 100,
61
+ config,
62
+ ...(configFile === undefined ? {} : { configFile }),
53
63
  databaseUrl: config.database?.url ?? SHARED_LOCAL_POSTGRES,
54
64
  interval: config.intervalSeconds ?? 15,
55
65
  launch: config.launch ?? {},
56
66
  local: config.local,
57
67
  maxConnections: config.database?.maxConnections ?? 20,
58
68
  namespace: config.namespace ?? DEFAULT_NAMESPACE,
69
+ ...(config.openPullRequests === undefined ? {} : { openPullRequests: { ...config.openPullRequests, floor: config.openPullRequests.floor ?? 0 } }),
59
70
  provider: config.provider,
60
71
  quota: config.quota ?? "codex",
72
+ readRetryMs: config.readRetryMs ?? DEFAULT_READ_RETRY_MS,
61
73
  repository: config.repository ?? { branch: "main", remote: "origin" },
62
74
  result: config.result,
63
75
  stallMinutes: config.stallMinutes ?? 30,
64
76
  worker: config.worker,
65
77
  };
66
78
  }
67
- export const loadHost = Effect.fn("FleetHost.loadHost")(function* (board, configPath) {
68
- const fs = yield* FileSystem.FileSystem;
69
- const path = yield* Path.Path;
70
- const boardDir = path.resolve(board);
71
- const file = configPath === undefined ? path.join(boardDir, CONFIG_FILE) : path.resolve(configPath);
72
- const text = yield* fs
73
- .readFileString(file)
74
- .pipe(Effect.mapError(() => new HostFailure({ message: `Fleet host configuration is missing or unreadable: ${file}` })));
75
- const config = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(HostConfig))(text).pipe(Effect.mapError((error) => new HostFailure({ message: `Fleet host configuration ${file} is invalid: ${error.message}` })));
76
- if (config.provider === "cloud" && (config.cloud === undefined || config.worker === undefined)) {
77
- return yield* new HostFailure({ message: `Fleet host configuration ${file} selects provider "cloud" without cloud and worker settings` });
78
- }
79
- return resolveHost(boardDir, config);
80
- });
81
79
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/host/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/host/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import * as Path from "effect/Path";
4
+ import { HostConfigRejected, HostFailure } from "#host/config.ts";
5
+ export declare const readHostConfig: (file: string) => Effect.Effect<{
6
+ readonly areaMergeWaitMs?: number | undefined;
7
+ readonly backlog?: number | undefined;
8
+ readonly cloud?: {
9
+ readonly archiveThreads?: boolean | undefined;
10
+ readonly authFile?: string | undefined;
11
+ readonly cwd: string;
12
+ readonly endpoint?: string | undefined;
13
+ readonly environmentId: string;
14
+ readonly projectId?: string | undefined;
15
+ readonly recoveryGraceMs?: number | undefined;
16
+ readonly refreshCommand?: {
17
+ readonly args: readonly string[];
18
+ readonly command: string;
19
+ } | undefined;
20
+ readonly requestTimeoutMs?: number | undefined;
21
+ readonly threadNamePrefix?: string | undefined;
22
+ readonly writableRoots?: readonly string[] | undefined;
23
+ } | undefined;
24
+ readonly concurrency?: number | undefined;
25
+ readonly database?: {
26
+ readonly maxConnections?: number | undefined;
27
+ readonly url?: string | undefined;
28
+ } | undefined;
29
+ readonly intervalSeconds?: number | undefined;
30
+ readonly launch?: {
31
+ readonly effort?: string | undefined;
32
+ readonly model?: string | undefined;
33
+ readonly serviceTier?: string | undefined;
34
+ } | undefined;
35
+ readonly local?: {
36
+ readonly endpoint: string;
37
+ readonly requestTimeoutMs?: number | undefined;
38
+ } | undefined;
39
+ readonly namespace?: string | undefined;
40
+ readonly openPullRequests?: {
41
+ readonly ease: number;
42
+ readonly floor?: number | undefined;
43
+ readonly max: number;
44
+ } | undefined;
45
+ readonly provider: "cloud" | "local";
46
+ readonly quota?: "codex" | "unlimited" | undefined;
47
+ readonly readRetryMs?: number | undefined;
48
+ readonly repository?: {
49
+ readonly branch: string;
50
+ readonly remote: string;
51
+ } | undefined;
52
+ readonly result?: "github" | undefined;
53
+ readonly stallMinutes?: number | undefined;
54
+ readonly worker?: {
55
+ readonly branchPrefix: string;
56
+ readonly reviewerGuidance?: string | {
57
+ readonly file: string;
58
+ } | undefined;
59
+ readonly sharedEnvironment: string;
60
+ readonly workerGuidance?: string | {
61
+ readonly file: string;
62
+ } | undefined;
63
+ } | undefined;
64
+ }, HostConfigRejected, FileSystem.FileSystem>;
65
+ export declare const loadHost: (board: string, configPath?: string | undefined) => Effect.Effect<import("#host/config.ts").FleetHost, HostFailure, FileSystem.FileSystem | Path.Path>;
66
+ //# sourceMappingURL=configFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configFile.d.ts","sourceRoot":"","sources":["../../src/host/configFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAc,kBAAkB,EAAE,WAAW,EAAe,MAAM,iBAAiB,CAAC;AAG3F,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAuBzB,CAAC;AAEH,eAAO,MAAM,QAAQ,wJAMnB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import * as Path from "effect/Path";
4
+ import * as Schema from "effect/Schema";
5
+ import * as SchemaIssue from "effect/SchemaIssue";
6
+ import { HostConfig, HostConfigRejected, HostFailure, resolveHost } from "#host/config.ts";
7
+ import { CONFIG_FILE } from "#host/defaults.ts";
8
+ export const readHostConfig = Effect.fn("FleetHost.readHostConfig")(function* (file) {
9
+ const fs = yield* FileSystem.FileSystem;
10
+ const text = yield* fs
11
+ .readFileString(file)
12
+ .pipe(Effect.mapError(() => new HostConfigRejected({ file, message: `Fleet host configuration is missing or unreadable: ${file}` })));
13
+ const config = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(HostConfig))(text).pipe(Effect.mapError((error) => {
14
+ const field = SchemaIssue.makeFormatterStandardSchemaV1()(error.issue).issues[0]?.path?.map(String).join(".");
15
+ return new HostConfigRejected({
16
+ ...(field === undefined || field === "" ? {} : { field }),
17
+ file,
18
+ message: `Fleet host configuration ${file} is invalid: ${error.message}`,
19
+ });
20
+ }));
21
+ if (config.provider === "cloud" && (config.cloud === undefined || config.worker === undefined)) {
22
+ return yield* new HostConfigRejected({
23
+ field: config.cloud === undefined ? "cloud" : "worker",
24
+ file,
25
+ message: `Fleet host configuration ${file} selects provider "cloud" without cloud and worker settings`,
26
+ });
27
+ }
28
+ return config;
29
+ });
30
+ export const loadHost = Effect.fn("FleetHost.loadHost")(function* (board, configPath) {
31
+ const path = yield* Path.Path;
32
+ const boardDir = path.resolve(board);
33
+ const file = configPath === undefined ? path.join(boardDir, CONFIG_FILE) : path.resolve(configPath);
34
+ const config = yield* readHostConfig(file).pipe(Effect.mapError((rejected) => new HostFailure({ message: rejected.message })));
35
+ return resolveHost(boardDir, config, file);
36
+ });
37
+ //# sourceMappingURL=configFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configFile.js","sourceRoot":"","sources":["../../src/host/configFile.ts"],"names":[],"mappings":"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"}