@trigger.dev/core 3.3.17 → 4.0.0-v4-beta.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 (794) hide show
  1. package/dist/commonjs/debounce.d.ts +2 -0
  2. package/dist/commonjs/debounce.js +19 -0
  3. package/dist/commonjs/debounce.js.map +1 -0
  4. package/dist/commonjs/index.d.ts +2 -7
  5. package/dist/commonjs/index.js +2 -7
  6. package/dist/commonjs/index.js.map +1 -1
  7. package/dist/commonjs/retry.d.ts +0 -2
  8. package/dist/commonjs/retry.js +0 -24
  9. package/dist/commonjs/retry.js.map +1 -1
  10. package/dist/commonjs/schemas/index.d.ts +0 -16
  11. package/dist/commonjs/schemas/index.js +0 -16
  12. package/dist/commonjs/schemas/index.js.map +1 -1
  13. package/dist/commonjs/types.d.ts +0 -6
  14. package/dist/commonjs/utils.d.ts +1 -2
  15. package/dist/commonjs/utils.js +10 -27
  16. package/dist/commonjs/utils.js.map +1 -1
  17. package/dist/commonjs/v3/apiClient/core.d.ts +11 -3
  18. package/dist/commonjs/v3/apiClient/core.js +42 -2
  19. package/dist/commonjs/v3/apiClient/core.js.map +1 -1
  20. package/dist/commonjs/v3/apiClient/index.d.ts +191 -113
  21. package/dist/commonjs/v3/apiClient/index.js +153 -7
  22. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  23. package/dist/commonjs/v3/apiClient/runStream.js +7 -1
  24. package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
  25. package/dist/commonjs/v3/apiClient/stream.js +51 -30
  26. package/dist/commonjs/v3/apiClient/stream.js.map +1 -1
  27. package/dist/commonjs/v3/apiClient/types.d.ts +9 -1
  28. package/dist/commonjs/v3/apps/exec.d.ts +30 -0
  29. package/dist/commonjs/v3/apps/exec.js +82 -0
  30. package/dist/commonjs/v3/apps/exec.js.map +1 -0
  31. package/dist/commonjs/v3/apps/http.d.ts +8 -6
  32. package/dist/commonjs/v3/apps/http.js +38 -2
  33. package/dist/commonjs/v3/apps/http.js.map +1 -1
  34. package/dist/commonjs/v3/apps/index.d.ts +1 -3
  35. package/dist/commonjs/v3/apps/index.js +1 -3
  36. package/dist/commonjs/v3/apps/index.js.map +1 -1
  37. package/dist/commonjs/v3/build/flags.d.ts +20 -0
  38. package/dist/commonjs/v3/build/flags.js +49 -0
  39. package/dist/commonjs/v3/build/flags.js.map +1 -0
  40. package/dist/commonjs/v3/build/flags.test.d.ts +1 -0
  41. package/dist/commonjs/v3/build/flags.test.js +50 -0
  42. package/dist/commonjs/v3/build/flags.test.js.map +1 -0
  43. package/dist/commonjs/v3/build/index.d.ts +1 -0
  44. package/dist/commonjs/v3/build/index.js +1 -0
  45. package/dist/commonjs/v3/build/index.js.map +1 -1
  46. package/dist/commonjs/v3/build/resolvedConfig.d.ts +3 -1
  47. package/dist/commonjs/v3/build/runtime.d.ts +2 -2
  48. package/dist/commonjs/v3/build/runtime.js +11 -4
  49. package/dist/commonjs/v3/build/runtime.js.map +1 -1
  50. package/dist/commonjs/v3/config.d.ts +19 -7
  51. package/dist/commonjs/v3/errors.d.ts +9 -0
  52. package/dist/commonjs/v3/errors.js +90 -2
  53. package/dist/commonjs/v3/errors.js.map +1 -1
  54. package/dist/commonjs/v3/idempotencyKeys.d.ts +1 -0
  55. package/dist/commonjs/v3/idempotencyKeys.js +19 -0
  56. package/dist/commonjs/v3/idempotencyKeys.js.map +1 -1
  57. package/dist/commonjs/v3/index.d.ts +7 -2
  58. package/dist/commonjs/v3/index.js +10 -2
  59. package/dist/commonjs/v3/index.js.map +1 -1
  60. package/dist/commonjs/v3/isomorphic/consts.d.ts +2 -0
  61. package/dist/commonjs/v3/isomorphic/consts.js +6 -0
  62. package/dist/commonjs/v3/isomorphic/consts.js.map +1 -0
  63. package/dist/commonjs/v3/{apps → isomorphic}/duration.d.ts +1 -0
  64. package/dist/commonjs/v3/{apps → isomorphic}/duration.js +19 -0
  65. package/dist/commonjs/v3/isomorphic/duration.js.map +1 -0
  66. package/dist/commonjs/v3/isomorphic/friendlyId.d.ts +36 -0
  67. package/dist/commonjs/v3/isomorphic/friendlyId.js +102 -0
  68. package/dist/commonjs/v3/isomorphic/friendlyId.js.map +1 -0
  69. package/dist/commonjs/v3/isomorphic/index.d.ts +5 -0
  70. package/dist/commonjs/v3/isomorphic/index.js +22 -0
  71. package/dist/commonjs/v3/isomorphic/index.js.map +1 -0
  72. package/dist/commonjs/v3/isomorphic/maxDuration.d.ts +2 -0
  73. package/dist/commonjs/v3/isomorphic/maxDuration.js +20 -0
  74. package/dist/commonjs/v3/isomorphic/maxDuration.js.map +1 -0
  75. package/dist/commonjs/v3/isomorphic/queueName.d.ts +1 -0
  76. package/dist/commonjs/v3/isomorphic/queueName.js +8 -0
  77. package/dist/commonjs/v3/isomorphic/queueName.js.map +1 -0
  78. package/dist/commonjs/v3/lifecycle-hooks-api.d.ts +4 -0
  79. package/dist/commonjs/v3/{task-catalog-api.js → lifecycle-hooks-api.js} +4 -4
  80. package/dist/commonjs/v3/lifecycle-hooks-api.js.map +1 -0
  81. package/dist/commonjs/v3/lifecycleHooks/index.d.ts +53 -0
  82. package/dist/commonjs/v3/lifecycleHooks/index.js +160 -0
  83. package/dist/commonjs/v3/lifecycleHooks/index.js.map +1 -0
  84. package/dist/commonjs/v3/lifecycleHooks/manager.d.ts +115 -0
  85. package/dist/commonjs/v3/lifecycleHooks/manager.js +401 -0
  86. package/dist/commonjs/v3/lifecycleHooks/manager.js.map +1 -0
  87. package/dist/commonjs/v3/lifecycleHooks/types.d.ts +179 -0
  88. package/dist/commonjs/v3/lifecycleHooks/types.js +3 -0
  89. package/dist/commonjs/v3/lifecycleHooks/types.js.map +1 -0
  90. package/dist/commonjs/v3/locals/index.d.ts +12 -0
  91. package/dist/commonjs/v3/locals/index.js +37 -0
  92. package/dist/commonjs/v3/locals/index.js.map +1 -0
  93. package/dist/commonjs/v3/locals/manager.d.ts +12 -0
  94. package/dist/commonjs/v3/locals/manager.js +35 -0
  95. package/dist/commonjs/v3/locals/manager.js.map +1 -0
  96. package/dist/commonjs/v3/locals/types.d.ts +14 -0
  97. package/dist/commonjs/v3/locals/types.js +3 -0
  98. package/dist/commonjs/v3/locals/types.js.map +1 -0
  99. package/dist/commonjs/v3/locals-api.d.ts +12 -0
  100. package/dist/commonjs/v3/locals-api.js +28 -0
  101. package/dist/commonjs/v3/locals-api.js.map +1 -0
  102. package/dist/commonjs/v3/logger/index.d.ts +4 -4
  103. package/dist/commonjs/v3/logger/index.js.map +1 -1
  104. package/dist/commonjs/v3/logger/taskLogger.d.ts +8 -4
  105. package/dist/commonjs/v3/logger/taskLogger.js +16 -2
  106. package/dist/commonjs/v3/logger/taskLogger.js.map +1 -1
  107. package/dist/commonjs/v3/machines/index.d.ts +27 -0
  108. package/dist/commonjs/v3/machines/index.js +51 -0
  109. package/dist/commonjs/v3/machines/index.js.map +1 -0
  110. package/dist/commonjs/v3/machines/max-old-space.test.d.ts +1 -0
  111. package/dist/commonjs/v3/machines/max-old-space.test.js +44 -0
  112. package/dist/commonjs/v3/machines/max-old-space.test.js.map +1 -0
  113. package/dist/commonjs/v3/otel/tracingSDK.js +1 -1
  114. package/dist/commonjs/v3/otel/tracingSDK.js.map +1 -1
  115. package/dist/commonjs/v3/otel/utils.d.ts +1 -0
  116. package/dist/commonjs/v3/otel/utils.js +6 -0
  117. package/dist/commonjs/v3/otel/utils.js.map +1 -1
  118. package/dist/{esm/v3/task-catalog → commonjs/v3/resource-catalog}/catalog.d.ts +7 -3
  119. package/dist/commonjs/v3/resource-catalog/catalog.js.map +1 -0
  120. package/dist/commonjs/v3/resource-catalog/index.d.ts +22 -0
  121. package/dist/commonjs/v3/resource-catalog/index.js +61 -0
  122. package/dist/commonjs/v3/resource-catalog/index.js.map +1 -0
  123. package/dist/commonjs/v3/resource-catalog/noopResourceCatalog.d.ts +17 -0
  124. package/dist/commonjs/v3/{task-catalog/noopTaskCatalog.js → resource-catalog/noopResourceCatalog.js} +17 -5
  125. package/dist/commonjs/v3/resource-catalog/noopResourceCatalog.js.map +1 -0
  126. package/dist/commonjs/v3/resource-catalog/standardResourceCatalog.d.ts +22 -0
  127. package/dist/commonjs/v3/resource-catalog/standardResourceCatalog.js +129 -0
  128. package/dist/commonjs/v3/resource-catalog/standardResourceCatalog.js.map +1 -0
  129. package/dist/commonjs/v3/resource-catalog-api.d.ts +3 -0
  130. package/dist/commonjs/v3/resource-catalog-api.js +9 -0
  131. package/dist/commonjs/v3/resource-catalog-api.js.map +1 -0
  132. package/dist/commonjs/v3/runEngineWorker/consts.d.ts +12 -0
  133. package/dist/commonjs/v3/runEngineWorker/consts.js +16 -0
  134. package/dist/commonjs/v3/runEngineWorker/consts.js.map +1 -0
  135. package/dist/commonjs/v3/runEngineWorker/index.d.ts +7 -0
  136. package/dist/commonjs/v3/runEngineWorker/index.js +24 -0
  137. package/dist/commonjs/v3/runEngineWorker/index.js.map +1 -0
  138. package/dist/commonjs/v3/runEngineWorker/supervisor/events.d.ts +49 -0
  139. package/dist/commonjs/v3/runEngineWorker/supervisor/events.js +3 -0
  140. package/dist/commonjs/v3/runEngineWorker/supervisor/events.js.map +1 -0
  141. package/dist/commonjs/v3/runEngineWorker/supervisor/http.d.ts +351 -0
  142. package/dist/commonjs/v3/runEngineWorker/supervisor/http.js +154 -0
  143. package/dist/commonjs/v3/runEngineWorker/supervisor/http.js.map +1 -0
  144. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.d.ts +26 -0
  145. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.js +92 -0
  146. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.js.map +1 -0
  147. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +3537 -0
  148. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js +91 -0
  149. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js.map +1 -0
  150. package/dist/commonjs/v3/runEngineWorker/supervisor/session.d.ts +32 -0
  151. package/dist/commonjs/v3/runEngineWorker/supervisor/session.js +174 -0
  152. package/dist/commonjs/v3/runEngineWorker/supervisor/session.js.map +1 -0
  153. package/dist/commonjs/v3/runEngineWorker/supervisor/types.d.ts +13 -0
  154. package/dist/commonjs/v3/runEngineWorker/supervisor/types.js +3 -0
  155. package/dist/commonjs/v3/runEngineWorker/supervisor/types.js.map +1 -0
  156. package/dist/commonjs/v3/runEngineWorker/supervisor/util.d.ts +3 -0
  157. package/dist/commonjs/v3/runEngineWorker/supervisor/util.js +39 -0
  158. package/dist/commonjs/v3/runEngineWorker/supervisor/util.js.map +1 -0
  159. package/dist/commonjs/v3/runEngineWorker/types.d.ts +52 -0
  160. package/dist/commonjs/v3/runEngineWorker/types.js +3 -0
  161. package/dist/commonjs/v3/runEngineWorker/types.js.map +1 -0
  162. package/dist/commonjs/v3/runEngineWorker/util.d.ts +4 -0
  163. package/dist/commonjs/v3/runEngineWorker/util.js +15 -0
  164. package/dist/commonjs/v3/runEngineWorker/util.js.map +1 -0
  165. package/dist/commonjs/v3/runEngineWorker/workload/http.d.ts +266 -0
  166. package/dist/commonjs/v3/runEngineWorker/workload/http.js +117 -0
  167. package/dist/commonjs/v3/runEngineWorker/workload/http.js.map +1 -0
  168. package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +2996 -0
  169. package/dist/commonjs/v3/runEngineWorker/workload/schemas.js +25 -0
  170. package/dist/commonjs/v3/runEngineWorker/workload/schemas.js.map +1 -0
  171. package/dist/commonjs/v3/runEngineWorker/workload/types.d.ts +7 -0
  172. package/dist/commonjs/v3/runEngineWorker/workload/types.js +3 -0
  173. package/dist/commonjs/v3/runEngineWorker/workload/types.js.map +1 -0
  174. package/dist/commonjs/v3/runEngineWorker/workload/util.d.ts +2 -0
  175. package/dist/commonjs/v3/runEngineWorker/workload/util.js +14 -0
  176. package/dist/commonjs/v3/runEngineWorker/workload/util.js.map +1 -0
  177. package/dist/commonjs/v3/runTimelineMetrics/runTimelineMetricsManager.d.ts +1 -1
  178. package/dist/commonjs/v3/runTimelineMetrics/runTimelineMetricsManager.js +5 -2
  179. package/dist/commonjs/v3/runTimelineMetrics/runTimelineMetricsManager.js.map +1 -1
  180. package/dist/commonjs/v3/runtime/index.d.ts +4 -4
  181. package/dist/commonjs/v3/runtime/index.js +5 -5
  182. package/dist/commonjs/v3/runtime/index.js.map +1 -1
  183. package/dist/commonjs/v3/runtime/managedRuntimeManager.d.ts +30 -0
  184. package/dist/commonjs/v3/runtime/managedRuntimeManager.js +185 -0
  185. package/dist/commonjs/v3/runtime/managedRuntimeManager.js.map +1 -0
  186. package/dist/commonjs/v3/runtime/manager.d.ts +6 -4
  187. package/dist/commonjs/v3/runtime/noopRuntimeManager.d.ts +6 -4
  188. package/dist/commonjs/v3/runtime/noopRuntimeManager.js +4 -5
  189. package/dist/commonjs/v3/runtime/noopRuntimeManager.js.map +1 -1
  190. package/dist/commonjs/v3/schemas/api.d.ts +1966 -586
  191. package/dist/commonjs/v3/schemas/api.js +252 -11
  192. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  193. package/dist/commonjs/v3/schemas/build.d.ts +464 -356
  194. package/dist/commonjs/v3/schemas/build.js +5 -2
  195. package/dist/commonjs/v3/schemas/build.js.map +1 -1
  196. package/dist/commonjs/v3/schemas/checkpoints.d.ts +419 -0
  197. package/dist/commonjs/v3/schemas/checkpoints.js +26 -0
  198. package/dist/commonjs/v3/schemas/checkpoints.js.map +1 -0
  199. package/dist/commonjs/v3/schemas/common.d.ts +302 -189
  200. package/dist/commonjs/v3/schemas/common.js +50 -9
  201. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  202. package/dist/commonjs/v3/schemas/fetch.d.ts +42 -42
  203. package/dist/commonjs/v3/schemas/index.d.ts +4 -0
  204. package/dist/commonjs/v3/schemas/index.js +4 -0
  205. package/dist/commonjs/v3/schemas/index.js.map +1 -1
  206. package/dist/commonjs/v3/schemas/messages.d.ts +4701 -3934
  207. package/dist/commonjs/v3/schemas/messages.js +27 -0
  208. package/dist/commonjs/v3/schemas/messages.js.map +1 -1
  209. package/dist/commonjs/v3/schemas/openTelemetry.d.ts +18 -18
  210. package/dist/commonjs/v3/schemas/queues.d.ts +97 -0
  211. package/dist/commonjs/v3/schemas/queues.js +70 -0
  212. package/dist/commonjs/v3/schemas/queues.js.map +1 -0
  213. package/dist/commonjs/v3/schemas/resources.d.ts +153 -114
  214. package/dist/commonjs/v3/schemas/resources.js +3 -2
  215. package/dist/commonjs/v3/schemas/resources.js.map +1 -1
  216. package/dist/commonjs/v3/schemas/runEngine.d.ts +1630 -0
  217. package/dist/commonjs/v3/schemas/runEngine.js +202 -0
  218. package/dist/commonjs/v3/schemas/runEngine.js.map +1 -0
  219. package/dist/commonjs/v3/schemas/schemas.d.ts +523 -401
  220. package/dist/commonjs/v3/schemas/schemas.js +23 -5
  221. package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
  222. package/dist/commonjs/v3/schemas/style.d.ts +6 -4
  223. package/dist/commonjs/v3/schemas/style.js +4 -2
  224. package/dist/commonjs/v3/schemas/style.js.map +1 -1
  225. package/dist/commonjs/v3/schemas/warmStart.d.ts +12 -0
  226. package/dist/commonjs/v3/schemas/warmStart.js +9 -0
  227. package/dist/commonjs/v3/schemas/warmStart.js.map +1 -0
  228. package/dist/commonjs/v3/schemas/webhooks.d.ts +204 -204
  229. package/dist/commonjs/v3/schemas/webhooks.js +6 -7
  230. package/dist/commonjs/v3/schemas/webhooks.js.map +1 -1
  231. package/dist/commonjs/v3/semanticInternalAttributes.d.ts +7 -0
  232. package/dist/commonjs/v3/semanticInternalAttributes.js +7 -0
  233. package/dist/commonjs/v3/semanticInternalAttributes.js.map +1 -1
  234. package/dist/commonjs/v3/serverOnly/checkpointClient.d.ts +23 -0
  235. package/dist/commonjs/v3/serverOnly/checkpointClient.js +80 -0
  236. package/dist/commonjs/v3/serverOnly/checkpointClient.js.map +1 -0
  237. package/dist/commonjs/v3/{apps/checkpoints.js → serverOnly/checkpointTest.js} +2 -2
  238. package/dist/commonjs/v3/serverOnly/checkpointTest.js.map +1 -0
  239. package/dist/commonjs/v3/serverOnly/httpServer.d.ts +49 -0
  240. package/dist/commonjs/v3/serverOnly/httpServer.js +244 -0
  241. package/dist/commonjs/v3/serverOnly/httpServer.js.map +1 -0
  242. package/dist/commonjs/v3/serverOnly/index.d.ts +6 -0
  243. package/dist/commonjs/v3/serverOnly/index.js +23 -0
  244. package/dist/commonjs/v3/serverOnly/index.js.map +1 -0
  245. package/dist/commonjs/v3/serverOnly/k8s.d.ts +1 -0
  246. package/dist/commonjs/v3/serverOnly/k8s.js +18 -0
  247. package/dist/commonjs/v3/serverOnly/k8s.js.map +1 -0
  248. package/dist/commonjs/v3/serverOnly/shutdownManager.d.ts +20 -0
  249. package/dist/commonjs/v3/serverOnly/shutdownManager.js +92 -0
  250. package/dist/commonjs/v3/serverOnly/shutdownManager.js.map +1 -0
  251. package/dist/commonjs/v3/serverOnly/shutdownManager.test.d.ts +1 -0
  252. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js +139 -0
  253. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js.map +1 -0
  254. package/dist/commonjs/v3/serverOnly/singleton.d.ts +1 -0
  255. package/dist/commonjs/v3/serverOnly/singleton.js +10 -0
  256. package/dist/commonjs/v3/serverOnly/singleton.js.map +1 -0
  257. package/dist/commonjs/v3/taskContext/index.d.ts +1 -0
  258. package/dist/commonjs/v3/taskContext/index.js +4 -0
  259. package/dist/commonjs/v3/taskContext/index.js.map +1 -1
  260. package/dist/commonjs/v3/taskContext/otelProcessors.d.ts +3 -1
  261. package/dist/commonjs/v3/taskContext/otelProcessors.js +34 -1
  262. package/dist/commonjs/v3/taskContext/otelProcessors.js.map +1 -1
  263. package/dist/commonjs/v3/taskContext/types.d.ts +1 -0
  264. package/dist/commonjs/v3/tracer.js +21 -16
  265. package/dist/commonjs/v3/tracer.js.map +1 -1
  266. package/dist/commonjs/v3/tryCatch.d.ts +5 -0
  267. package/dist/commonjs/v3/tryCatch.js +14 -0
  268. package/dist/commonjs/v3/tryCatch.js.map +1 -0
  269. package/dist/commonjs/v3/types/index.d.ts +1 -0
  270. package/dist/commonjs/v3/types/index.js +1 -0
  271. package/dist/commonjs/v3/types/index.js.map +1 -1
  272. package/dist/commonjs/v3/types/queues.d.ts +43 -0
  273. package/dist/commonjs/v3/types/queues.js +3 -0
  274. package/dist/commonjs/v3/types/queues.js.map +1 -0
  275. package/dist/commonjs/v3/types/schemas.d.ts +3 -0
  276. package/dist/commonjs/v3/types/schemas.js +16 -0
  277. package/dist/commonjs/v3/types/schemas.js.map +1 -1
  278. package/dist/commonjs/v3/types/tasks.d.ts +77 -34
  279. package/dist/commonjs/v3/types/tasks.js.map +1 -1
  280. package/dist/commonjs/v3/utils/durations.d.ts +1 -0
  281. package/dist/commonjs/v3/utils/durations.js +1 -1
  282. package/dist/commonjs/v3/utils/durations.js.map +1 -1
  283. package/dist/commonjs/v3/utils/globals.d.ts +6 -2
  284. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  285. package/dist/commonjs/v3/utils/heartbeat.d.ts +21 -0
  286. package/dist/commonjs/v3/utils/heartbeat.js +79 -0
  287. package/dist/commonjs/v3/utils/heartbeat.js.map +1 -0
  288. package/dist/commonjs/v3/utils/imageRef.d.ts +8 -0
  289. package/dist/commonjs/v3/utils/imageRef.js +55 -0
  290. package/dist/commonjs/v3/utils/imageRef.js.map +1 -0
  291. package/dist/commonjs/v3/workers/index.d.ts +8 -2
  292. package/dist/commonjs/v3/workers/index.js +15 -3
  293. package/dist/commonjs/v3/workers/index.js.map +1 -1
  294. package/dist/commonjs/v3/workers/populateEnv.d.ts +23 -0
  295. package/dist/commonjs/v3/workers/populateEnv.js +33 -0
  296. package/dist/commonjs/v3/workers/populateEnv.js.map +1 -0
  297. package/dist/commonjs/v3/workers/taskExecutor.d.ts +10 -9
  298. package/dist/commonjs/v3/workers/taskExecutor.js +648 -247
  299. package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
  300. package/dist/commonjs/v3/workers/warmStartClient.d.ts +27 -0
  301. package/dist/commonjs/v3/workers/warmStartClient.js +112 -0
  302. package/dist/commonjs/v3/workers/warmStartClient.js.map +1 -0
  303. package/dist/commonjs/version.js +1 -1
  304. package/dist/esm/debounce.d.ts +2 -0
  305. package/dist/esm/debounce.js +16 -0
  306. package/dist/esm/debounce.js.map +1 -0
  307. package/dist/esm/index.d.ts +2 -7
  308. package/dist/esm/index.js +2 -7
  309. package/dist/esm/index.js.map +1 -1
  310. package/dist/esm/retry.d.ts +0 -2
  311. package/dist/esm/retry.js +0 -23
  312. package/dist/esm/retry.js.map +1 -1
  313. package/dist/esm/schemas/index.d.ts +0 -16
  314. package/dist/esm/schemas/index.js +0 -16
  315. package/dist/esm/schemas/index.js.map +1 -1
  316. package/dist/esm/types.d.ts +0 -6
  317. package/dist/esm/utils.d.ts +1 -2
  318. package/dist/esm/utils.js +9 -26
  319. package/dist/esm/utils.js.map +1 -1
  320. package/dist/esm/v3/apiClient/core.d.ts +11 -3
  321. package/dist/esm/v3/apiClient/core.js +41 -2
  322. package/dist/esm/v3/apiClient/core.js.map +1 -1
  323. package/dist/esm/v3/apiClient/index.d.ts +191 -113
  324. package/dist/esm/v3/apiClient/index.js +154 -8
  325. package/dist/esm/v3/apiClient/index.js.map +1 -1
  326. package/dist/esm/v3/apiClient/runStream.js +7 -1
  327. package/dist/esm/v3/apiClient/runStream.js.map +1 -1
  328. package/dist/esm/v3/apiClient/stream.js +51 -30
  329. package/dist/esm/v3/apiClient/stream.js.map +1 -1
  330. package/dist/esm/v3/apiClient/types.d.ts +9 -1
  331. package/dist/esm/v3/apps/exec.d.ts +30 -0
  332. package/dist/esm/v3/apps/exec.js +77 -0
  333. package/dist/esm/v3/apps/exec.js.map +1 -0
  334. package/dist/esm/v3/apps/http.d.ts +8 -6
  335. package/dist/esm/v3/apps/http.js +37 -2
  336. package/dist/esm/v3/apps/http.js.map +1 -1
  337. package/dist/esm/v3/apps/index.d.ts +1 -3
  338. package/dist/esm/v3/apps/index.js +1 -3
  339. package/dist/esm/v3/apps/index.js.map +1 -1
  340. package/dist/esm/v3/build/flags.d.ts +20 -0
  341. package/dist/esm/v3/build/flags.js +46 -0
  342. package/dist/esm/v3/build/flags.js.map +1 -0
  343. package/dist/esm/v3/build/flags.test.d.ts +1 -0
  344. package/dist/esm/v3/build/flags.test.js +48 -0
  345. package/dist/esm/v3/build/flags.test.js.map +1 -0
  346. package/dist/esm/v3/build/index.d.ts +1 -0
  347. package/dist/esm/v3/build/index.js +1 -0
  348. package/dist/esm/v3/build/index.js.map +1 -1
  349. package/dist/esm/v3/build/resolvedConfig.d.ts +3 -1
  350. package/dist/esm/v3/build/runtime.d.ts +2 -2
  351. package/dist/esm/v3/build/runtime.js +11 -4
  352. package/dist/esm/v3/build/runtime.js.map +1 -1
  353. package/dist/esm/v3/config.d.ts +19 -7
  354. package/dist/esm/v3/errors.d.ts +9 -0
  355. package/dist/esm/v3/errors.js +85 -1
  356. package/dist/esm/v3/errors.js.map +1 -1
  357. package/dist/esm/v3/idempotencyKeys.d.ts +1 -0
  358. package/dist/esm/v3/idempotencyKeys.js +18 -0
  359. package/dist/esm/v3/idempotencyKeys.js.map +1 -1
  360. package/dist/esm/v3/index.d.ts +7 -2
  361. package/dist/esm/v3/index.js +7 -2
  362. package/dist/esm/v3/index.js.map +1 -1
  363. package/dist/esm/v3/isomorphic/consts.d.ts +2 -0
  364. package/dist/esm/v3/isomorphic/consts.js +3 -0
  365. package/dist/esm/v3/isomorphic/consts.js.map +1 -0
  366. package/dist/esm/v3/{apps → isomorphic}/duration.d.ts +1 -0
  367. package/dist/esm/v3/{apps → isomorphic}/duration.js +18 -0
  368. package/dist/esm/v3/isomorphic/duration.js.map +1 -0
  369. package/dist/esm/v3/isomorphic/friendlyId.d.ts +36 -0
  370. package/dist/esm/v3/isomorphic/friendlyId.js +90 -0
  371. package/dist/esm/v3/isomorphic/friendlyId.js.map +1 -0
  372. package/dist/esm/v3/isomorphic/index.d.ts +5 -0
  373. package/dist/esm/v3/isomorphic/index.js +6 -0
  374. package/dist/esm/v3/isomorphic/index.js.map +1 -0
  375. package/dist/esm/v3/isomorphic/maxDuration.d.ts +2 -0
  376. package/dist/esm/v3/isomorphic/maxDuration.js +16 -0
  377. package/dist/esm/v3/isomorphic/maxDuration.js.map +1 -0
  378. package/dist/esm/v3/isomorphic/queueName.d.ts +1 -0
  379. package/dist/esm/v3/isomorphic/queueName.js +5 -0
  380. package/dist/esm/v3/isomorphic/queueName.js.map +1 -0
  381. package/dist/esm/v3/lifecycle-hooks-api.d.ts +4 -0
  382. package/dist/esm/v3/lifecycle-hooks-api.js +6 -0
  383. package/dist/esm/v3/lifecycle-hooks-api.js.map +1 -0
  384. package/dist/esm/v3/lifecycleHooks/index.d.ts +53 -0
  385. package/dist/esm/v3/lifecycleHooks/index.js +156 -0
  386. package/dist/esm/v3/lifecycleHooks/index.js.map +1 -0
  387. package/dist/esm/v3/lifecycleHooks/manager.d.ts +115 -0
  388. package/dist/esm/v3/lifecycleHooks/manager.js +396 -0
  389. package/dist/esm/v3/lifecycleHooks/manager.js.map +1 -0
  390. package/dist/esm/v3/lifecycleHooks/types.d.ts +179 -0
  391. package/dist/esm/v3/lifecycleHooks/types.js +2 -0
  392. package/dist/esm/v3/lifecycleHooks/types.js.map +1 -0
  393. package/dist/esm/v3/locals/index.d.ts +12 -0
  394. package/dist/esm/v3/locals/index.js +33 -0
  395. package/dist/esm/v3/locals/index.js.map +1 -0
  396. package/dist/esm/v3/locals/manager.d.ts +12 -0
  397. package/dist/esm/v3/locals/manager.js +30 -0
  398. package/dist/esm/v3/locals/manager.js.map +1 -0
  399. package/dist/esm/v3/locals/types.d.ts +14 -0
  400. package/dist/esm/v3/locals/types.js +2 -0
  401. package/dist/esm/v3/locals/types.js.map +1 -0
  402. package/dist/esm/v3/locals-api.d.ts +12 -0
  403. package/dist/esm/v3/locals-api.js +25 -0
  404. package/dist/esm/v3/locals-api.js.map +1 -0
  405. package/dist/esm/v3/logger/index.d.ts +4 -4
  406. package/dist/esm/v3/logger/index.js.map +1 -1
  407. package/dist/esm/v3/logger/taskLogger.d.ts +8 -4
  408. package/dist/esm/v3/logger/taskLogger.js +16 -2
  409. package/dist/esm/v3/logger/taskLogger.js.map +1 -1
  410. package/dist/esm/v3/machines/index.d.ts +27 -0
  411. package/dist/esm/v3/machines/index.js +46 -0
  412. package/dist/esm/v3/machines/index.js.map +1 -0
  413. package/dist/esm/v3/machines/max-old-space.test.d.ts +1 -0
  414. package/dist/esm/v3/machines/max-old-space.test.js +42 -0
  415. package/dist/esm/v3/machines/max-old-space.test.js.map +1 -0
  416. package/dist/esm/v3/otel/tracingSDK.js +1 -1
  417. package/dist/esm/v3/otel/tracingSDK.js.map +1 -1
  418. package/dist/esm/v3/otel/utils.d.ts +1 -0
  419. package/dist/esm/v3/otel/utils.js +6 -1
  420. package/dist/esm/v3/otel/utils.js.map +1 -1
  421. package/dist/{commonjs/v3/task-catalog → esm/v3/resource-catalog}/catalog.d.ts +7 -3
  422. package/dist/esm/v3/resource-catalog/catalog.js.map +1 -0
  423. package/dist/esm/v3/resource-catalog/index.d.ts +22 -0
  424. package/dist/esm/v3/resource-catalog/index.js +57 -0
  425. package/dist/esm/v3/resource-catalog/index.js.map +1 -0
  426. package/dist/esm/v3/resource-catalog/noopResourceCatalog.d.ts +17 -0
  427. package/dist/esm/v3/{task-catalog/noopTaskCatalog.js → resource-catalog/noopResourceCatalog.js} +15 -3
  428. package/dist/esm/v3/resource-catalog/noopResourceCatalog.js.map +1 -0
  429. package/dist/esm/v3/resource-catalog/standardResourceCatalog.d.ts +22 -0
  430. package/dist/esm/v3/resource-catalog/standardResourceCatalog.js +125 -0
  431. package/dist/esm/v3/resource-catalog/standardResourceCatalog.js.map +1 -0
  432. package/dist/esm/v3/resource-catalog-api.d.ts +3 -0
  433. package/dist/esm/v3/resource-catalog-api.js +6 -0
  434. package/dist/esm/v3/resource-catalog-api.js.map +1 -0
  435. package/dist/esm/v3/runEngineWorker/consts.d.ts +12 -0
  436. package/dist/esm/v3/runEngineWorker/consts.js +13 -0
  437. package/dist/esm/v3/runEngineWorker/consts.js.map +1 -0
  438. package/dist/esm/v3/runEngineWorker/index.d.ts +7 -0
  439. package/dist/esm/v3/runEngineWorker/index.js +8 -0
  440. package/dist/esm/v3/runEngineWorker/index.js.map +1 -0
  441. package/dist/esm/v3/runEngineWorker/supervisor/events.d.ts +49 -0
  442. package/dist/esm/v3/runEngineWorker/supervisor/events.js +2 -0
  443. package/dist/esm/v3/runEngineWorker/supervisor/events.js.map +1 -0
  444. package/dist/esm/v3/runEngineWorker/supervisor/http.d.ts +351 -0
  445. package/dist/esm/v3/runEngineWorker/supervisor/http.js +150 -0
  446. package/dist/esm/v3/runEngineWorker/supervisor/http.js.map +1 -0
  447. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.d.ts +26 -0
  448. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.js +88 -0
  449. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.js.map +1 -0
  450. package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +3537 -0
  451. package/dist/esm/v3/runEngineWorker/supervisor/schemas.js +88 -0
  452. package/dist/esm/v3/runEngineWorker/supervisor/schemas.js.map +1 -0
  453. package/dist/esm/v3/runEngineWorker/supervisor/session.d.ts +32 -0
  454. package/dist/esm/v3/runEngineWorker/supervisor/session.js +167 -0
  455. package/dist/esm/v3/runEngineWorker/supervisor/session.js.map +1 -0
  456. package/dist/esm/v3/runEngineWorker/supervisor/types.d.ts +13 -0
  457. package/dist/esm/v3/runEngineWorker/supervisor/types.js +2 -0
  458. package/dist/esm/v3/runEngineWorker/supervisor/types.js.map +1 -0
  459. package/dist/esm/v3/runEngineWorker/supervisor/util.d.ts +3 -0
  460. package/dist/esm/v3/runEngineWorker/supervisor/util.js +35 -0
  461. package/dist/esm/v3/runEngineWorker/supervisor/util.js.map +1 -0
  462. package/dist/esm/v3/runEngineWorker/types.d.ts +52 -0
  463. package/dist/esm/v3/runEngineWorker/types.js +2 -0
  464. package/dist/esm/v3/runEngineWorker/types.js.map +1 -0
  465. package/dist/esm/v3/runEngineWorker/util.d.ts +4 -0
  466. package/dist/esm/v3/runEngineWorker/util.js +12 -0
  467. package/dist/esm/v3/runEngineWorker/util.js.map +1 -0
  468. package/dist/esm/v3/runEngineWorker/workload/http.d.ts +266 -0
  469. package/dist/esm/v3/runEngineWorker/workload/http.js +113 -0
  470. package/dist/esm/v3/runEngineWorker/workload/http.js.map +1 -0
  471. package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +2996 -0
  472. package/dist/esm/v3/runEngineWorker/workload/schemas.js +22 -0
  473. package/dist/esm/v3/runEngineWorker/workload/schemas.js.map +1 -0
  474. package/dist/esm/v3/runEngineWorker/workload/types.d.ts +7 -0
  475. package/dist/esm/v3/runEngineWorker/workload/types.js +2 -0
  476. package/dist/esm/v3/runEngineWorker/workload/types.js.map +1 -0
  477. package/dist/esm/v3/runEngineWorker/workload/util.d.ts +2 -0
  478. package/dist/esm/v3/runEngineWorker/workload/util.js +11 -0
  479. package/dist/esm/v3/runEngineWorker/workload/util.js.map +1 -0
  480. package/dist/esm/v3/runTimelineMetrics/runTimelineMetricsManager.d.ts +1 -1
  481. package/dist/esm/v3/runTimelineMetrics/runTimelineMetricsManager.js +5 -2
  482. package/dist/esm/v3/runTimelineMetrics/runTimelineMetricsManager.js.map +1 -1
  483. package/dist/esm/v3/runtime/index.d.ts +4 -4
  484. package/dist/esm/v3/runtime/index.js +5 -5
  485. package/dist/esm/v3/runtime/index.js.map +1 -1
  486. package/dist/esm/v3/runtime/managedRuntimeManager.d.ts +30 -0
  487. package/dist/esm/v3/runtime/managedRuntimeManager.js +181 -0
  488. package/dist/esm/v3/runtime/managedRuntimeManager.js.map +1 -0
  489. package/dist/esm/v3/runtime/manager.d.ts +6 -4
  490. package/dist/esm/v3/runtime/noopRuntimeManager.d.ts +6 -4
  491. package/dist/esm/v3/runtime/noopRuntimeManager.js +4 -5
  492. package/dist/esm/v3/runtime/noopRuntimeManager.js.map +1 -1
  493. package/dist/esm/v3/schemas/api.d.ts +1966 -586
  494. package/dist/esm/v3/schemas/api.js +249 -10
  495. package/dist/esm/v3/schemas/api.js.map +1 -1
  496. package/dist/esm/v3/schemas/build.d.ts +464 -356
  497. package/dist/esm/v3/schemas/build.js +6 -3
  498. package/dist/esm/v3/schemas/build.js.map +1 -1
  499. package/dist/esm/v3/schemas/checkpoints.d.ts +419 -0
  500. package/dist/esm/v3/schemas/checkpoints.js +20 -0
  501. package/dist/esm/v3/schemas/checkpoints.js.map +1 -0
  502. package/dist/esm/v3/schemas/common.d.ts +302 -189
  503. package/dist/esm/v3/schemas/common.js +49 -8
  504. package/dist/esm/v3/schemas/common.js.map +1 -1
  505. package/dist/esm/v3/schemas/fetch.d.ts +42 -42
  506. package/dist/esm/v3/schemas/index.d.ts +4 -0
  507. package/dist/esm/v3/schemas/index.js +4 -0
  508. package/dist/esm/v3/schemas/index.js.map +1 -1
  509. package/dist/esm/v3/schemas/messages.d.ts +4701 -3934
  510. package/dist/esm/v3/schemas/messages.js +28 -1
  511. package/dist/esm/v3/schemas/messages.js.map +1 -1
  512. package/dist/esm/v3/schemas/openTelemetry.d.ts +18 -18
  513. package/dist/esm/v3/schemas/queues.d.ts +97 -0
  514. package/dist/esm/v3/schemas/queues.js +67 -0
  515. package/dist/esm/v3/schemas/queues.js.map +1 -0
  516. package/dist/esm/v3/schemas/resources.d.ts +153 -114
  517. package/dist/esm/v3/schemas/resources.js +4 -3
  518. package/dist/esm/v3/schemas/resources.js.map +1 -1
  519. package/dist/esm/v3/schemas/runEngine.d.ts +1630 -0
  520. package/dist/esm/v3/schemas/runEngine.js +199 -0
  521. package/dist/esm/v3/schemas/runEngine.js.map +1 -0
  522. package/dist/esm/v3/schemas/schemas.d.ts +523 -401
  523. package/dist/esm/v3/schemas/schemas.js +22 -4
  524. package/dist/esm/v3/schemas/schemas.js.map +1 -1
  525. package/dist/esm/v3/schemas/style.d.ts +6 -4
  526. package/dist/esm/v3/schemas/style.js +3 -1
  527. package/dist/esm/v3/schemas/style.js.map +1 -1
  528. package/dist/esm/v3/schemas/warmStart.d.ts +12 -0
  529. package/dist/esm/v3/schemas/warmStart.js +6 -0
  530. package/dist/esm/v3/schemas/warmStart.js.map +1 -0
  531. package/dist/esm/v3/schemas/webhooks.d.ts +204 -204
  532. package/dist/esm/v3/schemas/webhooks.js +3 -4
  533. package/dist/esm/v3/schemas/webhooks.js.map +1 -1
  534. package/dist/esm/v3/semanticInternalAttributes.d.ts +7 -0
  535. package/dist/esm/v3/semanticInternalAttributes.js +7 -0
  536. package/dist/esm/v3/semanticInternalAttributes.js.map +1 -1
  537. package/dist/esm/v3/serverOnly/checkpointClient.d.ts +23 -0
  538. package/dist/esm/v3/serverOnly/checkpointClient.js +76 -0
  539. package/dist/esm/v3/serverOnly/checkpointClient.js.map +1 -0
  540. package/dist/esm/v3/{apps/checkpoints.js → serverOnly/checkpointTest.js} +2 -2
  541. package/dist/esm/v3/serverOnly/checkpointTest.js.map +1 -0
  542. package/dist/esm/v3/serverOnly/httpServer.d.ts +49 -0
  543. package/dist/esm/v3/serverOnly/httpServer.js +240 -0
  544. package/dist/esm/v3/serverOnly/httpServer.js.map +1 -0
  545. package/dist/esm/v3/serverOnly/index.d.ts +6 -0
  546. package/dist/esm/v3/serverOnly/index.js +7 -0
  547. package/dist/esm/v3/serverOnly/index.js.map +1 -0
  548. package/dist/esm/v3/serverOnly/k8s.d.ts +1 -0
  549. package/dist/esm/v3/serverOnly/k8s.js +15 -0
  550. package/dist/esm/v3/serverOnly/k8s.js.map +1 -0
  551. package/dist/esm/v3/serverOnly/shutdownManager.d.ts +20 -0
  552. package/dist/esm/v3/serverOnly/shutdownManager.js +88 -0
  553. package/dist/esm/v3/serverOnly/shutdownManager.js.map +1 -0
  554. package/dist/esm/v3/serverOnly/shutdownManager.test.d.ts +1 -0
  555. package/dist/esm/v3/serverOnly/shutdownManager.test.js +137 -0
  556. package/dist/esm/v3/serverOnly/shutdownManager.test.js.map +1 -0
  557. package/dist/esm/v3/serverOnly/singleton.d.ts +1 -0
  558. package/dist/esm/v3/serverOnly/singleton.js +7 -0
  559. package/dist/esm/v3/serverOnly/singleton.js.map +1 -0
  560. package/dist/esm/v3/taskContext/index.d.ts +1 -0
  561. package/dist/esm/v3/taskContext/index.js +4 -0
  562. package/dist/esm/v3/taskContext/index.js.map +1 -1
  563. package/dist/esm/v3/taskContext/otelProcessors.d.ts +3 -1
  564. package/dist/esm/v3/taskContext/otelProcessors.js +34 -1
  565. package/dist/esm/v3/taskContext/otelProcessors.js.map +1 -1
  566. package/dist/esm/v3/taskContext/types.d.ts +1 -0
  567. package/dist/esm/v3/tracer.js +21 -16
  568. package/dist/esm/v3/tracer.js.map +1 -1
  569. package/dist/esm/v3/tryCatch.d.ts +5 -0
  570. package/dist/esm/v3/tryCatch.js +11 -0
  571. package/dist/esm/v3/tryCatch.js.map +1 -0
  572. package/dist/esm/v3/types/index.d.ts +1 -0
  573. package/dist/esm/v3/types/index.js +1 -0
  574. package/dist/esm/v3/types/index.js.map +1 -1
  575. package/dist/esm/v3/types/queues.d.ts +43 -0
  576. package/dist/esm/v3/types/queues.js +2 -0
  577. package/dist/esm/v3/types/queues.js.map +1 -0
  578. package/dist/esm/v3/types/schemas.d.ts +3 -0
  579. package/dist/esm/v3/types/schemas.js +13 -0
  580. package/dist/esm/v3/types/schemas.js.map +1 -1
  581. package/dist/esm/v3/types/tasks.d.ts +77 -34
  582. package/dist/esm/v3/types/tasks.js.map +1 -1
  583. package/dist/esm/v3/utils/durations.d.ts +1 -0
  584. package/dist/esm/v3/utils/durations.js +1 -1
  585. package/dist/esm/v3/utils/durations.js.map +1 -1
  586. package/dist/esm/v3/utils/globals.d.ts +6 -2
  587. package/dist/esm/v3/utils/globals.js.map +1 -1
  588. package/dist/esm/v3/utils/heartbeat.d.ts +21 -0
  589. package/dist/esm/v3/utils/heartbeat.js +75 -0
  590. package/dist/esm/v3/utils/heartbeat.js.map +1 -0
  591. package/dist/esm/v3/utils/imageRef.d.ts +8 -0
  592. package/dist/esm/v3/utils/imageRef.js +51 -0
  593. package/dist/esm/v3/utils/imageRef.js.map +1 -0
  594. package/dist/esm/v3/workers/index.d.ts +8 -2
  595. package/dist/esm/v3/workers/index.js +8 -2
  596. package/dist/esm/v3/workers/index.js.map +1 -1
  597. package/dist/esm/v3/workers/populateEnv.d.ts +23 -0
  598. package/dist/esm/v3/workers/populateEnv.js +30 -0
  599. package/dist/esm/v3/workers/populateEnv.js.map +1 -0
  600. package/dist/esm/v3/workers/taskExecutor.d.ts +10 -9
  601. package/dist/esm/v3/workers/taskExecutor.js +651 -250
  602. package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
  603. package/dist/esm/v3/workers/warmStartClient.d.ts +27 -0
  604. package/dist/esm/v3/workers/warmStartClient.js +108 -0
  605. package/dist/esm/v3/workers/warmStartClient.js.map +1 -0
  606. package/dist/esm/version.js +1 -1
  607. package/package.json +72 -128
  608. package/dist/commonjs/bloom.d.ts +0 -10
  609. package/dist/commonjs/bloom.js +0 -58
  610. package/dist/commonjs/bloom.js.map +0 -1
  611. package/dist/commonjs/replacements.d.ts +0 -19
  612. package/dist/commonjs/replacements.js +0 -27
  613. package/dist/commonjs/replacements.js.map +0 -1
  614. package/dist/commonjs/requestFilterMatches.d.ts +0 -7
  615. package/dist/commonjs/requestFilterMatches.js +0 -62
  616. package/dist/commonjs/requestFilterMatches.js.map +0 -1
  617. package/dist/commonjs/schemas/addMissingVersionField.d.ts +0 -1
  618. package/dist/commonjs/schemas/addMissingVersionField.js +0 -13
  619. package/dist/commonjs/schemas/addMissingVersionField.js.map +0 -1
  620. package/dist/commonjs/schemas/api.d.ts +0 -13789
  621. package/dist/commonjs/schemas/api.js +0 -852
  622. package/dist/commonjs/schemas/api.js.map +0 -1
  623. package/dist/commonjs/schemas/errors.d.ts +0 -26
  624. package/dist/commonjs/schemas/errors.js +0 -14
  625. package/dist/commonjs/schemas/errors.js.map +0 -1
  626. package/dist/commonjs/schemas/events.d.ts +0 -66
  627. package/dist/commonjs/schemas/events.js +0 -31
  628. package/dist/commonjs/schemas/events.js.map +0 -1
  629. package/dist/commonjs/schemas/fetch.d.ts +0 -682
  630. package/dist/commonjs/schemas/fetch.js +0 -68
  631. package/dist/commonjs/schemas/fetch.js.map +0 -1
  632. package/dist/commonjs/schemas/integrations.d.ts +0 -66
  633. package/dist/commonjs/schemas/integrations.js +0 -21
  634. package/dist/commonjs/schemas/integrations.js.map +0 -1
  635. package/dist/commonjs/schemas/jobs.d.ts +0 -12
  636. package/dist/commonjs/schemas/jobs.js +0 -9
  637. package/dist/commonjs/schemas/jobs.js.map +0 -1
  638. package/dist/commonjs/schemas/notifications.d.ts +0 -587
  639. package/dist/commonjs/schemas/notifications.js +0 -59
  640. package/dist/commonjs/schemas/notifications.js.map +0 -1
  641. package/dist/commonjs/schemas/properties.d.ts +0 -57
  642. package/dist/commonjs/schemas/properties.js +0 -23
  643. package/dist/commonjs/schemas/properties.js.map +0 -1
  644. package/dist/commonjs/schemas/request.d.ts +0 -17
  645. package/dist/commonjs/schemas/request.js +0 -11
  646. package/dist/commonjs/schemas/request.js.map +0 -1
  647. package/dist/commonjs/schemas/requestFilter.d.ts +0 -225
  648. package/dist/commonjs/schemas/requestFilter.js +0 -60
  649. package/dist/commonjs/schemas/requestFilter.js.map +0 -1
  650. package/dist/commonjs/schemas/runs.d.ts +0 -344
  651. package/dist/commonjs/schemas/runs.js +0 -91
  652. package/dist/commonjs/schemas/runs.js.map +0 -1
  653. package/dist/commonjs/schemas/schedules.d.ts +0 -185
  654. package/dist/commonjs/schemas/schedules.js +0 -48
  655. package/dist/commonjs/schemas/schedules.js.map +0 -1
  656. package/dist/commonjs/schemas/statuses.d.ts +0 -89
  657. package/dist/commonjs/schemas/statuses.js +0 -23
  658. package/dist/commonjs/schemas/statuses.js.map +0 -1
  659. package/dist/commonjs/schemas/tasks.d.ts +0 -294
  660. package/dist/commonjs/schemas/tasks.js +0 -50
  661. package/dist/commonjs/schemas/tasks.js.map +0 -1
  662. package/dist/commonjs/schemas/triggers.d.ts +0 -532
  663. package/dist/commonjs/schemas/triggers.js +0 -57
  664. package/dist/commonjs/schemas/triggers.js.map +0 -1
  665. package/dist/commonjs/searchParams.d.ts +0 -1
  666. package/dist/commonjs/searchParams.js +0 -16
  667. package/dist/commonjs/searchParams.js.map +0 -1
  668. package/dist/commonjs/v3/apps/checkpoints.js.map +0 -1
  669. package/dist/commonjs/v3/apps/duration.js.map +0 -1
  670. package/dist/commonjs/v3/apps/friendlyId.d.ts +0 -1
  671. package/dist/commonjs/v3/apps/friendlyId.js +0 -9
  672. package/dist/commonjs/v3/apps/friendlyId.js.map +0 -1
  673. package/dist/commonjs/v3/dev/index.d.ts +0 -1
  674. package/dist/commonjs/v3/dev/index.js +0 -6
  675. package/dist/commonjs/v3/dev/index.js.map +0 -1
  676. package/dist/commonjs/v3/prod/index.d.ts +0 -1
  677. package/dist/commonjs/v3/prod/index.js +0 -6
  678. package/dist/commonjs/v3/prod/index.js.map +0 -1
  679. package/dist/commonjs/v3/runtime/devRuntimeManager.d.ts +0 -27
  680. package/dist/commonjs/v3/runtime/devRuntimeManager.js +0 -77
  681. package/dist/commonjs/v3/runtime/devRuntimeManager.js.map +0 -1
  682. package/dist/commonjs/v3/runtime/prodRuntimeManager.d.ts +0 -38
  683. package/dist/commonjs/v3/runtime/prodRuntimeManager.js +0 -94
  684. package/dist/commonjs/v3/runtime/prodRuntimeManager.js.map +0 -1
  685. package/dist/commonjs/v3/task-catalog/catalog.js.map +0 -1
  686. package/dist/commonjs/v3/task-catalog/index.d.ts +0 -18
  687. package/dist/commonjs/v3/task-catalog/index.js +0 -49
  688. package/dist/commonjs/v3/task-catalog/index.js.map +0 -1
  689. package/dist/commonjs/v3/task-catalog/noopTaskCatalog.d.ts +0 -13
  690. package/dist/commonjs/v3/task-catalog/noopTaskCatalog.js.map +0 -1
  691. package/dist/commonjs/v3/task-catalog/standardTaskCatalog.d.ts +0 -16
  692. package/dist/commonjs/v3/task-catalog/standardTaskCatalog.js +0 -84
  693. package/dist/commonjs/v3/task-catalog/standardTaskCatalog.js.map +0 -1
  694. package/dist/commonjs/v3/task-catalog-api.d.ts +0 -3
  695. package/dist/commonjs/v3/task-catalog-api.js.map +0 -1
  696. package/dist/commonjs/versions.d.ts +0 -9
  697. package/dist/commonjs/versions.js +0 -23
  698. package/dist/commonjs/versions.js.map +0 -1
  699. package/dist/esm/bloom.d.ts +0 -10
  700. package/dist/esm/bloom.js +0 -54
  701. package/dist/esm/bloom.js.map +0 -1
  702. package/dist/esm/replacements.d.ts +0 -19
  703. package/dist/esm/replacements.js +0 -24
  704. package/dist/esm/replacements.js.map +0 -1
  705. package/dist/esm/requestFilterMatches.d.ts +0 -7
  706. package/dist/esm/requestFilterMatches.js +0 -58
  707. package/dist/esm/requestFilterMatches.js.map +0 -1
  708. package/dist/esm/schemas/addMissingVersionField.d.ts +0 -1
  709. package/dist/esm/schemas/addMissingVersionField.js +0 -10
  710. package/dist/esm/schemas/addMissingVersionField.js.map +0 -1
  711. package/dist/esm/schemas/api.d.ts +0 -13789
  712. package/dist/esm/schemas/api.js +0 -847
  713. package/dist/esm/schemas/api.js.map +0 -1
  714. package/dist/esm/schemas/errors.d.ts +0 -26
  715. package/dist/esm/schemas/errors.js +0 -11
  716. package/dist/esm/schemas/errors.js.map +0 -1
  717. package/dist/esm/schemas/events.d.ts +0 -66
  718. package/dist/esm/schemas/events.js +0 -28
  719. package/dist/esm/schemas/events.js.map +0 -1
  720. package/dist/esm/schemas/fetch.d.ts +0 -682
  721. package/dist/esm/schemas/fetch.js +0 -65
  722. package/dist/esm/schemas/fetch.js.map +0 -1
  723. package/dist/esm/schemas/integrations.d.ts +0 -66
  724. package/dist/esm/schemas/integrations.js +0 -18
  725. package/dist/esm/schemas/integrations.js.map +0 -1
  726. package/dist/esm/schemas/jobs.d.ts +0 -12
  727. package/dist/esm/schemas/jobs.js +0 -6
  728. package/dist/esm/schemas/jobs.js.map +0 -1
  729. package/dist/esm/schemas/notifications.d.ts +0 -587
  730. package/dist/esm/schemas/notifications.js +0 -56
  731. package/dist/esm/schemas/notifications.js.map +0 -1
  732. package/dist/esm/schemas/properties.d.ts +0 -57
  733. package/dist/esm/schemas/properties.js +0 -20
  734. package/dist/esm/schemas/properties.js.map +0 -1
  735. package/dist/esm/schemas/request.d.ts +0 -17
  736. package/dist/esm/schemas/request.js +0 -8
  737. package/dist/esm/schemas/request.js.map +0 -1
  738. package/dist/esm/schemas/requestFilter.d.ts +0 -225
  739. package/dist/esm/schemas/requestFilter.js +0 -57
  740. package/dist/esm/schemas/requestFilter.js.map +0 -1
  741. package/dist/esm/schemas/runs.d.ts +0 -344
  742. package/dist/esm/schemas/runs.js +0 -88
  743. package/dist/esm/schemas/runs.js.map +0 -1
  744. package/dist/esm/schemas/schedules.d.ts +0 -185
  745. package/dist/esm/schemas/schedules.js +0 -45
  746. package/dist/esm/schemas/schedules.js.map +0 -1
  747. package/dist/esm/schemas/statuses.d.ts +0 -89
  748. package/dist/esm/schemas/statuses.js +0 -20
  749. package/dist/esm/schemas/statuses.js.map +0 -1
  750. package/dist/esm/schemas/tasks.d.ts +0 -294
  751. package/dist/esm/schemas/tasks.js +0 -47
  752. package/dist/esm/schemas/tasks.js.map +0 -1
  753. package/dist/esm/schemas/triggers.d.ts +0 -532
  754. package/dist/esm/schemas/triggers.js +0 -54
  755. package/dist/esm/schemas/triggers.js.map +0 -1
  756. package/dist/esm/searchParams.d.ts +0 -1
  757. package/dist/esm/searchParams.js +0 -13
  758. package/dist/esm/searchParams.js.map +0 -1
  759. package/dist/esm/v3/apps/checkpoints.js.map +0 -1
  760. package/dist/esm/v3/apps/duration.js.map +0 -1
  761. package/dist/esm/v3/apps/friendlyId.d.ts +0 -1
  762. package/dist/esm/v3/apps/friendlyId.js +0 -6
  763. package/dist/esm/v3/apps/friendlyId.js.map +0 -1
  764. package/dist/esm/v3/dev/index.d.ts +0 -1
  765. package/dist/esm/v3/dev/index.js +0 -2
  766. package/dist/esm/v3/dev/index.js.map +0 -1
  767. package/dist/esm/v3/prod/index.d.ts +0 -1
  768. package/dist/esm/v3/prod/index.js +0 -2
  769. package/dist/esm/v3/prod/index.js.map +0 -1
  770. package/dist/esm/v3/runtime/devRuntimeManager.d.ts +0 -27
  771. package/dist/esm/v3/runtime/devRuntimeManager.js +0 -73
  772. package/dist/esm/v3/runtime/devRuntimeManager.js.map +0 -1
  773. package/dist/esm/v3/runtime/prodRuntimeManager.d.ts +0 -38
  774. package/dist/esm/v3/runtime/prodRuntimeManager.js +0 -90
  775. package/dist/esm/v3/runtime/prodRuntimeManager.js.map +0 -1
  776. package/dist/esm/v3/task-catalog/catalog.js.map +0 -1
  777. package/dist/esm/v3/task-catalog/index.d.ts +0 -18
  778. package/dist/esm/v3/task-catalog/index.js +0 -45
  779. package/dist/esm/v3/task-catalog/index.js.map +0 -1
  780. package/dist/esm/v3/task-catalog/noopTaskCatalog.d.ts +0 -13
  781. package/dist/esm/v3/task-catalog/noopTaskCatalog.js.map +0 -1
  782. package/dist/esm/v3/task-catalog/standardTaskCatalog.d.ts +0 -16
  783. package/dist/esm/v3/task-catalog/standardTaskCatalog.js +0 -80
  784. package/dist/esm/v3/task-catalog/standardTaskCatalog.js.map +0 -1
  785. package/dist/esm/v3/task-catalog-api.d.ts +0 -3
  786. package/dist/esm/v3/task-catalog-api.js +0 -6
  787. package/dist/esm/v3/task-catalog-api.js.map +0 -1
  788. package/dist/esm/versions.d.ts +0 -9
  789. package/dist/esm/versions.js +0 -19
  790. package/dist/esm/versions.js.map +0 -1
  791. /package/dist/commonjs/v3/{task-catalog → resource-catalog}/catalog.js +0 -0
  792. /package/dist/commonjs/v3/{apps/checkpoints.d.ts → serverOnly/checkpointTest.d.ts} +0 -0
  793. /package/dist/esm/v3/{task-catalog → resource-catalog}/catalog.js +0 -0
  794. /package/dist/esm/v3/{apps/checkpoints.d.ts → serverOnly/checkpointTest.d.ts} +0 -0
