bunqueue-client 0.1.8 → 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 (580) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/LEGACY.md +460 -0
  3. package/README.md +204 -349
  4. package/dist/ack-batcher.js +7 -67
  5. package/dist/canonical-manifest.json +930 -0
  6. package/dist/chunk-b967v3w3.js +79 -0
  7. package/dist/chunk-fekm0ma6.js +110 -0
  8. package/dist/chunk-jxkszwqp.js +573 -0
  9. package/dist/embedded.js +16418 -0
  10. package/dist/frame.js +14 -57
  11. package/dist/index.d.ts +1 -27
  12. package/dist/index.js +10905 -16
  13. package/dist/legacy.d.ts +1 -0
  14. package/dist/legacy.js +2081 -0
  15. package/dist/{ack-batcher.d.ts → types/sdk/typescript/src/ack-batcher.d.ts} +3 -3
  16. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/aging.d.ts +2 -2
  17. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/batch.d.ts +2 -2
  18. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/bunqueue-api.d.ts +5 -5
  19. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/bunqueue.d.ts +13 -13
  20. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/circuit-breaker.d.ts +2 -2
  21. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/dedup-debounce.d.ts +2 -2
  22. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/dlq-rate-limit.d.ts +2 -2
  23. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/rate-gate.d.ts +1 -1
  24. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/retry.d.ts +1 -1
  25. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/triggers.d.ts +3 -3
  26. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/ttl.d.ts +1 -1
  27. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/types.d.ts +4 -4
  28. package/dist/types/sdk/typescript/src/canonical-transport/bun-sqlite-types.d.ts +21 -0
  29. package/dist/{connection-pool.d.ts → types/sdk/typescript/src/connection-pool.d.ts} +1 -1
  30. package/dist/{connection-types.d.ts → types/sdk/typescript/src/connection-types.d.ts} +1 -1
  31. package/dist/{connection.d.ts → types/sdk/typescript/src/connection.d.ts} +6 -19
  32. package/dist/{errors.d.ts → types/sdk/typescript/src/errors.d.ts} +3 -0
  33. package/dist/types/sdk/typescript/src/flow-commit.d.ts +5 -0
  34. package/dist/types/sdk/typescript/src/flow-plan-legacy.d.ts +13 -0
  35. package/dist/types/sdk/typescript/src/flow-plan.d.ts +29 -0
  36. package/dist/{flow-types.d.ts → types/sdk/typescript/src/flow-types.d.ts} +7 -4
  37. package/dist/{flow.d.ts → types/sdk/typescript/src/flow.d.ts} +6 -10
  38. package/dist/{frame.d.ts → types/sdk/typescript/src/frame.d.ts} +1 -1
  39. package/dist/types/sdk/typescript/src/index.d.ts +10 -0
  40. package/dist/{job.d.ts → types/sdk/typescript/src/job.d.ts} +4 -3
  41. package/dist/types/sdk/typescript/src/legacy.d.ts +27 -0
  42. package/dist/{observability.d.ts → types/sdk/typescript/src/observability.d.ts} +14 -0
  43. package/dist/{queue-admin.d.ts → types/sdk/typescript/src/queue-admin.d.ts} +3 -4
  44. package/dist/{queue-control.d.ts → types/sdk/typescript/src/queue-control.d.ts} +7 -6
  45. package/dist/{queue-query.d.ts → types/sdk/typescript/src/queue-query.d.ts} +3 -3
  46. package/dist/{queue.d.ts → types/sdk/typescript/src/queue.d.ts} +8 -8
  47. package/dist/{responses.d.ts → types/sdk/typescript/src/responses.d.ts} +2 -2
  48. package/dist/types/sdk/typescript/src/serialization.d.ts +10 -0
  49. package/dist/{socket-factory.d.ts → types/sdk/typescript/src/socket-factory.d.ts} +1 -1
  50. package/dist/types/sdk/typescript/src/terminal-outcome.d.ts +8 -0
  51. package/dist/{types.d.ts → types/sdk/typescript/src/types.d.ts} +5 -2
  52. package/dist/{worker-base.d.ts → types/sdk/typescript/src/worker-base.d.ts} +6 -6
  53. package/dist/types/sdk/typescript/src/worker-slot-signal.d.ts +6 -0
  54. package/dist/{worker-types.d.ts → types/sdk/typescript/src/worker-types.d.ts} +3 -3
  55. package/dist/{worker.d.ts → types/sdk/typescript/src/worker.d.ts} +3 -2
  56. package/dist/types/src/application/background/dlq.d.ts +2 -0
  57. package/dist/types/src/application/background/lifecycle.d.ts +4 -0
  58. package/dist/types/src/application/background/recovery/active.d.ts +5 -0
  59. package/dist/types/src/application/background/recovery/index.d.ts +2 -0
  60. package/dist/types/src/application/background/recovery/pending.d.ts +3 -0
  61. package/dist/types/src/application/background/recovery/restore.d.ts +5 -0
  62. package/dist/types/src/application/background/recovery/shared.d.ts +6 -0
  63. package/dist/types/src/application/background/timeouts.d.ts +25 -0
  64. package/dist/types/src/application/backgroundTasks.d.ts +7 -0
  65. package/dist/types/src/application/cleanupTasks.d.ts +10 -0
  66. package/dist/types/src/application/clientTracking.d.ts +44 -0
  67. package/dist/types/src/application/completedCleanup.d.ts +34 -0
  68. package/dist/types/src/application/completedRetry.d.ts +21 -0
  69. package/dist/types/src/application/contextFactory.d.ts +49 -0
  70. package/dist/types/src/application/dependencyCompletions.d.ts +63 -0
  71. package/dist/types/src/application/dependencyProcessor.d.ts +15 -0
  72. package/dist/types/src/application/dependencyResultTracker.d.ts +18 -0
  73. package/dist/types/src/application/dlqManager.d.ts +49 -0
  74. package/dist/types/src/application/dlqRetry.d.ts +12 -0
  75. package/dist/types/src/application/emptyQueueCleanup.d.ts +3 -0
  76. package/dist/types/src/application/eventsManager.d.ts +50 -0
  77. package/dist/types/src/application/flowFailureRecovery.d.ts +20 -0
  78. package/dist/types/src/application/flowParentBackpatch.d.ts +27 -0
  79. package/dist/types/src/application/jobLogsManager.d.ts +21 -0
  80. package/dist/types/src/application/latencyTracker.d.ts +39 -0
  81. package/dist/types/src/application/lockManager.d.ts +15 -0
  82. package/dist/types/src/application/lockOperations.d.ts +38 -0
  83. package/dist/types/src/application/metricsExporter.d.ts +27 -0
  84. package/dist/types/src/application/monitoringChecks.d.ts +36 -0
  85. package/dist/types/src/application/operations/ack/batch.d.ts +8 -0
  86. package/dist/types/src/application/operations/ack/completion.d.ts +3 -0
  87. package/dist/types/src/application/operations/ack/failure.d.ts +3 -0
  88. package/dist/types/src/application/operations/ack.d.ts +5 -0
  89. package/dist/types/src/application/operations/ackHelpers.d.ts +36 -0
  90. package/dist/types/src/application/operations/customId.d.ts +51 -0
  91. package/dist/types/src/application/operations/flowPush.d.ts +9 -0
  92. package/dist/types/src/application/operations/flowTopologyValidation.d.ts +3 -0
  93. package/dist/types/src/application/operations/flowValidation.d.ts +3 -0
  94. package/dist/types/src/application/operations/jobClaim.d.ts +17 -0
  95. package/dist/types/src/application/operations/jobManagement.d.ts +43 -0
  96. package/dist/types/src/application/operations/jobMoveOperations.d.ts +9 -0
  97. package/dist/types/src/application/operations/jobPromotion.d.ts +7 -0
  98. package/dist/types/src/application/operations/jobStateTransitions.d.ts +15 -0
  99. package/dist/types/src/application/operations/parentLink.d.ts +36 -0
  100. package/dist/types/src/application/operations/parentLinkInput.d.ts +8 -0
  101. package/dist/types/src/application/operations/pull.d.ts +20 -0
  102. package/dist/types/src/application/operations/pullFinalization.d.ts +6 -0
  103. package/dist/types/src/application/operations/pullStateTransition.d.ts +51 -0
  104. package/dist/types/src/application/operations/push.d.ts +13 -0
  105. package/dist/types/src/application/operations/pushAdmission.d.ts +36 -0
  106. package/dist/types/src/application/operations/pushBatch.d.ts +4 -0
  107. package/dist/types/src/application/operations/pushContext.d.ts +48 -0
  108. package/dist/types/src/application/operations/pushDeduplication.d.ts +42 -0
  109. package/dist/types/src/application/operations/pushInsert.d.ts +39 -0
  110. package/dist/types/src/application/operations/pushLocks.d.ts +15 -0
  111. package/dist/types/src/application/operations/query/collect.d.ts +12 -0
  112. package/dist/types/src/application/operations/query/jobLookup.d.ts +9 -0
  113. package/dist/types/src/application/operations/query/pagination.d.ts +8 -0
  114. package/dist/types/src/application/operations/query/state.d.ts +4 -0
  115. package/dist/types/src/application/operations/queryOperations.d.ts +5 -0
  116. package/dist/types/src/application/operations/queueControl.d.ts +50 -0
  117. package/dist/types/src/application/prometheusOperationalMetrics.d.ts +31 -0
  118. package/dist/types/src/application/queue-manager/ack.d.ts +23 -0
  119. package/dist/types/src/application/queue-manager/configuration.d.ts +27 -0
  120. package/dist/types/src/application/queue-manager/context.d.ts +5 -0
  121. package/dist/types/src/application/queue-manager/control.d.ts +20 -0
  122. package/dist/types/src/application/queue-manager/delivery.d.ts +33 -0
  123. package/dist/types/src/application/queue-manager/dependencies.d.ts +8 -0
  124. package/dist/types/src/application/queue-manager/dependency-runtime.d.ts +8 -0
  125. package/dist/types/src/application/queue-manager/flow-failures.d.ts +18 -0
  126. package/dist/types/src/application/queue-manager/flow-options.d.ts +8 -0
  127. package/dist/types/src/application/queue-manager/job-management.d.ts +17 -0
  128. package/dist/types/src/application/queue-manager/lifecycle.d.ts +4 -0
  129. package/dist/types/src/application/queue-manager/limits.d.ts +58 -0
  130. package/dist/types/src/application/queue-manager/locks.d.ts +21 -0
  131. package/dist/types/src/application/queue-manager/observability.d.ts +16 -0
  132. package/dist/types/src/application/queue-manager/queries.d.ts +24 -0
  133. package/dist/types/src/application/queue-manager/repeat.d.ts +4 -0
  134. package/dist/types/src/application/queue-manager/services.d.ts +19 -0
  135. package/dist/types/src/application/queue-manager/state.d.ts +96 -0
  136. package/dist/types/src/application/queue-manager/stats.d.ts +28 -0
  137. package/dist/types/src/application/queueManager.d.ts +5 -0
  138. package/dist/types/src/application/queueStatsAggregator.d.ts +23 -0
  139. package/dist/types/src/application/queueTelemetryJournal.d.ts +24 -0
  140. package/dist/types/src/application/repeatJobs.d.ts +7 -0
  141. package/dist/types/src/application/stallDetection.d.ts +10 -0
  142. package/dist/types/src/application/statsManager.d.ts +59 -0
  143. package/dist/types/src/application/taskErrorTracking.d.ts +22 -0
  144. package/dist/types/src/application/throughputTracker.d.ts +34 -0
  145. package/dist/types/src/application/types/ack.d.ts +136 -0
  146. package/dist/types/src/application/types/background.d.ts +18 -0
  147. package/dist/types/src/application/types/config.d.ts +41 -0
  148. package/dist/types/src/application/types/contextFactory.d.ts +87 -0
  149. package/dist/types/src/application/types/contexts.d.ts +114 -0
  150. package/dist/types/src/application/types/index.d.ts +7 -0
  151. package/dist/types/src/application/types/query.d.ts +23 -0
  152. package/dist/types/src/application/types/queueManager.d.ts +98 -0
  153. package/dist/types/src/application/webhookManager.d.ts +47 -0
  154. package/dist/types/src/application/workerManager.d.ts +61 -0
  155. package/dist/types/src/client/bunqueue/aging.d.ts +16 -0
  156. package/dist/types/src/client/bunqueue/batch.d.ts +16 -0
  157. package/dist/types/src/client/bunqueue/cancellation.d.ts +21 -0
  158. package/dist/types/src/client/bunqueue/circuitBreaker.d.ts +21 -0
  159. package/dist/types/src/client/bunqueue/dedupDebounce.d.ts +12 -0
  160. package/dist/types/src/client/bunqueue/dlqRateLimit.d.ts +26 -0
  161. package/dist/types/src/client/bunqueue/retry.d.ts +8 -0
  162. package/dist/types/src/client/bunqueue/runtime.d.ts +35 -0
  163. package/dist/types/src/client/bunqueue/triggers.d.ts +17 -0
  164. package/dist/types/src/client/bunqueue/ttl.d.ts +17 -0
  165. package/dist/types/src/client/bunqueue/types.d.ts +147 -0
  166. package/dist/types/src/client/bunqueue.d.ts +73 -0
  167. package/dist/types/src/client/dlqConversion.d.ts +5 -0
  168. package/dist/types/src/client/errors.d.ts +24 -0
  169. package/dist/types/src/client/events.d.ts +85 -0
  170. package/dist/types/src/client/flow.d.ts +70 -0
  171. package/dist/types/src/client/flowAtomic.d.ts +9 -0
  172. package/dist/types/src/client/flowJobCoreMethods.d.ts +28 -0
  173. package/dist/types/src/client/flowJobDependencies.d.ts +7 -0
  174. package/dist/types/src/client/flowJobFactory.d.ts +24 -0
  175. package/dist/types/src/client/flowJobMoveMethods.d.ts +16 -0
  176. package/dist/types/src/client/flowJobTypes.d.ts +29 -0
  177. package/dist/types/src/client/flowLegacyPlan.d.ts +16 -0
  178. package/dist/types/src/client/flowOptions.d.ts +10 -0
  179. package/dist/types/src/client/flowPlan.d.ts +16 -0
  180. package/dist/types/src/client/flowPush.d.ts +27 -0
  181. package/dist/types/src/client/flowReader.d.ts +10 -0
  182. package/dist/types/src/client/flowResults.d.ts +11 -0
  183. package/dist/types/src/client/flowTypes.d.ts +77 -0
  184. package/dist/types/src/client/forwarder.d.ts +74 -0
  185. package/dist/types/src/client/groupId.d.ts +1 -0
  186. package/dist/types/src/client/index.d.ts +46 -0
  187. package/dist/types/src/client/jobConversion.d.ts +10 -0
  188. package/dist/types/src/client/jobConversionHelpers.d.ts +28 -0
  189. package/dist/types/src/client/jobConversionTypes.d.ts +88 -0
  190. package/dist/types/src/client/jobDeduplication.d.ts +6 -0
  191. package/dist/types/src/client/jobHelpers.d.ts +31 -0
  192. package/dist/types/src/client/legacyConnectionOptions.d.ts +8 -0
  193. package/dist/types/src/client/manager.d.ts +15 -0
  194. package/dist/types/src/client/pro.d.ts +9 -0
  195. package/dist/types/src/client/queue/addBatcher.d.ts +59 -0
  196. package/dist/types/src/client/queue/bullmqCompat.d.ts +57 -0
  197. package/dist/types/src/client/queue/deduplication.d.ts +14 -0
  198. package/dist/types/src/client/queue/dlq.d.ts +61 -0
  199. package/dist/types/src/client/queue/dlqJobMethods.d.ts +9 -0
  200. package/dist/types/src/client/queue/dlqOps.d.ts +26 -0
  201. package/dist/types/src/client/queue/dlqStats.d.ts +3 -0
  202. package/dist/types/src/client/queue/failWire.d.ts +17 -0
  203. package/dist/types/src/client/queue/helpers.d.ts +19 -0
  204. package/dist/types/src/client/queue/job-proxy/dependencies.d.ts +9 -0
  205. package/dist/types/src/client/queue/job-proxy/reflection.d.ts +2 -0
  206. package/dist/types/src/client/queue/job-proxy/simple.d.ts +3 -0
  207. package/dist/types/src/client/queue/job-proxy/tcp.d.ts +4 -0
  208. package/dist/types/src/client/queue/jobMetadata.d.ts +10 -0
  209. package/dist/types/src/client/queue/jobMove.d.ts +32 -0
  210. package/dist/types/src/client/queue/jobProxy.d.ts +4 -0
  211. package/dist/types/src/client/queue/operations/add/bulk.d.ts +7 -0
  212. package/dist/types/src/client/queue/operations/add/payload.d.ts +25 -0
  213. package/dist/types/src/client/queue/operations/add/single.d.ts +3 -0
  214. package/dist/types/src/client/queue/operations/add.d.ts +2 -0
  215. package/dist/types/src/client/queue/operations/control.d.ts +42 -0
  216. package/dist/types/src/client/queue/operations/counts.d.ts +48 -0
  217. package/dist/types/src/client/queue/operations/groups.d.ts +24 -0
  218. package/dist/types/src/client/queue/operations/management.d.ts +51 -0
  219. package/dist/types/src/client/queue/operations/query.d.ts +50 -0
  220. package/dist/types/src/client/queue/operations/queryStates.d.ts +13 -0
  221. package/dist/types/src/client/queue/operations/queryTcpPages.d.ts +14 -0
  222. package/dist/types/src/client/queue/queue.d.ts +12 -0
  223. package/dist/types/src/client/queue/rateLimit.d.ts +46 -0
  224. package/dist/types/src/client/queue/runtime/compatibility.d.ts +13 -0
  225. package/dist/types/src/client/queue/runtime/configuration.d.ts +46 -0
  226. package/dist/types/src/client/queue/runtime/connection.d.ts +6 -0
  227. package/dist/types/src/client/queue/runtime/control.d.ts +41 -0
  228. package/dist/types/src/client/queue/runtime/queries.d.ts +66 -0
  229. package/dist/types/src/client/queue/runtime/scheduling.d.ts +33 -0
  230. package/dist/types/src/client/queue/runtime/state.d.ts +101 -0
  231. package/dist/types/src/client/queue/scheduler.d.ts +58 -0
  232. package/dist/types/src/client/queue/schedulerPagination.d.ts +7 -0
  233. package/dist/types/src/client/queue/stall.d.ts +20 -0
  234. package/dist/types/src/client/queue/types/add.d.ts +40 -0
  235. package/dist/types/src/client/queue/types/contexts.d.ts +33 -0
  236. package/dist/types/src/client/queue/types/index.d.ts +3 -0
  237. package/dist/types/src/client/queue/types/job.d.ts +50 -0
  238. package/dist/types/src/client/queue/types/runtime.d.ts +35 -0
  239. package/dist/types/src/client/queue/workers.d.ts +36 -0
  240. package/dist/types/src/client/queue-events/tcpSubscription.d.ts +23 -0
  241. package/dist/types/src/client/queue.d.ts +5 -0
  242. package/dist/types/src/client/queueGroup.d.ts +51 -0
  243. package/dist/types/src/client/resolveToken.d.ts +10 -0
  244. package/dist/types/src/client/sandboxed/index.d.ts +7 -0
  245. package/dist/types/src/client/sandboxed/queueOps.d.ts +24 -0
  246. package/dist/types/src/client/sandboxed/runtime/dispatch.d.ts +13 -0
  247. package/dist/types/src/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  248. package/dist/types/src/client/sandboxed/runtime/log.d.ts +1 -0
  249. package/dist/types/src/client/sandboxed/runtime/pool.d.ts +11 -0
  250. package/dist/types/src/client/sandboxed/runtime/recovery.d.ts +11 -0
  251. package/dist/types/src/client/sandboxed/runtime/state.d.ts +39 -0
  252. package/dist/types/src/client/sandboxed/types/index.d.ts +2 -0
  253. package/dist/types/src/client/sandboxed/types/options.d.ts +27 -0
  254. package/dist/types/src/client/sandboxed/types/process.d.ts +39 -0
  255. package/dist/types/src/client/sandboxed/worker.d.ts +4 -0
  256. package/dist/types/src/client/sandboxed/wrapper.d.ts +12 -0
  257. package/dist/types/src/client/sandboxedWorker.d.ts +6 -0
  258. package/dist/types/src/client/tcp/client.d.ts +6 -0
  259. package/dist/types/src/client/tcp/commandQueue.d.ts +23 -0
  260. package/dist/types/src/client/tcp/connection.d.ts +4 -0
  261. package/dist/types/src/client/tcp/errors.d.ts +6 -0
  262. package/dist/types/src/client/tcp/health.d.ts +60 -0
  263. package/dist/types/src/client/tcp/index.d.ts +11 -0
  264. package/dist/types/src/client/tcp/reconnect.d.ts +47 -0
  265. package/dist/types/src/client/tcp/runtime/commands.d.ts +9 -0
  266. package/dist/types/src/client/tcp/runtime/connectivity.d.ts +13 -0
  267. package/dist/types/src/client/tcp/runtime/health.d.ts +14 -0
  268. package/dist/types/src/client/tcp/runtime/lifecycle.d.ts +8 -0
  269. package/dist/types/src/client/tcp/runtime/state.d.ts +50 -0
  270. package/dist/types/src/client/tcp/shared.d.ts +12 -0
  271. package/dist/types/src/client/tcp/transport.d.ts +18 -0
  272. package/dist/types/src/client/tcp/types/command.d.ts +9 -0
  273. package/dist/types/src/client/tcp/types/connection.d.ts +31 -0
  274. package/dist/types/src/client/tcp/types/index.d.ts +5 -0
  275. package/dist/types/src/client/tcp/types/socket.d.ts +8 -0
  276. package/dist/types/src/client/tcp/types/tls.d.ts +4 -0
  277. package/dist/types/src/client/tcp/types.d.ts +2 -0
  278. package/dist/types/src/client/tcpClient.d.ts +6 -0
  279. package/dist/types/src/client/tcpPool.d.ts +69 -0
  280. package/dist/types/src/client/types/connection.d.ts +30 -0
  281. package/dist/types/src/client/types/dlq.d.ts +45 -0
  282. package/dist/types/src/client/types/events.d.ts +54 -0
  283. package/dist/types/src/client/types/flow.d.ts +22 -0
  284. package/dist/types/src/client/types/index.d.ts +10 -0
  285. package/dist/types/src/client/types/job.d.ts +131 -0
  286. package/dist/types/src/client/types/metrics.d.ts +1 -0
  287. package/dist/types/src/client/types/options.d.ts +70 -0
  288. package/dist/types/src/client/types/worker.d.ts +54 -0
  289. package/dist/types/src/client/types.d.ts +2 -0
  290. package/dist/types/src/client/worker/ackBatcher.d.ts +55 -0
  291. package/dist/types/src/client/worker/ackFrontier.d.ts +21 -0
  292. package/dist/types/src/client/worker/ackOutcome.d.ts +8 -0
  293. package/dist/types/src/client/worker/batchExecution.d.ts +14 -0
  294. package/dist/types/src/client/worker/constants.d.ts +7 -0
  295. package/dist/types/src/client/worker/groupConcurrency.d.ts +49 -0
  296. package/dist/types/src/client/worker/handlers/completion.d.ts +29 -0
  297. package/dist/types/src/client/worker/handlers/dependencies.d.ts +11 -0
  298. package/dist/types/src/client/worker/handlers/mutations.d.ts +23 -0
  299. package/dist/types/src/client/worker/handlers/queries.d.ts +15 -0
  300. package/dist/types/src/client/worker/jobParser.d.ts +9 -0
  301. package/dist/types/src/client/worker/processor.d.ts +11 -0
  302. package/dist/types/src/client/worker/processorHandlers.d.ts +4 -0
  303. package/dist/types/src/client/worker/processorOutcome.d.ts +14 -0
  304. package/dist/types/src/client/worker/processorResult.d.ts +2 -0
  305. package/dist/types/src/client/worker/runtime/buffer.d.ts +8 -0
  306. package/dist/types/src/client/worker/runtime/control.d.ts +28 -0
  307. package/dist/types/src/client/worker/runtime/execution.d.ts +16 -0
  308. package/dist/types/src/client/worker/runtime/lifecycle.d.ts +7 -0
  309. package/dist/types/src/client/worker/runtime/manual.d.ts +10 -0
  310. package/dist/types/src/client/worker/runtime/options.d.ts +5 -0
  311. package/dist/types/src/client/worker/runtime/polling.d.ts +14 -0
  312. package/dist/types/src/client/worker/runtime/state.d.ts +121 -0
  313. package/dist/types/src/client/worker/types/index.d.ts +5 -0
  314. package/dist/types/src/client/worker/types/manual.d.ts +7 -0
  315. package/dist/types/src/client/worker/types/options.d.ts +26 -0
  316. package/dist/types/src/client/worker/types/outcome.d.ts +23 -0
  317. package/dist/types/src/client/worker/types/processor.d.ts +25 -0
  318. package/dist/types/src/client/worker/types/transport.d.ts +11 -0
  319. package/dist/types/src/client/worker/worker.d.ts +6 -0
  320. package/dist/types/src/client/worker/workerHeartbeat.d.ts +15 -0
  321. package/dist/types/src/client/worker/workerPull.d.ts +24 -0
  322. package/dist/types/src/client/worker/workerRateLimiter.d.ts +51 -0
  323. package/dist/types/src/client/worker.d.ts +6 -0
  324. package/dist/types/src/client/workflow/admission.d.ts +45 -0
  325. package/dist/types/src/client/workflow/clock.d.ts +60 -0
  326. package/dist/types/src/client/workflow/compensationChild.d.ts +33 -0
  327. package/dist/types/src/client/workflow/compensationClaim.d.ts +11 -0
  328. package/dist/types/src/client/workflow/compensationPass.d.ts +17 -0
  329. package/dist/types/src/client/workflow/compensationSupport.d.ts +24 -0
  330. package/dist/types/src/client/workflow/compensator.d.ts +34 -0
  331. package/dist/types/src/client/workflow/definitionGuard.d.ts +11 -0
  332. package/dist/types/src/client/workflow/emitter.d.ts +17 -0
  333. package/dist/types/src/client/workflow/engine.d.ts +66 -0
  334. package/dist/types/src/client/workflow/eventTypes.d.ts +44 -0
  335. package/dist/types/src/client/workflow/executionFence.d.ts +15 -0
  336. package/dist/types/src/client/workflow/executionTypes.d.ts +133 -0
  337. package/dist/types/src/client/workflow/executor.d.ts +52 -0
  338. package/dist/types/src/client/workflow/executorLifecycle.d.ts +19 -0
  339. package/dist/types/src/client/workflow/executorNodes.d.ts +18 -0
  340. package/dist/types/src/client/workflow/executorQueue.d.ts +9 -0
  341. package/dist/types/src/client/workflow/forEachRunner.d.ts +4 -0
  342. package/dist/types/src/client/workflow/identity.d.ts +48 -0
  343. package/dist/types/src/client/workflow/index.d.ts +23 -0
  344. package/dist/types/src/client/workflow/loops.d.ts +11 -0
  345. package/dist/types/src/client/workflow/mapRunner.d.ts +4 -0
  346. package/dist/types/src/client/workflow/recovery.d.ts +32 -0
  347. package/dist/types/src/client/workflow/rollbackControl.d.ts +37 -0
  348. package/dist/types/src/client/workflow/runner.d.ts +23 -0
  349. package/dist/types/src/client/workflow/runnerTiming.d.ts +14 -0
  350. package/dist/types/src/client/workflow/stepTypes.d.ts +171 -0
  351. package/dist/types/src/client/workflow/store.d.ts +83 -0
  352. package/dist/types/src/client/workflow/storeCodec.d.ts +7 -0
  353. package/dist/types/src/client/workflow/storeExecutionCodec.d.ts +11 -0
  354. package/dist/types/src/client/workflow/storeListing.d.ts +11 -0
  355. package/dist/types/src/client/workflow/storeMaintenance.d.ts +4 -0
  356. package/dist/types/src/client/workflow/storeSignals.d.ts +70 -0
  357. package/dist/types/src/client/workflow/subWorkflowRunner.d.ts +14 -0
  358. package/dist/types/src/client/workflow/types.d.ts +4 -0
  359. package/dist/types/src/client/workflow/unwindPlan.d.ts +87 -0
  360. package/dist/types/src/client/workflow/waitFor.d.ts +56 -0
  361. package/dist/types/src/client/workflow/workflow.d.ts +70 -0
  362. package/dist/types/src/client/workflow/workflowDecisions.d.ts +11 -0
  363. package/dist/types/src/client/workflow/workflowDefinition.d.ts +16 -0
  364. package/dist/types/src/client/workflow/workflowIntrospection.d.ts +5 -0
  365. package/dist/types/src/client/workflow/workflowValidation.d.ts +44 -0
  366. package/dist/types/src/config/index.d.ts +9 -0
  367. package/dist/types/src/config/loader.d.ts +7 -0
  368. package/dist/types/src/config/resolve.d.ts +59 -0
  369. package/dist/types/src/config/types.d.ts +88 -0
  370. package/dist/types/src/domain/job/constants.d.ts +12 -0
  371. package/dist/types/src/domain/job/create.d.ts +2 -0
  372. package/dist/types/src/domain/job/groupFifoOrder.d.ts +9 -0
  373. package/dist/types/src/domain/job/ids.d.ts +7 -0
  374. package/dist/types/src/domain/job/locks.d.ts +4 -0
  375. package/dist/types/src/domain/job/payload.d.ts +18 -0
  376. package/dist/types/src/domain/job/state.d.ts +8 -0
  377. package/dist/types/src/domain/job/terminal.d.ts +3 -0
  378. package/dist/types/src/domain/queue/dependencyTracker.d.ts +78 -0
  379. package/dist/types/src/domain/queue/dlqShard.d.ts +66 -0
  380. package/dist/types/src/domain/queue/groupLimiterManager.d.ts +30 -0
  381. package/dist/types/src/domain/queue/groupScheduler.d.ts +31 -0
  382. package/dist/types/src/domain/queue/groupSchedulerOrder.d.ts +6 -0
  383. package/dist/types/src/domain/queue/limiterManager.d.ts +68 -0
  384. package/dist/types/src/domain/queue/priorityQueue.d.ts +54 -0
  385. package/dist/types/src/domain/queue/priorityQueueOrder.d.ts +3 -0
  386. package/dist/types/src/domain/queue/shard/dependencies.d.ts +11 -0
  387. package/dist/types/src/domain/queue/shard/dlq.d.ts +26 -0
  388. package/dist/types/src/domain/queue/shard/keys.d.ts +19 -0
  389. package/dist/types/src/domain/queue/shard/lifecycle.d.ts +10 -0
  390. package/dist/types/src/domain/queue/shard/limits.d.ts +47 -0
  391. package/dist/types/src/domain/queue/shard/metrics.d.ts +32 -0
  392. package/dist/types/src/domain/queue/shard/state.d.ts +40 -0
  393. package/dist/types/src/domain/queue/shard.d.ts +7 -0
  394. package/dist/types/src/domain/queue/shardCounters.d.ts +35 -0
  395. package/dist/types/src/domain/queue/temporalIndex.d.ts +24 -0
  396. package/dist/types/src/domain/queue/temporalManager.d.ts +72 -0
  397. package/dist/types/src/domain/queue/uniqueKeyManager.d.ts +33 -0
  398. package/dist/types/src/domain/queue/waiterManager.d.ts +18 -0
  399. package/dist/types/src/domain/response/builders.d.ts +15 -0
  400. package/dist/types/src/domain/types/command.d.ts +2 -0
  401. package/dist/types/src/domain/types/commands/base.d.ts +5 -0
  402. package/dist/types/src/domain/types/commands/core.d.ts +110 -0
  403. package/dist/types/src/domain/types/commands/cron.d.ts +36 -0
  404. package/dist/types/src/domain/types/commands/dashboard.d.ts +13 -0
  405. package/dist/types/src/domain/types/commands/dlq.d.ts +44 -0
  406. package/dist/types/src/domain/types/commands/extended.d.ts +63 -0
  407. package/dist/types/src/domain/types/commands/index.d.ts +12 -0
  408. package/dist/types/src/domain/types/commands/limits.d.ts +108 -0
  409. package/dist/types/src/domain/types/commands/management.d.ts +73 -0
  410. package/dist/types/src/domain/types/commands/monitoring.d.ts +49 -0
  411. package/dist/types/src/domain/types/commands/protocol.d.ts +20 -0
  412. package/dist/types/src/domain/types/commands/query.d.ts +46 -0
  413. package/dist/types/src/domain/types/commands/union.d.ts +13 -0
  414. package/dist/types/src/domain/types/commands/workers.d.ts +39 -0
  415. package/dist/types/src/domain/types/cron.d.ts +91 -0
  416. package/dist/types/src/domain/types/deduplication.d.ts +43 -0
  417. package/dist/types/src/domain/types/dlq.d.ts +136 -0
  418. package/dist/types/src/domain/types/flow.d.ts +25 -0
  419. package/dist/types/src/domain/types/group.d.ts +26 -0
  420. package/dist/types/src/domain/types/job.d.ts +8 -0
  421. package/dist/types/src/domain/types/jobs/model.d.ts +153 -0
  422. package/dist/types/src/domain/types/metrics.d.ts +16 -0
  423. package/dist/types/src/domain/types/priorityQueue.d.ts +13 -0
  424. package/dist/types/src/domain/types/protocol.d.ts +5 -0
  425. package/dist/types/src/domain/types/queue.d.ts +110 -0
  426. package/dist/types/src/domain/types/response.d.ts +3 -0
  427. package/dist/types/src/domain/types/responses/model.d.ts +152 -0
  428. package/dist/types/src/domain/types/shard.d.ts +4 -0
  429. package/dist/types/src/domain/types/stall.d.ts +48 -0
  430. package/dist/types/src/domain/types/webhook.d.ts +42 -0
  431. package/dist/types/src/domain/types/worker.d.ts +40 -0
  432. package/dist/types/src/infrastructure/backup/backupTelemetry.d.ts +30 -0
  433. package/dist/types/src/infrastructure/backup/s3BackupConfig.d.ts +80 -0
  434. package/dist/types/src/infrastructure/cloud/types/config.d.ts +18 -0
  435. package/dist/types/src/infrastructure/cloud/types/event.d.ts +14 -0
  436. package/dist/types/src/infrastructure/cloud/types/snapshot.d.ts +52 -0
  437. package/dist/types/src/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  438. package/dist/types/src/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  439. package/dist/types/src/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  440. package/dist/types/src/infrastructure/cloud/types.d.ts +3 -0
  441. package/dist/types/src/infrastructure/persistence/batchInsert.d.ts +13 -0
  442. package/dist/types/src/infrastructure/persistence/completedJobCountSchema.d.ts +6 -0
  443. package/dist/types/src/infrastructure/persistence/dependencyCompletionSchema.d.ts +6 -0
  444. package/dist/types/src/infrastructure/persistence/dependencyCompletionStore.d.ts +40 -0
  445. package/dist/types/src/infrastructure/persistence/index.d.ts +5 -0
  446. package/dist/types/src/infrastructure/persistence/jobOptionsBlob.d.ts +19 -0
  447. package/dist/types/src/infrastructure/persistence/legacyNameMigration.d.ts +17 -0
  448. package/dist/types/src/infrastructure/persistence/migrationProgressSchema.d.ts +2 -0
  449. package/dist/types/src/infrastructure/persistence/migrations.d.ts +3 -0
  450. package/dist/types/src/infrastructure/persistence/schema.d.ts +8 -0
  451. package/dist/types/src/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  452. package/dist/types/src/infrastructure/persistence/sqlite/completed.d.ts +17 -0
  453. package/dist/types/src/infrastructure/persistence/sqlite/control.d.ts +48 -0
  454. package/dist/types/src/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  455. package/dist/types/src/infrastructure/persistence/sqlite/jobLifecycle.d.ts +17 -0
  456. package/dist/types/src/infrastructure/persistence/sqlite/jobs.d.ts +15 -0
  457. package/dist/types/src/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  458. package/dist/types/src/infrastructure/persistence/sqlite/mutations.d.ts +27 -0
  459. package/dist/types/src/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  460. package/dist/types/src/infrastructure/persistence/sqlite/queueDeletionSql.d.ts +3 -0
  461. package/dist/types/src/infrastructure/persistence/sqlite/records.d.ts +24 -0
  462. package/dist/types/src/infrastructure/persistence/sqlite/state.d.ts +42 -0
  463. package/dist/types/src/infrastructure/persistence/sqlite/telemetry.d.ts +17 -0
  464. package/dist/types/src/infrastructure/persistence/sqlite/telemetryStore.d.ts +30 -0
  465. package/dist/types/src/infrastructure/persistence/sqlite/telemetryWrites.d.ts +47 -0
  466. package/dist/types/src/infrastructure/persistence/sqlite.d.ts +6 -0
  467. package/dist/types/src/infrastructure/persistence/sqliteBatch.d.ts +4 -0
  468. package/dist/types/src/infrastructure/persistence/sqliteMigration.d.ts +5 -0
  469. package/dist/types/src/infrastructure/persistence/sqliteSerializer.d.ts +50 -0
  470. package/dist/types/src/infrastructure/persistence/statements.d.ts +86 -0
  471. package/dist/types/src/infrastructure/persistence/types/admission.d.ts +8 -0
  472. package/dist/types/src/infrastructure/persistence/types/batch.d.ts +12 -0
  473. package/dist/types/src/infrastructure/persistence/types/sqlite.d.ts +27 -0
  474. package/dist/types/src/infrastructure/persistence/writeBuffer.d.ts +48 -0
  475. package/dist/types/src/infrastructure/persistence/writeBufferPending.d.ts +11 -0
  476. package/dist/types/src/infrastructure/scheduler/cron/execution.d.ts +12 -0
  477. package/dist/types/src/infrastructure/scheduler/cron/persisted.d.ts +5 -0
  478. package/dist/types/src/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  479. package/dist/types/src/infrastructure/scheduler/cron/validation.d.ts +3 -0
  480. package/dist/types/src/infrastructure/scheduler/cronParser.d.ts +45 -0
  481. package/dist/types/src/infrastructure/scheduler/cronScheduler.d.ts +5 -0
  482. package/dist/types/src/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  483. package/dist/types/src/infrastructure/server/protocol/commands.d.ts +8 -0
  484. package/dist/types/src/infrastructure/server/protocol/frameParser.d.ts +16 -0
  485. package/dist/types/src/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  486. package/dist/types/src/infrastructure/server/protocol/validation.d.ts +10 -0
  487. package/dist/types/src/infrastructure/server/protocol.d.ts +6 -0
  488. package/dist/types/src/infrastructure/server/socketWriteQueue.d.ts +66 -0
  489. package/dist/types/src/infrastructure/server/types/protocol.d.ts +4 -0
  490. package/dist/types/src/require-bun.d.ts +13 -0
  491. package/dist/types/src/shared/asyncLock.d.ts +13 -0
  492. package/dist/types/src/shared/boundedMap.d.ts +30 -0
  493. package/dist/types/src/shared/boundedSet.d.ts +26 -0
  494. package/dist/types/src/shared/hash.d.ts +30 -0
  495. package/dist/types/src/shared/histogram.d.ts +23 -0
  496. package/dist/types/src/shared/lock.d.ts +13 -0
  497. package/dist/types/src/shared/lockError.d.ts +3 -0
  498. package/dist/types/src/shared/lockTimeout.d.ts +2 -0
  499. package/dist/types/src/shared/logger.d.ts +48 -0
  500. package/dist/types/src/shared/lru.d.ts +9 -0
  501. package/dist/types/src/shared/lruMap.d.ts +42 -0
  502. package/dist/types/src/shared/lruSet.d.ts +36 -0
  503. package/dist/types/src/shared/minHeap.d.ts +43 -0
  504. package/dist/types/src/shared/msgpack.d.ts +3 -0
  505. package/dist/types/src/shared/pausedView.d.ts +19 -0
  506. package/dist/types/src/shared/rwLock.d.ts +22 -0
  507. package/dist/types/src/shared/serialization.d.ts +24 -0
  508. package/dist/types/src/shared/skipList.d.ts +97 -0
  509. package/dist/types/src/shared/skipListNodes.d.ts +6 -0
  510. package/dist/types/src/shared/storageHealth.d.ts +9 -0
  511. package/dist/types/src/shared/ttlMap.d.ts +81 -0
  512. package/dist/types/src/shared/types/lock.d.ts +7 -0
  513. package/dist/types/src/shared/types/skipList.d.ts +4 -0
  514. package/dist/types/src/shared/version.d.ts +4 -0
  515. package/dist/types/src/shared/webhookValidation.d.ts +6 -0
  516. package/package.json +27 -9
  517. package/src/ack-batcher.ts +8 -5
  518. package/src/bunqueue/bunqueue-api.ts +1 -1
  519. package/src/bunqueue/bunqueue.ts +2 -1
  520. package/src/canonical-transport/bun-sqlite-types.ts +22 -0
  521. package/src/canonical-transport/dlq.ts +12 -0
  522. package/src/canonical-transport/embedded.ts +55 -0
  523. package/src/canonical-transport/runtime.ts +49 -0
  524. package/src/canonical-transport/thread-worker.ts +83 -0
  525. package/src/canonical-transport/transport.ts +153 -0
  526. package/src/connection.ts +25 -30
  527. package/src/errors.ts +3 -0
  528. package/src/flow-commit.ts +45 -0
  529. package/src/flow-plan-legacy.ts +117 -0
  530. package/src/flow-plan.ts +209 -0
  531. package/src/flow-types.ts +4 -0
  532. package/src/flow.ts +31 -163
  533. package/src/frame.ts +5 -2
  534. package/src/index.ts +7 -75
  535. package/src/job.ts +43 -9
  536. package/src/legacy.ts +91 -0
  537. package/src/observability.ts +59 -1
  538. package/src/queue-admin.ts +5 -5
  539. package/src/queue-control.ts +12 -8
  540. package/src/queue.ts +10 -6
  541. package/src/serialization.ts +93 -0
  542. package/src/terminal-outcome.ts +58 -0
  543. package/src/types.ts +3 -6
  544. package/src/worker-base.ts +9 -6
  545. package/src/worker-slot-signal.ts +23 -0
  546. package/src/worker.ts +11 -5
  547. package/dist/backpressure.js +0 -39
  548. package/dist/bunqueue/aging.js +0 -53
  549. package/dist/bunqueue/batch.js +0 -60
  550. package/dist/bunqueue/bunqueue-api.js +0 -116
  551. package/dist/bunqueue/bunqueue.js +0 -194
  552. package/dist/bunqueue/cancellation.js +0 -48
  553. package/dist/bunqueue/circuit-breaker.js +0 -69
  554. package/dist/bunqueue/dedup-debounce.js +0 -37
  555. package/dist/bunqueue/dlq-rate-limit.js +0 -65
  556. package/dist/bunqueue/rate-gate.js +0 -61
  557. package/dist/bunqueue/retry.js +0 -56
  558. package/dist/bunqueue/triggers.js +0 -42
  559. package/dist/bunqueue/ttl.js +0 -31
  560. package/dist/bunqueue/types.js +0 -6
  561. package/dist/connection-pool.js +0 -60
  562. package/dist/connection-types.js +0 -2
  563. package/dist/connection.js +0 -281
  564. package/dist/errors.js +0 -25
  565. package/dist/flow-types.js +0 -2
  566. package/dist/flow.js +0 -212
  567. package/dist/job.js +0 -155
  568. package/dist/observability.js +0 -110
  569. package/dist/queue-admin.js +0 -158
  570. package/dist/queue-control.js +0 -105
  571. package/dist/queue-query.js +0 -187
  572. package/dist/queue.js +0 -92
  573. package/dist/responses.js +0 -10
  574. package/dist/socket-factory.js +0 -47
  575. package/dist/types.js +0 -50
  576. package/dist/worker-base.js +0 -159
  577. package/dist/worker-types.js +0 -5
  578. package/dist/worker.js +0 -211
  579. /package/dist/{backpressure.d.ts → types/sdk/typescript/src/backpressure.d.ts} +0 -0
  580. /package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/cancellation.d.ts +0 -0
