@cat-factory/orchestration 0.313.1 → 0.314.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 (119) hide show
  1. package/dist/container/dependencies.d.ts +10 -1
  2. package/dist/container/dependencies.d.ts.map +1 -1
  3. package/dist/container/execution-service.d.ts.map +1 -1
  4. package/dist/container/execution-service.js +1 -0
  5. package/dist/container/execution-service.js.map +1 -1
  6. package/dist/container/runtime.d.ts +1 -0
  7. package/dist/container/runtime.d.ts.map +1 -1
  8. package/dist/container/runtime.js +5 -1
  9. package/dist/container/runtime.js.map +1 -1
  10. package/dist/container.d.ts +8 -1
  11. package/dist/container.d.ts.map +1 -1
  12. package/dist/container.js +2 -1
  13. package/dist/container.js.map +1 -1
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +5 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/modules/debug/RunDebugService.d.ts.map +1 -1
  19. package/dist/modules/debug/RunDebugService.js +20 -2
  20. package/dist/modules/debug/RunDebugService.js.map +1 -1
  21. package/dist/modules/debug/llmReporting.logic.d.ts +24 -0
  22. package/dist/modules/debug/llmReporting.logic.d.ts.map +1 -0
  23. package/dist/modules/debug/llmReporting.logic.js +35 -0
  24. package/dist/modules/debug/llmReporting.logic.js.map +1 -0
  25. package/dist/modules/execution/AgentDispatchController.d.ts +7 -0
  26. package/dist/modules/execution/AgentDispatchController.d.ts.map +1 -1
  27. package/dist/modules/execution/AgentDispatchController.js +40 -24
  28. package/dist/modules/execution/AgentDispatchController.js.map +1 -1
  29. package/dist/modules/execution/DeployFixController.d.ts +9 -0
  30. package/dist/modules/execution/DeployFixController.d.ts.map +1 -1
  31. package/dist/modules/execution/DeployFixController.js +10 -10
  32. package/dist/modules/execution/DeployFixController.js.map +1 -1
  33. package/dist/modules/execution/DeployerStepController.d.ts.map +1 -1
  34. package/dist/modules/execution/DeployerStepController.js +4 -3
  35. package/dist/modules/execution/DeployerStepController.js.map +1 -1
  36. package/dist/modules/execution/ExecutionService.d.ts +7 -0
  37. package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
  38. package/dist/modules/execution/ExecutionService.js +17 -0
  39. package/dist/modules/execution/ExecutionService.js.map +1 -1
  40. package/dist/modules/execution/ExecutionServiceDependencies.d.ts +8 -1
  41. package/dist/modules/execution/ExecutionServiceDependencies.d.ts.map +1 -1
  42. package/dist/modules/execution/GateHelperDispatcher.d.ts +8 -0
  43. package/dist/modules/execution/GateHelperDispatcher.d.ts.map +1 -1
  44. package/dist/modules/execution/GateHelperDispatcher.js +9 -5
  45. package/dist/modules/execution/GateHelperDispatcher.js.map +1 -1
  46. package/dist/modules/execution/GateStepController.d.ts.map +1 -1
  47. package/dist/modules/execution/GateStepController.js +9 -3
  48. package/dist/modules/execution/GateStepController.js.map +1 -1
  49. package/dist/modules/execution/HumanTestController.d.ts +7 -0
  50. package/dist/modules/execution/HumanTestController.d.ts.map +1 -1
  51. package/dist/modules/execution/HumanTestController.js +20 -8
  52. package/dist/modules/execution/HumanTestController.js.map +1 -1
  53. package/dist/modules/execution/OneShotStepController.d.ts +1 -1
  54. package/dist/modules/execution/OneShotStepController.js +1 -1
  55. package/dist/modules/execution/PollCompletionController.d.ts +22 -3
  56. package/dist/modules/execution/PollCompletionController.d.ts.map +1 -1
  57. package/dist/modules/execution/PollCompletionController.js +78 -8
  58. package/dist/modules/execution/PollCompletionController.js.map +1 -1
  59. package/dist/modules/execution/PollRunningController.d.ts +22 -7
  60. package/dist/modules/execution/PollRunningController.d.ts.map +1 -1
  61. package/dist/modules/execution/PollRunningController.js +64 -13
  62. package/dist/modules/execution/PollRunningController.js.map +1 -1
  63. package/dist/modules/execution/RalphController.d.ts +7 -0
  64. package/dist/modules/execution/RalphController.d.ts.map +1 -1
  65. package/dist/modules/execution/RalphController.js +12 -8
  66. package/dist/modules/execution/RalphController.js.map +1 -1
  67. package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
  68. package/dist/modules/execution/RunDispatcher.js +19 -6
  69. package/dist/modules/execution/RunDispatcher.js.map +1 -1
  70. package/dist/modules/execution/RunDispatcherDependencies.d.ts +16 -1
  71. package/dist/modules/execution/RunDispatcherDependencies.d.ts.map +1 -1
  72. package/dist/modules/execution/RunDispatcherDependencies.js.map +1 -1
  73. package/dist/modules/execution/RunStateMachine.d.ts.map +1 -1
  74. package/dist/modules/execution/RunStateMachine.js +21 -2
  75. package/dist/modules/execution/RunStateMachine.js.map +1 -1
  76. package/dist/modules/execution/StepGraph.d.ts.map +1 -1
  77. package/dist/modules/execution/StepGraph.js +7 -0
  78. package/dist/modules/execution/StepGraph.js.map +1 -1
  79. package/dist/modules/execution/TesterController.d.ts +7 -0
  80. package/dist/modules/execution/TesterController.d.ts.map +1 -1
  81. package/dist/modules/execution/TesterController.js +24 -18
  82. package/dist/modules/execution/TesterController.js.map +1 -1
  83. package/dist/modules/execution/VisualConfirmationController.d.ts +7 -0
  84. package/dist/modules/execution/VisualConfirmationController.d.ts.map +1 -1
  85. package/dist/modules/execution/VisualConfirmationController.js +20 -8
  86. package/dist/modules/execution/VisualConfirmationController.js.map +1 -1
  87. package/dist/modules/execution/advance.d.ts +14 -0
  88. package/dist/modules/execution/advance.d.ts.map +1 -1
  89. package/dist/modules/execution/awaitingJob.logic.d.ts +30 -0
  90. package/dist/modules/execution/awaitingJob.logic.d.ts.map +1 -0
  91. package/dist/modules/execution/awaitingJob.logic.js +62 -0
  92. package/dist/modules/execution/awaitingJob.logic.js.map +1 -0
  93. package/dist/modules/execution/delegation.logic.d.ts +93 -0
  94. package/dist/modules/execution/delegation.logic.d.ts.map +1 -0
  95. package/dist/modules/execution/delegation.logic.js +97 -0
  96. package/dist/modules/execution/delegation.logic.js.map +1 -0
  97. package/dist/modules/execution/deployer-family.d.ts.map +1 -1
  98. package/dist/modules/execution/deployer-family.js +1 -0
  99. package/dist/modules/execution/deployer-family.js.map +1 -1
  100. package/dist/modules/execution/drive.d.ts.map +1 -1
  101. package/dist/modules/execution/drive.js +6 -1
  102. package/dist/modules/execution/drive.js.map +1 -1
  103. package/dist/modules/execution/gate-window-controllers.d.ts +7 -0
  104. package/dist/modules/execution/gate-window-controllers.d.ts.map +1 -1
  105. package/dist/modules/execution/gate-window-controllers.js +5 -1
  106. package/dist/modules/execution/gate-window-controllers.js.map +1 -1
  107. package/dist/modules/execution/job.logic.d.ts +38 -2
  108. package/dist/modules/execution/job.logic.d.ts.map +1 -1
  109. package/dist/modules/execution/job.logic.js +34 -0
  110. package/dist/modules/execution/job.logic.js.map +1 -1
  111. package/dist/modules/execution/step-fold.logic.d.ts +218 -2
  112. package/dist/modules/execution/step-fold.logic.d.ts.map +1 -1
  113. package/dist/modules/execution/step-fold.logic.js +413 -3
  114. package/dist/modules/execution/step-fold.logic.js.map +1 -1
  115. package/dist/validation/validateRegistrations.d.ts +11 -1
  116. package/dist/validation/validateRegistrations.d.ts.map +1 -1
  117. package/dist/validation/validateRegistrations.js +86 -1
  118. package/dist/validation/validateRegistrations.js.map +1 -1
  119. package/package.json +12 -12