@@ -1,12 +1,13 @@
1
1
  import { SpanKind } from "@opentelemetry/api";
2
2
  import { VERSION } from "../../version.js";
3
- import { isInternalError, parseError, sanitizeError, TaskPayloadParsedError } from "../errors.js";
4
- import { runMetadata, waitUntil } from "../index.js";
3
+ import { InternalError, isCompleteTaskWithOutput, isInternalError, parseError, sanitizeError, TaskPayloadParsedError, } from "../errors.js";
4
+ import { accessoryAttributes, flattenAttributes, lifecycleHooks, runMetadata, waitUntil, } from "../index.js";
5
5
  import { recordSpanException } from "../otel/index.js";
6
6
  import { runTimelineMetrics } from "../run-timeline-metrics-api.js";
7
- import { TaskRunContext, TaskRunErrorCodes, } from "../schemas/index.js";
7
+ import { COLD_VARIANT, TaskRunContext, TaskRunErrorCodes, WARM_VARIANT, } from "../schemas/index.js";
8
8
  import { SemanticInternalAttributes } from "../semanticInternalAttributes.js";
9
9
  import { taskContext } from "../task-context-api.js";
10
+ import { tryCatch } from "../tryCatch.js";
10
11
  import { conditionallyExportPacket, conditionallyImportPacket, createPacketAttributes, parsePacket, stringifyIO, } from "../utils/ioSerialization.js";
