@cat-factory/orchestration 0.107.9 → 0.107.10
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,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;CACnB;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;AAED,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,WAAW,CAAA;CAClB;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;AAKD;;;;;;;;;;;;;;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":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,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;CACnB;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;AAED,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,WAAW,CAAA;CAClB;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;AAKD;;;;;;;;;;;;;;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,CAiJvB"}
|
|
@@ -21,10 +21,24 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
|
|
|
21
21
|
const fail = (message, kind = 'agent', detail = null, reason = null) => exec.failRun(workspaceId, executionId, message, kind, detail, reason);
|
|
22
22
|
// Poll a parked gate (job / CI / conflicts) until it yields a non-awaiting result
|
|
23
23
|
// or the budget is spent. Tolerates a bounded run of status-read failures.
|
|
24
|
-
|
|
24
|
+
// `pollFirst` runs the first poll BEFORE any sleep — the shape for a just-dispatched
|
|
25
|
+
// container job, where a leading full interval (default 15s) is pure dead air between
|
|
26
|
+
// "job accepted" and the first running/subtask state reaching the board. It is safe
|
|
27
|
+
// because dispatch registered the job synchronously before `advanceInstance` returned
|
|
28
|
+
// `awaiting_job`, so the immediate first `pollAgentJob` can only read back `awaiting_job`
|
|
29
|
+
// (still running) — never a spurious terminal from an unregistered job. A transient read
|
|
30
|
+
// failure isn't a terminal either: it's caught and retried on the next iteration, which
|
|
31
|
+
// sleeps first. Gates keep the sleep-first shape: their precheck ran moments ago inside
|
|
32
|
+
// advanceInstance / pollGate, so an immediate re-probe would only duplicate an external
|
|
33
|
+
// status read.
|
|
34
|
+
const pollUntil = async (awaiting, poll, intervalMs, maxPolls, label,
|
|
35
|
+
// Named distinctly from the outer `driveExecution` `opts` (DriveOptions) to avoid
|
|
36
|
+
// shadowing it.
|
|
37
|
+
pollOpts = {}) => {
|
|
25
38
|
let readFailures = 0;
|
|
26
39
|
for (let p = 0; p < maxPolls; p++) {
|
|
27
|
-
|
|
40
|
+
if (p > 0 || !pollOpts.pollFirst)
|
|
41
|
+
await sleep(intervalMs);
|
|
28
42
|
let result;
|
|
29
43
|
try {
|
|
30
44
|
result = await poll();
|
|
@@ -43,8 +57,8 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
|
|
|
43
57
|
}
|
|
44
58
|
// Budget spent. A gate may resolve exhaustion itself (a watch gate PASSES rather than
|
|
45
59
|
// timing out) — let it; otherwise fail the run as a generic timeout.
|
|
46
|
-
if (onExhausted)
|
|
47
|
-
return onExhausted();
|
|
60
|
+
if (pollOpts.onExhausted)
|
|
61
|
+
return pollOpts.onExhausted();
|
|
48
62
|
await fail(`${label} did not settle within its polling budget`, 'timeout');
|
|
49
63
|
return null;
|
|
50
64
|
};
|
|
@@ -67,7 +81,7 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
|
|
|
67
81
|
const MAX_GATE_HOPS = 64;
|
|
68
82
|
while (gateHops++ < MAX_GATE_HOPS) {
|
|
69
83
|
if (result.kind === 'awaiting_job') {
|
|
70
|
-
const next = await pollUntil('awaiting_job', () => exec.pollAgentJob(workspaceId, executionId), cfg.jobPollIntervalMs, cfg.jobMaxPolls, 'Implementation job');
|
|
84
|
+
const next = await pollUntil('awaiting_job', () => exec.pollAgentJob(workspaceId, executionId), cfg.jobPollIntervalMs, cfg.jobMaxPolls, 'Implementation job', { pollFirst: true });
|
|
71
85
|
if (!next)
|
|
72
86
|
return {};
|
|
73
87
|
result = next;
|
|
@@ -77,7 +91,7 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
|
|
|
77
91
|
// which gate is resolved inside `pollGate` from the current step, so one branch
|
|
78
92
|
// drives both.
|
|
79
93
|
if (result.kind === 'awaiting_gate') {
|
|
80
|
-
const next = await pollUntil('awaiting_gate', () => exec.pollGate(workspaceId, executionId), cfg.ciPollIntervalMs, cfg.ciMaxPolls, 'Gate precheck', () => exec.resolveGatePollExhaustion(workspaceId, executionId));
|
|
94
|
+
const next = await pollUntil('awaiting_gate', () => exec.pollGate(workspaceId, executionId), cfg.ciPollIntervalMs, cfg.ciMaxPolls, 'Gate precheck', { onExhausted: () => exec.resolveGatePollExhaustion(workspaceId, executionId) });
|
|
81
95
|
if (!next)
|
|
82
96
|
return {};
|
|
83
97
|
// An unbounded-wait gate (human-review) re-arms by returning `awaiting_gate` from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"AA6CA,MAAM,YAAY,GAAG,GAAkB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAC3D,MAAM,UAAU,GAAgB,EAAE,IAAI,KAAI,CAAC,EAAE,CAAA;AAE7C;;;;;;;;;;;;;;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,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAA;IAClC,MAAM,IAAI,GAAG,CACX,OAAe,EACf,IAAI,GAAqB,OAAO,EAChC,MAAM,GAAkB,IAAI,EAC5B,MAAM,GAAkB,IAAI,EAC5B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAE1E,kFAAkF;IAClF,2EAA2E;IAC3E,MAAM,SAAS,GAAG,KAAK,EACrB,QAA+B,EAC/B,IAAkC,EAClC,UAAkB,EAClB,QAAgB,EAChB,KAAa,
|
|
1
|
+
{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/orchestration",
|
|
3
|
-
"version": "0.107.
|
|
3
|
+
"version": "0.107.10",
|
|
4
4
|
"description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"@cat-factory/contracts": "0.128.2",
|
|
31
31
|
"@cat-factory/integrations": "0.83.0",
|
|
32
32
|
"@cat-factory/kernel": "0.124.0",
|
|
33
|
+
"@cat-factory/prompt-fragments": "0.13.17",
|
|
33
34
|
"@cat-factory/sandbox": "0.9.78",
|
|
34
35
|
"@cat-factory/spend": "0.12.28",
|
|
35
|
-
"@cat-factory/prompt-fragments": "0.13.17",
|
|
36
36
|
"@cat-factory/workspaces": "0.13.39"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|