@@ -0,0 +1,62 @@
1
+ import { inFlightDelegation } from './step-fold.logic.js';
2
+ // ---------------------------------------------------------------------------
3
+ // The ONE producer of an `awaiting_job` park.
4
+ //
5
+ // A park used to be a three-field object literal written at sixteen sites, which was fine while
6
+ // every async job was a container job polled on one deployment-wide cadence. A DELEGATED step
7
+ // breaks that: an external run of an hour is ordinary where a harness job of an hour is a stall,
8
+ // so the cadence belongs to the executor and travels with the park.
9
+ //
10
+ // Going through one function is what makes that structural rather than remembered. A new dispatch
11
+ // site gets the cadence by construction, and the derivation reads the STEP, which is the only
12
+ // thing both durable drivers have, in another process, after a replay.
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * Report that this step has an asynchronous job in flight, with the poll cadence the driver should
16
+ * use for it.
17
+ *
18
+ * `jobId` is a parameter rather than read off the step because two callers legitimately hold it
19
+ * somewhere else: a just-returned handle (which the step also carries by then) and a re-attach that
20
+ * captured it before the step was mutated.
21
+ */
22
+ export function awaitingJob(step, stepIndex, jobId) {
23
+ const poll = delegatedPollPolicy(step);
24
+ return { kind: 'awaiting_job', jobId, stepIndex, ...(poll ? { poll } : {}) };
25
+ }
26
+ /**
27
+ * The cadence for the job currently in flight on this step, or undefined when the park carries
28
+ * none: a container job, and a delegation whose record holds no declared cadence. Both then poll
29
+ * on the DEPLOYMENT's own configured job cadence, which is the honest answer where the executor's
30
+ * declaration is out of reach and a far better one than a number nobody chose.
31
+ *
32
+ * Gated on the in-flight job actually BEING the delegated one, through the shared
33
+ * {@link inFlightDelegation}. A step whose own work was delegated can still dispatch a container
34
+ * job afterwards (a helper round, a re-run under an overriding kind), and the delegation record
35
+ * outlives that by design (its attempt log is the evidence for the re-run). Reading the cadence off
36
+ * a record without checking would poll a container job on an external system's schedule: at best
37
+ * minutes of dead air per step, at worst a three-hour budget spent on a container the transport
38
+ * gave up on in ten minutes.
39
+ */
40
+ export function delegatedPollPolicy(step) {
41
+ const record = inFlightDelegation(step);
42
+ if (!record)
43
+ return undefined;
44
+ if (record.status !== 'starting' && record.status !== 'running')
45
+ return undefined;
46
+ const poll = record.poll;
47
+ // A DEGENERATE window answers "no cadence" rather than deriving one from it. The registry
48
+ // refuses a non-positive declaration, but a mothership node validates nothing it resolves and a
49
+ // record can predate a claim, and the arithmetic here is unforgiving in exactly the direction
50
+ // that costs a run: `ceil(0 / 0)` is `NaN`, `max(1, NaN)` is `NaN`, and a `p < NaN` poll loop
51
+ // runs no iterations at all, so the step fails as un-settled before the first poll.
52
+ if (!poll || !(poll.intervalMs > 0) || !(poll.maxDurationMs > 0))
53
+ return undefined;
54
+ // At least one poll, always: an executor whose declared window is shorter than one interval is
55
+ // refused at registration, and a window that survived that would otherwise settle the step
56
+ // before the platform ever asked how it was going.
57
+ return {
58
+ intervalMs: poll.intervalMs,
59
+ maxPolls: Math.max(1, Math.ceil(poll.maxDurationMs / poll.intervalMs)),
60
+ };
61
+ }
62
+ //# sourceMappingURL=awaitingJob.logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awaitingJob.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/awaitingJob.logic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,8EAA8E;AAC9E,8CAA8C;AAC9C,EAAE;AACF,gGAAgG;AAChG,8FAA8F;AAC9F,iGAAiG;AACjG,oEAAoE;AACpE,EAAE;AACF,kGAAkG;AAClG,8FAA8F;AAC9F,uEAAuE;AACvE,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,IAAkB,EAAE,SAAiB,EAAE,KAAa;IAC9E,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACtC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAC9E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAkB;IAElB,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACjF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxB,0FAA0F;IAC1F,gGAAgG;IAChG,8FAA8F;IAC9F,8FAA8F;IAC9F,oFAAoF;IACpF,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAClF,+FAA+F;IAC/F,2FAA2F;IAC3F,mDAAmD;IACnD,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;KACvE,CAAA;AACH,CAAC"}
@@ -0,0 +1,93 @@
1
+ import type { AgentKindRegistry } from '@cat-factory/agents';
2
+ import { type AgentJobHandle, type AgentRunContext, type AsyncAgentExecutor, type Clock, type DelegatedExecutorRegistry, type DelegatedPollPolicy, type ExecutionInstance, type Logger, type PipelineStep } from '@cat-factory/kernel';
3
+ /** What a delegated dispatch needs settled before it happens. */
4
+ export interface DelegatedDispatchPlan {
5
+ /** The registered executor this dispatch goes to. */
6
+ executor: string;
7
+ /**
8
+ * The key the executor is asked to make its run recoverable by, and the step's job id from the
9
+ * moment of the claim. The SAME string the container path uses as its harness job id
10
+ * (`stepJobId`), so one run's jobs stay distinct whichever executor class they landed on.
11
+ */
12
+ correlationKey: string;
13
+ /** The cadence the driver polls this step on, copied onto the record at the claim. */
14
+ poll: DelegatedPollPolicy;
15
+ }
16
+ /**
17
+ * Plan a delegated dispatch, or answer undefined for a kind that runs on the platform's own
18
+ * executors.
19
+ *
20
+ * It REFUSES rather than falls back when a delegated kind names an executor this process does not
21
+ * register, and the refusal is the point: boot validation catches that on a standalone deployment,
22
+ * but a MOTHERSHIP-MODE node boot-validates none of the kinds it resolves: they arrive per
23
+ * dispatch, chosen by a process one build ahead of this one. Falling through to the container
24
+ * executor there would take a step the deployment declared as external and quietly run it in the
25
+ * platform's harness, with the agent's own prompt, against the repository: a run that looks
26
+ * successful and is nothing anybody asked for.
27
+ */
28
+ export declare function planDelegatedDispatch(context: AgentRunContext, registries: {
29
+ agentKindRegistry: AgentKindRegistry;
30
+ delegatedExecutorRegistry: DelegatedExecutorRegistry;
31
+ }): DelegatedDispatchPlan | undefined;
32
+ /** What an accepted async dispatch hands back to the site that asked for it. */
33
+ export interface StartedStepDispatch {
34
+ /** The stamped job id: this dispatch's own, and what the site parks on. */
35
+ jobId: string;
36
+ /** The executor's handle, for the facts only the accepting site reads off it. */
37
+ handle: AgentJobHandle;
38
+ }
39
+ /**
40
+ * THE async dispatch: open (and COMMIT) the record this job will be observed through, call the
41
+ * executor, and fold what came back onto the step.
42
+ *
43
+ * One function rather than the three lines written out at each of the eight sites, because every
44
+ * one of them is a place to get the ordering wrong and each failure is silent:
45
+ *
46
+ * - The CLAIM is the whole idempotency story for a delegated step. Both durable drivers replay,
47
+ * and an executor asked to start twice produces two external runs and two pull requests for one
48
+ * task; the platform's half of the bargain is that the claim (`starting`, plus the correlation
49
+ * key as the step's job id) is on disk BEFORE `start()` is called, so a replay finds it and
50
+ * re-attaches. Written per site, that held at exactly one of them.
51
+ * - The container half is the same question, not a second one: a delegated dispatch must NOT
52
+ * stamp a container (there is none, and a stamped one renders the step as a machine the
53
+ * platform never started and hands it to the reclaim that kills containers by run), so "claim"
54
+ * and "cold boot" are two answers to one question, asked once.
55
+ * - A dispatch that THROWS has to undo the claim it committed, or the run parks on a job that may
56
+ * never have started and dies on its poll budget reporting a timeout instead of the dispatch
57
+ * failure that actually happened (see {@link failDelegationDispatch}). Inside this function the
58
+ * fold cannot be forgotten, and it is PERSISTED before the throw propagates, because the
59
+ * durable drivers re-read the run from storage when they fail it.
60
+ *
61
+ * It rethrows rather than reporting, so a site that lets its dispatch failures propagate keeps
62
+ * doing so; the one site that classifies them ({@link AgentDispatchController}) catches the same
63
+ * throw and now sees the pre-call refusals too, which used to escape its `try` entirely.
64
+ */
65
+ export type StartStepDispatch = (input: {
66
+ workspaceId: string;
67
+ instance: ExecutionInstance;
68
+ context: AgentRunContext;
69
+ step: PipelineStep;
70
+ /** The async executor this site resolved; narrowed to the one method this seam calls. */
71
+ executor: Pick<AsyncAgentExecutor, 'startJob'>;
72
+ }) => Promise<StartedStepDispatch>;
73
+ /** Bind {@link StartStepDispatch} over the registries, the clock and the engine's persist. */
74
+ export declare function buildStartStepDispatch(deps: {
75
+ agentKindRegistry: AgentKindRegistry;
76
+ delegatedExecutorRegistry: DelegatedExecutorRegistry;
77
+ clock: Clock;
78
+ persistAndEmit: (workspaceId: string, instance: ExecutionInstance) => Promise<void>;
79
+ logger?: Logger;
80
+ }): StartStepDispatch;
81
+ /**
82
+ * Whether a dispatch that threw got as far as CALLING the executor's own system.
83
+ *
84
+ * The delegated executor states it: everything it refuses before the call (no linked repository,
85
+ * no such registration, a step dispatched outside a run) is a conflict of ours, and only a throw
86
+ * from `start()` itself is re-raised as `delegated_executor_failed`. The engine reads that rather
87
+ * than inferring it, because the two answers lead to opposite dispositions and neither is safe as
88
+ * a default: a claim settled when the call may have landed leaves a live external run that no
89
+ * teardown will ever name, and a claim left open when nothing was contacted has the teardown warn
90
+ * a human about work that never started.
91
+ */
92
+ export declare function delegationContactFailed(error: unknown): boolean;
93
+ //# sourceMappingURL=delegation.logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/delegation.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,KAAK,EACV,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAA;AAc5B,iEAAiE;AACjE,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,sFAAsF;IACtF,IAAI,EAAE,mBAAmB,CAAA;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE;IACV,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,yBAAyB,EAAE,yBAAyB,CAAA;CACrD,GACA,qBAAqB,GAAG,SAAS,CA0BnC;AAED,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,MAAM,EAAE,cAAc,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,OAAO,EAAE,eAAe,CAAA;IACxB,IAAI,EAAE,YAAY,CAAA;IAClB,yFAAyF;IACzF,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;CAC/C,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAElC,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,KAAK,EAAE,KAAK,CAAA;IACZ,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,iBAAiB,CA6CpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/D"}
@@ -0,0 +1,97 @@
1
+ import { delegatedExecutorFor } from '@cat-factory/agents';
2
+ import { ConflictError, DomainError, getErrorMessage, noopLogger, runBestEffort, stepJobId, } from '@cat-factory/kernel';
3
+ import { claimDelegation, failDelegationDispatch, recordDispatchedJob } from './step-fold.logic.js';
4
+ /**
5
+ * Plan a delegated dispatch, or answer undefined for a kind that runs on the platform's own
6
+ * executors.
7
+ *
8
+ * It REFUSES rather than falls back when a delegated kind names an executor this process does not
9
+ * register, and the refusal is the point: boot validation catches that on a standalone deployment,
10
+ * but a MOTHERSHIP-MODE node boot-validates none of the kinds it resolves: they arrive per
11
+ * dispatch, chosen by a process one build ahead of this one. Falling through to the container
12
+ * executor there would take a step the deployment declared as external and quietly run it in the
13
+ * platform's harness, with the agent's own prompt, against the repository: a run that looks
14
+ * successful and is nothing anybody asked for.
15
+ */
16
+ export function planDelegatedDispatch(context, registries) {
17
+ const executor = delegatedExecutorFor(context.agentKind, registries.agentKindRegistry);
18
+ if (!executor)
19
+ return undefined;
20
+ const definition = registries.delegatedExecutorRegistry.get(executor);
21
+ if (!definition) {
22
+ throw new ConflictError(`The \`${context.agentKind}\` step runs on the delegated executor "${executor}", which ` +
23
+ `this deployment does not register` +
24
+ (registries.delegatedExecutorRegistry.size > 0
25
+ ? ` (registered: ${registries.delegatedExecutorRegistry.ids().join(', ')}).`
26
+ : '.'), 'delegated_executor_unwired');
27
+ }
28
+ if (!context.executionId) {
29
+ throw new ConflictError(`The \`${context.agentKind}\` step cannot be delegated outside a run: its correlation key ` +
30
+ 'is derived from the run id, and an external executor has nothing else to be found by.', 'delegated_executor_unwired');
31
+ }
32
+ return {
33
+ executor,
34
+ correlationKey: stepJobId(context.executionId, context.agentKind, context.dispatchEpoch),
35
+ poll: definition.poll,
36
+ };
37
+ }
38
+ /** Bind {@link StartStepDispatch} over the registries, the clock and the engine's persist. */
39
+ export function buildStartStepDispatch(deps) {
40
+ const log = deps.logger ?? noopLogger;
41
+ return async ({ workspaceId, instance, context, step, executor }) => {
42
+ const plan = planDelegatedDispatch(context, deps);
43
+ if (plan) {
44
+ claimDelegation(step, { ...plan, startedAt: deps.clock.now() });
45
+ }
46
+ else {
47
+ // The explicit cold-boot lifecycle: a container dispatch blocks until the per-run container
48
+ // is up and has accepted the job, so emitting `starting` now shows the boot (and then the
49
+ // live phase and the container's id/url) instead of a blank "working" state.
50
+ step.container = { status: 'starting' };
51
+ }
52
+ await deps.persistAndEmit(workspaceId, instance);
53
+ let handle;
54
+ try {
55
+ handle = await executor.startJob(context);
56
+ }
57
+ catch (error) {
58
+ // A DELEGATED dispatch has no container to mark: the claim it committed is what the failure
59
+ // lands on, and whether that claim SURVIVES depends on how far the dispatch got. A throw
60
+ // from the executor's own `start()` leaves work of unknown liveness, so the claim stays open
61
+ // for the teardown to ask about; anything refused before the call settles it, because
62
+ // nothing is running. Either way the job id goes, so the next advance re-dispatches under
63
+ // the same correlation key rather than polling a job that may never have existed.
64
+ if (plan) {
65
+ failDelegationDispatch(step, {
66
+ error: getErrorMessage(error),
67
+ contacted: delegationContactFailed(error),
68
+ });
69
+ }
70
+ else {
71
+ step.container = { status: 'errored' };
72
+ }
73
+ // Best-effort, and deliberately: the caller's own error is the one worth reporting, and a
74
+ // persist that throws here would replace it with a storage fault. Losing the fold costs the
75
+ // step's execution-surface record, never its recoverability, because the job id it clears is
76
+ // re-derived from the claim's own status on the next advance ({@link liveJobId}).
77
+ await runBestEffort(log, 'startStepDispatch.recordFailure', () => deps.persistAndEmit(workspaceId, instance), { workspaceId, executionId: instance.id, agentKind: context.agentKind });
78
+ throw error;
79
+ }
80
+ return { jobId: recordDispatchedJob(step, handle, context.agentKind), handle };
81
+ };
82
+ }
83
+ /**
84
+ * Whether a dispatch that threw got as far as CALLING the executor's own system.
85
+ *
86
+ * The delegated executor states it: everything it refuses before the call (no linked repository,
87
+ * no such registration, a step dispatched outside a run) is a conflict of ours, and only a throw
88
+ * from `start()` itself is re-raised as `delegated_executor_failed`. The engine reads that rather
89
+ * than inferring it, because the two answers lead to opposite dispositions and neither is safe as
90
+ * a default: a claim settled when the call may have landed leaves a live external run that no
91
+ * teardown will ever name, and a claim left open when nothing was contacted has the teardown warn
92
+ * a human about work that never started.
93
+ */
94
+ export function delegationContactFailed(error) {
95
+ return error instanceof DomainError && error.details?.['reason'] === 'delegated_executor_failed';
96
+ }
97
+ //# sourceMappingURL=delegation.logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/delegation.logic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deployer-family.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/deployer-family.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,KAAK,0BAA0B,EAChC,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAA;AAc5F;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,0BAA0B,EAC1B,kBAAkB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,0BAA0B,CACnG,CAAA;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,sBAAsB,CAAA;IAChC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,wBAAwB,EAAE,kCAAkC,CAAA;IAC5D,QAAQ,EAAE,sBAAsB,CAAA;CACjC;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,mBAAmB,GACzB,cAAc,CAyChB"}
1
+ {"version":3,"file":"deployer-family.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/deployer-family.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,KAAK,0BAA0B,EAChC,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAA;AAc5F;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,0BAA0B,EAC1B,kBAAkB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,0BAA0B,CACnG,CAAA;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,sBAAsB,CAAA;IAChC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,wBAAwB,EAAE,kCAAkC,CAAA;IAC5D,QAAQ,EAAE,sBAAsB,CAAA;CACjC;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,mBAAmB,GACzB,cAAc,CA0ChB"}
@@ -7,6 +7,7 @@ export function buildDeployerFamily(deps, hooks) {
7
7
  agentExecutor: deps.agentExecutor,
8
8
  contextBuilder: deps.contextBuilder,
9
9
  runStateMachine: deps.runStateMachine,
10
+ startStepDispatch: deps.startStepDispatch,
10
11
  clock: deps.clock,
11
12
  notificationService: deps.notificationService,
12
13
  logger: deps.logger,
@@ -1 +1 @@
1
- {"version":3,"file":"deployer-family.js","sourceRoot":"","sources":["../../../src/modules/execution/deployer-family.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EACL,sBAAsB,GAEvB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAA;AAiC5F,MAAM,UAAU,mBAAmB,CACjC,IAAuB,EACvB,KAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC;QACxC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAA;IACF,sFAAsF;IACtF,+FAA+F;IAC/F,8DAA8D;IAC9D,MAAM,wBAAwB,GAAG,IAAI,kCAAkC,CAAC;QACtE,YAAY,EAAE,IAAI,CAAC,uBAAuB;QAC1C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC;QAC1C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,SAAS;QACT,wBAAwB;QACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;QAClD,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;QACxD,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC;QAC1C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAA;IACF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAA;AACpE,CAAC"}
1
+ {"version":3,"file":"deployer-family.js","sourceRoot":"","sources":["../../../src/modules/execution/deployer-family.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EACL,sBAAsB,GAEvB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAA;AAiC5F,MAAM,UAAU,mBAAmB,CACjC,IAAuB,EACvB,KAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC;QACxC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAA;IACF,sFAAsF;IACtF,+FAA+F;IAC/F,8DAA8D;IAC9D,MAAM,wBAAwB,GAAG,IAAI,kCAAkC,CAAC;QACtE,YAAY,EAAE,IAAI,CAAC,uBAAuB;QAC1C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC;QAC1C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,SAAS;QACT,wBAAwB;QACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;QAClD,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;QACxD,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC;QAC1C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAA;IACF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAA;AACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAQ5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,KAAK,CAAA;AAE/B,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,+FAA+F;AAC/F,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAA;AAE/E,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/E;AAED,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,WAAW,EAChB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,CA4NvB"}
1
+ {"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAQ5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,KAAK,CAAA;AAE/B,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,+FAA+F;AAC/F,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAA;AAE/E,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/E;AAED,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,WAAW,EAChB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,CAiOvB"}
@@ -161,7 +161,12 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
161
161
  let gateHops = 0;
162
162
  while (gateHops++ < MAX_PARK_HOPS) {
163
163
  if (result.kind === 'awaiting_job') {
164
- const next = await pollUntil('awaiting_job', () => exec.pollAgentJob(workspaceId, executionId), cfg.jobPollIntervalMs, cfg.jobMaxPolls, 'Implementation job', { pollFirst: true });
164
+ // The park may carry its OWN cadence, and today exactly one kind of step does: a
165
+ // DELEGATED one, whose executor declares the interval and window its external system
166
+ // actually works on. A three-hour Actions run polled on the harness's 15s job cadence
167
+ // spends its whole budget saying "queued". Absent ⇒ the deployment's configured job
168
+ // cadence, which is every container job.
169
+ const next = await pollUntil('awaiting_job', () => exec.pollAgentJob(workspaceId, executionId), result.poll?.intervalMs ?? cfg.jobPollIntervalMs, result.poll?.maxPolls ?? cfg.jobMaxPolls, 'Implementation job', { pollFirst: true });
165
170
  if (!next)
166
171
  return {};
167
172
  result = next;
@@ -1 +1 @@
1
- {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@
13
13
  import type { BlockRepository, Clock, ExecutionRepository, IdGenerator, Pipeline, ServiceRepository, WorkRunner, WorkspaceSettingsRepository } from '@cat-factory/kernel';
14
14
  import type { AgentExecutor } from '@cat-factory/kernel';
15
15
  import type { AgentContextBuilder } from './AgentContextBuilder.js';
16
+ import type { StartStepDispatch } from './delegation.logic.js';
16
17
  import type { Block } from '@cat-factory/contracts';
17
18
  import type { ExecutionServiceDependencies, ResolvedRunRiskPolicy } from './ExecutionService.js';
18
19
  import type { RunPolicyScope } from './policy-types.js';
@@ -36,6 +37,12 @@ import { DocInterviewController } from './DocInterviewController.js';
36
37
  * bound to the live {@link ExecutionService}, so they resolve against its state at call time.
37
38
  */
38
39
  export interface GateWindowControllerDeps {
40
+ /**
41
+ * The shared async dispatch every site goes through, bound by the engine. Threaded in rather
42
+ * than rebuilt here, so the four controllers below and the dispatcher's own sites take the same
43
+ * claim-before-effect path. See {@link StartStepDispatch}.
44
+ */
45
+ startStepDispatch: StartStepDispatch;
39
46
  blockRepository: BlockRepository;
40
47
  executionRepository: ExecutionRepository;
41
48
  workRunner: WorkRunner;
@@ -1 +1 @@
1
- {"version":3,"file":"gate-window-controllers.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate-window-controllers.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"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"}
@@ -31,12 +31,13 @@ import { defaultTaskTypeRegistry } from '@cat-factory/kernel';
31
31
  * Build the human-gate window controllers over one shared deps bundle (see the module doc).
32
32
  */
33
33
  export function buildGateWindowControllers(deps) {
34
- const { blockRepository, executionRepository, workRunner, agentExecutor, notificationService, contextBuilder, stateMachine, stepGraph, idGenerator, clock, clockNow, resolveRiskPolicy, dispatchIterationCap, testerQualityReviewer, environmentProvisioning, environmentTeardown, branchUpdater, resolveBinaryArtifactStore, documentRepository, forkChatService, issueWriteback, logger, } = deps;
34
+ const { blockRepository, executionRepository, workRunner, agentExecutor, notificationService, contextBuilder, startStepDispatch, stateMachine, stepGraph, idGenerator, clock, clockNow, resolveRiskPolicy, dispatchIterationCap, testerQualityReviewer, environmentProvisioning, environmentTeardown, branchUpdater, resolveBinaryArtifactStore, documentRepository, forkChatService, issueWriteback, logger, } = deps;
35
35
  const testerController = new TesterController({
36
36
  blockRepository,
37
37
  notificationService,
38
38
  agentExecutor,
39
39
  contextBuilder,
40
+ startStepDispatch,
40
41
  resolveRiskPolicy,
41
42
  stateMachine,
42
43
  // The test quality-control companion's inline reviewer (when wired); absent → QC
@@ -49,6 +50,7 @@ export function buildGateWindowControllers(deps) {
49
50
  notificationService,
50
51
  agentExecutor,
51
52
  contextBuilder,
53
+ startStepDispatch,
52
54
  stateMachine,
53
55
  clockNow,
54
56
  });
@@ -58,6 +60,7 @@ export function buildGateWindowControllers(deps) {
58
60
  workRunner,
59
61
  agentExecutor,
60
62
  contextBuilder,
63
+ startStepDispatch,
61
64
  notificationService,
62
65
  // The human-test gate READS the env the upstream `deployer` step provisioned (it no longer
63
66
  // stands up its own) — resolved by the block's OWN service frame, exactly as the tester
@@ -105,6 +108,7 @@ export function buildGateWindowControllers(deps) {
105
108
  workRunner,
106
109
  agentExecutor,
107
110
  contextBuilder,
111
+ startStepDispatch,
108
112
  notificationService,
109
113
  ...(resolveBinaryArtifactStore ? { resolveBinaryArtifactStore } : {}),
110
114
  ...(documentRepository ? { documentRepository } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"gate-window-controllers.js","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate-window-controllers.js","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export interface ContainerFailureView {
24
24
  detail?: string;
25
25
  }
26
26
  /** A terminal run failure, as the poll paths report one. */
27
- export interface ContainerShutdownFailure {
27
+ export interface TerminalJobFailure {
28
28
  error: string;
29
29
  failureKind: AgentFailureKind;
30
30
  detail: string;
@@ -41,7 +41,43 @@ export interface ContainerShutdownFailure {
41
41
  * agent's own commands: the incident behind this spent the whole eviction budget re-running an
42
42
  * agent that killed its container each time), and each attempt costs another full agent run.
43
43
  */
44
- export declare function containerShutdownFailure(failure: ContainerFailureView): ContainerShutdownFailure | null;
44
+ export declare function containerShutdownFailure(failure: ContainerFailureView): TerminalJobFailure | null;
45
+ /**
46
+ * The terminal failure for a DELEGATED job whose executor called its verdict final, or null when
47
+ * this is not that.
48
+ *
49
+ * Its own function rather than a reuse of {@link containerShutdownFailure}, and the separation IS
50
+ * the fix: borrowing the container path's only "terminal, do not retry" signal made every external
51
+ * CI failure report `failureKind: 'harness_shutdown'`, which renders to an operator as "Harness
52
+ * shut down" for a step that never had a harness and buckets delegated verdicts under container
53
+ * eviction in every failure-kind rollup. The two conditions want the same DISPOSITION and
54
+ * different NAMES, and only the name reaches a human.
55
+ *
56
+ * A RETRYABLE delegated failure answers null, and its re-drive is
57
+ * `PollCompletionController.recoverDelegatedFailure` rather than anything here: retryability and
58
+ * classification are separate axes, so `delegated_failed` is the kind for BOTH and the
59
+ * disposition decides only whether a second dispatch is spent (see `DelegationUpdate.retryable`
60
+ * and {@link MAX_DELEGATED_RETRIES}).
61
+ */
62
+ export declare function delegatedTerminalFailure(failure: {
63
+ error?: string;
64
+ detail?: string;
65
+ delegated?: {
66
+ url?: string;
67
+ disposition?: 'terminal' | 'retryable';
68
+ };
69
+ }): TerminalJobFailure | null;
70
+ /**
71
+ * How many times a DELEGATED step is re-dispatched automatically after its executor called a
72
+ * failure retryable (a cancelled run, a runner-pool restart, a rate limit).
73
+ *
74
+ * One, like {@link MAX_EVICTION_RECOVERIES} and for the same reasoning: a single blip is absorbed
75
+ * silently, and a second failure of the same step is evidence that the next attempt reaches the
76
+ * same verdict. The cost of being wrong is higher here than on the container path, because the
77
+ * attempt runs on somebody else's runner and bills somebody else's account, which is also why the
78
+ * budget is the engine's to set rather than the executor's to ask for.
79
+ */
80
+ export declare const MAX_DELEGATED_RETRIES = 1;
45
81
  /**
46
82
  * Compose the failure `detail` for a step whose eviction budget is spent, from the post-mortem
47
83
  * of the FIRST container that died on it (retained across recoveries on
@@ -1 +1 @@
1
- {"version":3,"file":"job.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/job.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAQlF;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wFAAwF;IACxF,OAAO,CAAC,EAAE,qBAAqB,CAAA;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,IAAI,CAAA;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,4DAA4D;AAC5D,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,GAC5B,wBAAwB,GAAG,IAAI,CAOjC;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,MAAM,GAAG,SAAS,CAIpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iCAAiC,IAAI,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gCAAgC,IAAI,CAAA;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,QAAS,CAAA;AAElD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAIT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE3E;AAED,iGAAiG;AACjG,MAAM,WAAW,6BAA6B;IAC5C,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,WAAW,EAAE,gBAAgB,CAAA;IAC7B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAA;IACd,kGAAkG;IAClG,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,wFAAwF;IACxF,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AA8CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,sBAA2B,GACnC,6BAA6B,CAmC/B"}
1
+ {"version":3,"file":"job.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/job.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAQlF;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wFAAwF;IACxF,OAAO,CAAC,EAAE,qBAAqB,CAAA;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,IAAI,CAAA;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,IAAI,CAOjG;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IAGf,SAAS,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,CAAA;KAAE,CAAA;CACrE,GAAG,kBAAkB,GAAG,IAAI,CAI5B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAEtC;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,MAAM,GAAG,SAAS,CAIpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iCAAiC,IAAI,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gCAAgC,IAAI,CAAA;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,QAAS,CAAA;AAElD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAIT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE3E;AAED,iGAAiG;AACjG,MAAM,WAAW,6BAA6B;IAC5C,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,WAAW,EAAE,gBAAgB,CAAA;IAC7B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAA;IACd,kGAAkG;IAClG,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,wFAAwF;IACxF,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AA8CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,sBAA2B,GACnC,6BAA6B,CAmC/B"}
@@ -20,6 +20,40 @@ export function containerShutdownFailure(failure) {
20
20
  const error = failure.error ?? HARNESS_SHUTDOWN_ERROR;
21
21
  return { error, failureKind: 'harness_shutdown', detail: failure.detail ?? error };
22
22
  }
23
+ /**
24
+ * The terminal failure for a DELEGATED job whose executor called its verdict final, or null when
25
+ * this is not that.
26
+ *
27
+ * Its own function rather than a reuse of {@link containerShutdownFailure}, and the separation IS
28
+ * the fix: borrowing the container path's only "terminal, do not retry" signal made every external
29
+ * CI failure report `failureKind: 'harness_shutdown'`, which renders to an operator as "Harness
30
+ * shut down" for a step that never had a harness and buckets delegated verdicts under container
31
+ * eviction in every failure-kind rollup. The two conditions want the same DISPOSITION and
32
+ * different NAMES, and only the name reaches a human.
33
+ *
34
+ * A RETRYABLE delegated failure answers null, and its re-drive is
35
+ * `PollCompletionController.recoverDelegatedFailure` rather than anything here: retryability and
36
+ * classification are separate axes, so `delegated_failed` is the kind for BOTH and the
37
+ * disposition decides only whether a second dispatch is spent (see `DelegationUpdate.retryable`
38
+ * and {@link MAX_DELEGATED_RETRIES}).
39
+ */
40
+ export function delegatedTerminalFailure(failure) {
41
+ if (failure.delegated?.disposition !== 'terminal')
42
+ return null;
43
+ const error = failure.error ?? 'The external executor reported a terminal failure.';
44
+ return { error, failureKind: 'delegated_failed', detail: failure.detail ?? error };
45
+ }
46
+ /**
47
+ * How many times a DELEGATED step is re-dispatched automatically after its executor called a
48
+ * failure retryable (a cancelled run, a runner-pool restart, a rate limit).
49
+ *
50
+ * One, like {@link MAX_EVICTION_RECOVERIES} and for the same reasoning: a single blip is absorbed
51
+ * silently, and a second failure of the same step is evidence that the next attempt reaches the
52
+ * same verdict. The cost of being wrong is higher here than on the container path, because the
53
+ * attempt runs on somebody else's runner and bills somebody else's account, which is also why the
54
+ * budget is the engine's to set rather than the executor's to ask for.
55
+ */
56
+ export const MAX_DELEGATED_RETRIES = 1;
23
57
  /**
24
58
  * Compose the failure `detail` for a step whose eviction budget is spent, from the post-mortem
25
59
  * of the FIRST container that died on it (retained across recoveries on
@@ -1 +1 @@
1
- {"version":3,"file":"job.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/job.logic.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAkC5B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA6B;IAE7B,IAAI,CAAC,OAAO,CAAC,eAAe;QAAE,OAAO,IAAI,CAAA;IACzC,0FAA0F;IAC1F,6FAA6F;IAC7F,gDAAgD;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAAA;IACrD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAA;AACpF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAyB,EACzB,IAAwB;IAExB,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,OAAO,oBAAoB,KAAK,wBAAwB,IAAI,EAAE,CAAA;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAA;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;AAElD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAiC,EACjC,QAA4B;IAE5B,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,KAAK,CAAA;IAClC,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/B,OAAO,QAAQ,GAAG,MAAM,IAAI,4BAA4B,CAAA;AAC1D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAyB;IAChE,OAAO,KAAK,KAAK,SAAS,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;AA6CD,oGAAoG;AACpG,SAAS,kBAAkB,CAAC,OAA+B;IACzD,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAA;IAC9D,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,OAA+B;IAC/D,MAAM,MAAM,GACV,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC;QAC1C,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,SAAS,OAAO,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY;QACjF,CAAC,CAAC,EAAE,CAAA;IACR,OAAO,6BAA6B,gBAAgB,CAAC,OAAO,CAAC,GAAG,MAAM,8BAA8B,CAAA;AACtG,CAAC;AAED,sFAAsF;AACtF,SAAS,gBAAgB,CAAC,OAA+B;IACvD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO,OAAO,IAAI,IAAI;QACpB,CAAC,CAAC,SAAS,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU;QAC9D,CAAC,CAAC,sBAAsB,CAAA;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,OAA+B;IACjE,OAAO,CACL,yDAAyD,gBAAgB,CAAC,OAAO,CAAC,IAAI;QACtF,8FAA8F;QAC9F,SAAS,CACV,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,OAAO,GAA2B,EAAE;IAEpC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACtC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,CAAA;QACpC,OAAO;YACL,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACxD,CAAA;IACH,CAAC;IACD,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACpE,CAAC;IACD,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACnC,6FAA6F;QAC7F,6FAA6F;QAC7F,0FAA0F;QAC1F,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACrE,CAAC;IACD,wFAAwF;IACxF,yFAAyF;IACzF,yFAAyF;IACzF,yCAAyC;IACzC,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAA;IACjG,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC9F,CAAC;IACD,kGAAkG;IAClG,6FAA6F;IAC7F,wCAAwC;IACxC,IAAI,CAAC,OAAO,CAAC,0BAA0B,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACjG,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC9F,CAAC"}
1
+ {"version":3,"file":"job.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/job.logic.ts"],"names":[],"mappings":"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"}