agentic-engineering-harness 0.6.14 → 0.6.15
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/operations/liveness.d.ts +1 -35
- package/dist/operations/liveness.js +1 -307
- package/dist/operations/liveness.js.map +1 -1
- package/dist/operations/livenessV2.d.ts +34 -0
- package/dist/operations/livenessV2.js +339 -0
- package/dist/operations/livenessV2.js.map +1 -0
- package/dist/operations/mcp.d.ts +1 -0
- package/dist/operations/mcp.js +13 -3
- package/dist/operations/mcp.js.map +1 -1
- package/dist/operations/supervisor.js +82 -29
- package/dist/operations/supervisor.js.map +1 -1
- package/dist/operations/wakeBudget.d.ts +15 -0
- package/dist/operations/wakeBudget.js +142 -0
- package/dist/operations/wakeBudget.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import { dispatchManagedPaseoAgent, inspectManagedPaseoAgent } from "../paseo/runtime.js";
|
|
2
|
+
import { recordPaseoTrace } from "../paseo/trace.js";
|
|
3
|
+
import { loadOperationCompletionTarget, notifyOperationCompletion } from "./completion.js";
|
|
4
|
+
import { syncOperationPortfolio } from "./portfolio.js";
|
|
5
|
+
import { activeOperationSupervisor, isTerminalOperation, loadOperation, patchOperationMetadata } from "./state.js";
|
|
6
|
+
import { loadOperationWakeBudget, recordOperationWakeAccepted } from "./wakeBudget.js";
|
|
7
|
+
export function operationLivenessPolicy(config) {
|
|
8
|
+
const orchestration = config.orchestration;
|
|
9
|
+
const configured = orchestration?.operations?.liveness;
|
|
10
|
+
return {
|
|
11
|
+
pollIntervalMs: positive(configured?.pollIntervalMs, 15_000),
|
|
12
|
+
progressWakeIntervalMs: positive(configured?.progressWakeIntervalMs, 45_000),
|
|
13
|
+
stallThresholdMs: positive(configured?.stallThresholdMs, 120_000),
|
|
14
|
+
supervisorStallWakeLimit: positive(configured?.supervisorStallWakeLimit, 2),
|
|
15
|
+
leadWakeLimit: positive(configured?.leadWakeLimit, 1),
|
|
16
|
+
terminalLeadWakeLimit: positive(configured?.terminalLeadWakeLimit, 2),
|
|
17
|
+
retryDelaysMs: configured?.retryDelaysMs?.filter((value) => Number.isFinite(value) && value >= 0) ?? [0, 500, 1_500]
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function operationRevisionAcknowledged(operation) {
|
|
21
|
+
return Boolean(operation.lead && operation.lead.acknowledgedRevision >= operation.revision);
|
|
22
|
+
}
|
|
23
|
+
export function evaluateOperationWake(operation, policy, nowMs = Date.now(), stallSupervisorWakeCount = 0, leadWakeCount = 0, terminalLeadWakeCount = 0) {
|
|
24
|
+
if (isTerminalOperation(operation.status)) {
|
|
25
|
+
if (!operation.lead?.agentId)
|
|
26
|
+
return { target: "none", revision: operation.revision, message: "terminal operation has no bound lead" };
|
|
27
|
+
if (operationRevisionAcknowledged(operation))
|
|
28
|
+
return { target: "none", revision: operation.revision, message: "terminal revision was acknowledged by the lead" };
|
|
29
|
+
if (operation.notification.terminalDelivered && terminalLeadWakeCount >= policy.terminalLeadWakeLimit) {
|
|
30
|
+
return { target: "none", revision: operation.revision, message: `terminal lead wake budget exhausted for revision ${operation.revision}` };
|
|
31
|
+
}
|
|
32
|
+
const lastWakeMs = operation.notification.lastLeadWakeAt ? Date.parse(operation.notification.lastLeadWakeAt) : 0;
|
|
33
|
+
if (!operation.notification.terminalDelivered || nowMs - lastWakeMs >= policy.progressWakeIntervalMs) {
|
|
34
|
+
return {
|
|
35
|
+
reason: "terminal",
|
|
36
|
+
target: "lead",
|
|
37
|
+
revision: operation.revision,
|
|
38
|
+
message: operation.notification.terminalDelivered
|
|
39
|
+
? `terminal wake was accepted previously but the bound lead has not acknowledged this revision; retry ${terminalLeadWakeCount + 1}/${policy.terminalLeadWakeLimit}`
|
|
40
|
+
: "terminal operation has not been delivered to the lead"
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return { target: "none", revision: operation.revision, message: "terminal wake accepted; awaiting lead acknowledgement" };
|
|
44
|
+
}
|
|
45
|
+
const blocked = Object.values(operation.stages).some((stage) => stage.status === "BLOCKED") || operation.progress.blocked > 0;
|
|
46
|
+
if (blocked && operation.revision > operation.notification.lastLeadWakeRevision) {
|
|
47
|
+
if (leadWakeCount >= policy.leadWakeLimit)
|
|
48
|
+
return { target: "none", revision: operation.revision, message: "blocked revision lead wake budget exhausted" };
|
|
49
|
+
return { reason: "blocked", target: "lead", revision: operation.revision, message: "operation is blocked and the lead has not seen this revision" };
|
|
50
|
+
}
|
|
51
|
+
const progressAt = Date.parse(operation.lastProgressAt);
|
|
52
|
+
if (operation.status === "RUNNING" && Number.isFinite(progressAt) && nowMs - progressAt >= policy.stallThresholdMs) {
|
|
53
|
+
const supervisor = activeOperationSupervisor(operation);
|
|
54
|
+
if (supervisor?.agentId && stallSupervisorWakeCount < policy.supervisorStallWakeLimit) {
|
|
55
|
+
return {
|
|
56
|
+
reason: "stalled",
|
|
57
|
+
target: "supervisor",
|
|
58
|
+
revision: operation.revision,
|
|
59
|
+
message: `operation has made no durable progress for ${Math.round((nowMs - progressAt) / 1000)}s; supervisor watchdog wakes for this revision=${stallSupervisorWakeCount}/${policy.supervisorStallWakeLimit}`
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (leadWakeCount >= policy.leadWakeLimit) {
|
|
63
|
+
return { target: "none", revision: operation.revision, message: `stalled revision wake budget exhausted: supervisor=${stallSupervisorWakeCount}/${policy.supervisorStallWakeLimit}, lead=${leadWakeCount}/${policy.leadWakeLimit}` };
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
reason: "stalled",
|
|
67
|
+
target: "lead",
|
|
68
|
+
revision: operation.revision,
|
|
69
|
+
message: `operation has made no durable progress for ${Math.round((nowMs - progressAt) / 1000)}s${supervisor?.agentId ? `; supervisor watchdog wakes for this revision=${stallSupervisorWakeCount}/${policy.supervisorStallWakeLimit}` : ""}`
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const lastWakeMs = operation.notification.lastLeadWakeAt ? Date.parse(operation.notification.lastLeadWakeAt) : 0;
|
|
73
|
+
const unseen = operation.revision > operation.notification.lastLeadWakeRevision;
|
|
74
|
+
if (unseen && nowMs - lastWakeMs >= policy.progressWakeIntervalMs) {
|
|
75
|
+
if (leadWakeCount >= policy.leadWakeLimit)
|
|
76
|
+
return { target: "none", revision: operation.revision, message: "progress revision lead wake budget exhausted" };
|
|
77
|
+
return { reason: "progress", target: "lead", revision: operation.revision, message: "operation has unseen durable progress" };
|
|
78
|
+
}
|
|
79
|
+
return { target: "none", revision: operation.revision, message: "no liveness action required" };
|
|
80
|
+
}
|
|
81
|
+
export async function runOperationLivenessCheck(root, config, operationId, deps = {}) {
|
|
82
|
+
const operation = await loadOperation(root, operationId);
|
|
83
|
+
await syncOperationPortfolio(root, config.project.name, operation).catch(() => undefined);
|
|
84
|
+
const policy = operationLivenessPolicy(config);
|
|
85
|
+
const now = (deps.now ?? Date.now)();
|
|
86
|
+
const budget = await loadOperationWakeBudget(root, operationId, operation.revision);
|
|
87
|
+
const supervisorWakeCount = deps.stallSupervisorWakeCount ?? budget.supervisorAccepted;
|
|
88
|
+
const decision = evaluateOperationWake(operation, policy, now, supervisorWakeCount, budget.leadAccepted, budget.terminalLeadAccepted);
|
|
89
|
+
if (!decision.reason || decision.target === "none")
|
|
90
|
+
return decision;
|
|
91
|
+
const trace = deps.trace ?? recordPaseoTrace;
|
|
92
|
+
if (decision.reason === "terminal" && !operation.notification.terminalDelivered) {
|
|
93
|
+
const target = await loadOperationCompletionTarget(root, operationId).catch(() => undefined);
|
|
94
|
+
if (target?.status === "FAILED" && (target.attempts ?? 0) >= policy.retryDelaysMs.length) {
|
|
95
|
+
await trace(root, "operation.watchdog.completion-exhausted", { operationId, revision: operation.revision, attempts: target.attempts ?? 0 });
|
|
96
|
+
return { target: "none", revision: operation.revision, message: "terminal completion delivery retry budget exhausted" };
|
|
97
|
+
}
|
|
98
|
+
await notifyOperationCompletion(root, operation, { dispatch: deps.dispatch, trace, retryDelaysMs: policy.retryDelaysMs, sleep: deps.sleep });
|
|
99
|
+
const latest = await loadOperation(root, operationId);
|
|
100
|
+
await syncOperationPortfolio(root, config.project.name, latest).catch(() => undefined);
|
|
101
|
+
return decision;
|
|
102
|
+
}
|
|
103
|
+
if (decision.target === "supervisor") {
|
|
104
|
+
const supervisor = activeOperationSupervisor(operation);
|
|
105
|
+
if (supervisor?.agentId && !(await isBusy(root, supervisor.agentId, deps.inspect))) {
|
|
106
|
+
const result = await retryDispatch(root, supervisor.agentId, supervisorWatchdogPrompt(operation, decision), policy.retryDelaysMs, deps);
|
|
107
|
+
if (result.success)
|
|
108
|
+
await recordOperationWakeAccepted(root, operationId, operation.revision, "supervisor", decision.reason);
|
|
109
|
+
await trace(root, "operation.watchdog.supervisor", {
|
|
110
|
+
operationId,
|
|
111
|
+
revision: operation.revision,
|
|
112
|
+
supervisorAgentId: supervisor.agentId,
|
|
113
|
+
success: result.success,
|
|
114
|
+
attempts: result.attempts,
|
|
115
|
+
acceptedWakeCount: supervisorWakeCount + (result.success ? 1 : 0),
|
|
116
|
+
error: result.error ?? ""
|
|
117
|
+
});
|
|
118
|
+
if (result.success)
|
|
119
|
+
return decision;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const latestBudget = await loadOperationWakeBudget(root, operationId, operation.revision);
|
|
123
|
+
const leadLimit = decision.reason === "terminal" ? policy.terminalLeadWakeLimit : policy.leadWakeLimit;
|
|
124
|
+
const acceptedLeadWakes = decision.reason === "terminal" ? latestBudget.terminalLeadAccepted : latestBudget.leadAccepted;
|
|
125
|
+
if (acceptedLeadWakes >= leadLimit) {
|
|
126
|
+
await trace(root, "operation.watchdog.lead-suppressed", { operationId, revision: operation.revision, reason: decision.reason, acceptedLeadWakes, leadLimit });
|
|
127
|
+
return { target: "none", revision: operation.revision, message: `${decision.reason} lead wake budget exhausted` };
|
|
128
|
+
}
|
|
129
|
+
const leadId = operation.lead?.agentId;
|
|
130
|
+
if (!leadId) {
|
|
131
|
+
await trace(root, "operation.watchdog.no-lead", { operationId, revision: operation.revision, reason: decision.reason });
|
|
132
|
+
return decision;
|
|
133
|
+
}
|
|
134
|
+
if (await isBusy(root, leadId, deps.inspect)) {
|
|
135
|
+
await trace(root, "operation.watchdog.lead-busy", { operationId, revision: operation.revision, leadAgentId: leadId, reason: decision.reason });
|
|
136
|
+
return decision;
|
|
137
|
+
}
|
|
138
|
+
const result = await retryDispatch(root, leadId, leadWakePrompt(operation, decision), policy.retryDelaysMs, deps);
|
|
139
|
+
if (result.success)
|
|
140
|
+
await recordOperationWakeAccepted(root, operationId, operation.revision, "lead", decision.reason);
|
|
141
|
+
const latest = await loadOperation(root, operationId);
|
|
142
|
+
const updated = await patchOperationMetadata(root, operationId, {
|
|
143
|
+
notification: {
|
|
144
|
+
...latest.notification,
|
|
145
|
+
lastLeadWakeRevision: result.success ? operation.revision : latest.notification.lastLeadWakeRevision,
|
|
146
|
+
lastLeadWakeAt: result.success ? new Date(now).toISOString() : latest.notification.lastLeadWakeAt,
|
|
147
|
+
lastLeadWakeReason: result.success ? decision.reason : latest.notification.lastLeadWakeReason,
|
|
148
|
+
terminalDelivered: latest.notification.terminalDelivered || (decision.reason === "terminal" && result.success),
|
|
149
|
+
attempts: latest.notification.attempts + result.attempts,
|
|
150
|
+
lastError: result.error
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
await syncOperationPortfolio(root, config.project.name, updated).catch(() => undefined);
|
|
154
|
+
await trace(root, "operation.watchdog.lead", {
|
|
155
|
+
operationId,
|
|
156
|
+
revision: operation.revision,
|
|
157
|
+
leadAgentId: leadId,
|
|
158
|
+
reason: decision.reason,
|
|
159
|
+
success: result.success,
|
|
160
|
+
attempts: result.attempts,
|
|
161
|
+
acknowledged: operationRevisionAcknowledged(updated),
|
|
162
|
+
error: result.error ?? ""
|
|
163
|
+
});
|
|
164
|
+
return decision;
|
|
165
|
+
}
|
|
166
|
+
export async function monitorOperationLiveness(root, config, operationId, deps = {}) {
|
|
167
|
+
const policy = operationLivenessPolicy(config);
|
|
168
|
+
const sleep = deps.sleep ?? delay;
|
|
169
|
+
const trace = deps.trace ?? recordPaseoTrace;
|
|
170
|
+
let stallRevision;
|
|
171
|
+
let lastStallWakeAt = 0;
|
|
172
|
+
await trace(root, "operation.watchdog.started", {
|
|
173
|
+
operationId,
|
|
174
|
+
pollIntervalMs: policy.pollIntervalMs,
|
|
175
|
+
progressWakeIntervalMs: policy.progressWakeIntervalMs,
|
|
176
|
+
stallThresholdMs: policy.stallThresholdMs,
|
|
177
|
+
supervisorStallWakeLimit: policy.supervisorStallWakeLimit,
|
|
178
|
+
leadWakeLimit: policy.leadWakeLimit,
|
|
179
|
+
terminalLeadWakeLimit: policy.terminalLeadWakeLimit
|
|
180
|
+
});
|
|
181
|
+
for (;;) {
|
|
182
|
+
const operation = await loadOperation(root, operationId);
|
|
183
|
+
await syncOperationPortfolio(root, config.project.name, operation).catch(() => undefined);
|
|
184
|
+
if (isTerminalOperation(operation.status)) {
|
|
185
|
+
if (!operation.lead?.agentId) {
|
|
186
|
+
await trace(root, "operation.watchdog.stopped", { operationId, reason: "terminal-without-lead" });
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
if (operationRevisionAcknowledged(operation)) {
|
|
190
|
+
await trace(root, "operation.watchdog.stopped", { operationId, reason: "terminal-acknowledged", revision: operation.revision });
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const target = await loadOperationCompletionTarget(root, operationId).catch(() => undefined);
|
|
194
|
+
if (target?.status === "DISABLED") {
|
|
195
|
+
await trace(root, "operation.watchdog.stopped", { operationId, reason: "completion-disabled" });
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (target?.status === "FAILED" && (target.attempts ?? 0) >= policy.retryDelaysMs.length) {
|
|
199
|
+
await trace(root, "operation.watchdog.stopped", { operationId, reason: "completion-retry-budget-exhausted", attempts: target.attempts ?? 0 });
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const budget = await loadOperationWakeBudget(root, operationId, operation.revision);
|
|
203
|
+
if (operation.notification.terminalDelivered && budget.terminalLeadAccepted >= policy.terminalLeadWakeLimit) {
|
|
204
|
+
await trace(root, "operation.watchdog.stopped", { operationId, reason: "terminal-lead-wake-budget-exhausted", revision: operation.revision, accepted: budget.terminalLeadAccepted });
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const now = (deps.now ?? Date.now)();
|
|
209
|
+
const budget = await loadOperationWakeBudget(root, operationId, operation.revision);
|
|
210
|
+
const decision = evaluateOperationWake(operation, policy, now, budget.supervisorAccepted, budget.leadAccepted, budget.terminalLeadAccepted);
|
|
211
|
+
if (decision.reason === "stalled" && stallRevision === operation.revision && now - lastStallWakeAt < policy.progressWakeIntervalMs) {
|
|
212
|
+
await sleep(policy.pollIntervalMs);
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
try {
|
|
216
|
+
const executed = await runOperationLivenessCheck(root, config, operationId, deps);
|
|
217
|
+
if (executed.reason === "stalled") {
|
|
218
|
+
stallRevision = operation.revision;
|
|
219
|
+
lastStallWakeAt = now;
|
|
220
|
+
}
|
|
221
|
+
else if (executed.reason) {
|
|
222
|
+
stallRevision = undefined;
|
|
223
|
+
lastStallWakeAt = 0;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
await trace(root, "operation.watchdog.error", { operationId, error: error instanceof Error ? error.message : String(error) }).catch(() => undefined);
|
|
228
|
+
}
|
|
229
|
+
await sleep(policy.pollIntervalMs);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
export function startOperationWatchdog(root, config, operationId, deps = {}) {
|
|
233
|
+
const policy = operationLivenessPolicy(config);
|
|
234
|
+
let stopped = false;
|
|
235
|
+
let running = false;
|
|
236
|
+
let stallRevision;
|
|
237
|
+
let lastStallWakeAt = 0;
|
|
238
|
+
const timer = setInterval(() => {
|
|
239
|
+
if (stopped || running)
|
|
240
|
+
return;
|
|
241
|
+
running = true;
|
|
242
|
+
void (async () => {
|
|
243
|
+
const operation = await loadOperation(root, operationId);
|
|
244
|
+
if (isTerminalOperation(operation.status) && operationRevisionAcknowledged(operation)) {
|
|
245
|
+
stopped = true;
|
|
246
|
+
clearInterval(timer);
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
const now = (deps.now ?? Date.now)();
|
|
250
|
+
const budget = await loadOperationWakeBudget(root, operationId, operation.revision);
|
|
251
|
+
if (isTerminalOperation(operation.status) && operation.notification.terminalDelivered && budget.terminalLeadAccepted >= policy.terminalLeadWakeLimit) {
|
|
252
|
+
stopped = true;
|
|
253
|
+
clearInterval(timer);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
const decision = evaluateOperationWake(operation, policy, now, budget.supervisorAccepted, budget.leadAccepted, budget.terminalLeadAccepted);
|
|
257
|
+
if (decision.reason === "stalled" && stallRevision === operation.revision && now - lastStallWakeAt < policy.progressWakeIntervalMs)
|
|
258
|
+
return;
|
|
259
|
+
const executed = await runOperationLivenessCheck(root, config, operationId, deps);
|
|
260
|
+
if (executed.reason === "stalled") {
|
|
261
|
+
stallRevision = operation.revision;
|
|
262
|
+
lastStallWakeAt = now;
|
|
263
|
+
}
|
|
264
|
+
else if (executed.reason) {
|
|
265
|
+
stallRevision = undefined;
|
|
266
|
+
lastStallWakeAt = 0;
|
|
267
|
+
}
|
|
268
|
+
})()
|
|
269
|
+
.catch(async (error) => {
|
|
270
|
+
await (deps.trace ?? recordPaseoTrace)(root, "operation.watchdog.error", { operationId, error: error instanceof Error ? error.message : String(error) }).catch(() => undefined);
|
|
271
|
+
})
|
|
272
|
+
.finally(() => { running = false; });
|
|
273
|
+
}, policy.pollIntervalMs);
|
|
274
|
+
timer.unref?.();
|
|
275
|
+
return () => { stopped = true; clearInterval(timer); };
|
|
276
|
+
}
|
|
277
|
+
function leadWakePrompt(operation, decision) {
|
|
278
|
+
if (decision.reason === "terminal") {
|
|
279
|
+
return [
|
|
280
|
+
"[AEH_OPERATION_COMPLETED_UNACKNOWLEDGED]",
|
|
281
|
+
`Operation ${operation.id} (${operation.kind}) is terminal at revision ${operation.revision}: status=${operation.status}, phase=${operation.phase}.`,
|
|
282
|
+
decision.message,
|
|
283
|
+
"This is bounded internal recovery, not a new user task. Do not repeat a user-facing status if this exact terminal revision was already handled.",
|
|
284
|
+
"Do not start a duplicate operation. Call aeh_operation_status once so AEH can acknowledge the exact revision, read the existing result/report artifact, then complete the original pending request if it is still pending."
|
|
285
|
+
].join("\n");
|
|
286
|
+
}
|
|
287
|
+
const instruction = decision.reason === "blocked"
|
|
288
|
+
? "Inspect the durable block/exception and involve the user only if the state requires a product/external decision."
|
|
289
|
+
: decision.reason === "stalled"
|
|
290
|
+
? "The operation-local supervisor did not restore durable progress within its bounded watchdog budget. Inspect the OperationRecord/supervisor generation and recover or escalate without starting a duplicate operation."
|
|
291
|
+
: "If the operation is healthy and non-terminal, do not create user-facing status noise; acknowledge the durable revision internally and return idle.";
|
|
292
|
+
return [
|
|
293
|
+
`[AEH_OPERATION_${decision.reason?.toUpperCase()}]`,
|
|
294
|
+
`Operation ${operation.id} (${operation.kind}) revision ${operation.revision}: status=${operation.status}, phase=${operation.phase}.`,
|
|
295
|
+
`Progress: completed=${operation.progress.completed}, running=${operation.progress.running}, failed=${operation.progress.failed}, blocked=${operation.progress.blocked}.`,
|
|
296
|
+
decision.message,
|
|
297
|
+
"Do not start a duplicate operation. Read the existing OperationRecord/artifacts if more detail is required.",
|
|
298
|
+
instruction
|
|
299
|
+
].join("\n");
|
|
300
|
+
}
|
|
301
|
+
function supervisorWatchdogPrompt(operation, decision) {
|
|
302
|
+
return [
|
|
303
|
+
"[AEH_OPERATION_WATCHDOG]",
|
|
304
|
+
`Your operation ${operation.id} has stalled at revision ${operation.revision}, phase=${operation.phase}.`,
|
|
305
|
+
decision.message,
|
|
306
|
+
"Inspect only your existing children and durable OperationRecord/artifacts. Do not start another AEH operation. Produce a bounded diagnosis/follow-up that causes durable progress when possible. If no semantic action is required, say so explicitly; repeated no-progress watchdog wakes are strictly bounded and then escalate once to the lead."
|
|
307
|
+
].join("\n");
|
|
308
|
+
}
|
|
309
|
+
async function retryDispatch(root, agentId, prompt, delays, deps) {
|
|
310
|
+
const dispatch = deps.dispatch ?? dispatchManagedPaseoAgent;
|
|
311
|
+
const sleep = deps.sleep ?? delay;
|
|
312
|
+
let error;
|
|
313
|
+
let attempts = 0;
|
|
314
|
+
for (const wait of delays.length ? delays : [0]) {
|
|
315
|
+
if (wait > 0)
|
|
316
|
+
await sleep(wait);
|
|
317
|
+
attempts += 1;
|
|
318
|
+
try {
|
|
319
|
+
const result = await dispatch(root, agentId, prompt, 60);
|
|
320
|
+
if (result.exitCode === 0)
|
|
321
|
+
return { success: true, attempts };
|
|
322
|
+
error = result.stderr || result.stdout || `dispatch exited ${result.exitCode}`;
|
|
323
|
+
}
|
|
324
|
+
catch (caught) {
|
|
325
|
+
error = caught instanceof Error ? caught.message : String(caught);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return { success: false, attempts, error };
|
|
329
|
+
}
|
|
330
|
+
async function isBusy(root, agentId, inspect) {
|
|
331
|
+
const snapshot = await (inspect ?? inspectManagedPaseoAgent)(root, agentId).catch(() => undefined);
|
|
332
|
+
const status = snapshot?.status?.toLowerCase();
|
|
333
|
+
return status === "running" || status === "working" || status === "streaming" || status === "initializing";
|
|
334
|
+
}
|
|
335
|
+
function positive(value, fallback) {
|
|
336
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? Math.floor(value) : fallback;
|
|
337
|
+
}
|
|
338
|
+
function delay(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); }
|
|
339
|
+
//# sourceMappingURL=livenessV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"livenessV2.js","sourceRoot":"","sources":["../../src/operations/livenessV2.ts"],"names":[],"mappings":"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"}
|
package/dist/operations/mcp.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ export interface ContextAgentIdentity {
|
|
|
4
4
|
source: ContextAgentIdentitySource;
|
|
5
5
|
}
|
|
6
6
|
export declare function serveOperationMcp(): Promise<void>;
|
|
7
|
+
export declare function readOperationStatus(root: string, operationId: string, env?: NodeJS.ProcessEnv): Promise<import("./state.js").OperationRecordV2>;
|
|
7
8
|
export declare function resolveContextAgentIdentity(root: string, explicitAgentId?: string, env?: NodeJS.ProcessEnv): Promise<ContextAgentIdentity>;
|
package/dist/operations/mcp.js
CHANGED
|
@@ -11,7 +11,7 @@ import { cancelOperation, startDetachedOperation } from "./controller.js";
|
|
|
11
11
|
import { rebindActiveOperationsToLead } from "./leadBinding.js";
|
|
12
12
|
import { spawnOperationMonitor } from "./monitorProcess.js";
|
|
13
13
|
import { loadOperationPortfolio } from "./portfolio.js";
|
|
14
|
-
import { loadOperation } from "./state.js";
|
|
14
|
+
import { acknowledgeOperationLead, loadOperation } from "./state.js";
|
|
15
15
|
const tools = [
|
|
16
16
|
{
|
|
17
17
|
name: "aeh_operation_start_audit",
|
|
@@ -49,7 +49,7 @@ const tools = [
|
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
name: "aeh_operation_status",
|
|
52
|
-
description: "Read the authoritative durable OperationRecord including revision, stages, participant progress, supervisor generations and result. Use for diagnostics/recovery; normal liveness is event/watchdog driven.",
|
|
52
|
+
description: "Read the authoritative durable OperationRecord including revision, stages, participant progress, supervisor generations and result. When called by the currently bound lead, this consumes and acknowledges the exact revision returned. Use for diagnostics/recovery; normal liveness is event/watchdog driven.",
|
|
53
53
|
inputSchema: { type: "object", properties: { operationId: { type: "string" } }, required: ["operationId"], additionalProperties: false }
|
|
54
54
|
},
|
|
55
55
|
{
|
|
@@ -130,7 +130,7 @@ async function callTool(params) {
|
|
|
130
130
|
return toolResult(await startManagedOperation(root, "change", payload));
|
|
131
131
|
}
|
|
132
132
|
if (name === "aeh_operation_status")
|
|
133
|
-
return toolResult(await
|
|
133
|
+
return toolResult(await readOperationStatus(root, string(args.operationId, "operationId")));
|
|
134
134
|
if (name === "aeh_operation_portfolio") {
|
|
135
135
|
const config = await loadProjectConfig(root);
|
|
136
136
|
return toolResult(await loadOperationPortfolio(root, config.project.name));
|
|
@@ -146,6 +146,16 @@ async function callTool(params) {
|
|
|
146
146
|
}
|
|
147
147
|
throw new Error(`Unknown AEH operation tool '${name}'.`);
|
|
148
148
|
}
|
|
149
|
+
export async function readOperationStatus(root, operationId, env = process.env) {
|
|
150
|
+
const operation = await loadOperation(root, operationId);
|
|
151
|
+
const identity = await resolveContextAgentIdentity(root, undefined, env).catch(() => undefined);
|
|
152
|
+
if (!identity || !operation.lead || identity.agentId !== operation.lead.agentId)
|
|
153
|
+
return operation;
|
|
154
|
+
const boundedAgent = env.AEH_MANAGED_AGENT === "1" && env.AEH_INTERACTIVE_LEAD !== "1";
|
|
155
|
+
if (boundedAgent)
|
|
156
|
+
return operation;
|
|
157
|
+
return acknowledgeOperationLead(root, operationId, operation.revision, "operation-status");
|
|
158
|
+
}
|
|
149
159
|
async function startManagedOperation(root, kind, payload) {
|
|
150
160
|
const identity = await resolveContextAgentIdentity(root);
|
|
151
161
|
const config = await loadProjectConfig(root);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/operations/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/operations/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAgI,MAAM,YAAY,CAAC;AAMnM,MAAM,KAAK,GAAG;IACZ;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,8MAA8M;QAC3N,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACvI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;aACnH;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,oBAAoB,EAAE,KAAK;SACnD;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,sMAAsM;QACnN,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;YAC/H,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,KAAK;SAClD;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,4MAA4M;QACzN,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACvI,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC/G,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;aAC/I;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,oBAAoB,EAAE,KAAK;SACnD;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,kTAAkT;QAC/T,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE;KACzI;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,8JAA8J;QAC3K,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE;KAC7E;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,4IAA4I;QACzJ,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE;KACzI;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,mNAAmN;QAChO,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE;KAC1G;CACO,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnF,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,OAAuB,CAAC;QAC5B,IAAI,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QACzE,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI;YAAE,SAAS;QAC9D,IAAI,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QACjF,OAAO,KAAK,EAAE,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;IACxJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,OAAuB;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACpC,OAAO;YACL,eAAe,EAAE,OAAO,OAAO,CAAC,MAAM,EAAE,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY;YACpH,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,GAAG,EAAE;SAC/D,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,MAA+B;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAE3B,IAAI,IAAI,KAAK,2BAA2B,EAAE,CAAC;QACzC,MAAM,OAAO,GAA0B;YACrC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;SAC5K,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAwB;YACnC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;SAChH,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,IAAI,KAAK,4BAA4B,EAAE,CAAC;QAC1C,MAAM,OAAO,GAA2B;YACtC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAChJ,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC9K,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,UAAU,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACjI,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,UAAU,CAAC,MAAM,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,UAAU,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7H,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACvF,MAAM,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3G,OAAO,UAAU,CAAC,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,WAAmB,EAAE,MAAyB,OAAO,CAAC,GAAG;IAC/G,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAChG,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAClG,MAAM,YAAY,GAAG,GAAG,CAAC,iBAAiB,KAAK,GAAG,IAAI,GAAG,CAAC,oBAAoB,KAAK,GAAG,CAAC;IACvF,IAAI,YAAY;QAAE,OAAO,SAAS,CAAC;IACnC,OAAO,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,IAAmB,EAAE,OAAyB;IAC/F,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpF,MAAM,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACpH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;QAC/D,cAAc,EAAE,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,iBAAiB,EAAE,QAAQ,CAAC,OAAO;QACnC,gBAAgB,EAAE,QAAQ,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,MAAM,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE;QACxC,cAAc,EAAE,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAY,EACZ,eAAwB,EACxB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IACjD,IAAI,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC/D,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,WAAW;QAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAExE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,IAAI,gBAAgB,CAAC,CAAC;IAC7G,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3D,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IACjE,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,0HAA0H,SAAS,oIAAoI,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpV,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,gBAAgB,GAAG,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IACzG,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO,KAAK,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IACzF,IAAI,gBAAgB,KAAK,uBAAuB;QAAE,UAAU,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,gBAAgB,IAAI,SAAS,CAAC,OAAO,uBAAuB,EAAE,CAAC,CAAC;IACtJ,IAAI,UAAU,KAAK,OAAO;QAAE,UAAU,CAAC,IAAI,CAAC,OAAO,UAAU,IAAI,SAAS,OAAO,OAAO,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,YAAY;QAAE,UAAU,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAChI,IAAI,WAAW,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI;QAAE,UAAU,CAAC,IAAI,CAAC,WAAW,WAAW,IAAI,SAAS,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1H,IAAI,CAAC,OAAO;QAAE,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;IACvN,OAAO,EAAE,OAAO,EAAE,OAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,WAAW,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9G,SAAS,UAAU,CAAC,KAAc,IAA6B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACxK,SAAS,KAAK,CAAC,KAAc,IAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5F,SAAS,MAAM,CAAC,KAAc,IAA6B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxK,SAAS,MAAM,CAAC,KAAc,EAAE,IAAY,IAAY,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvK,SAAS,cAAc,CAAC,KAAc,IAAwB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5I,SAAS,WAAW,CAAC,KAAc,IAA0B,IAAI,KAAK,KAAK,SAAS;IAAE,OAAO,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;IAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,OAAO,KAAiB,CAAC,CAAC,CAAC;AAClQ,SAAS,IAAI,CAAC,KAAc,IAA2C,IAAI,KAAK,KAAK,SAAS;IAAE,OAAO,SAAS,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM;IAAE,OAAO,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC;AACtP,SAAS,QAAQ,CAAC,KAAc,IAAwB,IAAI,KAAK,KAAK,SAAS;IAAE,OAAO,SAAS,CAAC,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG;IAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -4,9 +4,10 @@ import { executionSelectionForAgent } from "../agents/routing.js";
|
|
|
4
4
|
import { statusLeadContext } from "../paseo/context.js";
|
|
5
5
|
import { archivePaseoSdkAgent } from "../paseo/sdk.js";
|
|
6
6
|
import { recordPaseoTrace } from "../paseo/trace.js";
|
|
7
|
-
import { executeAgentPrompt } from "../workers/agentPrompt.js";
|
|
7
|
+
import { dispatchMaterializedAgentPrompt, executeAgentPrompt, materializeAgentPrompt } from "../workers/agentPrompt.js";
|
|
8
8
|
import { persistOperationConsolidation, persistSupervisorCheckpoint } from "./artifacts.js";
|
|
9
9
|
import { activeOperationSupervisor, currentOperationContext, loadOperation, patchOperation, registerSupervisorGeneration, resolveOperationStateRoot, updateSupervisorGeneration } from "./state.js";
|
|
10
|
+
const SUPERVISOR_INITIALIZATION_ATTEMPTS = 2;
|
|
10
11
|
export function operationSupervisorContextPolicy(config) {
|
|
11
12
|
const orchestration = config.orchestration;
|
|
12
13
|
const configured = orchestration?.operations?.supervision?.context;
|
|
@@ -34,22 +35,58 @@ export async function ensureOperationSupervisor(root, config, contract, topology
|
|
|
34
35
|
if (active?.agentId) {
|
|
35
36
|
return { operationId, generation: active.generation, agentId: active.agentId, materialized: true, selection };
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
let lastError;
|
|
39
|
+
for (let attempt = 1; attempt <= SUPERVISOR_INITIALIZATION_ATTEMPTS; attempt += 1) {
|
|
40
|
+
operation = await loadOperation(stateRoot, operationId);
|
|
41
|
+
const materialized = await materializeAgentPrompt(root, config, contract, selection, {
|
|
42
|
+
phase: "supervision",
|
|
43
|
+
operationKind: operation.kind,
|
|
44
|
+
parentAgentId: operation.lead?.agentId,
|
|
45
|
+
supervisorAgent: true
|
|
46
|
+
});
|
|
47
|
+
if (!materialized?.id) {
|
|
48
|
+
lastError = "Paseo SDK did not materialize a persistent supervisor session";
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
// Critical ordering invariant: persist the concrete provider session before
|
|
52
|
+
// sending any LLM turn. Watchdog/recovery can now always identify the
|
|
53
|
+
// supervisor even if initialization completion detection fails or times out.
|
|
54
|
+
operation = await registerSupervisorGeneration(stateRoot, operationId, {
|
|
55
|
+
agentId: materialized.id,
|
|
56
|
+
materialized: true
|
|
57
|
+
});
|
|
58
|
+
const generation = operation.supervision.activeGeneration;
|
|
59
|
+
await recordPaseoTrace(stateRoot, "operation.supervisor.materialized", {
|
|
60
|
+
operationId, generation, agentId: materialized.id, revision: operation.revision, attempt
|
|
61
|
+
});
|
|
62
|
+
try {
|
|
63
|
+
const session = await dispatchMaterializedAgentPrompt(root, config, contract, selection, materialized, supervisorInitializationPrompt(operation), {
|
|
64
|
+
phase: "supervision",
|
|
65
|
+
operationKind: operation.kind,
|
|
66
|
+
parentAgentId: operation.lead?.agentId,
|
|
67
|
+
supervisorAgent: true
|
|
68
|
+
});
|
|
69
|
+
if (session.exitCode !== 0 || !session.id) {
|
|
70
|
+
throw new Error(session.stderr || session.stdout || `exit ${session.exitCode}`);
|
|
71
|
+
}
|
|
72
|
+
await recordPaseoTrace(stateRoot, "operation.supervisor.initialized", {
|
|
73
|
+
operationId, generation, agentId: session.id, revision: operation.revision, attempt
|
|
74
|
+
});
|
|
75
|
+
return { operationId, generation, agentId: session.id, materialized: true, selection, session };
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
lastError = error instanceof Error ? error.message : String(error);
|
|
79
|
+
await updateSupervisorGeneration(stateRoot, operationId, generation, {
|
|
80
|
+
status: "FAILED",
|
|
81
|
+
error: `initialization failed: ${lastError}`
|
|
82
|
+
}).catch(() => undefined);
|
|
83
|
+
await archivePaseoSdkAgent(root, materialized.id).catch(() => undefined);
|
|
84
|
+
await recordPaseoTrace(stateRoot, "operation.supervisor.initialization-failed", {
|
|
85
|
+
operationId, generation, agentId: materialized.id, attempt, error: lastError
|
|
86
|
+
}).catch(() => undefined);
|
|
87
|
+
}
|
|
48
88
|
}
|
|
49
|
-
|
|
50
|
-
const generation = operation.supervision.activeGeneration;
|
|
51
|
-
await recordPaseoTrace(stateRoot, "operation.supervisor.initialized", { operationId, generation, agentId: session.id, revision: operation.revision });
|
|
52
|
-
return { operationId, generation, agentId: session.id, materialized: true, selection, session };
|
|
89
|
+
throw new Error(`AEH_OPERATION_SUPERVISOR_UNAVAILABLE: initialization failed after ${SUPERVISOR_INITIALIZATION_ATTEMPTS} bounded attempt(s): ${lastError ?? "unknown error"}`);
|
|
53
90
|
}
|
|
54
91
|
export async function consolidateWithOperationSupervisor(root, config, contract, topology, input) {
|
|
55
92
|
const stateRoot = resolveOperationStateRoot(root);
|
|
@@ -122,23 +159,39 @@ export async function maybeRotateOperationSupervisor(root, config, contract, top
|
|
|
122
159
|
});
|
|
123
160
|
const selection = executionSelectionForAgent(topology, "operation-supervisor");
|
|
124
161
|
const latest = await loadOperation(stateRoot, operationId);
|
|
125
|
-
const
|
|
162
|
+
const materialized = await materializeAgentPrompt(root, config, contract, selection, {
|
|
126
163
|
phase: "supervision", operationKind: operation.kind, parentAgentId: operation.lead?.agentId, supervisorAgent: true
|
|
127
164
|
});
|
|
128
|
-
if (
|
|
129
|
-
await updateSupervisorGeneration(stateRoot, operationId, active.generation, {
|
|
130
|
-
|
|
131
|
-
});
|
|
132
|
-
throw new Error(`AEH_OPERATION_SUPERVISOR_ROTATION_FAILED: ${session.stderr || session.stdout || `exit ${session.exitCode}`}`);
|
|
165
|
+
if (!materialized?.id) {
|
|
166
|
+
await updateSupervisorGeneration(stateRoot, operationId, active.generation, { status: "ACTIVE", drainingAt: undefined, error: "replacement materialization failed" });
|
|
167
|
+
throw new Error("AEH_OPERATION_SUPERVISOR_ROTATION_FAILED: Paseo SDK did not materialize the replacement supervisor.");
|
|
133
168
|
}
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
contextRatio: usageRatio ?? -1, handoffThreshold: policy.handoffThreshold,
|
|
139
|
-
hardHandoffThreshold: policy.hardHandoffThreshold, checkpointArtifact
|
|
169
|
+
const registered = await registerSupervisorGeneration(stateRoot, operationId, { agentId: materialized.id, materialized: true, checkpointArtifact });
|
|
170
|
+
const replacementGeneration = registered.supervision.activeGeneration;
|
|
171
|
+
await recordPaseoTrace(stateRoot, "operation.supervisor.materialized", {
|
|
172
|
+
operationId, generation: replacementGeneration, agentId: materialized.id, revision: registered.revision, replacementFor: active.generation
|
|
140
173
|
});
|
|
141
|
-
|
|
174
|
+
try {
|
|
175
|
+
const session = await dispatchMaterializedAgentPrompt(root, config, contract, selection, materialized, supervisorInitializationPrompt(latest, checkpointArtifact), {
|
|
176
|
+
phase: "supervision", operationKind: operation.kind, parentAgentId: operation.lead?.agentId, supervisorAgent: true
|
|
177
|
+
});
|
|
178
|
+
if (session.exitCode !== 0 || !session.id)
|
|
179
|
+
throw new Error(session.stderr || session.stdout || `exit ${session.exitCode}`);
|
|
180
|
+
await recordPaseoTrace(stateRoot, "operation.supervisor.rotated", {
|
|
181
|
+
operationId, fromGeneration: active.generation, fromAgentId: active.agentId,
|
|
182
|
+
toGeneration: replacementGeneration, toAgentId: session.id,
|
|
183
|
+
contextRatio: usageRatio ?? -1, handoffThreshold: policy.handoffThreshold,
|
|
184
|
+
hardHandoffThreshold: policy.hardHandoffThreshold, checkpointArtifact
|
|
185
|
+
});
|
|
186
|
+
return { operationId, generation: replacementGeneration, agentId: session.id, materialized: true, selection, session };
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
190
|
+
await updateSupervisorGeneration(stateRoot, operationId, replacementGeneration, { status: "FAILED", error: `replacement initialization failed: ${message}` }).catch(() => undefined);
|
|
191
|
+
await archivePaseoSdkAgent(root, materialized.id).catch(() => undefined);
|
|
192
|
+
await updateSupervisorGeneration(stateRoot, operationId, active.generation, { status: "ACTIVE", drainingAt: undefined, error: `replacement initialization failed: ${message}` });
|
|
193
|
+
throw new Error(`AEH_OPERATION_SUPERVISOR_ROTATION_FAILED: ${message}`);
|
|
194
|
+
}
|
|
142
195
|
}
|
|
143
196
|
export async function settleDrainingSupervisorGenerations(root, operationId) {
|
|
144
197
|
const stateRoot = resolveOperationStateRoot(root);
|