@cat-factory/orchestration 0.313.2 → 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.
- package/dist/container/dependencies.d.ts +10 -1
- package/dist/container/dependencies.d.ts.map +1 -1
- package/dist/container/execution-service.d.ts.map +1 -1
- package/dist/container/execution-service.js +1 -0
- package/dist/container/execution-service.js.map +1 -1
- package/dist/container/runtime.d.ts +1 -0
- package/dist/container/runtime.d.ts.map +1 -1
- package/dist/container/runtime.js +5 -1
- package/dist/container/runtime.js.map +1 -1
- package/dist/container.d.ts +8 -1
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +2 -1
- package/dist/container.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/debug/RunDebugService.d.ts.map +1 -1
- package/dist/modules/debug/RunDebugService.js +20 -2
- package/dist/modules/debug/RunDebugService.js.map +1 -1
- package/dist/modules/debug/llmReporting.logic.d.ts +24 -0
- package/dist/modules/debug/llmReporting.logic.d.ts.map +1 -0
- package/dist/modules/debug/llmReporting.logic.js +35 -0
- package/dist/modules/debug/llmReporting.logic.js.map +1 -0
- package/dist/modules/execution/AgentDispatchController.d.ts +7 -0
- package/dist/modules/execution/AgentDispatchController.d.ts.map +1 -1
- package/dist/modules/execution/AgentDispatchController.js +40 -24
- package/dist/modules/execution/AgentDispatchController.js.map +1 -1
- package/dist/modules/execution/DeployFixController.d.ts +9 -0
- package/dist/modules/execution/DeployFixController.d.ts.map +1 -1
- package/dist/modules/execution/DeployFixController.js +10 -10
- package/dist/modules/execution/DeployFixController.js.map +1 -1
- package/dist/modules/execution/DeployerStepController.d.ts.map +1 -1
- package/dist/modules/execution/DeployerStepController.js +4 -3
- package/dist/modules/execution/DeployerStepController.js.map +1 -1
- package/dist/modules/execution/ExecutionService.d.ts +7 -0
- package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
- package/dist/modules/execution/ExecutionService.js +17 -0
- package/dist/modules/execution/ExecutionService.js.map +1 -1
- package/dist/modules/execution/ExecutionServiceDependencies.d.ts +8 -1
- package/dist/modules/execution/ExecutionServiceDependencies.d.ts.map +1 -1
- package/dist/modules/execution/GateHelperDispatcher.d.ts +8 -0
- package/dist/modules/execution/GateHelperDispatcher.d.ts.map +1 -1
- package/dist/modules/execution/GateHelperDispatcher.js +9 -5
- package/dist/modules/execution/GateHelperDispatcher.js.map +1 -1
- package/dist/modules/execution/GateStepController.d.ts.map +1 -1
- package/dist/modules/execution/GateStepController.js +9 -3
- package/dist/modules/execution/GateStepController.js.map +1 -1
- package/dist/modules/execution/HumanTestController.d.ts +7 -0
- package/dist/modules/execution/HumanTestController.d.ts.map +1 -1
- package/dist/modules/execution/HumanTestController.js +20 -8
- package/dist/modules/execution/HumanTestController.js.map +1 -1
- package/dist/modules/execution/OneShotStepController.d.ts +1 -1
- package/dist/modules/execution/OneShotStepController.js +1 -1
- package/dist/modules/execution/PollCompletionController.d.ts +22 -3
- package/dist/modules/execution/PollCompletionController.d.ts.map +1 -1
- package/dist/modules/execution/PollCompletionController.js +78 -8
- package/dist/modules/execution/PollCompletionController.js.map +1 -1
- package/dist/modules/execution/PollRunningController.d.ts +22 -7
- package/dist/modules/execution/PollRunningController.d.ts.map +1 -1
- package/dist/modules/execution/PollRunningController.js +64 -13
- package/dist/modules/execution/PollRunningController.js.map +1 -1
- package/dist/modules/execution/RalphController.d.ts +7 -0
- package/dist/modules/execution/RalphController.d.ts.map +1 -1
- package/dist/modules/execution/RalphController.js +12 -8
- package/dist/modules/execution/RalphController.js.map +1 -1
- package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
- package/dist/modules/execution/RunDispatcher.js +19 -6
- package/dist/modules/execution/RunDispatcher.js.map +1 -1
- package/dist/modules/execution/RunDispatcherDependencies.d.ts +16 -1
- package/dist/modules/execution/RunDispatcherDependencies.d.ts.map +1 -1
- package/dist/modules/execution/RunDispatcherDependencies.js.map +1 -1
- package/dist/modules/execution/RunStateMachine.d.ts.map +1 -1
- package/dist/modules/execution/RunStateMachine.js +21 -2
- package/dist/modules/execution/RunStateMachine.js.map +1 -1
- package/dist/modules/execution/StepGraph.d.ts.map +1 -1
- package/dist/modules/execution/StepGraph.js +7 -0
- package/dist/modules/execution/StepGraph.js.map +1 -1
- package/dist/modules/execution/TesterController.d.ts +7 -0
- package/dist/modules/execution/TesterController.d.ts.map +1 -1
- package/dist/modules/execution/TesterController.js +24 -18
- package/dist/modules/execution/TesterController.js.map +1 -1
- package/dist/modules/execution/VisualConfirmationController.d.ts +7 -0
- package/dist/modules/execution/VisualConfirmationController.d.ts.map +1 -1
- package/dist/modules/execution/VisualConfirmationController.js +20 -8
- package/dist/modules/execution/VisualConfirmationController.js.map +1 -1
- package/dist/modules/execution/advance.d.ts +14 -0
- package/dist/modules/execution/advance.d.ts.map +1 -1
- package/dist/modules/execution/awaitingJob.logic.d.ts +30 -0
- package/dist/modules/execution/awaitingJob.logic.d.ts.map +1 -0
- package/dist/modules/execution/awaitingJob.logic.js +62 -0
- package/dist/modules/execution/awaitingJob.logic.js.map +1 -0
- package/dist/modules/execution/delegation.logic.d.ts +93 -0
- package/dist/modules/execution/delegation.logic.d.ts.map +1 -0
- package/dist/modules/execution/delegation.logic.js +97 -0
- package/dist/modules/execution/delegation.logic.js.map +1 -0
- package/dist/modules/execution/deployer-family.d.ts.map +1 -1
- package/dist/modules/execution/deployer-family.js +1 -0
- package/dist/modules/execution/deployer-family.js.map +1 -1
- package/dist/modules/execution/drive.d.ts.map +1 -1
- package/dist/modules/execution/drive.js +6 -1
- package/dist/modules/execution/drive.js.map +1 -1
- package/dist/modules/execution/gate-window-controllers.d.ts +7 -0
- package/dist/modules/execution/gate-window-controllers.d.ts.map +1 -1
- package/dist/modules/execution/gate-window-controllers.js +5 -1
- package/dist/modules/execution/gate-window-controllers.js.map +1 -1
- package/dist/modules/execution/job.logic.d.ts +38 -2
- package/dist/modules/execution/job.logic.d.ts.map +1 -1
- package/dist/modules/execution/job.logic.js +34 -0
- package/dist/modules/execution/job.logic.js.map +1 -1
- package/dist/modules/execution/step-fold.logic.d.ts +218 -2
- package/dist/modules/execution/step-fold.logic.d.ts.map +1 -1
- package/dist/modules/execution/step-fold.logic.js +413 -3
- package/dist/modules/execution/step-fold.logic.js.map +1 -1
- package/dist/validation/validateRegistrations.d.ts +11 -1
- package/dist/validation/validateRegistrations.d.ts.map +1 -1
- package/dist/validation/validateRegistrations.js +86 -1
- package/dist/validation/validateRegistrations.js.map +1 -1
- 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,
|
|
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,
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAe,MAAM,qBAAqB,CAAA;AAE5E,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,iBAAiB,CAAA;AAGxB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA;AA8D/B,MAAM,YAAY,GAAG,GAAkB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAE3D,gGAAgG;AAChG,MAAM,SAAS,GAAG,KAAK,EAAK,IAAgB,EAA2B,EAAE,CAAC,CAAC;IACzE,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,MAAM,IAAI;CAClB,CAAC,CAAA;AAEF;;;;;GAKG;AACH,SAAS,eAAe,CAAC,EAAU;IACjC,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;QACvC,OAAO,GAAG,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACvD,CAAC;IACD,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;QACrC,OAAO,GAAG,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACvD,CAAC;IACD,OAAO,GAAG,EAAE,IAAI,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAsB,EACtB,WAAmB,EACnB,WAAmB,EACnB,GAAgB,EAChB,IAAI,GAAiB,EAAE;IAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,CAAA;IACxC,6FAA6F;IAC7F,4FAA4F;IAC5F,MAAM,eAAe,GAAG,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClG,sFAAsF;IACtF,wFAAwF;IACxF,4CAA4C;IAC5C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;IACxE,qFAAqF;IACrF,yFAAyF;IACzF,+DAA+D;IAC/D,MAAM,IAAI,GAAG,CAAC,OAAmB,EAAE,EAAE,CACnC,IAAI,CAAC,OAAO,CACV,WAAW,EACX,WAAW,EACX,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,CACf,CAAA;IAEH,kFAAkF;IAClF,2EAA2E;IAC3E,qFAAqF;IACrF,sFAAsF;IACtF,oFAAoF;IACpF,sFAAsF;IACtF,0FAA0F;IAC1F,yFAAyF;IACzF,wFAAwF;IACxF,wFAAwF;IACxF,wFAAwF;IACxF,eAAe;IACf,MAAM,SAAS,GAAG,KAAK,EACrB,QAA+B,EAC/B,IAAkC,EAClC,UAAkB,EAClB,QAAgB,EAChB,KAAa;IACb,kFAAkF;IAClF,gBAAgB;IAChB,QAAQ,GAAwE,EAAE,EACnD,EAAE;QACjC,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAAE,MAAM,KAAK,CAAC,UAAU,CAAC,CAAA;YACzD,IAAI,MAAqB,CAAA;YACzB,IAAI,CAAC;gBACH,mFAAmF;gBACnF,uFAAuF;gBACvF,uFAAuF;gBACvF,wFAAwF;gBACxF,uFAAuF;gBACvF,uFAAuF;gBACvF,uFAAuF;gBACvF,wBAAwB;gBACxB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;gBACnE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;gBAC9E,CAAC;gBACD,MAAM,GAAG,OAAO,CAAC,KAAK,CAAA;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sFAAsF;gBACtF,sFAAsF;gBACtF,+EAA+E;gBAC/E,YAAY,IAAI,CAAC,CAAA;gBACjB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;gBAClC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;gBAC9D,IAAI,YAAY,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC;oBAChD,MAAM,IAAI,CACR,iBAAiB,CACf,GAAG,KAAK,2BAA2B,YAAY,SAAS;wBACtD,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1D,SAAS,CACV,CACF,CAAA;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,SAAQ;YACV,CAAC;YACD,YAAY,GAAG,CAAC,CAAA;YAChB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAA;QAC7C,CAAC;QACD,sFAAsF;QACtF,qEAAqE;QACrE,IAAI,QAAQ,CAAC,WAAW;YAAE,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAA;QACvD,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,KAAK,2CAA2C,EAAE,SAAS,CAAC,CAAC,CAAA;QAC7F,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,SAAS,CAAC;QACR,IAAI,OAAmC,CAAA;QACvC,IAAI,CAAC;YACH,0FAA0F;YAC1F,0FAA0F;YAC1F,wFAAwF;YACxF,wFAAwF;YACxF,uFAAuF;YACvF,OAAO,GAAG,MAAM,eAAe,CAC7B,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,EAC5E,GAAG,CAAC,gBAAgB,CACrB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6EAA6E;YAC7E,iFAAiF;YACjF,6EAA6E;YAC7E,mFAAmF;YACnF,4DAA4D;YAC5D,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1C,OAAO,EAAE,CAAA;QACX,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,qFAAqF;YACrF,4EAA4E;YAC5E,GAAG,CAAC,IAAI,CAAC,+CAA+C,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAA;YAC9F,MAAM,IAAI,CACR,iBAAiB,CACf,wCAAwC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAC/E,SAAS,CACV,CACF,CAAA;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QACD,IAAI,MAAM,GAAkB,OAAO,CAAC,KAAK,CAAA;QAEzC,iFAAiF;QACjF,gFAAgF;QAChF,mFAAmF;QACnF,oFAAoF;QACpF,oFAAoF;QACpF,iEAAiE;QACjE,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,OAAO,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,MAAM,SAAS,CAC1B,cAAc,EACd,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,EACjD,GAAG,CAAC,iBAAiB,
|
|
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":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;
|
|
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
|
|
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):
|
|
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,
|
|
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,
|
|
1
|
+
{"version":3,"file":"job.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/job.logic.ts"],"names":[],"mappings":"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"}
|