11
12
  import { calculateNextRetryDelay } from "../utils/retries.js";
12
13
  export class TaskExecutor {
@@ -14,17 +15,17 @@ export class TaskExecutor {
14
15
  _tracingSDK;
15
16
  _tracer;
16
17
  _consoleInterceptor;
17
- _importedConfig;
18
- _handleErrorFn;
18
+ _retries;
19
+ _isWarmStart;
19
20
  constructor(task, options) {
20
21
  this.task = task;
21
22
  this._tracingSDK = options.tracingSDK;
22
23
  this._tracer = options.tracer;
23
24
  this._consoleInterceptor = options.consoleInterceptor;
24
- this._importedConfig = options.config;
25
- this._handleErrorFn = options.handleErrorFn;
25
+ this._retries = options.retries;
26
+ this._isWarmStart = options.isWarmStart;
26
27
  }
27
- async execute(execution, worker, traceContext, usage, signal) {
28
+ async execute(execution, worker, traceContext, signal, isWarmStart) {
28
29
  const ctx = TaskRunContext.parse(execution);
29
30
  const attemptMessage = `Attempt ${execution.attempt.number}`;
30
31
  const originalPacket = {
@@ -34,6 +35,7 @@ export class TaskExecutor {
34
35
  taskContext.setGlobalTaskContext({
35
36
  ctx,
36
37
  worker,
38
+ isWarmStart: isWarmStart ?? this._isWarmStart,
37
39
  });
38
40
  if (execution.run.metadata) {
39
41
  runMetadata.enterWithMetadata(execution.run.metadata);
@@ -47,75 +49,49 @@ export class TaskExecutor {
47
49
  return await this._consoleInterceptor.intercept(console, async () => {
48
50
  let parsedPayload;
49
51
  let initOutput;
50
- try {
51
- await runTimelineMetrics.measureMetric("trigger.dev/execution", "payload", async () => {
52
- const payloadPacket = await conditionallyImportPacket(originalPacket, this._tracer);
53
- parsedPayload = await parsePacket(payloadPacket);
54
- });
55
- }
56
- catch (inputError) {
52
+ const [inputError, payloadResult] = await tryCatch(runTimelineMetrics.measureMetric("trigger.dev/execution", "payload", async () => {
53
+ const payloadPacket = await conditionallyImportPacket(originalPacket, this._tracer);
54
+ return await parsePacket(payloadPacket);
55
+ }));
56
+ if (inputError) {
57
57
  recordSpanException(span, inputError);
58
- return {
59
- ok: false,
60
- id: execution.run.id,
61
- error: {
62
- type: "INTERNAL_ERROR",
63
- code: TaskRunErrorCodes.TASK_INPUT_ERROR,
64
- message: inputError instanceof Error
65
- ? `${inputError.name}: ${inputError.message}`
66
- : typeof inputError === "string"
67
- ? inputError
68
- : undefined,
69
- stackTrace: inputError instanceof Error ? inputError.stack : undefined,
70
- },
71
- };
58
+ return this.#internalErrorResult(execution, TaskRunErrorCodes.TASK_INPUT_ERROR, inputError);
72
59
  }
73
- try {
74
- parsedPayload = await this.#parsePayload(parsedPayload);
75
- if (execution.attempt.number === 1) {
76
- await this.#callOnStartFunctions(parsedPayload, ctx, signal);
77
- }
78
- initOutput = await this.#callInitFunctions(parsedPayload, ctx, signal);
79
- const output = await this.#callRun(parsedPayload, ctx, initOutput, signal);
80
- await this.#callOnSuccessFunctions(parsedPayload, output, ctx, initOutput, signal);
81
- try {
82
- const stringifiedOutput = await stringifyIO(output);
83
- const finalOutput = await conditionallyExportPacket(stringifiedOutput, `${execution.attempt.id}/output`, this._tracer);
84
- const attributes = await createPacketAttributes(finalOutput, SemanticInternalAttributes.OUTPUT, SemanticInternalAttributes.OUTPUT_TYPE);
85
- if (attributes) {
86
- span.setAttributes(attributes);
60
+ parsedPayload = await this.#parsePayload(payloadResult);
61
+ lifecycleHooks.registerOnWaitHookListener(async (wait) => {
62
+ await this.#callOnWaitFunctions(wait, parsedPayload, ctx, initOutput, signal);
63
+ });
64
+ lifecycleHooks.registerOnResumeHookListener(async (wait) => {
65
+ await this.#callOnResumeFunctions(wait, parsedPayload, ctx, initOutput, signal);
66
+ });
67
+ const executeTask = async (payload) => {
68
+ const [runError, output] = await tryCatch((async () => {
69
+ initOutput = await this.#callInitFunctions(payload, ctx, signal);
70
+ if (execution.attempt.number === 1) {
71
+ await this.#callOnStartFunctions(payload, ctx, initOutput, signal);
72
+ }
73
+ try {
74
+ return await this.#callRun(payload, ctx, initOutput, signal);
75
+ }
76
+ catch (error) {
77
+ if (isCompleteTaskWithOutput(error)) {
78
+ return error.output;
79
+ }
80
+ throw error;
81
+ }
82
+ })());
83
+ if (runError) {
84
+ const [handleErrorError, handleErrorResult] = await tryCatch(this.#handleError(execution, runError, payload, ctx, initOutput, signal));
85
+ if (handleErrorError) {
86
+ recordSpanException(span, handleErrorError);
87
+ return this.#internalErrorResult(execution, TaskRunErrorCodes.HANDLE_ERROR_ERROR, handleErrorError);
87
88
  }
88
- return {
89
- ok: true,
90
- id: execution.run.id,
91
- output: finalOutput.data,
92
- outputType: finalOutput.dataType,
93
- };
94
- }
95
- catch (outputError) {
96
- recordSpanException(span, outputError);
97
- return {
98
- ok: false,
99
- id: execution.run.id,
100
- error: {
101
- type: "INTERNAL_ERROR",
102
- code: TaskRunErrorCodes.TASK_OUTPUT_ERROR,
103
- message: outputError instanceof Error
104
- ? outputError.message
105
- : typeof outputError === "string"
106
- ? outputError
107
- : undefined,
108
- },
109
- };
110
- }
111
- }
112
- catch (runError) {
113
- try {
114
- const handleErrorResult = await this.#handleError(execution, runError, parsedPayload, ctx, initOutput, signal);
115
89
  recordSpanException(span, handleErrorResult.error ?? runError);
116
90
  if (handleErrorResult.status !== "retry") {
117
- await this.#callOnFailureFunctions(parsedPayload, handleErrorResult.error ?? runError, ctx, initOutput, signal);
91
+ await this.#callOnFailureFunctions(payload, handleErrorResult.error ?? runError, ctx, initOutput, signal);
92
+ await this.#callOnCompleteFunctions(payload, { ok: false, error: handleErrorResult.error ?? runError }, ctx, initOutput, signal);
118
93
  }
94
+ await this.#cleanupAndWaitUntil(payload, ctx, initOutput, signal);
119
95
  return {
120
96
  id: execution.run.id,
121
97
  ok: false,
@@ -126,37 +102,56 @@ export class TaskExecutor {
126
102
  skippedRetrying: handleErrorResult.status === "skipped",
127
103
  };
128
104
  }
129
- catch (handleErrorError) {
130
- recordSpanException(span, handleErrorError);
131
- return {
132
- ok: false,
133
- id: execution.run.id,
134
- error: {
135
- type: "INTERNAL_ERROR",
136
- code: TaskRunErrorCodes.HANDLE_ERROR_ERROR,
137
- message: handleErrorError instanceof Error
138
- ? handleErrorError.message
139
- : typeof handleErrorError === "string"
140
- ? handleErrorError
141
- : undefined,
142
- },
143
- };
105
+ const [outputError, stringifiedOutput] = await tryCatch(stringifyIO(output));
106
+ if (outputError) {
107
+ recordSpanException(span, outputError);
108
+ await this.#cleanupAndWaitUntil(payload, ctx, initOutput, signal);
109
+ return this.#internalErrorResult(execution, TaskRunErrorCodes.TASK_OUTPUT_ERROR, outputError);
144
110
  }
145
- }
146
- finally {
147
- await this.#callTaskCleanup(parsedPayload, ctx, initOutput, signal);
148
- await this.#blockForWaitUntil();
149
- span.setAttributes(runTimelineMetrics.convertMetricsToSpanAttributes());
150
- }
111
+ const [exportError, finalOutput] = await tryCatch(conditionallyExportPacket(stringifiedOutput, `${execution.attempt.id}/output`, this._tracer));
112
+ if (exportError) {
113
+ recordSpanException(span, exportError);
114
+ await this.#cleanupAndWaitUntil(payload, ctx, initOutput, signal);
115
+ return this.#internalErrorResult(execution, TaskRunErrorCodes.TASK_OUTPUT_ERROR, exportError);
116
+ }
117
+ const [attrError, attributes] = await tryCatch(createPacketAttributes(finalOutput, SemanticInternalAttributes.OUTPUT, SemanticInternalAttributes.OUTPUT_TYPE));
118
+ if (!attrError && attributes) {
119
+ span.setAttributes(attributes);
120
+ }
121
+ await this.#callOnSuccessFunctions(payload, output, ctx, initOutput, signal);
122
+ await this.#callOnCompleteFunctions(payload, { ok: true, data: output }, ctx, initOutput, signal);
123
+ await this.#cleanupAndWaitUntil(payload, ctx, initOutput, signal);
124
+ return {
125
+ ok: true,
126
+ id: execution.run.id,
127
+ output: finalOutput.data,
128
+ outputType: finalOutput.dataType,
129
+ };
130
+ };
131
+ const globalMiddlewareHooks = lifecycleHooks.getGlobalMiddlewareHooks();
132
+ const taskMiddlewareHook = lifecycleHooks.getTaskMiddlewareHook(this.task.id);
133
+ const middlewareHooks = [
134
+ ...globalMiddlewareHooks,
135
+ taskMiddlewareHook ? { id: this.task.id, fn: taskMiddlewareHook } : undefined,
136
+ ].filter(Boolean);
137
+ return await this.#executeTaskWithMiddlewareHooks(parsedPayload, ctx, execution, middlewareHooks, executeTask, signal);
151
138
  });
152
139
  }, {
153
140
  kind: SpanKind.CONSUMER,
154
141
  attributes: {
155
142
  [SemanticInternalAttributes.STYLE_ICON]: "attempt",
143
+ [SemanticInternalAttributes.ENTITY_TYPE]: "attempt",
156
144
  [SemanticInternalAttributes.SPAN_ATTEMPT]: true,
157
145
  ...(execution.attempt.number === 1
158
146
  ? runTimelineMetrics.convertMetricsToSpanAttributes()
159
147
  : {}),
148
+ ...(execution.environment.type !== "DEVELOPMENT"
149
+ ? {
150
+ [SemanticInternalAttributes.STYLE_VARIANT]: this._isWarmStart
151
+ ? WARM_VARIANT
152
+ : COLD_VARIANT,
153
+ }
154
+ : {}),
160
155
  },
161
156
  events: execution.attempt.number === 1
162
157
  ? runTimelineMetrics.convertMetricsToSpanEvents()
@@ -164,129 +159,426 @@ export class TaskExecutor {
164
159
  }, this._tracer.extractContext(traceContext), signal);
165
160
  return { result };
166
161
  }
162
+ async #executeTaskWithMiddlewareHooks(payload, ctx, execution, hooks, executeTask, signal) {
163
+ let output;
164
+ let executeError;
165
+ const runner = hooks.reduceRight((next, hook) => {
166
+ return async () => {
167
+ await this._tracer.startActiveSpan("middleware()", async (span) => {
168
+ await hook.fn({ payload, ctx, signal, task: this.task.id, next });
169
+ }, {
170
+ attributes: {
171
+ [SemanticInternalAttributes.STYLE_ICON]: "task-middleware",
172
+ ...this.#lifecycleHookAccessoryAttributes(hook.name),
173
+ },
174
+ });
175
+ };
176
+ }, async () => {
177
+ const [error, result] = await tryCatch(executeTask(payload));
178
+ if (error) {
179
+ executeError = error;
180
+ }
181
+ else {
182
+ output = result;
183
+ }
184
+ });
185
+ const [runnerError] = await tryCatch(runner());
186
+ if (runnerError) {
187
+ return this.#internalErrorResult(execution, TaskRunErrorCodes.TASK_MIDDLEWARE_ERROR, runnerError);
188
+ }
189
+ if (executeError) {
190
+ throw executeError;
191
+ }
192
+ return output;
193
+ }
167
194
  async #callRun(payload, ctx, init, signal) {
168
195
  const runFn = this.task.fns.run;
169
- const middlewareFn = this.task.fns.middleware;
170
196
  if (!runFn) {
171
197
  throw new Error("Task does not have a run function");
172
198
  }
173
- if (!middlewareFn) {
174
- return runTimelineMetrics.measureMetric("trigger.dev/execution", "run", () => runFn(payload, { ctx, init, signal }));
199
+ // Create a promise that rejects when the signal aborts
200
+ const abortPromise = signal
201
+ ? new Promise((_, reject) => {
202
+ signal.addEventListener("abort", () => {
203
+ const maxDuration = ctx.run.maxDuration;
204
+ reject(new InternalError({
205
+ code: TaskRunErrorCodes.MAX_DURATION_EXCEEDED,
206
+ message: `Run exceeded maximum compute time (maxDuration) of ${maxDuration} seconds`,
207
+ }));
208
+ });
209
+ })
210
+ : undefined;
211
+ return runTimelineMetrics.measureMetric("trigger.dev/execution", "run", async () => {
212
+ return await this._tracer.startActiveSpan("run()", async (span) => {
213
+ if (abortPromise) {
214
+ // Race between the run function and the abort promise
215
+ return await Promise.race([runFn(payload, { ctx, init, signal }), abortPromise]);
216
+ }
217
+ return await runFn(payload, { ctx, init, signal });
218
+ }, {
219
+ attributes: { [SemanticInternalAttributes.STYLE_ICON]: "task-fn-run" },
220
+ });
221
+ });
222
+ }
223
+ async #callOnWaitFunctions(wait, payload, ctx, initOutput, signal) {
224
+ const globalWaitHooks = lifecycleHooks.getGlobalWaitHooks();
225
+ const taskWaitHook = lifecycleHooks.getTaskWaitHook(this.task.id);
226
+ if (globalWaitHooks.length === 0 && !taskWaitHook) {
227
+ return;
175
228
  }
176
- return middlewareFn(payload, {
177
- ctx,
178
- signal,
179
- next: async () => runTimelineMetrics.measureMetric("trigger.dev/execution", "run", () => runFn(payload, { ctx, init, signal })),
229
+ const result = await runTimelineMetrics.measureMetric("trigger.dev/execution", "onWait", async () => {
230
+ for (const hook of globalWaitHooks) {
231
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onWait()", async (span) => {
232
+ await hook.fn({ payload, ctx, signal, task: this.task.id, wait, init: initOutput });
233
+ }, {
234
+ attributes: {
235
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onWait",
236
+ [SemanticInternalAttributes.COLLAPSED]: true,
237
+ ...this.#lifecycleHookAccessoryAttributes(hook.name),
238
+ },
239
+ }));
240
+ if (hookError) {
241
+ throw hookError;
242
+ }
243
+ }
244
+ if (taskWaitHook) {
245
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onWait()", async (span) => {
246
+ await taskWaitHook({
247
+ payload,
248
+ ctx,
249
+ signal,
250
+ task: this.task.id,
251
+ wait,
252
+ init: initOutput,
253
+ });
254
+ }, {
255
+ attributes: {
256
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onWait",
257
+ [SemanticInternalAttributes.COLLAPSED]: true,
258
+ ...this.#lifecycleHookAccessoryAttributes("task"),
259
+ },
260
+ }));
261
+ if (hookError) {
262
+ throw hookError;
263
+ }
264
+ }
180
265
  });
181
266
  }
182
- async #callInitFunctions(payload, ctx, signal) {
183
- await this.#callConfigInit(payload, ctx, signal);
184
- const initFn = this.task.fns.init;
185
- if (!initFn) {
186
- return {};
267
+ async #callOnResumeFunctions(wait, payload, ctx, initOutput, signal) {
268
+ const globalResumeHooks = lifecycleHooks.getGlobalResumeHooks();
269
+ const taskResumeHook = lifecycleHooks.getTaskResumeHook(this.task.id);
270
+ if (globalResumeHooks.length === 0 && !taskResumeHook) {
271
+ return;
187
272
  }
188
- return this._tracer.startActiveSpan("init", async (span) => {
189
- return await runTimelineMetrics.measureMetric("trigger.dev/execution", "init", () => initFn(payload, { ctx, signal }));
190
- }, {
191
- attributes: {
192
- [SemanticInternalAttributes.STYLE_ICON]: "function",
193
- },
273
+ const result = await runTimelineMetrics.measureMetric("trigger.dev/execution", "onResume", async () => {
274
+ for (const hook of globalResumeHooks) {
275
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onResume()", async (span) => {
276
+ await hook.fn({ payload, ctx, signal, task: this.task.id, wait, init: initOutput });
277
+ }, {
278
+ attributes: {
279
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onResume",
280
+ [SemanticInternalAttributes.COLLAPSED]: true,
281
+ ...this.#lifecycleHookAccessoryAttributes(hook.name),
282
+ },
283
+ }));
284
+ if (hookError) {
285
+ throw hookError;
286
+ }
287
+ }
288
+ if (taskResumeHook) {
289
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onResume()", async (span) => {
290
+ await taskResumeHook({
291
+ payload,
292
+ ctx,
293
+ signal,
294
+ task: this.task.id,
295
+ wait,
296
+ init: initOutput,
297
+ });
298
+ }, {
299
+ attributes: {
300
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onResume",
301
+ [SemanticInternalAttributes.COLLAPSED]: true,
302
+ ...this.#lifecycleHookAccessoryAttributes("task"),
303
+ },
304
+ }));
305
+ if (hookError) {
306
+ throw hookError;
307
+ }
308
+ }
194
309
  });
195
310
  }
196
- async #callConfigInit(payload, ctx, signal) {
197
- const initFn = this._importedConfig?.init;
198
- if (!initFn) {
311
+ async #callInitFunctions(payload, ctx, signal) {
312
+ const globalInitHooks = lifecycleHooks.getGlobalInitHooks();
313
+ const taskInitHook = lifecycleHooks.getTaskInitHook(this.task.id);
314
+ if (globalInitHooks.length === 0 && !taskInitHook) {
199
315
  return {};
200
316
  }
201
- return this._tracer.startActiveSpan("config.init", async (span) => {
202
- return await runTimelineMetrics.measureMetric("trigger.dev/execution", "config.init", async () => initFn(payload, { ctx, signal }));
203
- }, {
204
- attributes: {
205
- [SemanticInternalAttributes.STYLE_ICON]: "function",
206
- },
317
+ const result = await runTimelineMetrics.measureMetric("trigger.dev/execution", "init", async () => {
318
+ // Store global hook results in an array
319
+ const globalResults = [];
320
+ for (const hook of globalInitHooks) {
321
+ const [hookError, result] = await tryCatch(this._tracer.startActiveSpan("init()", async (span) => {
322
+ const result = await hook.fn({ payload, ctx, signal, task: this.task.id });
323
+ if (result && typeof result === "object" && !Array.isArray(result)) {
324
+ span.setAttributes(flattenAttributes(result));
325
+ return result;
326
+ }
327
+ return {};
328
+ }, {
329
+ attributes: {
330
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-init",
331
+ [SemanticInternalAttributes.COLLAPSED]: true,
332
+ ...this.#lifecycleHookAccessoryAttributes(hook.name),
333
+ },
334
+ }));
335
+ if (hookError) {
336
+ throw hookError;
337
+ }
338
+ if (result && typeof result === "object" && !Array.isArray(result)) {
339
+ globalResults.push(result);
340
+ }
341
+ }
342
+ // Merge all global results into a single object
343
+ const mergedGlobalResults = Object.assign({}, ...globalResults);
344
+ if (taskInitHook) {
345
+ const [hookError, taskResult] = await tryCatch(this._tracer.startActiveSpan("init()", async (span) => {
346
+ const result = await taskInitHook({ payload, ctx, signal, task: this.task.id });
347
+ if (result && typeof result === "object" && !Array.isArray(result)) {
348
+ span.setAttributes(flattenAttributes(result));
349
+ return result;
350
+ }
351
+ return {};
352
+ }, {
353
+ attributes: {
354
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-init",
355
+ [SemanticInternalAttributes.COLLAPSED]: true,
356
+ ...this.#lifecycleHookAccessoryAttributes("task"),
357
+ },
358
+ }));
359
+ if (hookError) {
360
+ throw hookError;
361
+ }
362
+ // Only merge if taskResult is an object
363
+ if (taskResult && typeof taskResult === "object" && !Array.isArray(taskResult)) {
364
+ return { ...mergedGlobalResults, ...taskResult };
365
+ }
366
+ // If taskResult isn't an object, return global results
367
+ return mergedGlobalResults;
368
+ }
369
+ return mergedGlobalResults;
207
370
  });
371
+ if (result && typeof result === "object" && !Array.isArray(result)) {
372
+ return result;
373
+ }
374
+ return;
208
375
  }
209
376
  async #callOnSuccessFunctions(payload, output, ctx, initOutput, signal) {
210
- await this.#callOnSuccessFunction(this.task.fns.onSuccess, "task.onSuccess", payload, output, ctx, initOutput, signal);
211
- await this.#callOnSuccessFunction(this._importedConfig?.onSuccess, "config.onSuccess", payload, output, ctx, initOutput, signal);
212
- }
213
- async #callOnSuccessFunction(onSuccessFn, name, payload, output, ctx, initOutput, signal) {
214
- if (!onSuccessFn) {
377
+ const globalSuccessHooks = lifecycleHooks.getGlobalSuccessHooks();
378
+ const taskSuccessHook = lifecycleHooks.getTaskSuccessHook(this.task.id);
379
+ if (globalSuccessHooks.length === 0 && !taskSuccessHook) {
215
380
  return;
216
381
  }
217
- try {
218
- await this._tracer.startActiveSpan(name, async (span) => {
219
- return await runTimelineMetrics.measureMetric("trigger.dev/execution", name, () => onSuccessFn(payload, output, { ctx, init: initOutput, signal }));
220
- }, {
221
- attributes: {
222
- [SemanticInternalAttributes.STYLE_ICON]: "function",
223
- },
224
- });
225
- }
226
- catch {
227
- // Ignore errors from onSuccess functions
228
- }
382
+ return await runTimelineMetrics.measureMetric("trigger.dev/execution", "success", async () => {
383
+ for (const hook of globalSuccessHooks) {
384
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onSuccess()", async (span) => {
385
+ await hook.fn({
386
+ payload,
387
+ output,
388
+ ctx,
389
+ signal,
390
+ task: this.task.id,
391
+ init: initOutput,
392
+ });
393
+ }, {
394
+ attributes: {
395
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onSuccess",
396
+ [SemanticInternalAttributes.COLLAPSED]: true,
397
+ ...this.#lifecycleHookAccessoryAttributes(hook.name),
398
+ },
399
+ }));
400
+ if (hookError) {
401
+ throw hookError;
402
+ }
403
+ }
404
+ if (taskSuccessHook) {
405
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onSuccess()", async (span) => {
406
+ await taskSuccessHook({
407
+ payload,
408
+ output,
409
+ ctx,
410
+ signal,
411
+ task: this.task.id,
412
+ init: initOutput,
413
+ });
414
+ }, {
415
+ attributes: {
416
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onSuccess",
417
+ [SemanticInternalAttributes.COLLAPSED]: true,
418
+ ...this.#lifecycleHookAccessoryAttributes("task"),
419
+ },
420
+ }));
421
+ if (hookError) {
422
+ throw hookError;
423
+ }
424
+ }
425
+ });
229
426
  }
