@shipfox/api-workflows 4.0.0 → 6.0.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 (277) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/CHANGELOG.md +104 -0
  3. package/dist/core/agent-defaults.d.ts +17 -0
  4. package/dist/core/agent-defaults.d.ts.map +1 -0
  5. package/dist/core/agent-defaults.js +21 -0
  6. package/dist/core/agent-defaults.js.map +1 -0
  7. package/dist/core/agent-tool-capability-warning.d.ts +4 -0
  8. package/dist/core/agent-tool-capability-warning.d.ts.map +1 -1
  9. package/dist/core/agent-tool-capability-warning.js +15 -17
  10. package/dist/core/agent-tool-capability-warning.js.map +1 -1
  11. package/dist/core/agent-tools.d.ts +11 -9
  12. package/dist/core/agent-tools.d.ts.map +1 -1
  13. package/dist/core/agent-tools.js +23 -18
  14. package/dist/core/agent-tools.js.map +1 -1
  15. package/dist/core/checkout.d.ts +21 -7
  16. package/dist/core/checkout.d.ts.map +1 -1
  17. package/dist/core/checkout.js +23 -11
  18. package/dist/core/checkout.js.map +1 -1
  19. package/dist/core/entities/workflow-run-attempt.d.ts +1 -1
  20. package/dist/core/entities/workflow-run-attempt.d.ts.map +1 -1
  21. package/dist/core/entities/workflow-run-attempt.js.map +1 -1
  22. package/dist/core/job-execution.d.ts +3 -1
  23. package/dist/core/job-execution.d.ts.map +1 -1
  24. package/dist/core/job-execution.js +14 -12
  25. package/dist/core/job-execution.js.map +1 -1
  26. package/dist/core/job-transition/derive-job-execution-outputs.d.ts +1 -1
  27. package/dist/core/job-transition/derive-job-execution-outputs.d.ts.map +1 -1
  28. package/dist/core/job-transition/derive-job-execution-outputs.js.map +1 -1
  29. package/dist/core/job-transition/derive-job-success.js +1 -1
  30. package/dist/core/job-transition/derive-job-success.js.map +1 -1
  31. package/dist/core/listener-execution-materialization.d.ts +3 -3
  32. package/dist/core/listener-execution-materialization.d.ts.map +1 -1
  33. package/dist/core/listener-execution-materialization.js +3 -4
  34. package/dist/core/listener-execution-materialization.js.map +1 -1
  35. package/dist/core/run-workflow.d.ts +12 -1
  36. package/dist/core/run-workflow.d.ts.map +1 -1
  37. package/dist/core/run-workflow.js +13 -8
  38. package/dist/core/run-workflow.js.map +1 -1
  39. package/dist/core/step-config/agent.d.ts +8 -8
  40. package/dist/core/step-config/agent.d.ts.map +1 -1
  41. package/dist/core/step-config/agent.js +12 -10
  42. package/dist/core/step-config/agent.js.map +1 -1
  43. package/dist/core/step-config/complete-step-dispatch-config.d.ts +4 -4
  44. package/dist/core/step-config/complete-step-dispatch-config.d.ts.map +1 -1
  45. package/dist/core/step-config/complete-step-dispatch-config.js +2 -2
  46. package/dist/core/step-config/complete-step-dispatch-config.js.map +1 -1
  47. package/dist/core/step-config/materialize-job-execution-steps.d.ts +3 -3
  48. package/dist/core/step-config/materialize-job-execution-steps.d.ts.map +1 -1
  49. package/dist/core/step-config/materialize-job-execution-steps.js +5 -6
  50. package/dist/core/step-config/materialize-job-execution-steps.js.map +1 -1
  51. package/dist/core/step-config/materialize-workflow-model.d.ts +3 -3
  52. package/dist/core/step-config/materialize-workflow-model.d.ts.map +1 -1
  53. package/dist/core/step-config/materialize-workflow-model.js +4 -4
  54. package/dist/core/step-config/materialize-workflow-model.js.map +1 -1
  55. package/dist/core/step-config/resolve-job-execution-name.d.ts +1 -1
  56. package/dist/core/step-config/resolve-job-execution-name.d.ts.map +1 -1
  57. package/dist/core/step-config/resolve-job-execution-name.js.map +1 -1
  58. package/dist/core/step-config/resolve-step-config.d.ts +4 -4
  59. package/dist/core/step-config/resolve-step-config.d.ts.map +1 -1
  60. package/dist/core/step-config/resolve-step-config.js +6 -6
  61. package/dist/core/step-config/resolve-step-config.js.map +1 -1
  62. package/dist/core/step-config/run.d.ts +1 -1
  63. package/dist/core/step-config/run.d.ts.map +1 -1
  64. package/dist/core/step-config/run.js.map +1 -1
  65. package/dist/core/workflow-run-creation.d.ts +3 -3
  66. package/dist/core/workflow-run-creation.d.ts.map +1 -1
  67. package/dist/core/workflow-run-creation.js +3 -4
  68. package/dist/core/workflow-run-creation.js.map +1 -1
  69. package/dist/db/db.d.ts +16 -4
  70. package/dist/db/db.d.ts.map +1 -1
  71. package/dist/db/job-listeners.d.ts +7 -1
  72. package/dist/db/job-listeners.d.ts.map +1 -1
  73. package/dist/db/job-listeners.js +10 -5
  74. package/dist/db/job-listeners.js.map +1 -1
  75. package/dist/db/runner-lease-table.d.ts +5 -5
  76. package/dist/db/runner-lease-table.d.ts.map +1 -1
  77. package/dist/db/runner-lease-table.js +3 -2
  78. package/dist/db/runner-lease-table.js.map +1 -1
  79. package/dist/db/schema/workflow-run-attempts.d.ts +9 -3
  80. package/dist/db/schema/workflow-run-attempts.d.ts.map +1 -1
  81. package/dist/db/schema/workflow-run-attempts.js +2 -1
  82. package/dist/db/schema/workflow-run-attempts.js.map +1 -1
  83. package/dist/db/schema/workflow-runs.js +1 -1
  84. package/dist/db/schema/workflow-runs.js.map +1 -1
  85. package/dist/db/workflow-runs/job-executions.d.ts +5 -0
  86. package/dist/db/workflow-runs/job-executions.d.ts.map +1 -1
  87. package/dist/db/workflow-runs/job-executions.js +14 -7
  88. package/dist/db/workflow-runs/job-executions.js.map +1 -1
  89. package/dist/db/workflow-runs/jobs.d.ts.map +1 -1
  90. package/dist/db/workflow-runs/jobs.js +3 -1
  91. package/dist/db/workflow-runs/jobs.js.map +1 -1
  92. package/dist/db/workflow-runs/run-create.d.ts +9 -2
  93. package/dist/db/workflow-runs/run-create.d.ts.map +1 -1
  94. package/dist/db/workflow-runs/run-create.js +12 -9
  95. package/dist/db/workflow-runs/run-create.js.map +1 -1
  96. package/dist/db/workflow-runs/run-rerun.d.ts.map +1 -1
  97. package/dist/db/workflow-runs/run-rerun.js +3 -1
  98. package/dist/db/workflow-runs/run-rerun.js.map +1 -1
  99. package/dist/index.d.ts +18 -4
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +61 -37
  102. package/dist/index.js.map +1 -1
  103. package/dist/presentation/dto/checkout-token.d.ts +14 -1
  104. package/dist/presentation/dto/checkout-token.d.ts.map +1 -1
  105. package/dist/presentation/dto/checkout-token.js.map +1 -1
  106. package/dist/presentation/index.d.ts +1 -1
  107. package/dist/presentation/index.d.ts.map +1 -1
  108. package/dist/presentation/index.js +1 -1
  109. package/dist/presentation/index.js.map +1 -1
  110. package/dist/presentation/inter-module.d.ts +18 -0
  111. package/dist/presentation/inter-module.d.ts.map +1 -0
  112. package/dist/presentation/inter-module.js +113 -0
  113. package/dist/presentation/inter-module.js.map +1 -0
  114. package/dist/presentation/routes/agent-runtime-config.d.ts +6 -1
  115. package/dist/presentation/routes/agent-runtime-config.d.ts.map +1 -1
  116. package/dist/presentation/routes/agent-runtime-config.js +59 -57
  117. package/dist/presentation/routes/agent-runtime-config.js.map +1 -1
  118. package/dist/presentation/routes/cancel-run.d.ts +2 -1
  119. package/dist/presentation/routes/cancel-run.d.ts.map +1 -1
  120. package/dist/presentation/routes/cancel-run.js +37 -34
  121. package/dist/presentation/routes/cancel-run.js.map +1 -1
  122. package/dist/presentation/routes/checkout-token.d.ts +8 -1
  123. package/dist/presentation/routes/checkout-token.d.ts.map +1 -1
  124. package/dist/presentation/routes/checkout-token.js +65 -47
  125. package/dist/presentation/routes/checkout-token.js.map +1 -1
  126. package/dist/presentation/routes/get-run-aggregates.d.ts +2 -1
  127. package/dist/presentation/routes/get-run-aggregates.d.ts.map +1 -1
  128. package/dist/presentation/routes/get-run-aggregates.js +44 -53
  129. package/dist/presentation/routes/get-run-aggregates.js.map +1 -1
  130. package/dist/presentation/routes/get-run.d.ts +2 -1
  131. package/dist/presentation/routes/get-run.d.ts.map +1 -1
  132. package/dist/presentation/routes/get-run.js +53 -50
  133. package/dist/presentation/routes/get-run.js.map +1 -1
  134. package/dist/presentation/routes/get-step-secrets.d.ts +3 -1
  135. package/dist/presentation/routes/get-step-secrets.d.ts.map +1 -1
  136. package/dist/presentation/routes/get-step-secrets.js +72 -68
  137. package/dist/presentation/routes/get-step-secrets.js.map +1 -1
  138. package/dist/presentation/routes/index.d.ts +19 -2
  139. package/dist/presentation/routes/index.d.ts.map +1 -1
  140. package/dist/presentation/routes/index.js +38 -30
  141. package/dist/presentation/routes/index.js.map +1 -1
  142. package/dist/presentation/routes/leased-step.d.ts +2 -0
  143. package/dist/presentation/routes/leased-step.d.ts.map +1 -1
  144. package/dist/presentation/routes/leased-step.js +1 -2
  145. package/dist/presentation/routes/leased-step.js.map +1 -1
  146. package/dist/presentation/routes/list-run-attempts.d.ts +2 -1
  147. package/dist/presentation/routes/list-run-attempts.d.ts.map +1 -1
  148. package/dist/presentation/routes/list-run-attempts.js +29 -26
  149. package/dist/presentation/routes/list-run-attempts.js.map +1 -1
  150. package/dist/presentation/routes/list-runs.d.ts +2 -1
  151. package/dist/presentation/routes/list-runs.d.ts.map +1 -1
  152. package/dist/presentation/routes/list-runs.js +51 -60
  153. package/dist/presentation/routes/list-runs.js.map +1 -1
  154. package/dist/presentation/routes/next-step.d.ts +10 -1
  155. package/dist/presentation/routes/next-step.d.ts.map +1 -1
  156. package/dist/presentation/routes/next-step.js +64 -50
  157. package/dist/presentation/routes/next-step.js.map +1 -1
  158. package/dist/presentation/routes/project-access.d.ts +10 -0
  159. package/dist/presentation/routes/project-access.d.ts.map +1 -0
  160. package/dist/presentation/routes/project-access.js +17 -0
  161. package/dist/presentation/routes/project-access.js.map +1 -0
  162. package/dist/presentation/routes/report-step.d.ts +2 -1
  163. package/dist/presentation/routes/report-step.d.ts.map +1 -1
  164. package/dist/presentation/routes/report-step.js +62 -61
  165. package/dist/presentation/routes/report-step.js.map +1 -1
  166. package/dist/presentation/routes/require-accessible-run.d.ts +3 -1
  167. package/dist/presentation/routes/require-accessible-run.d.ts.map +1 -1
  168. package/dist/presentation/routes/require-accessible-run.js +3 -6
  169. package/dist/presentation/routes/require-accessible-run.js.map +1 -1
  170. package/dist/presentation/routes/rerun-run.d.ts +2 -1
  171. package/dist/presentation/routes/rerun-run.d.ts.map +1 -1
  172. package/dist/presentation/routes/rerun-run.js +46 -43
  173. package/dist/presentation/routes/rerun-run.js.map +1 -1
  174. package/dist/temporal/activities/index.d.ts +44 -9
  175. package/dist/temporal/activities/index.d.ts.map +1 -1
  176. package/dist/temporal/activities/index.js +13 -9
  177. package/dist/temporal/activities/index.js.map +1 -1
  178. package/dist/temporal/activities/orchestration-activities.d.ts +20 -11
  179. package/dist/temporal/activities/orchestration-activities.d.ts.map +1 -1
  180. package/dist/temporal/activities/orchestration-activities.js +48 -33
  181. package/dist/temporal/activities/orchestration-activities.js.map +1 -1
  182. package/dist/tsconfig.test.tsbuildinfo +1 -1
  183. package/package.json +41 -44
  184. package/src/core/agent-defaults.test.ts +28 -0
  185. package/src/core/agent-defaults.ts +36 -0
  186. package/src/core/agent-tool-capability-warning.test.ts +36 -11
  187. package/src/core/agent-tool-capability-warning.ts +27 -25
  188. package/src/core/agent-tools.ts +33 -36
  189. package/src/core/checkout.test.ts +38 -25
  190. package/src/core/checkout.ts +41 -14
  191. package/src/core/entities/workflow-run-attempt.ts +1 -1
  192. package/src/core/job-execution.ts +19 -9
  193. package/src/core/job-transition/derive-job-execution-outputs.ts +1 -1
  194. package/src/core/job-transition/derive-job-success.ts +1 -1
  195. package/src/core/listener-execution-materialization.test.ts +4 -2
  196. package/src/core/listener-execution-materialization.ts +6 -9
  197. package/src/core/run-workflow.test.ts +43 -38
  198. package/src/core/run-workflow.ts +26 -9
  199. package/src/core/step-config/agent.ts +24 -26
  200. package/src/core/step-config/complete-step-dispatch-config.test.ts +22 -23
  201. package/src/core/step-config/complete-step-dispatch-config.ts +6 -6
  202. package/src/core/step-config/materialize-job-execution-steps.test.ts +34 -23
  203. package/src/core/step-config/materialize-job-execution-steps.ts +38 -39
  204. package/src/core/step-config/materialize-workflow-model.test.ts +94 -82
  205. package/src/core/step-config/materialize-workflow-model.ts +31 -29
  206. package/src/core/step-config/resolve-job-execution-name.ts +1 -1
  207. package/src/core/step-config/resolve-step-config.ts +11 -9
  208. package/src/core/step-config/run.ts +1 -1
  209. package/src/core/workflow-run-creation.test.ts +14 -10
  210. package/src/core/workflow-run-creation.ts +6 -9
  211. package/src/db/job-listeners.ts +20 -5
  212. package/src/db/runner-lease-table.ts +2 -2
  213. package/src/db/schema/workflow-run-attempts.ts +7 -3
  214. package/src/db/schema/workflow-runs.ts +1 -1
  215. package/src/db/workflow-runs/job-executions.ts +15 -1
  216. package/src/db/workflow-runs/jobs.ts +4 -1
  217. package/src/db/workflow-runs/run-create.test.ts +7 -1
  218. package/src/db/workflow-runs/run-create.ts +25 -15
  219. package/src/db/workflow-runs/run-rerun.test.ts +1 -1
  220. package/src/db/workflow-runs/run-rerun.ts +6 -3
  221. package/src/index.ts +75 -33
  222. package/src/presentation/dto/checkout-token.ts +7 -1
  223. package/src/presentation/index.ts +1 -1
  224. package/src/presentation/inter-module.test.ts +149 -0
  225. package/src/presentation/inter-module.ts +132 -0
  226. package/src/presentation/routes/agent-runtime-config.test.ts +53 -10
  227. package/src/presentation/routes/agent-runtime-config.ts +89 -64
  228. package/src/presentation/routes/cancel-run.test.ts +10 -20
  229. package/src/presentation/routes/cancel-run.ts +30 -27
  230. package/src/presentation/routes/checkout-token.test.ts +52 -33
  231. package/src/presentation/routes/checkout-token.ts +109 -49
  232. package/src/presentation/routes/get-run-aggregates.test.ts +13 -7
  233. package/src/presentation/routes/get-run-aggregates.ts +54 -57
  234. package/src/presentation/routes/get-run.test.ts +10 -18
  235. package/src/presentation/routes/get-run.ts +51 -48
  236. package/src/presentation/routes/get-step-secrets.test.ts +29 -7
  237. package/src/presentation/routes/get-step-secrets.ts +72 -61
  238. package/src/presentation/routes/index.test.ts +16 -1
  239. package/src/presentation/routes/index.ts +54 -29
  240. package/src/presentation/routes/leased-step.ts +3 -2
  241. package/src/presentation/routes/list-run-attempts.test.ts +9 -19
  242. package/src/presentation/routes/list-run-attempts.ts +21 -18
  243. package/src/presentation/routes/list-runs.test.ts +13 -7
  244. package/src/presentation/routes/list-runs.ts +64 -67
  245. package/src/presentation/routes/next-step.test.ts +30 -11
  246. package/src/presentation/routes/next-step.ts +68 -48
  247. package/src/presentation/routes/project-access.ts +16 -0
  248. package/src/presentation/routes/report-step.test.ts +18 -2
  249. package/src/presentation/routes/report-step.ts +51 -49
  250. package/src/presentation/routes/require-accessible-run.ts +5 -2
  251. package/src/presentation/routes/rerun-run.test.ts +9 -19
  252. package/src/presentation/routes/rerun-run.ts +39 -36
  253. package/src/temporal/activities/index.ts +32 -12
  254. package/src/temporal/activities/orchestration-activities.test.ts +10 -8
  255. package/src/temporal/activities/orchestration-activities.ts +74 -50
  256. package/src/temporal/workflows/job-execution-orchestration.test.ts +47 -2
  257. package/test/env.ts +1 -3
  258. package/test/factories/project.ts +10 -5
  259. package/test/factories/workflow-model.test.ts +5 -1
  260. package/test/factories/workflow-model.ts +1 -1
  261. package/test/factories/workflow-run.ts +1 -1
  262. package/test/fixtures/agent-inter-module.ts +27 -0
  263. package/test/fixtures/annotations-inter-module.ts +5 -0
  264. package/test/fixtures/auth-inter-module.ts +22 -0
  265. package/test/fixtures/lease-token.ts +2 -1
  266. package/test/fixtures/projects-inter-module.ts +8 -0
  267. package/test/fixtures/runners-inter-module.ts +52 -0
  268. package/test/fixtures/secrets-inter-module.ts +61 -0
  269. package/test/globalSetup.ts +11 -11
  270. package/tsconfig.build.tsbuildinfo +1 -1
  271. package/dist/core/source-control.d.ts +0 -5
  272. package/dist/core/source-control.d.ts.map +0 -1
  273. package/dist/core/source-control.js +0 -19
  274. package/dist/core/source-control.js.map +0 -1
  275. package/src/core/source-control.test.ts +0 -17
  276. package/src/core/source-control.ts +0 -22
  277. package/src/temporal/workflows/job-execution-orchestration-timeout.test.ts +0 -165
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/presentation/routes/report-step.ts"],"sourcesContent":["import {requireLeasedJobContext} from '@shipfox/api-auth-context';\nimport {isJobLeaseActive} from '@shipfox/api-runners';\nimport {reportStepBodySchema, reportStepResponseSchema} from '@shipfox/api-workflows-dto';\nimport {ClientError, defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {StepAttemptAheadError, StepNotFoundError, StepNotRunningError} from '#core/errors.js';\nimport {recordStepResult} from '#core/job-execution.js';\nimport {fromStepErrorDto} from '#presentation/dto/step.js';\n\nexport const reportStepRoute = defineRoute({\n method: 'POST',\n path: '/steps/:stepId/report',\n description:\n 'Reports whether a step succeeded or failed. The job is identified by the access token. Reporting the same step more than once is safe: once a step has finished, later reports for it are ignored. The runner does not call a separate job-completion endpoint — finalization is driven server-side from the recorded step results, and the `cancel` flag tells the runner to stop once the job has finished without full success.',\n schema: {\n params: z.object({stepId: z.string().uuid()}),\n body: reportStepBodySchema,\n response: {\n 200: reportStepResponseSchema,\n },\n },\n errorHandler: (error) => {\n if (error instanceof StepNotFoundError) {\n throw new ClientError(error.message, 'step-not-found', {status: 404});\n }\n if (error instanceof StepNotRunningError) {\n throw new ClientError(error.message, 'step-not-running', {status: 409});\n }\n if (error instanceof StepAttemptAheadError) {\n throw new ClientError(error.message, 'step-attempt-ahead', {status: 409});\n }\n throw error;\n },\n handler: async (request) => {\n const {stepId} = request.params;\n const leasedJob = requireLeasedJobContext(request);\n\n const leaseIsActive = await isJobLeaseActive({\n jobId: leasedJob.jobId,\n jobExecutionId: leasedJob.jobExecutionId,\n runnerSessionId: leasedJob.runnerSessionId,\n });\n if (!leaseIsActive) {\n throw new ClientError('Job lease is no longer active', 'lease-not-active', {status: 404});\n }\n\n const outcome = await recordStepResult({\n jobExecutionId: leasedJob.jobExecutionId,\n stepId,\n status: request.body.status,\n error: fromStepErrorDto(request.body.error),\n output: request.body.output ?? null,\n response: request.body.response ?? null,\n exitCode: request.body.exit_code ?? request.body.error?.exit_code ?? null,\n logOutcome: request.body.log_outcome,\n ...(request.body.attempt !== undefined ? {attempt: request.body.attempt} : {}),\n });\n\n return {ok: true, cancel: outcome.jobFinished && outcome.status === 'failed'};\n },\n});\n"],"names":["requireLeasedJobContext","isJobLeaseActive","reportStepBodySchema","reportStepResponseSchema","ClientError","defineRoute","z","StepAttemptAheadError","StepNotFoundError","StepNotRunningError","recordStepResult","fromStepErrorDto","reportStepRoute","method","path","description","schema","params","object","stepId","string","uuid","body","response","errorHandler","error","message","status","handler","request","leasedJob","leaseIsActive","jobId","jobExecutionId","runnerSessionId","outcome","output","exitCode","exit_code","logOutcome","log_outcome","attempt","undefined","ok","cancel","jobFinished"],"mappings":"AAAA,SAAQA,uBAAuB,QAAO,4BAA4B;AAClE,SAAQC,gBAAgB,QAAO,uBAAuB;AACtD,SAAQC,oBAAoB,EAAEC,wBAAwB,QAAO,6BAA6B;AAC1F,SAAQC,WAAW,EAAEC,WAAW,QAAO,wBAAwB;AAC/D,SAAQC,CAAC,QAAO,MAAM;AACtB,SAAQC,qBAAqB,EAAEC,iBAAiB,EAAEC,mBAAmB,QAAO,kBAAkB;AAC9F,SAAQC,gBAAgB,QAAO,yBAAyB;AACxD,SAAQC,gBAAgB,QAAO,4BAA4B;AAE3D,OAAO,MAAMC,kBAAkBP,YAAY;IACzCQ,QAAQ;IACRC,MAAM;IACNC,aACE;IACFC,QAAQ;QACNC,QAAQX,EAAEY,MAAM,CAAC;YAACC,QAAQb,EAAEc,MAAM,GAAGC,IAAI;QAAE;QAC3CC,MAAMpB;QACNqB,UAAU;YACR,KAAKpB;QACP;IACF;IACAqB,cAAc,CAACC;QACb,IAAIA,iBAAiBjB,mBAAmB;YACtC,MAAM,IAAIJ,YAAYqB,MAAMC,OAAO,EAAE,kBAAkB;gBAACC,QAAQ;YAAG;QACrE;QACA,IAAIF,iBAAiBhB,qBAAqB;YACxC,MAAM,IAAIL,YAAYqB,MAAMC,OAAO,EAAE,oBAAoB;gBAACC,QAAQ;YAAG;QACvE;QACA,IAAIF,iBAAiBlB,uBAAuB;YAC1C,MAAM,IAAIH,YAAYqB,MAAMC,OAAO,EAAE,sBAAsB;gBAACC,QAAQ;YAAG;QACzE;QACA,MAAMF;IACR;IACAG,SAAS,OAAOC;QACd,MAAM,EAACV,MAAM,EAAC,GAAGU,QAAQZ,MAAM;QAC/B,MAAMa,YAAY9B,wBAAwB6B;QAE1C,MAAME,gBAAgB,MAAM9B,iBAAiB;YAC3C+B,OAAOF,UAAUE,KAAK;YACtBC,gBAAgBH,UAAUG,cAAc;YACxCC,iBAAiBJ,UAAUI,eAAe;QAC5C;QACA,IAAI,CAACH,eAAe;YAClB,MAAM,IAAI3B,YAAY,iCAAiC,oBAAoB;gBAACuB,QAAQ;YAAG;QACzF;QAEA,MAAMQ,UAAU,MAAMzB,iBAAiB;YACrCuB,gBAAgBH,UAAUG,cAAc;YACxCd;YACAQ,QAAQE,QAAQP,IAAI,CAACK,MAAM;YAC3BF,OAAOd,iBAAiBkB,QAAQP,IAAI,CAACG,KAAK;YAC1CW,QAAQP,QAAQP,IAAI,CAACc,MAAM,IAAI;YAC/Bb,UAAUM,QAAQP,IAAI,CAACC,QAAQ,IAAI;YACnCc,UAAUR,QAAQP,IAAI,CAACgB,SAAS,IAAIT,QAAQP,IAAI,CAACG,KAAK,EAAEa,aAAa;YACrEC,YAAYV,QAAQP,IAAI,CAACkB,WAAW;YACpC,GAAIX,QAAQP,IAAI,CAACmB,OAAO,KAAKC,YAAY;gBAACD,SAASZ,QAAQP,IAAI,CAACmB,OAAO;YAAA,IAAI,CAAC,CAAC;QAC/E;QAEA,OAAO;YAACE,IAAI;YAAMC,QAAQT,QAAQU,WAAW,IAAIV,QAAQR,MAAM,KAAK;QAAQ;IAC9E;AACF,GAAG"}
1
+ {"version":3,"sources":["../../../src/presentation/routes/report-step.ts"],"sourcesContent":["import {requireLeasedJobContext} from '@shipfox/api-auth-context';\nimport type {RunnersInterModuleClient} from '@shipfox/api-runners-dto/inter-module';\nimport {reportStepBodySchema, reportStepResponseSchema} from '@shipfox/api-workflows-dto';\nimport {ClientError, defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {StepAttemptAheadError, StepNotFoundError, StepNotRunningError} from '#core/errors.js';\nimport {recordStepResult} from '#core/job-execution.js';\nimport {fromStepErrorDto} from '#presentation/dto/step.js';\n\nexport function createReportStepRoute(runners: RunnersInterModuleClient) {\n return defineRoute({\n method: 'POST',\n path: '/steps/:stepId/report',\n description:\n 'Reports whether a step succeeded or failed. The job is identified by the access token. Reporting the same step more than once is safe: once a step has finished, later reports for it are ignored. The runner does not call a separate job-completion endpoint — finalization is driven server-side from the recorded step results, and the `cancel` flag tells the runner to stop once the job has finished without full success.',\n schema: {\n params: z.object({stepId: z.string().uuid()}),\n body: reportStepBodySchema,\n response: {\n 200: reportStepResponseSchema,\n },\n },\n errorHandler: (error) => {\n if (error instanceof StepNotFoundError) {\n throw new ClientError(error.message, 'step-not-found', {status: 404});\n }\n if (error instanceof StepNotRunningError) {\n throw new ClientError(error.message, 'step-not-running', {status: 409});\n }\n if (error instanceof StepAttemptAheadError) {\n throw new ClientError(error.message, 'step-attempt-ahead', {status: 409});\n }\n throw error;\n },\n handler: async (request) => {\n const {stepId} = request.params;\n const leasedJob = requireLeasedJobContext(request);\n\n const {active: leaseIsActive} = await runners.getLeaseState({\n jobId: leasedJob.jobId,\n jobExecutionId: leasedJob.jobExecutionId,\n runnerSessionId: leasedJob.runnerSessionId,\n });\n if (!leaseIsActive) {\n throw new ClientError('Job lease is no longer active', 'lease-not-active', {status: 404});\n }\n\n const outcome = await recordStepResult({\n jobExecutionId: leasedJob.jobExecutionId,\n stepId,\n status: request.body.status,\n error: fromStepErrorDto(request.body.error),\n output: request.body.output ?? null,\n response: request.body.response ?? null,\n exitCode: request.body.exit_code ?? request.body.error?.exit_code ?? null,\n logOutcome: request.body.log_outcome,\n ...(request.body.attempt !== undefined ? {attempt: request.body.attempt} : {}),\n });\n\n return {ok: true, cancel: outcome.jobFinished && outcome.status === 'failed'};\n },\n });\n}\n"],"names":["requireLeasedJobContext","reportStepBodySchema","reportStepResponseSchema","ClientError","defineRoute","z","StepAttemptAheadError","StepNotFoundError","StepNotRunningError","recordStepResult","fromStepErrorDto","createReportStepRoute","runners","method","path","description","schema","params","object","stepId","string","uuid","body","response","errorHandler","error","message","status","handler","request","leasedJob","active","leaseIsActive","getLeaseState","jobId","jobExecutionId","runnerSessionId","outcome","output","exitCode","exit_code","logOutcome","log_outcome","attempt","undefined","ok","cancel","jobFinished"],"mappings":"AAAA,SAAQA,uBAAuB,QAAO,4BAA4B;AAElE,SAAQC,oBAAoB,EAAEC,wBAAwB,QAAO,6BAA6B;AAC1F,SAAQC,WAAW,EAAEC,WAAW,QAAO,wBAAwB;AAC/D,SAAQC,CAAC,QAAO,MAAM;AACtB,SAAQC,qBAAqB,EAAEC,iBAAiB,EAAEC,mBAAmB,QAAO,kBAAkB;AAC9F,SAAQC,gBAAgB,QAAO,yBAAyB;AACxD,SAAQC,gBAAgB,QAAO,4BAA4B;AAE3D,OAAO,SAASC,sBAAsBC,OAAiC;IACrE,OAAOR,YAAY;QACjBS,QAAQ;QACRC,MAAM;QACNC,aACE;QACFC,QAAQ;YACNC,QAAQZ,EAAEa,MAAM,CAAC;gBAACC,QAAQd,EAAEe,MAAM,GAAGC,IAAI;YAAE;YAC3CC,MAAMrB;YACNsB,UAAU;gBACR,KAAKrB;YACP;QACF;QACAsB,cAAc,CAACC;YACb,IAAIA,iBAAiBlB,mBAAmB;gBACtC,MAAM,IAAIJ,YAAYsB,MAAMC,OAAO,EAAE,kBAAkB;oBAACC,QAAQ;gBAAG;YACrE;YACA,IAAIF,iBAAiBjB,qBAAqB;gBACxC,MAAM,IAAIL,YAAYsB,MAAMC,OAAO,EAAE,oBAAoB;oBAACC,QAAQ;gBAAG;YACvE;YACA,IAAIF,iBAAiBnB,uBAAuB;gBAC1C,MAAM,IAAIH,YAAYsB,MAAMC,OAAO,EAAE,sBAAsB;oBAACC,QAAQ;gBAAG;YACzE;YACA,MAAMF;QACR;QACAG,SAAS,OAAOC;YACd,MAAM,EAACV,MAAM,EAAC,GAAGU,QAAQZ,MAAM;YAC/B,MAAMa,YAAY9B,wBAAwB6B;YAE1C,MAAM,EAACE,QAAQC,aAAa,EAAC,GAAG,MAAMpB,QAAQqB,aAAa,CAAC;gBAC1DC,OAAOJ,UAAUI,KAAK;gBACtBC,gBAAgBL,UAAUK,cAAc;gBACxCC,iBAAiBN,UAAUM,eAAe;YAC5C;YACA,IAAI,CAACJ,eAAe;gBAClB,MAAM,IAAI7B,YAAY,iCAAiC,oBAAoB;oBAACwB,QAAQ;gBAAG;YACzF;YAEA,MAAMU,UAAU,MAAM5B,iBAAiB;gBACrC0B,gBAAgBL,UAAUK,cAAc;gBACxChB;gBACAQ,QAAQE,QAAQP,IAAI,CAACK,MAAM;gBAC3BF,OAAOf,iBAAiBmB,QAAQP,IAAI,CAACG,KAAK;gBAC1Ca,QAAQT,QAAQP,IAAI,CAACgB,MAAM,IAAI;gBAC/Bf,UAAUM,QAAQP,IAAI,CAACC,QAAQ,IAAI;gBACnCgB,UAAUV,QAAQP,IAAI,CAACkB,SAAS,IAAIX,QAAQP,IAAI,CAACG,KAAK,EAAEe,aAAa;gBACrEC,YAAYZ,QAAQP,IAAI,CAACoB,WAAW;gBACpC,GAAIb,QAAQP,IAAI,CAACqB,OAAO,KAAKC,YAAY;oBAACD,SAASd,QAAQP,IAAI,CAACqB,OAAO;gBAAA,IAAI,CAAC,CAAC;YAC/E;YAEA,OAAO;gBAACE,IAAI;gBAAMC,QAAQT,QAAQU,WAAW,IAAIV,QAAQV,MAAM,KAAK;YAAQ;QAC9E;IACF;AACF"}
@@ -1,7 +1,9 @@
1
+ import type { ProjectsModuleClient } from '@shipfox/api-projects-dto';
1
2
  import type { FastifyRequest } from 'fastify';
2
3
  import type { WorkflowRun } from '#core/entities/workflow-run.js';
3
- export declare function requireAccessibleRun({ request, id, }: {
4
+ export declare function requireAccessibleRun({ request, id, projects, }: {
4
5
  request: FastifyRequest;
5
6
  id: string;
7
+ projects: ProjectsModuleClient;
6
8
  }): Promise<WorkflowRun>;
7
9
  //# sourceMappingURL=require-accessible-run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"require-accessible-run.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/require-accessible-run.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAGhE,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,EAAE,GACH,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,GAAG,OAAO,CAAC,WAAW,CAAC,CAcvB"}
1
+ {"version":3,"file":"require-accessible-run.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/require-accessible-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAEpE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAIhE,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,EAAE,EACF,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GAAG,OAAO,CAAC,WAAW,CAAC,CAcvB"}
@@ -1,17 +1,14 @@
1
- import { requireProjectAccess } from '@shipfox/api-projects';
2
1
  import { ClientError } from '@shipfox/node-fastify';
3
2
  import { getWorkflowRunById } from '#db/index.js';
4
- export async function requireAccessibleRun({ request, id }) {
3
+ import { requireProjectAccess } from './project-access.js';
4
+ export async function requireAccessibleRun({ request, id, projects }) {
5
5
  const run = await getWorkflowRunById(id);
6
6
  if (!run) {
7
7
  throw new ClientError('Run not found', 'not-found', {
8
8
  status: 404
9
9
  });
10
10
  }
11
- await requireProjectAccess({
12
- request,
13
- projectId: run.projectId
14
- }).catch((err)=>{
11
+ await requireProjectAccess(request, run.projectId, projects).catch((err)=>{
15
12
  if (err instanceof ClientError && (err.status === 403 || err.status === 404)) {
16
13
  throw new ClientError('Run not found', 'not-found', {
17
14
  status: 404
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/presentation/routes/require-accessible-run.ts"],"sourcesContent":["import {requireProjectAccess} from '@shipfox/api-projects';\nimport {ClientError} from '@shipfox/node-fastify';\nimport type {FastifyRequest} from 'fastify';\nimport type {WorkflowRun} from '#core/entities/workflow-run.js';\nimport {getWorkflowRunById} from '#db/index.js';\n\nexport async function requireAccessibleRun({\n request,\n id,\n}: {\n request: FastifyRequest;\n id: string;\n}): Promise<WorkflowRun> {\n const run = await getWorkflowRunById(id);\n if (!run) {\n throw new ClientError('Run not found', 'not-found', {status: 404});\n }\n\n await requireProjectAccess({request, projectId: run.projectId}).catch((err: unknown) => {\n if (err instanceof ClientError && (err.status === 403 || err.status === 404)) {\n throw new ClientError('Run not found', 'not-found', {status: 404});\n }\n throw err;\n });\n\n return run;\n}\n"],"names":["requireProjectAccess","ClientError","getWorkflowRunById","requireAccessibleRun","request","id","run","status","projectId","catch","err"],"mappings":"AAAA,SAAQA,oBAAoB,QAAO,wBAAwB;AAC3D,SAAQC,WAAW,QAAO,wBAAwB;AAGlD,SAAQC,kBAAkB,QAAO,eAAe;AAEhD,OAAO,eAAeC,qBAAqB,EACzCC,OAAO,EACPC,EAAE,EAIH;IACC,MAAMC,MAAM,MAAMJ,mBAAmBG;IACrC,IAAI,CAACC,KAAK;QACR,MAAM,IAAIL,YAAY,iBAAiB,aAAa;YAACM,QAAQ;QAAG;IAClE;IAEA,MAAMP,qBAAqB;QAACI;QAASI,WAAWF,IAAIE,SAAS;IAAA,GAAGC,KAAK,CAAC,CAACC;QACrE,IAAIA,eAAeT,eAAgBS,CAAAA,IAAIH,MAAM,KAAK,OAAOG,IAAIH,MAAM,KAAK,GAAE,GAAI;YAC5E,MAAM,IAAIN,YAAY,iBAAiB,aAAa;gBAACM,QAAQ;YAAG;QAClE;QACA,MAAMG;IACR;IAEA,OAAOJ;AACT"}
1
+ {"version":3,"sources":["../../../src/presentation/routes/require-accessible-run.ts"],"sourcesContent":["import type {ProjectsModuleClient} from '@shipfox/api-projects-dto';\nimport {ClientError} from '@shipfox/node-fastify';\nimport type {FastifyRequest} from 'fastify';\nimport type {WorkflowRun} from '#core/entities/workflow-run.js';\nimport {getWorkflowRunById} from '#db/index.js';\nimport {requireProjectAccess} from './project-access.js';\n\nexport async function requireAccessibleRun({\n request,\n id,\n projects,\n}: {\n request: FastifyRequest;\n id: string;\n projects: ProjectsModuleClient;\n}): Promise<WorkflowRun> {\n const run = await getWorkflowRunById(id);\n if (!run) {\n throw new ClientError('Run not found', 'not-found', {status: 404});\n }\n\n await requireProjectAccess(request, run.projectId, projects).catch((err: unknown) => {\n if (err instanceof ClientError && (err.status === 403 || err.status === 404)) {\n throw new ClientError('Run not found', 'not-found', {status: 404});\n }\n throw err;\n });\n\n return run;\n}\n"],"names":["ClientError","getWorkflowRunById","requireProjectAccess","requireAccessibleRun","request","id","projects","run","status","projectId","catch","err"],"mappings":"AACA,SAAQA,WAAW,QAAO,wBAAwB;AAGlD,SAAQC,kBAAkB,QAAO,eAAe;AAChD,SAAQC,oBAAoB,QAAO,sBAAsB;AAEzD,OAAO,eAAeC,qBAAqB,EACzCC,OAAO,EACPC,EAAE,EACFC,QAAQ,EAKT;IACC,MAAMC,MAAM,MAAMN,mBAAmBI;IACrC,IAAI,CAACE,KAAK;QACR,MAAM,IAAIP,YAAY,iBAAiB,aAAa;YAACQ,QAAQ;QAAG;IAClE;IAEA,MAAMN,qBAAqBE,SAASG,IAAIE,SAAS,EAAEH,UAAUI,KAAK,CAAC,CAACC;QAClE,IAAIA,eAAeX,eAAgBW,CAAAA,IAAIH,MAAM,KAAK,OAAOG,IAAIH,MAAM,KAAK,GAAE,GAAI;YAC5E,MAAM,IAAIR,YAAY,iBAAiB,aAAa;gBAACQ,QAAQ;YAAG;QAClE;QACA,MAAMG;IACR;IAEA,OAAOJ;AACT"}
@@ -1,2 +1,3 @@
1
- export declare const rerunRunRoute: import("@shipfox/node-fastify").RouteDefinition;
1
+ import type { ProjectsModuleClient } from '@shipfox/api-projects-dto';
2
+ export declare function rerunRunRoute(projects: ProjectsModuleClient): import("@shipfox/node-fastify").RouteDefinition;
2
3
  //# sourceMappingURL=rerun-run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rerun-run.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/rerun-run.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,aAAa,iDAsCxB,CAAC"}
1
+ {"version":3,"file":"rerun-run.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/rerun-run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AASpE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,oBAAoB,mDAwC3D"}
@@ -6,51 +6,54 @@ import { NoFailedJobsError, RunNotTerminalError, SourceRunNotFoundError } from '
6
6
  import { createRerunWorkflowRun } from '#db/index.js';
7
7
  import { toRunDto } from '#presentation/dto/index.js';
8
8
  import { requireAccessibleRun } from './require-accessible-run.js';
9
- export const rerunRunRoute = defineRoute({
10
- method: 'POST',
11
- path: '/:id/rerun',
12
- description: 'Re-run a terminal workflow run',
13
- schema: {
14
- params: z.object({
15
- id: z.string().uuid()
16
- }),
17
- body: rerunWorkflowRunBodySchema,
18
- response: {
19
- 200: workflowRunResponseSchema
20
- }
21
- },
22
- errorHandler: (error)=>{
23
- if (error instanceof SourceRunNotFoundError) {
24
- throw new ClientError('Run not found', 'not-found', {
25
- status: 404
26
- });
27
- }
28
- if (error instanceof RunNotTerminalError) {
29
- throw new ClientError('Run is not terminal', 'run-not-terminal', {
30
- status: 409
9
+ export function rerunRunRoute(projects) {
10
+ return defineRoute({
11
+ method: 'POST',
12
+ path: '/:id/rerun',
13
+ description: 'Re-run a terminal workflow run',
14
+ schema: {
15
+ params: z.object({
16
+ id: z.string().uuid()
17
+ }),
18
+ body: rerunWorkflowRunBodySchema,
19
+ response: {
20
+ 200: workflowRunResponseSchema
21
+ }
22
+ },
23
+ errorHandler: (error)=>{
24
+ if (error instanceof SourceRunNotFoundError) {
25
+ throw new ClientError('Run not found', 'not-found', {
26
+ status: 404
27
+ });
28
+ }
29
+ if (error instanceof RunNotTerminalError) {
30
+ throw new ClientError('Run is not terminal', 'run-not-terminal', {
31
+ status: 409
32
+ });
33
+ }
34
+ if (error instanceof NoFailedJobsError) {
35
+ throw new ClientError('Run has no failed jobs', 'no-failed-jobs', {
36
+ status: 409
37
+ });
38
+ }
39
+ throw error;
40
+ },
41
+ handler: async (request)=>{
42
+ const { id } = request.params;
43
+ const sourceRun = await requireAccessibleRun({
44
+ request,
45
+ id,
46
+ projects
31
47
  });
32
- }
33
- if (error instanceof NoFailedJobsError) {
34
- throw new ClientError('Run has no failed jobs', 'no-failed-jobs', {
35
- status: 409
48
+ const actor = requireUserContext(request);
49
+ const run = await createRerunWorkflowRun({
50
+ workflowRunId: sourceRun.id,
51
+ mode: request.body.mode,
52
+ actorUserId: actor.userId
36
53
  });
54
+ return toRunDto(run, run.currentAttempt);
37
55
  }
38
- throw error;
39
- },
40
- handler: async (request)=>{
41
- const { id } = request.params;
42
- const sourceRun = await requireAccessibleRun({
43
- request,
44
- id
45
- });
46
- const actor = requireUserContext(request);
47
- const run = await createRerunWorkflowRun({
48
- workflowRunId: sourceRun.id,
49
- mode: request.body.mode,
50
- actorUserId: actor.userId
51
- });
52
- return toRunDto(run, run.currentAttempt);
53
- }
54
- });
56
+ });
57
+ }
55
58
 
56
59
  //# sourceMappingURL=rerun-run.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/presentation/routes/rerun-run.ts"],"sourcesContent":["import {requireUserContext} from '@shipfox/api-auth-context';\nimport {rerunWorkflowRunBodySchema, workflowRunResponseSchema} from '@shipfox/api-workflows-dto';\nimport {ClientError, defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {NoFailedJobsError, RunNotTerminalError, SourceRunNotFoundError} from '#core/errors.js';\nimport {createRerunWorkflowRun} from '#db/index.js';\nimport {toRunDto} from '#presentation/dto/index.js';\nimport {requireAccessibleRun} from './require-accessible-run.js';\n\nexport const rerunRunRoute = defineRoute({\n method: 'POST',\n path: '/:id/rerun',\n description: 'Re-run a terminal workflow run',\n schema: {\n params: z.object({\n id: z.string().uuid(),\n }),\n body: rerunWorkflowRunBodySchema,\n response: {\n 200: workflowRunResponseSchema,\n },\n },\n errorHandler: (error) => {\n if (error instanceof SourceRunNotFoundError) {\n throw new ClientError('Run not found', 'not-found', {status: 404});\n }\n if (error instanceof RunNotTerminalError) {\n throw new ClientError('Run is not terminal', 'run-not-terminal', {status: 409});\n }\n if (error instanceof NoFailedJobsError) {\n throw new ClientError('Run has no failed jobs', 'no-failed-jobs', {status: 409});\n }\n throw error;\n },\n handler: async (request) => {\n const {id} = request.params;\n const sourceRun = await requireAccessibleRun({request, id});\n\n const actor = requireUserContext(request);\n const run = await createRerunWorkflowRun({\n workflowRunId: sourceRun.id,\n mode: request.body.mode,\n actorUserId: actor.userId,\n });\n\n return toRunDto(run, run.currentAttempt);\n },\n});\n"],"names":["requireUserContext","rerunWorkflowRunBodySchema","workflowRunResponseSchema","ClientError","defineRoute","z","NoFailedJobsError","RunNotTerminalError","SourceRunNotFoundError","createRerunWorkflowRun","toRunDto","requireAccessibleRun","rerunRunRoute","method","path","description","schema","params","object","id","string","uuid","body","response","errorHandler","error","status","handler","request","sourceRun","actor","run","workflowRunId","mode","actorUserId","userId","currentAttempt"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,4BAA4B;AAC7D,SAAQC,0BAA0B,EAAEC,yBAAyB,QAAO,6BAA6B;AACjG,SAAQC,WAAW,EAAEC,WAAW,QAAO,wBAAwB;AAC/D,SAAQC,CAAC,QAAO,MAAM;AACtB,SAAQC,iBAAiB,EAAEC,mBAAmB,EAAEC,sBAAsB,QAAO,kBAAkB;AAC/F,SAAQC,sBAAsB,QAAO,eAAe;AACpD,SAAQC,QAAQ,QAAO,6BAA6B;AACpD,SAAQC,oBAAoB,QAAO,8BAA8B;AAEjE,OAAO,MAAMC,gBAAgBR,YAAY;IACvCS,QAAQ;IACRC,MAAM;IACNC,aAAa;IACbC,QAAQ;QACNC,QAAQZ,EAAEa,MAAM,CAAC;YACfC,IAAId,EAAEe,MAAM,GAAGC,IAAI;QACrB;QACAC,MAAMrB;QACNsB,UAAU;YACR,KAAKrB;QACP;IACF;IACAsB,cAAc,CAACC;QACb,IAAIA,iBAAiBjB,wBAAwB;YAC3C,MAAM,IAAIL,YAAY,iBAAiB,aAAa;gBAACuB,QAAQ;YAAG;QAClE;QACA,IAAID,iBAAiBlB,qBAAqB;YACxC,MAAM,IAAIJ,YAAY,uBAAuB,oBAAoB;gBAACuB,QAAQ;YAAG;QAC/E;QACA,IAAID,iBAAiBnB,mBAAmB;YACtC,MAAM,IAAIH,YAAY,0BAA0B,kBAAkB;gBAACuB,QAAQ;YAAG;QAChF;QACA,MAAMD;IACR;IACAE,SAAS,OAAOC;QACd,MAAM,EAACT,EAAE,EAAC,GAAGS,QAAQX,MAAM;QAC3B,MAAMY,YAAY,MAAMlB,qBAAqB;YAACiB;YAAST;QAAE;QAEzD,MAAMW,QAAQ9B,mBAAmB4B;QACjC,MAAMG,MAAM,MAAMtB,uBAAuB;YACvCuB,eAAeH,UAAUV,EAAE;YAC3Bc,MAAML,QAAQN,IAAI,CAACW,IAAI;YACvBC,aAAaJ,MAAMK,MAAM;QAC3B;QAEA,OAAOzB,SAASqB,KAAKA,IAAIK,cAAc;IACzC;AACF,GAAG"}
1
+ {"version":3,"sources":["../../../src/presentation/routes/rerun-run.ts"],"sourcesContent":["import {requireUserContext} from '@shipfox/api-auth-context';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto';\nimport {rerunWorkflowRunBodySchema, workflowRunResponseSchema} from '@shipfox/api-workflows-dto';\nimport {ClientError, defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {NoFailedJobsError, RunNotTerminalError, SourceRunNotFoundError} from '#core/errors.js';\nimport {createRerunWorkflowRun} from '#db/index.js';\nimport {toRunDto} from '#presentation/dto/index.js';\nimport {requireAccessibleRun} from './require-accessible-run.js';\n\nexport function rerunRunRoute(projects: ProjectsModuleClient) {\n return defineRoute({\n method: 'POST',\n path: '/:id/rerun',\n description: 'Re-run a terminal workflow run',\n schema: {\n params: z.object({\n id: z.string().uuid(),\n }),\n body: rerunWorkflowRunBodySchema,\n response: {\n 200: workflowRunResponseSchema,\n },\n },\n errorHandler: (error) => {\n if (error instanceof SourceRunNotFoundError) {\n throw new ClientError('Run not found', 'not-found', {status: 404});\n }\n if (error instanceof RunNotTerminalError) {\n throw new ClientError('Run is not terminal', 'run-not-terminal', {status: 409});\n }\n if (error instanceof NoFailedJobsError) {\n throw new ClientError('Run has no failed jobs', 'no-failed-jobs', {status: 409});\n }\n throw error;\n },\n handler: async (request) => {\n const {id} = request.params;\n const sourceRun = await requireAccessibleRun({request, id, projects});\n\n const actor = requireUserContext(request);\n const run = await createRerunWorkflowRun({\n workflowRunId: sourceRun.id,\n mode: request.body.mode,\n actorUserId: actor.userId,\n });\n\n return toRunDto(run, run.currentAttempt);\n },\n });\n}\n"],"names":["requireUserContext","rerunWorkflowRunBodySchema","workflowRunResponseSchema","ClientError","defineRoute","z","NoFailedJobsError","RunNotTerminalError","SourceRunNotFoundError","createRerunWorkflowRun","toRunDto","requireAccessibleRun","rerunRunRoute","projects","method","path","description","schema","params","object","id","string","uuid","body","response","errorHandler","error","status","handler","request","sourceRun","actor","run","workflowRunId","mode","actorUserId","userId","currentAttempt"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,4BAA4B;AAE7D,SAAQC,0BAA0B,EAAEC,yBAAyB,QAAO,6BAA6B;AACjG,SAAQC,WAAW,EAAEC,WAAW,QAAO,wBAAwB;AAC/D,SAAQC,CAAC,QAAO,MAAM;AACtB,SAAQC,iBAAiB,EAAEC,mBAAmB,EAAEC,sBAAsB,QAAO,kBAAkB;AAC/F,SAAQC,sBAAsB,QAAO,eAAe;AACpD,SAAQC,QAAQ,QAAO,6BAA6B;AACpD,SAAQC,oBAAoB,QAAO,8BAA8B;AAEjE,OAAO,SAASC,cAAcC,QAA8B;IAC1D,OAAOT,YAAY;QACjBU,QAAQ;QACRC,MAAM;QACNC,aAAa;QACbC,QAAQ;YACNC,QAAQb,EAAEc,MAAM,CAAC;gBACfC,IAAIf,EAAEgB,MAAM,GAAGC,IAAI;YACrB;YACAC,MAAMtB;YACNuB,UAAU;gBACR,KAAKtB;YACP;QACF;QACAuB,cAAc,CAACC;YACb,IAAIA,iBAAiBlB,wBAAwB;gBAC3C,MAAM,IAAIL,YAAY,iBAAiB,aAAa;oBAACwB,QAAQ;gBAAG;YAClE;YACA,IAAID,iBAAiBnB,qBAAqB;gBACxC,MAAM,IAAIJ,YAAY,uBAAuB,oBAAoB;oBAACwB,QAAQ;gBAAG;YAC/E;YACA,IAAID,iBAAiBpB,mBAAmB;gBACtC,MAAM,IAAIH,YAAY,0BAA0B,kBAAkB;oBAACwB,QAAQ;gBAAG;YAChF;YACA,MAAMD;QACR;QACAE,SAAS,OAAOC;YACd,MAAM,EAACT,EAAE,EAAC,GAAGS,QAAQX,MAAM;YAC3B,MAAMY,YAAY,MAAMnB,qBAAqB;gBAACkB;gBAAST;gBAAIP;YAAQ;YAEnE,MAAMkB,QAAQ/B,mBAAmB6B;YACjC,MAAMG,MAAM,MAAMvB,uBAAuB;gBACvCwB,eAAeH,UAAUV,EAAE;gBAC3Bc,MAAML,QAAQN,IAAI,CAACW,IAAI;gBACvBC,aAAaJ,MAAMK,MAAM;YAC3B;YAEA,OAAO1B,SAASsB,KAAKA,IAAIK,cAAc;QACzC;IACF;AACF"}
@@ -1,23 +1,58 @@
1
- import { activateJobListenerActivity, bulkSetStepStatuses, cancelRunnerJobsActivity, drainListenerEventsActivity, enqueueJobExecutionForRunner, evaluateJobActivationsActivity, failJobExecutionAsTimedOutActivity, failRunAsTimedOutActivity, loadRunAttemptDag, peekListenerBufferActivity, recordListenerFiringOutcomeActivity, releaseLeaseActivity, resolveJobListenerActivity, resolveJobStatusFromJobExecutionsActivity, resolveLeaseExpiredJobExecutionActivity, setJobExecutionStatus, setJobStatus, setRunAttemptStatus, settleListenerJobExecutionActivity } from './orchestration-activities.js';
2
- export declare function createOrchestrationActivities(): {
1
+ import type { AgentInterModuleClient } from '@shipfox/api-agent-dto/inter-module';
2
+ import type { IntegrationsModuleClient } from '@shipfox/api-integration-core-dto';
3
+ import type { ProjectsModuleClient } from '@shipfox/api-projects-dto';
4
+ import type { RunnersInterModuleClient } from '@shipfox/api-runners-dto/inter-module';
5
+ import type { SecretsInterModuleClient } from '@shipfox/api-secrets-dto/inter-module';
6
+ import { activateJobListenerActivity, bulkSetStepStatuses, evaluateJobActivationsActivity, failJobExecutionAsTimedOutActivity, failRunAsTimedOutActivity, loadRunAttemptDag, peekListenerBufferActivity, recordListenerFiringOutcomeActivity, resolveJobListenerActivity, resolveJobStatusFromJobExecutionsActivity, resolveLeaseExpiredJobExecutionActivity, setJobExecutionStatus, setJobStatus, setRunAttemptStatus, settleListenerJobExecutionActivity } from './orchestration-activities.js';
7
+ export declare function createOrchestrationActivities(params: {
8
+ agent: AgentInterModuleClient;
9
+ integrations: IntegrationsModuleClient;
10
+ projects: ProjectsModuleClient;
11
+ runners: RunnersInterModuleClient;
12
+ secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>;
13
+ }): {
3
14
  loadRunAttemptDag: typeof loadRunAttemptDag;
4
15
  setRunAttemptStatus: typeof setRunAttemptStatus;
5
16
  setJobStatus: typeof setJobStatus;
6
- setJobExecutionStatus: typeof setJobExecutionStatus;
17
+ setJobExecutionStatus: (activityParams: Parameters<typeof setJobExecutionStatus>[0]) => Promise<{
18
+ newVersion: number;
19
+ status: Exclude<import("../../core/index.js").JobStatus, "skipped">;
20
+ }>;
7
21
  bulkSetStepStatuses: typeof bulkSetStepStatuses;
8
- cancelRunnerJobsActivity: typeof cancelRunnerJobsActivity;
9
- enqueueJobExecutionForRunner: typeof enqueueJobExecutionForRunner;
22
+ cancelRunnerJobsActivity: (params: {
23
+ jobIds: string[];
24
+ }) => Promise<void>;
25
+ enqueueJobExecutionForRunner: (params: {
26
+ workspaceId: string;
27
+ workflowRunId: string;
28
+ jobId: string;
29
+ jobExecutionId: string;
30
+ runAttemptId: string;
31
+ projectId: string;
32
+ requiredLabels: string[];
33
+ }) => Promise<void>;
10
34
  evaluateJobActivationsActivity: typeof evaluateJobActivationsActivity;
11
- failJobExecutionAsTimedOutActivity: typeof failJobExecutionAsTimedOutActivity;
35
+ failJobExecutionAsTimedOutActivity: (activityParams: Parameters<typeof failJobExecutionAsTimedOutActivity>[0]) => Promise<{
36
+ newVersion: number;
37
+ }>;
12
38
  failRunAsTimedOutActivity: typeof failRunAsTimedOutActivity;
13
39
  activateJobListenerActivity: typeof activateJobListenerActivity;
14
- drainListenerEventsActivity: typeof drainListenerEventsActivity;
40
+ drainListenerEventsActivity: (params: {
41
+ jobId: string;
42
+ expectedSequence: number;
43
+ maxSize?: number | undefined;
44
+ }) => Promise<import("../../db/job-listeners.js").DrainListenerEventsResult>;
15
45
  peekListenerBufferActivity: typeof peekListenerBufferActivity;
16
46
  resolveJobListenerActivity: typeof resolveJobListenerActivity;
17
47
  settleListenerJobExecutionActivity: typeof settleListenerJobExecutionActivity;
18
48
  recordListenerFiringOutcomeActivity: typeof recordListenerFiringOutcomeActivity;
19
- resolveLeaseExpiredJobExecutionActivity: typeof resolveLeaseExpiredJobExecutionActivity;
49
+ resolveLeaseExpiredJobExecutionActivity: (activityParams: Parameters<typeof resolveLeaseExpiredJobExecutionActivity>[0]) => Promise<{
50
+ status: import("../../core/workflow-scheduling/runtime-dag.js").RuntimeCompletionStatus;
51
+ executionVersion: number;
52
+ }>;
20
53
  resolveJobStatusFromJobExecutionsActivity: typeof resolveJobStatusFromJobExecutionsActivity;
21
- releaseLeaseActivity: typeof releaseLeaseActivity;
54
+ releaseLeaseActivity: (params: {
55
+ jobExecutionId: string;
56
+ }) => Promise<void>;
22
57
  };
23
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,kCAAkC,EAClC,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,EAC1B,mCAAmC,EACnC,oBAAoB,EACpB,0BAA0B,EAC1B,yCAAyC,EACzC,uCAAuC,EACvC,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,kCAAkC,EACnC,MAAM,+BAA+B,CAAC;AAEvC,wBAAgB,6BAA6B;;;;;;;;;;;;;;;;;;;;EAsB5C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,mCAAmC,CAAC;AAChF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AACpF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EAKnB,8BAA8B,EAC9B,kCAAkC,EAClC,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,EAC1B,mCAAmC,EACnC,0BAA0B,EAC1B,yCAAyC,EACzC,uCAAuC,EACvC,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,kCAAkC,EACnC,MAAM,+BAA+B,CAAC;AAEvC,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,EAAE,wBAAwB,CAAC;IACvC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,wBAAwB,CAAC;IAClC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAC;CACpE;;;;4CAKiD,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;yDAOvE,UAAU,CAAC,OAAO,kCAAkC,CAAC,CAAC,CAAC,CAAC;;;;;;;;eAoBgkP,CAAC;;;;;;8DANznP,UAAU,CAAC,OAAO,uCAAuC,CAAC,CAAC,CAAC,CAAC;;;;;;;;EAKlF"}
@@ -1,25 +1,29 @@
1
- import { activateJobListenerActivity, bulkSetStepStatuses, cancelRunnerJobsActivity, drainListenerEventsActivity, enqueueJobExecutionForRunner, evaluateJobActivationsActivity, failJobExecutionAsTimedOutActivity, failRunAsTimedOutActivity, loadRunAttemptDag, peekListenerBufferActivity, recordListenerFiringOutcomeActivity, releaseLeaseActivity, resolveJobListenerActivity, resolveJobStatusFromJobExecutionsActivity, resolveLeaseExpiredJobExecutionActivity, setJobExecutionStatus, setJobStatus, setRunAttemptStatus, settleListenerJobExecutionActivity } from './orchestration-activities.js';
2
- export function createOrchestrationActivities() {
1
+ import { activateJobListenerActivity, bulkSetStepStatuses, createCancelRunnerJobsActivity, createDrainListenerEventsActivity, createEnqueueJobExecutionForRunner, createReleaseLeaseActivity, evaluateJobActivationsActivity, failJobExecutionAsTimedOutActivity, failRunAsTimedOutActivity, loadRunAttemptDag, peekListenerBufferActivity, recordListenerFiringOutcomeActivity, resolveJobListenerActivity, resolveJobStatusFromJobExecutionsActivity, resolveLeaseExpiredJobExecutionActivity, setJobExecutionStatus, setJobStatus, setRunAttemptStatus, settleListenerJobExecutionActivity } from './orchestration-activities.js';
2
+ export function createOrchestrationActivities(params) {
3
3
  return {
4
4
  loadRunAttemptDag,
5
5
  setRunAttemptStatus,
6
6
  setJobStatus,
7
- setJobExecutionStatus,
7
+ setJobExecutionStatus: async (activityParams)=>await setJobExecutionStatus(activityParams, params.secrets),
8
8
  bulkSetStepStatuses,
9
- cancelRunnerJobsActivity,
10
- enqueueJobExecutionForRunner,
9
+ cancelRunnerJobsActivity: createCancelRunnerJobsActivity(params.runners),
10
+ enqueueJobExecutionForRunner: createEnqueueJobExecutionForRunner(params.runners),
11
11
  evaluateJobActivationsActivity,
12
- failJobExecutionAsTimedOutActivity,
12
+ failJobExecutionAsTimedOutActivity: async (activityParams)=>await failJobExecutionAsTimedOutActivity(activityParams, params.secrets),
13
13
  failRunAsTimedOutActivity,
14
14
  activateJobListenerActivity,
15
- drainListenerEventsActivity,
15
+ drainListenerEventsActivity: createDrainListenerEventsActivity({
16
+ agent: params.agent,
17
+ integrations: params.integrations,
18
+ projects: params.projects
19
+ }),
16
20
  peekListenerBufferActivity,
17
21
  resolveJobListenerActivity,
18
22
  settleListenerJobExecutionActivity,
19
23
  recordListenerFiringOutcomeActivity,
20
- resolveLeaseExpiredJobExecutionActivity,
24
+ resolveLeaseExpiredJobExecutionActivity: async (activityParams)=>await resolveLeaseExpiredJobExecutionActivity(activityParams, params.secrets),
21
25
  resolveJobStatusFromJobExecutionsActivity,
22
- releaseLeaseActivity
26
+ releaseLeaseActivity: createReleaseLeaseActivity(params.runners)
23
27
  };
24
28
  }
25
29
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/temporal/activities/index.ts"],"sourcesContent":["import {\n activateJobListenerActivity,\n bulkSetStepStatuses,\n cancelRunnerJobsActivity,\n drainListenerEventsActivity,\n enqueueJobExecutionForRunner,\n evaluateJobActivationsActivity,\n failJobExecutionAsTimedOutActivity,\n failRunAsTimedOutActivity,\n loadRunAttemptDag,\n peekListenerBufferActivity,\n recordListenerFiringOutcomeActivity,\n releaseLeaseActivity,\n resolveJobListenerActivity,\n resolveJobStatusFromJobExecutionsActivity,\n resolveLeaseExpiredJobExecutionActivity,\n setJobExecutionStatus,\n setJobStatus,\n setRunAttemptStatus,\n settleListenerJobExecutionActivity,\n} from './orchestration-activities.js';\n\nexport function createOrchestrationActivities() {\n return {\n loadRunAttemptDag,\n setRunAttemptStatus,\n setJobStatus,\n setJobExecutionStatus,\n bulkSetStepStatuses,\n cancelRunnerJobsActivity,\n enqueueJobExecutionForRunner,\n evaluateJobActivationsActivity,\n failJobExecutionAsTimedOutActivity,\n failRunAsTimedOutActivity,\n activateJobListenerActivity,\n drainListenerEventsActivity,\n peekListenerBufferActivity,\n resolveJobListenerActivity,\n settleListenerJobExecutionActivity,\n recordListenerFiringOutcomeActivity,\n resolveLeaseExpiredJobExecutionActivity,\n resolveJobStatusFromJobExecutionsActivity,\n releaseLeaseActivity,\n };\n}\n"],"names":["activateJobListenerActivity","bulkSetStepStatuses","cancelRunnerJobsActivity","drainListenerEventsActivity","enqueueJobExecutionForRunner","evaluateJobActivationsActivity","failJobExecutionAsTimedOutActivity","failRunAsTimedOutActivity","loadRunAttemptDag","peekListenerBufferActivity","recordListenerFiringOutcomeActivity","releaseLeaseActivity","resolveJobListenerActivity","resolveJobStatusFromJobExecutionsActivity","resolveLeaseExpiredJobExecutionActivity","setJobExecutionStatus","setJobStatus","setRunAttemptStatus","settleListenerJobExecutionActivity","createOrchestrationActivities"],"mappings":"AAAA,SACEA,2BAA2B,EAC3BC,mBAAmB,EACnBC,wBAAwB,EACxBC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,8BAA8B,EAC9BC,kCAAkC,EAClCC,yBAAyB,EACzBC,iBAAiB,EACjBC,0BAA0B,EAC1BC,mCAAmC,EACnCC,oBAAoB,EACpBC,0BAA0B,EAC1BC,yCAAyC,EACzCC,uCAAuC,EACvCC,qBAAqB,EACrBC,YAAY,EACZC,mBAAmB,EACnBC,kCAAkC,QAC7B,gCAAgC;AAEvC,OAAO,SAASC;IACd,OAAO;QACLX;QACAS;QACAD;QACAD;QACAd;QACAC;QACAE;QACAC;QACAC;QACAC;QACAP;QACAG;QACAM;QACAG;QACAM;QACAR;QACAI;QACAD;QACAF;IACF;AACF"}
1
+ {"version":3,"sources":["../../../src/temporal/activities/index.ts"],"sourcesContent":["import type {AgentInterModuleClient} from '@shipfox/api-agent-dto/inter-module';\nimport type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto';\nimport type {RunnersInterModuleClient} from '@shipfox/api-runners-dto/inter-module';\nimport type {SecretsInterModuleClient} from '@shipfox/api-secrets-dto/inter-module';\nimport {\n activateJobListenerActivity,\n bulkSetStepStatuses,\n createCancelRunnerJobsActivity,\n createDrainListenerEventsActivity,\n createEnqueueJobExecutionForRunner,\n createReleaseLeaseActivity,\n evaluateJobActivationsActivity,\n failJobExecutionAsTimedOutActivity,\n failRunAsTimedOutActivity,\n loadRunAttemptDag,\n peekListenerBufferActivity,\n recordListenerFiringOutcomeActivity,\n resolveJobListenerActivity,\n resolveJobStatusFromJobExecutionsActivity,\n resolveLeaseExpiredJobExecutionActivity,\n setJobExecutionStatus,\n setJobStatus,\n setRunAttemptStatus,\n settleListenerJobExecutionActivity,\n} from './orchestration-activities.js';\n\nexport function createOrchestrationActivities(params: {\n agent: AgentInterModuleClient;\n integrations: IntegrationsModuleClient;\n projects: ProjectsModuleClient;\n runners: RunnersInterModuleClient;\n secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>;\n}) {\n return {\n loadRunAttemptDag,\n setRunAttemptStatus,\n setJobStatus,\n setJobExecutionStatus: async (activityParams: Parameters<typeof setJobExecutionStatus>[0]) =>\n await setJobExecutionStatus(activityParams, params.secrets),\n bulkSetStepStatuses,\n cancelRunnerJobsActivity: createCancelRunnerJobsActivity(params.runners),\n enqueueJobExecutionForRunner: createEnqueueJobExecutionForRunner(params.runners),\n evaluateJobActivationsActivity,\n failJobExecutionAsTimedOutActivity: async (\n activityParams: Parameters<typeof failJobExecutionAsTimedOutActivity>[0],\n ) => await failJobExecutionAsTimedOutActivity(activityParams, params.secrets),\n failRunAsTimedOutActivity,\n activateJobListenerActivity,\n drainListenerEventsActivity: createDrainListenerEventsActivity({\n agent: params.agent,\n integrations: params.integrations,\n projects: params.projects,\n }),\n peekListenerBufferActivity,\n resolveJobListenerActivity,\n settleListenerJobExecutionActivity,\n recordListenerFiringOutcomeActivity,\n resolveLeaseExpiredJobExecutionActivity: async (\n activityParams: Parameters<typeof resolveLeaseExpiredJobExecutionActivity>[0],\n ) => await resolveLeaseExpiredJobExecutionActivity(activityParams, params.secrets),\n resolveJobStatusFromJobExecutionsActivity,\n releaseLeaseActivity: createReleaseLeaseActivity(params.runners),\n };\n}\n"],"names":["activateJobListenerActivity","bulkSetStepStatuses","createCancelRunnerJobsActivity","createDrainListenerEventsActivity","createEnqueueJobExecutionForRunner","createReleaseLeaseActivity","evaluateJobActivationsActivity","failJobExecutionAsTimedOutActivity","failRunAsTimedOutActivity","loadRunAttemptDag","peekListenerBufferActivity","recordListenerFiringOutcomeActivity","resolveJobListenerActivity","resolveJobStatusFromJobExecutionsActivity","resolveLeaseExpiredJobExecutionActivity","setJobExecutionStatus","setJobStatus","setRunAttemptStatus","settleListenerJobExecutionActivity","createOrchestrationActivities","params","activityParams","secrets","cancelRunnerJobsActivity","runners","enqueueJobExecutionForRunner","drainListenerEventsActivity","agent","integrations","projects","releaseLeaseActivity"],"mappings":"AAKA,SACEA,2BAA2B,EAC3BC,mBAAmB,EACnBC,8BAA8B,EAC9BC,iCAAiC,EACjCC,kCAAkC,EAClCC,0BAA0B,EAC1BC,8BAA8B,EAC9BC,kCAAkC,EAClCC,yBAAyB,EACzBC,iBAAiB,EACjBC,0BAA0B,EAC1BC,mCAAmC,EACnCC,0BAA0B,EAC1BC,yCAAyC,EACzCC,uCAAuC,EACvCC,qBAAqB,EACrBC,YAAY,EACZC,mBAAmB,EACnBC,kCAAkC,QAC7B,gCAAgC;AAEvC,OAAO,SAASC,8BAA8BC,MAM7C;IACC,OAAO;QACLX;QACAQ;QACAD;QACAD,uBAAuB,OAAOM,iBAC5B,MAAMN,sBAAsBM,gBAAgBD,OAAOE,OAAO;QAC5DrB;QACAsB,0BAA0BrB,+BAA+BkB,OAAOI,OAAO;QACvEC,8BAA8BrB,mCAAmCgB,OAAOI,OAAO;QAC/ElB;QACAC,oCAAoC,OAClCc,iBACG,MAAMd,mCAAmCc,gBAAgBD,OAAOE,OAAO;QAC5Ed;QACAR;QACA0B,6BAA6BvB,kCAAkC;YAC7DwB,OAAOP,OAAOO,KAAK;YACnBC,cAAcR,OAAOQ,YAAY;YACjCC,UAAUT,OAAOS,QAAQ;QAC3B;QACAnB;QACAE;QACAM;QACAP;QACAG,yCAAyC,OACvCO,iBACG,MAAMP,wCAAwCO,gBAAgBD,OAAOE,OAAO;QACjFT;QACAiB,sBAAsBzB,2BAA2Be,OAAOI,OAAO;IACjE;AACF"}
@@ -1,3 +1,8 @@
1
+ import type { AgentInterModuleClient } from '@shipfox/api-agent-dto/inter-module';
2
+ import type { IntegrationsModuleClient } from '@shipfox/api-integration-core-dto';
3
+ import type { ProjectsModuleClient } from '@shipfox/api-projects-dto';
4
+ import { type RunnersInterModuleClient } from '@shipfox/api-runners-dto/inter-module';
5
+ import type { SecretsInterModuleClient } from '@shipfox/api-secrets-dto/inter-module';
1
6
  import type { JobStatus, JobStatusReason, ResolutionReason } from '#core/entities/job.js';
2
7
  import type { PersistedEvaluationTraceEntry, StepStatus } from '#core/entities/step.js';
3
8
  import type { WorkflowRunStatus } from '#core/entities/workflow-run.js';
@@ -55,7 +60,7 @@ export declare function setJobExecutionStatus(params: {
55
60
  status: Exclude<JobStatus, 'skipped'>;
56
61
  version: number;
57
62
  statusReason?: JobStatusReason | null | undefined;
58
- }): Promise<{
63
+ }, secrets?: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>): Promise<{
59
64
  newVersion: number;
60
65
  status: Exclude<JobStatus, 'skipped'>;
61
66
  }>;
@@ -66,14 +71,14 @@ export declare function bulkSetStepStatuses(params: {
66
71
  export declare function resolveLeaseExpiredJobExecutionActivity(params: {
67
72
  jobExecutionId: string;
68
73
  expectedVersion: number;
69
- }): Promise<{
74
+ }, secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>): Promise<{
70
75
  status: RuntimeCompletionStatus;
71
76
  executionVersion: number;
72
77
  }>;
73
- export declare function releaseLeaseActivity(params: {
78
+ export declare function createReleaseLeaseActivity(runners: RunnersInterModuleClient): (params: {
74
79
  jobExecutionId: string;
75
- }): Promise<void>;
76
- export declare function enqueueJobExecutionForRunner(params: {
80
+ }) => Promise<void>;
81
+ export declare function createEnqueueJobExecutionForRunner(runners: RunnersInterModuleClient): (params: {
77
82
  workspaceId: string;
78
83
  workflowRunId: string;
79
84
  jobId: string;
@@ -81,15 +86,15 @@ export declare function enqueueJobExecutionForRunner(params: {
81
86
  runAttemptId: string;
82
87
  projectId: string;
83
88
  requiredLabels: string[];
84
- }): Promise<void>;
85
- export declare function cancelRunnerJobsActivity(params: {
89
+ }) => Promise<void>;
90
+ export declare function createCancelRunnerJobsActivity(runners: RunnersInterModuleClient): (params: {
86
91
  jobIds: string[];
87
- }): Promise<void>;
92
+ }) => Promise<void>;
88
93
  export declare function failJobExecutionAsTimedOutActivity(params: {
89
94
  jobExecutionId: string;
90
95
  runAttemptId: string;
91
96
  expectedVersion: number;
92
- }): Promise<{
97
+ }, secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>): Promise<{
93
98
  newVersion: number;
94
99
  }>;
95
100
  export declare function failRunAsTimedOutActivity(params: {
@@ -105,11 +110,15 @@ export declare function activateJobListenerActivity(params: {
105
110
  jobId: string;
106
111
  expectedVersion: number;
107
112
  }): Promise<import("#db/index.js").ActivateJobListenerResult>;
108
- export declare function drainListenerEventsActivity(params: {
113
+ export declare function createDrainListenerEventsActivity(clients: {
114
+ agent: AgentInterModuleClient;
115
+ integrations?: IntegrationsModuleClient | undefined;
116
+ projects?: ProjectsModuleClient | undefined;
117
+ }): (params: {
109
118
  jobId: string;
110
119
  expectedSequence: number;
111
120
  maxSize?: number | undefined;
112
- }): Promise<import("#db/index.js").DrainListenerEventsResult>;
121
+ }) => Promise<import("#db/index.js").DrainListenerEventsResult>;
113
122
  export declare function peekListenerBufferActivity(params: {
114
123
  jobId: string;
115
124
  }): Promise<import("#db/index.js").ListenerBufferPeek>;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestration-activities.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/orchestration-activities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestration-activities.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/orchestration-activities.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { cancelRunnerJobs, enqueueJobExecution, releaseJobExecution } from '@shipfox/api-runners';
1
+ import { runnersInterModuleContract } from '@shipfox/api-runners-dto/inter-module';
2
+ import { isInterModuleKnownError } from '@shipfox/inter-module';
2
3
  import { ApplicationFailure } from '@temporalio/common';
3
4
  import { defaultJobConditionTrace } from '#core/condition-trace.js';
4
5
  import { JobNotFoundError } from '#core/errors.js';
@@ -85,12 +86,13 @@ function jobStatusEvaluationTrace(params) {
85
86
  if (params.evaluationTrace !== undefined) return params.evaluationTrace;
86
87
  return params.status === 'skipped' && params.statusReason === 'default_gate_rejected' ? defaultJobConditionTrace() : undefined;
87
88
  }
88
- export async function setJobExecutionStatus(params) {
89
+ export async function setJobExecutionStatus(params, secrets) {
89
90
  const updated = await updateJobExecutionStatus({
90
91
  jobExecutionId: params.jobExecutionId,
91
92
  status: params.status,
92
93
  expectedVersion: params.version,
93
- statusReason: params.statusReason
94
+ statusReason: params.statusReason,
95
+ secrets
94
96
  });
95
97
  return {
96
98
  newVersion: updated.version,
@@ -100,9 +102,12 @@ export async function setJobExecutionStatus(params) {
100
102
  export async function bulkSetStepStatuses(params) {
101
103
  await bulkUpdateStepStatuses(params);
102
104
  }
103
- export async function resolveLeaseExpiredJobExecutionActivity(params) {
105
+ export async function resolveLeaseExpiredJobExecutionActivity(params, secrets) {
104
106
  try {
105
- return await resolveJobExecutionAfterLeaseExpiry(params);
107
+ return await resolveJobExecutionAfterLeaseExpiry({
108
+ ...params,
109
+ secrets
110
+ });
106
111
  } catch (err) {
107
112
  if (err instanceof JobNotFoundError) {
108
113
  throw ApplicationFailure.nonRetryable(err.message, err.name);
@@ -113,39 +118,44 @@ export async function resolveLeaseExpiredJobExecutionActivity(params) {
113
118
  // Best-effort lease cleanup on job finalization. Idempotent: deleting an
114
119
  // already-released (or already-reaped) lease is a no-op. The workflow wraps the
115
120
  // call so a persistent failure never blocks the DAG result.
116
- export async function releaseLeaseActivity(params) {
117
- await releaseJobExecution({
118
- jobExecutionId: params.jobExecutionId
119
- });
120
- }
121
- export async function enqueueJobExecutionForRunner(params) {
122
- try {
123
- await enqueueJobExecution({
124
- workspaceId: params.workspaceId,
125
- workflowRunId: params.workflowRunId,
126
- workflowRunAttemptId: params.runAttemptId,
127
- jobId: params.jobId,
128
- jobExecutionId: params.jobExecutionId,
129
- projectId: params.projectId,
130
- requiredLabels: params.requiredLabels
121
+ export function createReleaseLeaseActivity(runners) {
122
+ return async function releaseLeaseActivity(params) {
123
+ await runners.releaseJobExecution({
124
+ jobExecutionId: params.jobExecutionId
131
125
  });
132
- } catch (err) {
133
- if (err instanceof Error && err.name === 'EmptyRequiredLabelsError') {
134
- throw ApplicationFailure.nonRetryable(err.message, err.name);
126
+ };
127
+ }
128
+ export function createEnqueueJobExecutionForRunner(runners) {
129
+ return async function enqueueJobExecutionForRunner(params) {
130
+ try {
131
+ await runners.enqueueJobExecution({
132
+ workspaceId: params.workspaceId,
133
+ workflowRunId: params.workflowRunId,
134
+ workflowRunAttemptId: params.runAttemptId,
135
+ jobId: params.jobId,
136
+ jobExecutionId: params.jobExecutionId,
137
+ projectId: params.projectId,
138
+ requiredLabels: params.requiredLabels
139
+ });
140
+ } catch (err) {
141
+ if (isInterModuleKnownError(runnersInterModuleContract.methods.enqueueJobExecution, err)) {
142
+ throw ApplicationFailure.nonRetryable(err.message, err.name);
143
+ }
144
+ throw err;
135
145
  }
136
- throw err;
137
- }
146
+ };
138
147
  }
139
- export async function cancelRunnerJobsActivity(params) {
140
- await cancelRunnerJobs({
141
- jobIds: params.jobIds
142
- });
148
+ export function createCancelRunnerJobsActivity(runners) {
149
+ return async function cancelRunnerJobsActivity(params) {
150
+ await runners.cancelJobs(params);
151
+ };
143
152
  }
144
- export async function failJobExecutionAsTimedOutActivity(params) {
153
+ export async function failJobExecutionAsTimedOutActivity(params, secrets) {
145
154
  const jobExecution = await failJobExecutionAsTimedOut({
146
155
  jobExecutionId: params.jobExecutionId,
147
156
  workflowRunAttemptId: params.runAttemptId,
148
- expectedVersion: params.expectedVersion
157
+ expectedVersion: params.expectedVersion,
158
+ secrets
149
159
  });
150
160
  return {
151
161
  newVersion: jobExecution.version
@@ -162,8 +172,13 @@ export async function resolveJobStatusFromJobExecutionsActivity(params) {
162
172
  export async function activateJobListenerActivity(params) {
163
173
  return await activateJobListener(params);
164
174
  }
165
- export async function drainListenerEventsActivity(params) {
166
- return await drainListenerEventsIntoExecution(params);
175
+ export function createDrainListenerEventsActivity(clients) {
176
+ return async function drainListenerEventsActivity(params) {
177
+ return await drainListenerEventsIntoExecution({
178
+ ...params,
179
+ ...clients
180
+ });
181
+ };
167
182
  }
168
183
  export async function peekListenerBufferActivity(params) {
169
184
  return await peekListenerBuffer(params);