@@ -0,0 +1,96 @@
1
+ import type { Job, JobId, JobLock } from "../../domain/types/job.js";
2
+ import type { JobLocation } from "../../domain/types/queue.js";
3
+ import type { JobLogEntry } from "../../domain/types/worker.js";
4
+ import { Shard } from "../../domain/queue/shard.js";
5
+ import { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
6
+ import { CronScheduler } from "../../infrastructure/scheduler/cronScheduler.js";
7
+ import { RWLock } from "../../shared/lock.js";
8
+ import { BoundedMap, BoundedSet, LRUMap } from "../../shared/lru.js";
9
+ import { WebhookManager } from "../webhookManager.js";
10
+ import { WorkerManager } from "../workerManager.js";
11
+ import { EventsManager } from "../eventsManager.js";
12
+ import { type MonitoringState } from "../monitoringChecks.js";
13
+ import type { OperationalMetrics } from "../metricsExporter.js";
14
+ import { DEFAULT_CONFIG, type QueueManagerConfig } from "../types/index.js";
15
+ import * as bgTasks from "../backgroundTasks.js";
16
+ import { ContextFactory } from "../contextFactory.js";
17
+ import { DependencyResultTracker } from "../dependencyResultTracker.js";
18
+ import { DependencyCompletionTracker } from "../dependencyCompletions.js";
19
+ import { JobTimeoutScheduler } from "../background/timeouts.js";
20
+ import type { RetiredTimeoutGeneration } from "../types/background.js";
21
+ import { QueueTelemetryJournal } from "../queueTelemetryJournal.js";
22
+ export type { QueueManagerConfig };
23
+ export declare abstract class QueueManagerState {
24
+ protected readonly config: typeof DEFAULT_CONFIG & {
25
+ dataPath?: string;
26
+ };
27
+ protected readonly storage: SqliteStorage | null;
28
+ protected readonly shards: Shard[];
29
+ protected readonly shardLocks: RWLock[];
30
+ protected readonly customIdLock: RWLock;
31
+ protected readonly processingShards: Map<JobId, Job>[];
32
+ protected readonly processingLocks: RWLock[];
33
+ protected readonly jobIndex: Map<JobId, JobLocation>;
34
+ protected readonly completedJobs: BoundedSet<JobId>;
35
+ protected readonly completedJobsData: BoundedMap<JobId, Job>;
36
+ protected readonly depCompletions: DependencyCompletionTracker;
37
+ protected readonly timedOutJobs: BoundedMap<JobId, RetiredTimeoutGeneration>;
38
+ protected readonly retiredTimeoutLeaseTokens: BoundedMap<string, RetiredTimeoutGeneration>;
39
+ protected readonly retiredCronLeaseTokens: BoundedMap<JobId, string>;
40
+ protected readonly timeoutScheduler: JobTimeoutScheduler;
41
+ protected readonly jobResults: LRUMap<JobId, unknown>;
42
+ protected readonly jobResultQueues: Map<JobId, string>;
43
+ protected readonly dependencyResults: DependencyResultTracker;
44
+ protected readonly customIdMap: LRUMap<string, JobId>;
45
+ protected readonly jobLogs: LRUMap<JobId, JobLogEntry[]>;
46
+ protected readonly jobLogQueues: Map<JobId, string>;
47
+ protected readonly pendingDepChecks: Set<JobId>;
48
+ protected readonly pendingQueueAdmissions: Map<string, number>;
49
+ protected readonly pendingQueueObliterations: Set<string>;
50
+ protected readonly stalledCandidates: Set<JobId>;
51
+ protected depFlushScheduled: boolean;
52
+ protected depFlushRunning: boolean;
53
+ protected readonly jobLocks: Map<JobId, JobLock>;
54
+ protected readonly clientJobs: Map<string, Set<JobId>>;
55
+ protected readonly repeatChain: Map<JobId, JobId>;
56
+ protected readonly failedChildrenValues: Map<JobId, Record<string, string>>;
57
+ protected readonly ignoredChildrenFailures: Map<JobId, Record<string, string>>;
58
+ protected readonly cronScheduler: CronScheduler;
59
+ readonly webhookManager: WebhookManager;
60
+ readonly workerManager: WorkerManager;
61
+ protected readonly eventsManager: EventsManager;
62
+ protected dashboardEmit: ((event: string, data: Record<string, unknown>) => void) | null;
63
+ protected recoveryStats: {
64
+ queues: number;
65
+ jobs: number;
66
+ } | null;
67
+ protected readonly maxLogsPerJob = 100;
68
+ protected readonly metrics: {
69
+ totalPushed: {
70
+ value: bigint;
71
+ };
72
+ totalPulled: {
73
+ value: bigint;
74
+ };
75
+ totalCompleted: {
76
+ value: bigint;
77
+ };
78
+ totalFailed: {
79
+ value: bigint;
80
+ };
81
+ };
82
+ protected operationalMetricsProvider: (() => OperationalMetrics) | null;
83
+ protected readonly perQueueMetrics: LRUMap<string, {
84
+ totalCompleted: bigint;
85
+ totalFailed: bigint;
86
+ }>;
87
+ protected readonly telemetryJournal: QueueTelemetryJournal;
88
+ protected readonly startTime: number;
89
+ protected readonly backgroundTaskHandles: bgTasks.BackgroundTaskHandles | null;
90
+ protected readonly queueNamesCache: Set<string>;
91
+ protected readonly monitoringState: MonitoringState;
92
+ protected readonly contextFactory: ContextFactory;
93
+ protected scheduleJobTimeout(job: Job): void;
94
+ protected syncJobTimeout(jobId: JobId): void;
95
+ constructor(config?: QueueManagerConfig);
96
+ }
@@ -0,0 +1,28 @@
1
+ import * as statsMgr from "../statsManager.js";
2
+ import { QueueManagerJobManagement } from "./job-management.js";
3
+ export declare class QueueManagerStats extends QueueManagerJobManagement {
4
+ getStats(): statsMgr.QueueStats;
5
+ getQueuesSummary(): Array<{
6
+ name: string;
7
+ paused: boolean;
8
+ counts: {
9
+ waiting: number;
10
+ prioritized: number;
11
+ active: number;
12
+ completed: number;
13
+ failed: number;
14
+ delayed: number;
15
+ };
16
+ }>;
17
+ getAllQueueJobCounts(): Map<string, statsMgr.QueueJobCounts>;
18
+ getQueueJobCountsBatch(queueNames: Iterable<string>): Map<string, statsMgr.QueueJobCounts>;
19
+ getQueueJobCounts(queueName: string): statsMgr.QueueJobCounts;
20
+ getMemoryStats(): statsMgr.MemoryStats;
21
+ getStorageStatus(): {
22
+ diskFull: boolean;
23
+ error: string | null;
24
+ since: number | null;
25
+ };
26
+ flushPersistence(): number;
27
+ compactMemory(): void;
28
+ }
@@ -0,0 +1,5 @@
1
+ /** Public QueueManager façade. Implementation lives in queue-manager/. */
2
+ import { QueueManagerLifecycle } from "./queue-manager/lifecycle.js";
3
+ export type { QueueManagerConfig } from "./types/index.js";
4
+ export declare class QueueManager extends QueueManagerLifecycle {
5
+ }
@@ -0,0 +1,23 @@
1
+ import type { StatsContext } from "./types/index.js";
2
+ export interface PerQueueStats {
3
+ waiting: number;
4
+ prioritized: number;
5
+ delayed: number;
6
+ active: number;
7
+ dlq: number;
8
+ }
9
+ export interface QueueJobCounts {
10
+ waiting: number;
11
+ prioritized: number;
12
+ delayed: number;
13
+ active: number;
14
+ completed: number;
15
+ failed: number;
16
+ 'waiting-children': number;
17
+ totalCompleted: number;
18
+ totalFailed: number;
19
+ }
20
+ /** Aggregate all requested queues in one pass over every global collection. */
21
+ export declare function getAllQueueJobCounts(queueNames: Iterable<string>, ctx: StatsContext): Map<string, QueueJobCounts>;
22
+ export declare function getPerQueueStats(ctx: StatsContext, queueNames: Set<string>): Map<string, PerQueueStats>;
23
+ export declare function getQueueJobCounts(queueName: string, ctx: StatsContext): QueueJobCounts;
@@ -0,0 +1,24 @@
1
+ import type { QueueMetrics, QueueMetricType } from "../domain/types/metrics.js";
2
+ import { type JobEvent } from "../domain/types/queue.js";
3
+ import type { SqliteStorage } from "../infrastructure/persistence/sqlite.js";
4
+ /** Per-queue bounded event journal and cumulative minute metrics. */
5
+ export declare class QueueTelemetryJournal {
6
+ private readonly storage;
7
+ private readonly eventCounts;
8
+ private readonly metrics;
9
+ private readonly maxEvents;
10
+ private readonly maxMetricDataPoints;
11
+ constructor(storage: SqliteStorage | null, maxEvents: number, maxMetricDataPoints: number);
12
+ record(event: JobEvent): void;
13
+ /** Persist a lifecycle batch atomically, with scalar fallback on write failure. */
14
+ recordBatch(events: readonly JobEvent[]): void;
15
+ getMetrics(queue: string, type: QueueMetricType, start?: number, end?: number): QueueMetrics;
16
+ trimEvents(queue: string, maxLength: number): number;
17
+ clearQueue(queue: string): void;
18
+ clearQueueMemory(queue: string): void;
19
+ clearQueueEventsMemory(queue: string): void;
20
+ clearMemory(): void;
21
+ private getMemoryMetrics;
22
+ private pruneBuckets;
23
+ private expandBuckets;
24
+ }
@@ -0,0 +1,7 @@
1
+ import type { Job, JobInput, RepeatConfig } from "../domain/types/job.js";
2
+ /** Reject repeat definitions that cannot produce an unambiguous, independent chain. */
3
+ export declare function validateRepeatJobInput(input: JobInput): void;
4
+ /** Return the next absolute deadline, or null when the configured window is exhausted. */
5
+ export declare function nextRepeatRun(repeat: RepeatConfig, now?: number): number | null;
6
+ /** Clone every repeat-compatible policy while resetting execution-owned state. */
7
+ export declare function buildRepeatSuccessor(job: Job, now?: number): JobInput | null;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Stall Detection - Job stall detection and recovery
3
+ * Uses two-phase detection (like BullMQ) to prevent false positives
4
+ */
5
+ import type { BackgroundContext } from "./types/index.js";
6
+ /**
7
+ * Check for stalled jobs and handle them
8
+ * Uses two-phase detection to prevent false positives
9
+ */
10
+ export declare function checkStalledJobs(ctx: BackgroundContext): void;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Stats Manager - Queue statistics and memory management
3
+ * Provides system metrics and memory compaction utilities
4
+ */
5
+ import type { StatsContext } from "./types/index.js";
6
+ export { getAllQueueJobCounts, getPerQueueStats, getQueueJobCounts } from "./queueStatsAggregator.js";
7
+ export type { PerQueueStats, QueueJobCounts } from "./queueStatsAggregator.js";
8
+ export interface QueueStats {
9
+ waiting: number;
10
+ prioritized: number;
11
+ delayed: number;
12
+ active: number;
13
+ dlq: number;
14
+ completed: number;
15
+ 'waiting-children': number;
16
+ totalPushed: bigint;
17
+ totalPulled: bigint;
18
+ totalCompleted: bigint;
19
+ totalFailed: bigint;
20
+ uptime: number;
21
+ cronJobs: number;
22
+ cronPending: number;
23
+ }
24
+ export interface MemoryStats {
25
+ jobIndex: number;
26
+ completedJobs: number;
27
+ jobResults: number;
28
+ jobLogs: number;
29
+ customIdMap: number;
30
+ jobLocks: number;
31
+ clientJobs: number;
32
+ clientJobsTotal: number;
33
+ pendingDepChecks: number;
34
+ stalledCandidates: number;
35
+ processingTotal: number;
36
+ queuedTotal: number;
37
+ waitingDepsTotal: number;
38
+ temporalIndexTotal: number;
39
+ delayedHeapTotal: number;
40
+ }
41
+ /**
42
+ * Get queue statistics - uses running counters + priority scan
43
+ */
44
+ export declare function getStats(ctx: StatsContext, cronScheduler: {
45
+ getStats(): {
46
+ total: number;
47
+ pending: number;
48
+ };
49
+ }): QueueStats;
50
+ /**
51
+ * Get detailed memory statistics for debugging memory issues.
52
+ * Returns counts of entries in all major collections.
53
+ */
54
+ export declare function getMemoryStats(ctx: StatsContext): MemoryStats;
55
+ /**
56
+ * Force compact all collections to reduce memory usage.
57
+ * Use after large batch operations or when memory pressure is high.
58
+ */
59
+ export declare function compactMemory(ctx: StatsContext): void;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Task Error Tracking - Circuit breaker for background tasks
3
+ * Extracted for reuse by both backgroundTasks.ts and queueManager.ts
4
+ */
5
+ /** Track consecutive failures per task type */
6
+ export interface TaskErrorState {
7
+ consecutiveFailures: number;
8
+ lastError?: string;
9
+ lastFailureAt?: number;
10
+ }
11
+ /**
12
+ * Handle task error with tracking and circuit breaker pattern
13
+ */
14
+ export declare function handleTaskError(taskName: string, err: unknown): void;
15
+ /**
16
+ * Reset error state on successful task completion
17
+ */
18
+ export declare function handleTaskSuccess(taskName: string): void;
19
+ /**
20
+ * Get error statistics for monitoring
21
+ */
22
+ export declare function getTaskErrorStats(): Record<string, TaskErrorState>;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Throughput Tracker
3
+ * Tracks per-second throughput rates using exponential moving average (EMA)
4
+ * O(1) per observation, no allocations
5
+ */
6
+ /** EMA-based rate tracker */
7
+ declare class RateTracker {
8
+ private count;
9
+ private lastRate;
10
+ private lastCalcTime;
11
+ /** EMA smoothing factor (0-1). Lower = smoother. 0.3 gives ~3 sample memory */
12
+ private readonly alpha;
13
+ constructor(alpha?: number);
14
+ /** Record one event */
15
+ increment(n?: number): void;
16
+ /** Calculate current rate (calls per second) */
17
+ getRate(): number;
18
+ }
19
+ export declare class ThroughputTracker {
20
+ readonly pushRate: RateTracker;
21
+ readonly pullRate: RateTracker;
22
+ readonly completeRate: RateTracker;
23
+ readonly failRate: RateTracker;
24
+ /** Get all rates (per second) */
25
+ getRates(): {
26
+ pushPerSec: number;
27
+ pullPerSec: number;
28
+ completePerSec: number;
29
+ failPerSec: number;
30
+ };
31
+ }
32
+ /** Global singleton */
33
+ export declare const throughputTracker: ThroughputTracker;
34
+ export {};
@@ -0,0 +1,136 @@
1
+ import type { Shard } from "../../domain/queue/shard.js";
2
+ import type { FlowFailureRecord } from "../../domain/types/flow.js";
3
+ import type { FailureReason } from "../../domain/types/dlq.js";
4
+ import type { Job, JobId } from "../../domain/types/job.js";
5
+ import type { EventType, JobEvent, JobLocation } from "../../domain/types/queue.js";
6
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
7
+ import type { RWLock } from "../../shared/lock.js";
8
+ import type { MapLike, SetLike } from "../../shared/lru.js";
9
+ import type { DependencyCompletionTracker } from "../dependencyCompletions.js";
10
+ import type { DependencyResultTracker } from "../dependencyResultTracker.js";
11
+ export interface AckContext {
12
+ storage: SqliteStorage | null;
13
+ shards: Shard[];
14
+ shardLocks: RWLock[];
15
+ processingShards: Map<JobId, Job>[];
16
+ processingLocks: RWLock[];
17
+ completedJobs: SetLike<JobId>;
18
+ completedJobsData: MapLike<JobId, Job>;
19
+ retiredCronLeaseTokens?: MapLike<JobId, string>;
20
+ depCompletions?: DependencyCompletionTracker;
21
+ maxDependencyCompletions: number;
22
+ jobResults: MapLike<JobId, unknown>;
23
+ jobResultQueues: Map<JobId, string>;
24
+ dependencyResults: DependencyResultTracker;
25
+ jobIndex: Map<JobId, JobLocation>;
26
+ customIdMap?: MapLike<string, JobId>;
27
+ totalCompleted: {
28
+ value: bigint;
29
+ };
30
+ totalFailed: {
31
+ value: bigint;
32
+ };
33
+ perQueueMetrics?: MapLike<string, {
34
+ totalCompleted: bigint;
35
+ totalFailed: bigint;
36
+ }>;
37
+ broadcast: (event: {
38
+ eventType: EventType;
39
+ queue: string;
40
+ jobId: JobId;
41
+ timestamp: number;
42
+ data?: unknown;
43
+ error?: string;
44
+ prev?: string;
45
+ terminal?: boolean;
46
+ }) => void;
47
+ broadcastBatch?: (events: readonly JobEvent[]) => void;
48
+ onJobCompleted: (jobId: JobId) => void;
49
+ onJobFailed?: (jobId: JobId) => void;
50
+ onJobsCompleted?: (jobIds: JobId[]) => void;
51
+ needsBroadcast?: () => boolean;
52
+ emitDashboardEvent?: (event: string, data: Record<string, unknown>) => void;
53
+ hasPendingDeps?: () => boolean;
54
+ onRepeat?: (job: Job) => void;
55
+ onChildTerminalFailure?: (childJob: Job, error: string | undefined) => Promise<void>;
56
+ onChildDependencyOption?: (childJob: Job, error: string | undefined) => Promise<void>;
57
+ }
58
+ export interface ExtractedJob<T = unknown> {
59
+ id: JobId;
60
+ job: Job;
61
+ result?: T;
62
+ removeOnComplete?: boolean;
63
+ }
64
+ export interface CompletionOptions {
65
+ removeOnComplete?: boolean;
66
+ /** Internal lease identity used only to match a retired cron generation. */
67
+ leaseToken?: string;
68
+ }
69
+ export interface AckAlreadyFinalized {
70
+ readonly applied: false;
71
+ readonly reason: 'already-finalized';
72
+ }
73
+ /** Normal ACKs preserve the historical undefined return value. */
74
+ export type AckOutcome = undefined | AckAlreadyFinalized;
75
+ export interface AckBatchIgnored {
76
+ readonly ignoredIds: JobId[];
77
+ /** Input positions preserve generation identity when a job ID is repeated. */
78
+ readonly ignoredIndices: number[];
79
+ }
80
+ export type AckBatchOutcome = undefined | AckBatchIgnored;
81
+ export interface BatchContext {
82
+ processingShards: Map<JobId, Job>[];
83
+ processingLocks: RWLock[];
84
+ shards: Shard[];
85
+ shardLocks: RWLock[];
86
+ }
87
+ export interface FinalizeContext {
88
+ storage: SqliteStorage | null;
89
+ shards: Shard[];
90
+ completedJobs: SetLike<JobId>;
91
+ completedJobsData: MapLike<JobId, Job>;
92
+ depCompletions?: DependencyCompletionTracker;
93
+ maxDependencyCompletions: number;
94
+ jobResults: MapLike<JobId, unknown>;
95
+ jobResultQueues: Map<JobId, string>;
96
+ dependencyResults?: DependencyResultTracker;
97
+ jobIndex: Map<JobId, JobLocation>;
98
+ customIdMap?: MapLike<string, JobId>;
99
+ totalCompleted: {
100
+ value: bigint;
101
+ };
102
+ perQueueMetrics?: MapLike<string, {
103
+ totalCompleted: bigint;
104
+ totalFailed: bigint;
105
+ }>;
106
+ broadcast: (event: {
107
+ eventType: EventType;
108
+ queue: string;
109
+ jobId: JobId;
110
+ timestamp: number;
111
+ data?: unknown;
112
+ }) => void;
113
+ broadcastBatch?: (events: readonly JobEvent[]) => void;
114
+ onJobCompleted: (jobId: JobId) => void;
115
+ onJobsCompleted?: (jobIds: JobId[]) => void;
116
+ needsBroadcast?: () => boolean;
117
+ hasPendingDeps?: () => boolean;
118
+ onRepeat?: (job: Job) => void;
119
+ }
120
+ export interface TerminalFailureInput {
121
+ job: Job;
122
+ jobId: JobId;
123
+ error: string | undefined;
124
+ shard: Shard;
125
+ ctx: AckContext;
126
+ flowFailure: FlowFailureRecord | null;
127
+ reason: FailureReason;
128
+ }
129
+ export interface FailJobOptions {
130
+ unrecoverable?: boolean;
131
+ stack?: string[];
132
+ failureReason?: FailureReason;
133
+ removeOnFail?: boolean;
134
+ /** Runs synchronously while the exact processing generation is claimed. */
135
+ onClaim?: (job: Job) => void;
136
+ }
@@ -0,0 +1,18 @@
1
+ import type { CronScheduler } from "../../infrastructure/scheduler/cronScheduler.js";
2
+ import type { JobId } from "../../domain/types/job.js";
3
+ import type { JobTimeoutScheduler } from "../background/timeouts.js";
4
+ /** A processing generation whose timeout transition won before its worker outcome. */
5
+ export interface RetiredTimeoutGeneration {
6
+ readonly jobId: JobId;
7
+ readonly startedAt: number;
8
+ readonly token?: string;
9
+ }
10
+ export interface BackgroundTaskHandles {
11
+ cleanupInterval: ReturnType<typeof setInterval>;
12
+ timeoutScheduler: JobTimeoutScheduler;
13
+ depCheckInterval: ReturnType<typeof setInterval>;
14
+ stallCheckInterval: ReturnType<typeof setInterval>;
15
+ dlqMaintenanceInterval: ReturnType<typeof setInterval>;
16
+ lockCheckInterval: ReturnType<typeof setInterval>;
17
+ cronScheduler: CronScheduler;
18
+ }
@@ -0,0 +1,41 @@
1
+ /** Queue Manager configuration. */
2
+ export interface QueueManagerConfig {
3
+ dataPath?: string;
4
+ maxCompletedJobs?: number;
5
+ /** Delete retained completed jobs after this age; null/undefined disables automatic retention. */
6
+ completedRetentionMs?: number | null;
7
+ maxJobResults?: number;
8
+ maxJobLogs?: number;
9
+ maxCustomIds?: number;
10
+ maxWaitingDeps?: number;
11
+ /** Maximum queue label values emitted in one Prometheus scrape; zero disables them. */
12
+ maxPrometheusQueues?: number;
13
+ /** Maximum retained lifecycle events per queue. */
14
+ maxQueueEvents?: number;
15
+ /** Maximum retained one-minute metric buckets per queue and terminal state. */
16
+ maxMetricDataPoints?: number;
17
+ cleanupIntervalMs?: number;
18
+ /** Retry delay after a processing-timeout transition fails. */
19
+ jobTimeoutCheckMs?: number;
20
+ dependencyCheckMs?: number;
21
+ stallCheckMs?: number;
22
+ dlqMaintenanceMs?: number;
23
+ validateWebhookUrls?: boolean;
24
+ }
25
+ export declare const DEFAULT_CONFIG: {
26
+ maxCompletedJobs: number;
27
+ completedRetentionMs: number | null;
28
+ maxJobResults: number;
29
+ maxJobLogs: number;
30
+ maxCustomIds: number;
31
+ maxWaitingDeps: number;
32
+ maxPrometheusQueues: number;
33
+ maxQueueEvents: number;
34
+ maxMetricDataPoints: number;
35
+ cleanupIntervalMs: number;
36
+ jobTimeoutCheckMs: number;
37
+ dependencyCheckMs: number;
38
+ stallCheckMs: number;
39
+ dlqMaintenanceMs: number;
40
+ };
41
+ export declare function normalizeCompletedRetentionMs(value: number | null | undefined): number | null;
@@ -0,0 +1,87 @@
1
+ import type { Shard } from "../../domain/queue/shard.js";
2
+ import type { FailureReason } from "../../domain/types/dlq.js";
3
+ import type { Job, JobId, JobLock } from "../../domain/types/job.js";
4
+ import type { JobLocation } from "../../domain/types/queue.js";
5
+ import type { JobLogEntry } from "../../domain/types/worker.js";
6
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
7
+ import type { BoundedMap, BoundedSet, LRUMap, MapLike } from "../../shared/lru.js";
8
+ import type { RWLock } from "../../shared/lock.js";
9
+ import type { DependencyCompletionTracker } from "../dependencyCompletions.js";
10
+ import type { DependencyResultTracker } from "../dependencyResultTracker.js";
11
+ import type { EventsManager } from "../eventsManager.js";
12
+ import type { MonitoringState } from "../monitoringChecks.js";
13
+ import type { WebhookManager } from "../webhookManager.js";
14
+ import type { WorkerManager } from "../workerManager.js";
15
+ import type { DEFAULT_CONFIG } from "./config.js";
16
+ import type { JobTimeoutScheduler } from "../background/timeouts.js";
17
+ import type { RetiredTimeoutGeneration } from "./background.js";
18
+ export interface ContextDependencies {
19
+ config: typeof DEFAULT_CONFIG & {
20
+ dataPath?: string;
21
+ };
22
+ storage: SqliteStorage | null;
23
+ shards: Shard[];
24
+ shardLocks: RWLock[];
25
+ customIdLock: RWLock;
26
+ processingShards: Map<JobId, Job>[];
27
+ processingLocks: RWLock[];
28
+ jobIndex: Map<JobId, JobLocation>;
29
+ completedJobs: BoundedSet<JobId>;
30
+ completedJobsData: BoundedMap<JobId, Job>;
31
+ depCompletions?: DependencyCompletionTracker;
32
+ timedOutJobs: BoundedMap<JobId, RetiredTimeoutGeneration>;
33
+ retiredTimeoutLeaseTokens: BoundedMap<string, RetiredTimeoutGeneration>;
34
+ retiredCronLeaseTokens: BoundedMap<JobId, string>;
35
+ timeoutScheduler: JobTimeoutScheduler;
36
+ jobResults: LRUMap<JobId, unknown>;
37
+ jobResultQueues: Map<JobId, string>;
38
+ dependencyResults: DependencyResultTracker;
39
+ customIdMap: LRUMap<string, JobId>;
40
+ jobLogs: LRUMap<JobId, JobLogEntry[]>;
41
+ jobLogQueues: Map<JobId, string>;
42
+ jobLocks: Map<JobId, JobLock>;
43
+ clientJobs: Map<string, Set<JobId>>;
44
+ stalledCandidates: Set<JobId>;
45
+ pendingDepChecks: Set<JobId>;
46
+ pendingQueueAdmissions: Map<string, number>;
47
+ queueNamesCache: Set<string>;
48
+ repeatChain: Map<JobId, JobId>;
49
+ eventsManager: EventsManager;
50
+ webhookManager: WebhookManager;
51
+ workerManager: WorkerManager;
52
+ monitoringState: MonitoringState;
53
+ metrics: {
54
+ totalPushed: {
55
+ value: bigint;
56
+ };
57
+ totalPulled: {
58
+ value: bigint;
59
+ };
60
+ totalCompleted: {
61
+ value: bigint;
62
+ };
63
+ totalFailed: {
64
+ value: bigint;
65
+ };
66
+ };
67
+ startTime: number;
68
+ maxLogsPerJob: number;
69
+ perQueueMetrics: MapLike<string, {
70
+ totalCompleted: bigint;
71
+ totalFailed: bigint;
72
+ }>;
73
+ }
74
+ export interface ContextCallbacks {
75
+ fail: (jobId: JobId, error?: string, failureReason?: FailureReason) => Promise<void>;
76
+ registerQueueName: (queue: string) => void;
77
+ unregisterQueueName: (queue: string) => void;
78
+ onQueueAdmissionsDrained: (queue: string) => void;
79
+ onJobCompleted: (completedId: JobId) => void;
80
+ onJobFailed?: (failedId: JobId) => void;
81
+ onJobsCompleted: (completedIds: JobId[]) => void;
82
+ hasPendingDeps: () => boolean;
83
+ onRepeat: (job: Job) => void;
84
+ emitDashboardEvent?: (event: string, data: Record<string, unknown>) => void;
85
+ onChildTerminalFailure?: (childJob: Job, error: string | undefined) => Promise<void>;
86
+ onChildDependencyOption?: (childJob: Job, error: string | undefined) => Promise<void>;
87
+ }