230
427
  async #callOnFailureFunctions(payload, error, ctx, initOutput, signal) {
231
- await this.#callOnFailureFunction(this.task.fns.onFailure, "task.onFailure", payload, error, ctx, initOutput, signal);
232
- await this.#callOnFailureFunction(this._importedConfig?.onFailure, "config.onFailure", payload, error, ctx, initOutput, signal);
233
- }
234
- async #callOnFailureFunction(onFailureFn, name, payload, error, ctx, initOutput, signal) {
235
- if (!onFailureFn) {
428
+ const globalFailureHooks = lifecycleHooks.getGlobalFailureHooks();
429
+ const taskFailureHook = lifecycleHooks.getTaskFailureHook(this.task.id);
430
+ if (globalFailureHooks.length === 0 && !taskFailureHook) {
236
431
  return;
237
432
  }
238
- try {
239
- return await this._tracer.startActiveSpan(name, async (span) => {
240
- return await runTimelineMetrics.measureMetric("trigger.dev/execution", name, () => onFailureFn(payload, error, { ctx, init: initOutput, signal }));
241
- }, {
242
- attributes: {
243
- [SemanticInternalAttributes.STYLE_ICON]: "function",
244
- },
245
- });
246
- }
247
- catch (e) {
248
- // Ignore errors from onFailure functions
249
- }
433
+ return await runTimelineMetrics.measureMetric("trigger.dev/execution", "failure", async () => {
434
+ for (const hook of globalFailureHooks) {
435
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onFailure()", async (span) => {
436
+ await hook.fn({
437
+ payload,
438
+ error,
439
+ ctx,
440
+ signal,
441
+ task: this.task.id,
442
+ init: initOutput,
443
+ });
444
+ }, {
445
+ attributes: {
446
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onFailure",
447
+ [SemanticInternalAttributes.COLLAPSED]: true,
448
+ ...this.#lifecycleHookAccessoryAttributes(hook.name),
449
+ },
450
+ }));
451
+ if (hookError) {
452
+ throw hookError;
453
+ }
454
+ }
455
+ if (taskFailureHook) {
456
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onFailure()", async (span) => {
457
+ await taskFailureHook({
458
+ payload,
459
+ error,
460
+ ctx,
461
+ signal,
462
+ task: this.task.id,
463
+ init: initOutput,
464
+ });
465
+ }, {
466
+ attributes: {
467
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onFailure",
468
+ [SemanticInternalAttributes.COLLAPSED]: true,
469
+ ...this.#lifecycleHookAccessoryAttributes("task"),
470
+ },
471
+ }));
472
+ if (hookError) {
473
+ throw hookError;
474
+ }
475
+ }
476
+ });
250
477
  }
