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.
@@ -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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"}
@@ -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>;
@@ -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 loadOperation(root, string(args.operationId, "operationId")));
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":"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"}
@@ -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
- // Initialize the provider session before it can receive native child finish
38
- // notifications. This seeds the supervisor charter and durable operation state
39
- // into its own context, then leaves it idle/resident for asynchronous children.
40
- const session = await executeAgentPrompt(root, config, contract, selection, supervisorInitializationPrompt(operation), {
41
- phase: "supervision",
42
- operationKind: operation.kind,
43
- parentAgentId: operation.lead?.agentId,
44
- supervisorAgent: true
45
- });
46
- if (session.exitCode !== 0 || !session.id) {
47
- throw new Error(`AEH_OPERATION_SUPERVISOR_UNAVAILABLE: initialization failed: ${session.stderr || session.stdout || `exit ${session.exitCode}`}`);
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
- operation = await registerSupervisorGeneration(stateRoot, operationId, { agentId: session.id, materialized: true });
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 session = await executeAgentPrompt(root, config, contract, selection, supervisorInitializationPrompt(latest, checkpointArtifact), {
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 (session.exitCode !== 0 || !session.id) {
129
- await updateSupervisorGeneration(stateRoot, operationId, active.generation, {
130
- status: "ACTIVE", drainingAt: undefined, error: `replacement initialization failed: ${session.stderr || session.stdout || `exit ${session.exitCode}`}`
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 next = await registerSupervisorGeneration(stateRoot, operationId, { agentId: session.id, materialized: true, checkpointArtifact });
135
- await recordPaseoTrace(stateRoot, "operation.supervisor.rotated", {
136
- operationId, fromGeneration: active.generation, fromAgentId: active.agentId,
137
- toGeneration: next.supervision.activeGeneration ?? 0, toAgentId: session.id,
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
- return { operationId, generation: next.supervision.activeGeneration, agentId: session.id, materialized: true, selection, session };
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);