251
478
  async #parsePayload(payload) {
252
479
  if (!this.task.fns.parsePayload) {
253
480
  return payload;
254
481
  }
255
- try {
256
- return await this.task.fns.parsePayload(payload);
257
- }
258
- catch (e) {
259
- throw new TaskPayloadParsedError(e);
482
+ const [parseError, result] = await tryCatch(this.task.fns.parsePayload(payload));
483
+ if (parseError) {
484
+ throw new TaskPayloadParsedError(parseError);
260
485
  }
486
+ return result;
261
487
  }
262
- async #callOnStartFunctions(payload, ctx, signal) {
263
- await this.#callOnStartFunction(this._importedConfig?.onStart, "config.onStart", payload, ctx, {}, signal);
264
- await this.#callOnStartFunction(this.task.fns.onStart, "task.onStart", payload, ctx, {}, signal);
265
- }
266
- async #callOnStartFunction(onStartFn, name, payload, ctx, initOutput, signal) {
267
- if (!onStartFn) {
488
+ async #callOnStartFunctions(payload, ctx, initOutput, signal) {
489
+ const globalStartHooks = lifecycleHooks.getGlobalStartHooks();
490
+ const taskStartHook = lifecycleHooks.getTaskStartHook(this.task.id);
491
+ if (globalStartHooks.length === 0 && !taskStartHook) {
268
492
  return;
269
493
  }
270
- try {
271
- await this._tracer.startActiveSpan(name, async (span) => {
272
- return await runTimelineMetrics.measureMetric("trigger.dev/execution", name, () => onStartFn(payload, { ctx, signal }));
273
- }, {
274
- attributes: {
275
- [SemanticInternalAttributes.STYLE_ICON]: "function",
276
- },
277
- });
278
- }
279
- catch {
280
- // Ignore errors from onStart functions
281
- }
494
+ return await runTimelineMetrics.measureMetric("trigger.dev/execution", "start", async () => {
495
+ for (const hook of globalStartHooks) {
496
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onStart()", async (span) => {
497
+ await hook.fn({ payload, ctx, signal, task: this.task.id, init: initOutput });
498
+ }, {
499
+ attributes: {
500
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onStart",
501
+ [SemanticInternalAttributes.COLLAPSED]: true,
502
+ ...this.#lifecycleHookAccessoryAttributes(hook.name),
503
+ },
504
+ }));
505
+ if (hookError) {
506
+ throw hookError;
507
+ }
508
+ }
509
+ if (taskStartHook) {
510
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onStart()", async (span) => {
511
+ await taskStartHook({
512
+ payload,
513
+ ctx,
514
+ signal,
515
+ task: this.task.id,
516
+ init: initOutput,
517
+ });
518
+ }, {
519
+ attributes: {
520
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onStart",
521
+ [SemanticInternalAttributes.COLLAPSED]: true,
522
+ ...this.#lifecycleHookAccessoryAttributes("task"),
523
+ },
524
+ }));
525
+ if (hookError) {
526
+ throw hookError;
527
+ }
528
+ }
529
+ });
282
530
  }
283
- async #callTaskCleanup(payload, ctx, init, signal) {
284
- const cleanupFn = this.task.fns.cleanup;
285
- if (!cleanupFn) {
531
+ async #cleanupAndWaitUntil(payload, ctx, initOutput, signal) {
532
+ await this.#callCleanupFunctions(payload, ctx, initOutput, signal);
533
+ await this.#blockForWaitUntil();
534
+ }
535
+ async #callCleanupFunctions(payload, ctx, initOutput, signal) {
536
+ const globalCleanupHooks = lifecycleHooks.getGlobalCleanupHooks();
537
+ const taskCleanupHook = lifecycleHooks.getTaskCleanupHook(this.task.id);
538
+ if (globalCleanupHooks.length === 0 && !taskCleanupHook) {
286
539
  return;
287
540
  }
288
- return this._tracer.startActiveSpan("cleanup", async (span) => {
289
- return await cleanupFn(payload, { ctx, init, signal });
541
+ return await runTimelineMetrics.measureMetric("trigger.dev/execution", "cleanup", async () => {
542
+ for (const hook of globalCleanupHooks) {
543
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("cleanup()", async (span) => {
544
+ await hook.fn({
545
+ payload,
546
+ ctx,
547
+ signal,
548
+ task: this.task.id,
549
+ init: initOutput,
550
+ });
551
+ }, {
552
+ attributes: {
553
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-cleanup",
554
+ [SemanticInternalAttributes.COLLAPSED]: true,
555
+ ...this.#lifecycleHookAccessoryAttributes(hook.name),
556
+ },
557
+ }));
558
+ if (hookError) {
559
+ throw hookError;
560
+ }
561
+ }
562
+ if (taskCleanupHook) {
563
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("cleanup()", async (span) => {
564
+ await taskCleanupHook({
565
+ payload,
566
+ ctx,
567
+ signal,
568
+ task: this.task.id,
569
+ init: initOutput,
570
+ });
571
+ }, {
572
+ attributes: {
573
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-cleanup",
574
+ [SemanticInternalAttributes.COLLAPSED]: true,
575
+ ...this.#lifecycleHookAccessoryAttributes("task"),
576
+ },
577
+ }));
578
+ if (hookError) {
579
+ throw hookError;
580
+ }
581
+ }
290
582
  });
291
583
  }
292
584
  async #blockForWaitUntil() {
@@ -297,103 +589,212 @@ export class TaskExecutor {
297
589
  return await waitUntil.blockUntilSettled(60_000);
298
590
  }, {
299
591
  attributes: {
300
- [SemanticInternalAttributes.STYLE_ICON]: "clock",
592
+ [SemanticInternalAttributes.STYLE_ICON]: "tabler-clock",
593
+ [SemanticInternalAttributes.COLLAPSED]: true,
301
594
  },
302
595
  });
303
596
  }
304
597
  async #handleError(execution, error, payload, ctx, init, signal) {
305
- const retriesConfig = this._importedConfig?.retries;
598
+ const retriesConfig = this._retries;
306
599
  const retry = this.task.retry ?? retriesConfig?.default;
307
- if (!retry) {
308
- return { status: "noop" };
600
+ // Early exit conditions that prevent retrying
601
+ if (isInternalError(error) && error.skipRetrying) {
602
+ return { status: "skipped", error };
309
603
  }
310
604
  if (error instanceof Error &&
311
605
  (error.name === "AbortTaskRunError" || error.name === "TaskPayloadParsedError")) {
312
606
  return { status: "skipped" };
313
607
  }
314
- if (isInternalError(error) && error.skipRetrying) {
315
- return { status: "skipped", error };
316
- }
317
- if (execution.run.maxAttempts) {
318
- retry.maxAttempts = Math.max(execution.run.maxAttempts, 1);
319
- }
320
- let delay = calculateNextRetryDelay(retry, execution.attempt.number);
321
- if (delay &&
322
- error instanceof Error &&
323
- error.name === "TriggerApiError" &&
324
- error.status === 429) {
325
- const rateLimitError = error;
326
- delay = rateLimitError.millisecondsUntilReset;
608
+ // Calculate default retry delay if retry config exists
609
+ let defaultDelay;
610
+ if (retry) {
611
+ if (execution.run.maxAttempts) {
612
+ retry.maxAttempts = Math.max(execution.run.maxAttempts, 1);
613
+ }
614
+ defaultDelay = calculateNextRetryDelay(retry, execution.attempt.number);
615
+ // Handle rate limit errors
616
+ if (defaultDelay &&
617
+ error instanceof Error &&
618
+ error.name === "TriggerApiError" &&
619
+ error.status === 429) {
620
+ const rateLimitError = error;
621
+ defaultDelay = rateLimitError.millisecondsUntilReset;
622
+ }
327
623
  }
624
+ const defaultRetryResult = typeof defaultDelay === "undefined"
625
+ ? { status: "noop" }
626
+ : {
627
+ status: "retry",
628
+ retry: { timestamp: Date.now() + defaultDelay, delay: defaultDelay },
629
+ };
630
+ // Check if retries are enabled in dev environment
328
631
  if (execution.environment.type === "DEVELOPMENT" &&
329
632
  typeof retriesConfig?.enabledInDev === "boolean" &&
330
633
  !retriesConfig.enabledInDev) {
331
634
  return { status: "skipped" };
332
635
  }
333
- return this._tracer.startActiveSpan("handleError()", async (span) => {
334
- const handleErrorResult = this.task.fns.handleError
335
- ? await this.task.fns.handleError(payload, error, {
636
+ const taskCatchErrorHook = lifecycleHooks.getTaskCatchErrorHook(this.task.id);
637
+ const globalCatchErrorHooks = lifecycleHooks.getGlobalCatchErrorHooks();
638
+ if (globalCatchErrorHooks.length === 0 && !taskCatchErrorHook) {
639
+ return defaultRetryResult;
640
+ }
641
+ return this._tracer.startActiveSpan("catchError", async (span) => {
642
+ // Try task-specific catch error hook first
643
+ if (taskCatchErrorHook) {
644
+ const result = await taskCatchErrorHook({
645
+ payload,
646
+ error,
336
647
  ctx,
337
648
  init,
338
649
  retry,
339
- retryDelayInMs: delay,
340
- retryAt: delay ? new Date(Date.now() + delay) : undefined,
650
+ retryDelayInMs: defaultDelay,
651
+ retryAt: defaultDelay ? new Date(Date.now() + defaultDelay) : undefined,
341
652
  signal,
342
- })
343
- : this._importedConfig
344
- ? await this._handleErrorFn?.(payload, error, {
345
- ctx,
346
- init,
347
- retry,
348
- retryDelayInMs: delay,
349
- retryAt: delay ? new Date(Date.now() + delay) : undefined,
350
- signal,
351
- })
352
- : undefined;
353
- // If handleErrorResult
354
- if (!handleErrorResult) {
355
- return typeof delay === "undefined"
356
- ? { status: "noop" }
357
- : { status: "retry", retry: { timestamp: Date.now() + delay, delay } };
653
+ task: this.task.id,
654
+ });
655
+ if (result) {
656
+ return this.#processHandleErrorResult(result, execution.attempt.number, defaultDelay);
657
+ }
358
658
  }
359
- if (handleErrorResult.skipRetrying) {
360
- return { status: "skipped", error: handleErrorResult.error };
659
+ // Try global catch error hooks in order
660
+ for (const hook of globalCatchErrorHooks) {
661
+ const result = await hook.fn({
662
+ payload,
663
+ error,
664
+ ctx,
665
+ init,
666
+ retry,
667
+ retryDelayInMs: defaultDelay,
668
+ retryAt: defaultDelay ? new Date(Date.now() + defaultDelay) : undefined,
669
+ signal,
670
+ task: this.task.id,
671
+ });
672
+ if (result) {
673
+ return this.#processHandleErrorResult(result, execution.attempt.number, defaultDelay);
674
+ }
361
675
  }
362
- if (typeof handleErrorResult.retryAt !== "undefined") {
363
- return {
676
+ // If no hooks handled the error, use default retry behavior
677
+ return defaultRetryResult;
678
+ }, {
679
+ attributes: {
680
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-catchError",
681
+ [SemanticInternalAttributes.COLLAPSED]: true,
682
+ },
683
+ });
684
+ }
685
+ // Helper method to process handle error results
686
+ #processHandleErrorResult(result, attemptNumber, defaultDelay) {
687
+ if (result.skipRetrying) {
688
+ return { status: "skipped", error: result.error };
689
+ }
690
+ if (typeof result.retryAt !== "undefined") {
691
+ return {
692
+ status: "retry",
693
+ retry: {
694
+ timestamp: result.retryAt.getTime(),
695
+ delay: result.retryAt.getTime() - Date.now(),
696
+ },
697
+ error: result.error,
698
+ };
699
+ }
700
+ if (typeof result.retryDelayInMs === "number") {
701
+ return {
702
+ status: "retry",
703
+ retry: {
704
+ timestamp: Date.now() + result.retryDelayInMs,
705
+ delay: result.retryDelayInMs,
706
+ },
707
+ error: result.error,
708
+ };
709
+ }
710
+ if (result.retry && typeof result.retry === "object") {
711
+ const delay = calculateNextRetryDelay(result.retry, attemptNumber);
712
+ return typeof delay === "undefined"
713
+ ? { status: "noop", error: result.error }
714
+ : {
364
715
  status: "retry",
365
- retry: {
366
- timestamp: handleErrorResult.retryAt.getTime(),
367
- delay: handleErrorResult.retryAt.getTime() - Date.now(),
368
- },
369
- error: handleErrorResult.error,
716
+ retry: { timestamp: Date.now() + delay, delay },
717
+ error: result.error,
370
718
  };
371
- }
372
- if (typeof handleErrorResult.retryDelayInMs === "number") {
373
- return {
374
- status: "retry",
375
- retry: {
376
- timestamp: Date.now() + handleErrorResult.retryDelayInMs,
377
- delay: handleErrorResult.retryDelayInMs,
719
+ }
720
+ return { status: "noop", error: result.error };
721
+ }
722
+ async #callOnCompleteFunctions(payload, result, ctx, initOutput, signal) {
723
+ const globalCompleteHooks = lifecycleHooks.getGlobalCompleteHooks();
724
+ const taskCompleteHook = lifecycleHooks.getTaskCompleteHook(this.task.id);
725
+ if (globalCompleteHooks.length === 0 && !taskCompleteHook) {
726
+ return;
727
+ }
728
+ return await runTimelineMetrics.measureMetric("trigger.dev/execution", "complete", async () => {
729
+ for (const hook of globalCompleteHooks) {
730
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onComplete()", async (span) => {
731
+ await hook.fn({
732
+ payload,
733
+ result,
734
+ ctx,
735
+ signal,
736
+ task: this.task.id,
737
+ init: initOutput,
738
+ });
739
+ }, {
740
+ attributes: {
741
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onComplete",
742
+ [SemanticInternalAttributes.COLLAPSED]: true,
743
+ ...this.#lifecycleHookAccessoryAttributes(hook.name),
378
744
  },
379
- error: handleErrorResult.error,
380
- };
745
+ }));
746
+ if (hookError) {
747
+ throw hookError;
748
+ }
381
749
  }
382
- if (handleErrorResult.retry && typeof handleErrorResult.retry === "object") {
383
- const delay = calculateNextRetryDelay(handleErrorResult.retry, execution.attempt.number);
384
- return typeof delay === "undefined"
385
- ? { status: "noop", error: handleErrorResult.error }
386
- : {
387
- status: "retry",
388
- retry: { timestamp: Date.now() + delay, delay },
389
- error: handleErrorResult.error,
390
- };
750
+ if (taskCompleteHook) {
751
+ const [hookError] = await tryCatch(this._tracer.startActiveSpan("onComplete()", async (span) => {
752
+ await taskCompleteHook({
753
+ payload,
754
+ result,
755
+ ctx,
756
+ signal,
757
+ task: this.task.id,
758
+ init: initOutput,
759
+ });
760
+ }, {
761
+ attributes: {
762
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onComplete",
763
+ [SemanticInternalAttributes.COLLAPSED]: true,
764
+ ...this.#lifecycleHookAccessoryAttributes("task"),
765
+ },
766
+ }));
767
+ if (hookError) {
768
+ throw hookError;
769
+ }
391
770
  }
392
- return { status: "noop", error: handleErrorResult.error };
393
- }, {
394
- attributes: {
395
- [SemanticInternalAttributes.STYLE_ICON]: "exclamation-circle",
771
+ });
772
+ }
773
+ #internalErrorResult(execution, code, error) {
774
+ return {
775
+ ok: false,
776
+ id: execution.run.id,
777
+ error: {
778
+ type: "INTERNAL_ERROR",
779
+ code,
780
+ message: error instanceof Error
781
+ ? `${error.name}: ${error.message}`
782
+ : typeof error === "string"
783
+ ? error
784
+ : undefined,
785
+ stackTrace: error instanceof Error ? error.stack : undefined,
396
786
  },
787
+ };
788
+ }
789
+ #lifecycleHookAccessoryAttributes(name) {
790
+ return accessoryAttributes({
791
+ items: [
792
+ {
793
+ text: name ?? "global",
794
+ variant: "normal",
795
+ },
796
+ ],
797
+ style: "codepath",
397
798
  });
398
799
  }
399
800
  }