agentic-engineering-harness 0.6.15 → 0.6.17

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,6 @@
1
+ export type StructuredOutputFailureReason = "EMPTY_OUTPUT" | "NO_MARKER" | "MARKER_INVALID_JSON" | "NATIVE_JSON_INVALID";
2
+ export declare class StructuredOutputError extends Error {
3
+ readonly reason: StructuredOutputFailureReason;
4
+ constructor(reason: StructuredOutputFailureReason, message: string);
5
+ }
1
6
  export declare function extractMarkedJson(stdout: string, stderr?: string): unknown;
@@ -1,23 +1,45 @@
1
+ export class StructuredOutputError extends Error {
2
+ reason;
3
+ constructor(reason, message) {
4
+ super(message);
5
+ this.name = "StructuredOutputError";
6
+ this.reason = reason;
7
+ }
8
+ }
1
9
  export function extractMarkedJson(stdout, stderr = "") {
2
10
  const candidates = [];
3
11
  collectCandidateStrings(stdout, candidates);
4
12
  collectCandidateStrings(stderr, candidates);
13
+ let markerObserved = false;
5
14
  for (const candidate of [...candidates].reverse()) {
6
15
  const marker = "AEH_RESULT_JSON=";
7
16
  const index = candidate.lastIndexOf(marker);
8
17
  if (index < 0)
9
18
  continue;
19
+ markerObserved = true;
10
20
  const parsed = parseJsonPrefix(candidate.slice(index + marker.length).trim());
11
21
  if (parsed !== undefined)
12
22
  return parsed;
13
23
  }
14
- const stdoutJson = parseWholeJson(stdout.trim());
24
+ if (markerObserved) {
25
+ throw new StructuredOutputError("MARKER_INVALID_JSON", "Agent output contained AEH_RESULT_JSON= but the marker payload was not valid JSON.");
26
+ }
27
+ const stdoutRaw = stdout.trim();
28
+ const stderrRaw = stderr.trim();
29
+ const stdoutJson = parseWholeJson(stdoutRaw);
15
30
  if (stdoutJson !== undefined)
16
31
  return stdoutJson;
17
- const stderrJson = parseWholeJson(stderr.trim());
32
+ const stderrJson = parseWholeJson(stderrRaw);
18
33
  if (stderrJson !== undefined)
19
34
  return stderrJson;
20
- throw new Error("Agent output did not contain valid native JSON or an AEH_RESULT_JSON=<json> marker.");
35
+ if (!stdoutRaw && !stderrRaw) {
36
+ throw new StructuredOutputError("EMPTY_OUTPUT", "Agent turn completed without a captured structured output payload.");
37
+ }
38
+ const looksLikeNativeJson = [stdoutRaw, stderrRaw].some((raw) => raw.startsWith("{") || raw.startsWith("["));
39
+ if (looksLikeNativeJson) {
40
+ throw new StructuredOutputError("NATIVE_JSON_INVALID", "Agent output looked like native JSON but could not be parsed.");
41
+ }
42
+ throw new StructuredOutputError("NO_MARKER", "Agent output contained no valid native JSON and no AEH_RESULT_JSON=<json> marker.");
21
43
  }
22
44
  function collectCandidateStrings(text, output) {
23
45
  output.push(text);
@@ -1 +1 @@
1
- {"version":3,"file":"structuredOutput.js","sourceRoot":"","sources":["../../src/agents/structuredOutput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structuredOutput.js","sourceRoot":"","sources":["../../src/agents/structuredOutput.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ export type OperationKind = "audit" | "run" | "change";
2
2
  export type OperationStatus = "QUEUED" | "RUNNING" | "SUCCEEDED" | "FAILED" | "CANCELLED";
3
3
  export type OperationStageStatus = "PENDING" | "RUNNING" | "COMPLETED" | "FAILED" | "BLOCKED" | "SKIPPED";
4
4
  export type OperationParticipantStatus = "REGISTERED" | "IDLE" | "RUNNING" | "COMPLETED" | "FAILED" | "BLOCKED" | "CANCELLED";
5
- export type SupervisorGenerationStatus = "ACTIVE" | "DRAINING" | "ARCHIVED" | "FAILED";
5
+ export type SupervisorGenerationStatus = "INITIALIZING" | "ACTIVE" | "DRAINING" | "ARCHIVED" | "FAILED";
6
6
  export interface AuditOperationPayload {
7
7
  request: string;
8
8
  files?: string[];
@@ -53,6 +53,10 @@ export interface OperationSupervisorGeneration {
53
53
  archivedAt?: string;
54
54
  checkpointArtifact?: string;
55
55
  contextRatio?: number;
56
+ initializationAttempt?: number;
57
+ initializationDispatchedAt?: string;
58
+ initializationCompletedAt?: string;
59
+ initializationEvidence?: string;
56
60
  error?: string;
57
61
  }
58
62
  export interface OperationSupervisionState {
@@ -200,9 +204,13 @@ export declare function registerSupervisorGeneration(root: string, operationId:
200
204
  agentId?: string;
201
205
  materialized: boolean;
202
206
  checkpointArtifact?: string;
207
+ status?: SupervisorGenerationStatus;
208
+ initializationAttempt?: number;
203
209
  }): Promise<OperationRecordV2>;
204
210
  export declare function updateSupervisorGeneration(root: string, operationId: string, generation: number, patch: Partial<OperationSupervisorGeneration>): Promise<OperationRecordV2>;
205
211
  export declare function activeOperationSupervisor(record: OperationRecordV2): OperationSupervisorGeneration | undefined;
212
+ export declare function initializingOperationSupervisor(record: OperationRecordV2): OperationSupervisorGeneration | undefined;
213
+ export declare function recoverableOperationSupervisor(record: OperationRecordV2): OperationSupervisorGeneration | undefined;
206
214
  export declare function registerOperationAgent(root: string, operationId: string, agent: Omit<OperationAgentRecord, "registeredAt"> & {
207
215
  logicalAgent?: string;
208
216
  parentAgentId?: string;
@@ -5,100 +5,46 @@ const OPERATIONS_DIR = ".harness/operations";
5
5
  const LOCK_RETRY_MS = 20;
6
6
  const LOCK_TIMEOUT_MS = 10_000;
7
7
  const STALE_LOCK_MS = 30_000;
8
- export function resolveOperationStateRoot(root) {
9
- const configured = process.env.AEH_OPERATION_ID?.trim() ? process.env.AEH_CONTROL_ROOT?.trim() : undefined;
10
- return path.resolve(configured || root);
11
- }
8
+ export function resolveOperationStateRoot(root) { const configured = process.env.AEH_OPERATION_ID?.trim() ? process.env.AEH_CONTROL_ROOT?.trim() : undefined; return path.resolve(configured || root); }
12
9
  export function operationFile(root, operationId) { return path.resolve(resolveOperationStateRoot(root), OPERATIONS_DIR, `${safeId(operationId)}.json`); }
13
10
  export function operationArtifactDir(root, operationId) { return path.resolve(resolveOperationStateRoot(root), OPERATIONS_DIR, safeId(operationId)); }
14
11
  export function operationEventsFile(root, operationId) { return path.join(operationArtifactDir(root, operationId), "events.ndjson"); }
15
- export async function loadOperation(root, operationId) {
16
- return normalizeOperationRecord(JSON.parse(await fs.readFile(operationFile(root, operationId), "utf8")));
17
- }
18
- export async function saveOperation(root, record) {
19
- const normalized = normalizeOperationRecord(record);
20
- const stateRoot = resolveOperationStateRoot(root);
21
- const file = operationFile(stateRoot, normalized.id);
22
- await fs.mkdir(path.dirname(file), { recursive: true });
23
- await withOperationLock(file, async () => { await writeRecord(file, normalized); await appendOperationEvent(stateRoot, normalized, "operation.created", ["status", "phase"]); });
24
- }
12
+ export async function loadOperation(root, operationId) { return normalizeOperationRecord(JSON.parse(await fs.readFile(operationFile(root, operationId), "utf8"))); }
13
+ export async function saveOperation(root, record) { const normalized = normalizeOperationRecord(record); const stateRoot = resolveOperationStateRoot(root); const file = operationFile(stateRoot, normalized.id); await fs.mkdir(path.dirname(file), { recursive: true }); await withOperationLock(file, async () => { await writeRecord(file, normalized); await appendOperationEvent(stateRoot, normalized, "operation.created", ["status", "phase"]); }); }
25
14
  export async function patchOperation(root, operationId, patch) { return mutateOperation(root, operationId, patch, true, "operation.updated"); }
26
15
  export async function patchOperationMetadata(root, operationId, patch) { return mutateOperation(root, operationId, patch, false, "operation.metadata"); }
27
16
  export async function transitionOperationToTerminal(root, operationId, patch) {
28
17
  const stateRoot = resolveOperationStateRoot(root);
29
18
  const file = operationFile(stateRoot, operationId);
30
19
  await fs.mkdir(path.dirname(file), { recursive: true });
31
- return withOperationLock(file, async () => {
32
- const current = normalizeOperationRecord(JSON.parse(await fs.readFile(file, "utf8")));
33
- if (isTerminal(current.status))
34
- return { record: current, transitioned: false };
35
- const now = new Date().toISOString();
36
- const revision = current.revision + 1;
37
- const next = normalizeOperationRecord({ ...current, ...patch, version: 2, id: current.id, kind: current.kind, revision, updatedAt: now, lastProgressAt: now, stages: { ...current.stages, finished: { name: "finished", status: terminalStageStatus(patch.status), revision, startedAt: now, finishedAt: now } } });
38
- await writeRecord(file, next);
39
- await appendOperationEvent(stateRoot, next, "operation.terminal", ["status", "phase"]);
40
- return { record: next, transitioned: true };
41
- });
42
- }
43
- export async function bindOperationLead(root, operationId, agentId, source) {
44
- return mutateOperation(root, operationId, {}, true, "operation.lead.bound", (current, revision, now) => ({ ...current, revision, updatedAt: now, lastProgressAt: now, lead: { agentId: requiredId(agentId), source, generation: (current.lead?.generation ?? 0) + 1, boundAt: now, acknowledgedRevision: revision, acknowledgedAt: now }, notification: { ...current.notification, lastLeadWakeRevision: revision, lastLeadWakeAt: now, lastLeadWakeReason: "operation-started" } }));
45
- }
46
- export async function acknowledgeOperationLead(root, operationId, revision, reason) {
47
- const current = await loadOperation(root, operationId);
48
- const now = new Date().toISOString();
49
- return patchOperationMetadata(root, operationId, { lead: current.lead ? { ...current.lead, acknowledgedRevision: Math.max(current.lead.acknowledgedRevision, revision), acknowledgedAt: now } : undefined, notification: { ...current.notification, lastLeadWakeRevision: Math.max(current.notification.lastLeadWakeRevision, revision), lastLeadWakeAt: now, lastLeadWakeReason: reason ?? current.notification.lastLeadWakeReason } });
50
- }
51
- export async function markTerminalDelivered(root, operationId, attempts, error) {
52
- const current = await loadOperation(root, operationId);
53
- return patchOperationMetadata(root, operationId, { notification: { ...current.notification, lastLeadWakeRevision: error ? current.notification.lastLeadWakeRevision : current.revision, lastLeadWakeAt: error ? current.notification.lastLeadWakeAt : new Date().toISOString(), lastLeadWakeReason: error ? current.notification.lastLeadWakeReason : "terminal", terminalDelivered: !error, attempts, lastError: error } });
20
+ return withOperationLock(file, async () => { const current = normalizeOperationRecord(JSON.parse(await fs.readFile(file, "utf8"))); if (isTerminal(current.status))
21
+ return { record: current, transitioned: false }; const now = new Date().toISOString(); const revision = current.revision + 1; const next = normalizeOperationRecord({ ...current, ...patch, version: 2, id: current.id, kind: current.kind, revision, updatedAt: now, lastProgressAt: now, stages: { ...current.stages, finished: { name: "finished", status: terminalStageStatus(patch.status), revision, startedAt: now, finishedAt: now } } }); await writeRecord(file, next); await appendOperationEvent(stateRoot, next, "operation.terminal", ["status", "phase"]); return { record: next, transitioned: true }; });
54
22
  }
23
+ export async function bindOperationLead(root, operationId, agentId, source) { return mutateOperation(root, operationId, {}, true, "operation.lead.bound", (current, revision, now) => ({ ...current, revision, updatedAt: now, lastProgressAt: now, lead: { agentId: requiredId(agentId), source, generation: (current.lead?.generation ?? 0) + 1, boundAt: now, acknowledgedRevision: revision, acknowledgedAt: now }, notification: { ...current.notification, lastLeadWakeRevision: revision, lastLeadWakeAt: now, lastLeadWakeReason: "operation-started" } })); }
24
+ export async function acknowledgeOperationLead(root, operationId, revision, reason) { const current = await loadOperation(root, operationId); const now = new Date().toISOString(); return patchOperationMetadata(root, operationId, { lead: current.lead ? { ...current.lead, acknowledgedRevision: Math.max(current.lead.acknowledgedRevision, revision), acknowledgedAt: now } : undefined, notification: { ...current.notification, lastLeadWakeRevision: Math.max(current.notification.lastLeadWakeRevision, revision), lastLeadWakeAt: now, lastLeadWakeReason: reason ?? current.notification.lastLeadWakeReason } }); }
25
+ export async function markTerminalDelivered(root, operationId, attempts, error) { const current = await loadOperation(root, operationId); return patchOperationMetadata(root, operationId, { notification: { ...current.notification, lastLeadWakeRevision: error ? current.notification.lastLeadWakeRevision : current.revision, lastLeadWakeAt: error ? current.notification.lastLeadWakeAt : new Date().toISOString(), lastLeadWakeReason: error ? current.notification.lastLeadWakeReason : "terminal", terminalDelivered: !error, attempts, lastError: error } }); }
55
26
  export async function setOperationStage(root, operationId, name, status, options = {}) {
56
- return mutateOperation(root, operationId, {}, true, "operation.stage", (current, revision, now) => {
57
- const previous = current.stages[name];
58
- const terminal = ["COMPLETED", "FAILED", "BLOCKED", "SKIPPED"].includes(status);
59
- const stage = { name, status, revision, startedAt: previous?.startedAt ?? (status === "RUNNING" ? now : undefined), finishedAt: terminal ? now : undefined, message: options.message ?? previous?.message, artifact: options.artifact ?? previous?.artifact };
60
- return { ...current, revision, updatedAt: now, lastProgressAt: now, phase: name, stages: { ...current.stages, [name]: stage } };
61
- });
27
+ return mutateOperation(root, operationId, {}, true, "operation.stage", (current, revision, now) => { const previous = current.stages[name]; const terminal = ["COMPLETED", "FAILED", "BLOCKED", "SKIPPED"].includes(status); const stage = { name, status, revision, startedAt: previous?.startedAt ?? (status === "RUNNING" ? now : undefined), finishedAt: terminal ? now : undefined, message: options.message ?? previous?.message, artifact: options.artifact ?? previous?.artifact }; return { ...current, revision, updatedAt: now, lastProgressAt: now, phase: name, stages: { ...current.stages, [name]: stage } }; });
62
28
  }
63
29
  export async function registerSupervisorGeneration(root, operationId, input) {
64
30
  return mutateOperation(root, operationId, {}, true, "operation.supervisor.registered", (current, revision, now) => {
65
31
  const generations = current.supervision.generations.map((item) => item.status === "ACTIVE" ? { ...item, status: "DRAINING", drainingAt: item.drainingAt ?? now } : item);
66
32
  const generation = Math.max(0, ...generations.map((item) => item.generation)) + 1;
67
- generations.push({ generation, agentId: input.agentId, status: "ACTIVE", createdAt: now, activatedAt: now, checkpointArtifact: input.checkpointArtifact });
68
- return { ...current, revision, updatedAt: now, lastProgressAt: now, supervision: { ...current.supervision, required: true, materialized: current.supervision.materialized || input.materialized, activeGeneration: generation, generations } };
69
- });
70
- }
71
- export async function updateSupervisorGeneration(root, operationId, generation, patch) {
72
- return mutateOperation(root, operationId, {}, true, "operation.supervisor.updated", (current, revision, now) => {
73
- const generations = current.supervision.generations.map((item) => item.generation === generation ? { ...item, ...patch } : item);
33
+ const status = input.status ?? "ACTIVE";
34
+ generations.push({ generation, agentId: input.agentId, status, createdAt: now, activatedAt: status === "ACTIVE" ? now : undefined, checkpointArtifact: input.checkpointArtifact, initializationAttempt: input.initializationAttempt });
74
35
  const active = generations.find((item) => item.status === "ACTIVE");
75
- return { ...current, revision, updatedAt: now, lastProgressAt: now, supervision: { ...current.supervision, activeGeneration: active?.generation, generations } };
36
+ return { ...current, revision, updatedAt: now, lastProgressAt: now, supervision: { ...current.supervision, required: true, materialized: current.supervision.materialized || input.materialized, activeGeneration: active?.generation, generations } };
76
37
  });
77
38
  }
39
+ export async function updateSupervisorGeneration(root, operationId, generation, patch) { return mutateOperation(root, operationId, {}, true, "operation.supervisor.updated", (current, revision, now) => { const generations = current.supervision.generations.map((item) => item.generation === generation ? { ...item, ...patch } : item); const active = generations.find((item) => item.status === "ACTIVE"); return { ...current, revision, updatedAt: now, lastProgressAt: now, supervision: { ...current.supervision, activeGeneration: active?.generation, generations } }; }); }
78
40
  export function activeOperationSupervisor(record) { const generation = record.supervision.activeGeneration; return generation === undefined ? undefined : record.supervision.generations.find((item) => item.generation === generation && item.status === "ACTIVE"); }
41
+ export function initializingOperationSupervisor(record) { return [...record.supervision.generations].reverse().find((item) => item.status === "INITIALIZING"); }
42
+ export function recoverableOperationSupervisor(record) { return activeOperationSupervisor(record) ?? initializingOperationSupervisor(record); }
79
43
  export async function registerOperationAgent(root, operationId, agent) {
80
- return mutateOperation(root, operationId, {}, true, "operation.participant.registered", (current, revision, now) => {
81
- const existingAgents = current.agents ?? [];
82
- const previousAgent = existingAgents.find((item) => item.id === agent.id);
83
- const compatibility = { ...previousAgent, id: agent.id, role: agent.role ?? previousAgent?.role, phase: agent.phase ?? previousAgent?.phase, workspaceId: agent.workspaceId ?? previousAgent?.workspaceId, transport: agent.transport ?? previousAgent?.transport, registeredAt: previousAgent?.registeredAt ?? now };
84
- const agents = [...existingAgents.filter((item) => item.id !== agent.id), compatibility];
85
- const logicalAgent = agent.logicalAgent ?? agent.role;
86
- if (logicalAgent === "operation-supervisor")
87
- return { ...current, revision, updatedAt: now, lastProgressAt: now, agents };
88
- const previous = current.participants[agent.id];
89
- const participant = { ...previous, id: agent.id, logicalAgent: logicalAgent ?? previous?.logicalAgent, role: agent.role ?? previous?.role, stage: agent.phase ?? previous?.stage, phase: agent.phase ?? previous?.phase, parentSupervisorGeneration: agent.parentSupervisorGeneration ?? previous?.parentSupervisorGeneration ?? current.supervision.activeGeneration, parentAgentId: agent.parentAgentId ?? previous?.parentAgentId ?? activeOperationSupervisor(current)?.agentId, workspaceId: agent.workspaceId ?? previous?.workspaceId, transport: agent.transport ?? previous?.transport, status: previous?.status ?? "REGISTERED", registeredAt: previous?.registeredAt ?? now };
90
- const participants = { ...current.participants, [agent.id]: participant };
91
- return { ...current, revision, updatedAt: now, lastProgressAt: now, agents, participants, progress: deriveProgress(participants) };
92
- });
93
- }
94
- export async function updateOperationParticipant(root, operationId, agentId, patch) {
95
- return mutateOperation(root, operationId, {}, true, "operation.participant.updated", (current, revision, now) => {
96
- const previous = current.participants[agentId] ?? { id: agentId, status: "REGISTERED", registeredAt: now };
97
- const next = { ...previous, ...patch, id: agentId, registeredAt: previous.registeredAt, startedAt: patch.status === "RUNNING" ? previous.startedAt ?? now : patch.startedAt ?? previous.startedAt, finishedAt: ["COMPLETED", "FAILED", "CANCELLED"].includes(patch.status ?? "") ? patch.finishedAt ?? now : patch.finishedAt ?? previous.finishedAt };
98
- const participants = { ...current.participants, [agentId]: next };
99
- return { ...current, revision, updatedAt: now, lastProgressAt: now, participants, progress: deriveProgress(participants) };
100
- });
44
+ return mutateOperation(root, operationId, {}, true, "operation.participant.registered", (current, revision, now) => { const existingAgents = current.agents ?? []; const previousAgent = existingAgents.find((item) => item.id === agent.id); const compatibility = { ...previousAgent, id: agent.id, role: agent.role ?? previousAgent?.role, phase: agent.phase ?? previousAgent?.phase, workspaceId: agent.workspaceId ?? previousAgent?.workspaceId, transport: agent.transport ?? previousAgent?.transport, registeredAt: previousAgent?.registeredAt ?? now }; const agents = [...existingAgents.filter((item) => item.id !== agent.id), compatibility]; const logicalAgent = agent.logicalAgent ?? agent.role; if (logicalAgent === "operation-supervisor")
45
+ return { ...current, revision, updatedAt: now, lastProgressAt: now, agents }; const previous = current.participants[agent.id]; const participant = { ...previous, id: agent.id, logicalAgent: logicalAgent ?? previous?.logicalAgent, role: agent.role ?? previous?.role, stage: agent.phase ?? previous?.stage, phase: agent.phase ?? previous?.phase, parentSupervisorGeneration: agent.parentSupervisorGeneration ?? previous?.parentSupervisorGeneration ?? current.supervision.activeGeneration, parentAgentId: agent.parentAgentId ?? previous?.parentAgentId ?? activeOperationSupervisor(current)?.agentId, workspaceId: agent.workspaceId ?? previous?.workspaceId, transport: agent.transport ?? previous?.transport, status: previous?.status ?? "REGISTERED", registeredAt: previous?.registeredAt ?? now }; const participants = { ...current.participants, [agent.id]: participant }; return { ...current, revision, updatedAt: now, lastProgressAt: now, agents, participants, progress: deriveProgress(participants) }; });
101
46
  }
47
+ export async function updateOperationParticipant(root, operationId, agentId, patch) { return mutateOperation(root, operationId, {}, true, "operation.participant.updated", (current, revision, now) => { const previous = current.participants[agentId] ?? { id: agentId, status: "REGISTERED", registeredAt: now }; const next = { ...previous, ...patch, id: agentId, registeredAt: previous.registeredAt, startedAt: patch.status === "RUNNING" ? previous.startedAt ?? now : patch.startedAt ?? previous.startedAt, finishedAt: ["COMPLETED", "FAILED", "CANCELLED"].includes(patch.status ?? "") ? patch.finishedAt ?? now : patch.finishedAt ?? previous.finishedAt }; const participants = { ...current.participants, [agentId]: next }; return { ...current, revision, updatedAt: now, lastProgressAt: now, participants, progress: deriveProgress(participants) }; }); }
102
48
  export async function registerCurrentOperationAgent(root, agent) { const operationId = currentOperationContext().id; if (!operationId)
103
49
  return; try {
104
50
  await registerOperationAgent(resolveOperationStateRoot(root), operationId, agent);
@@ -127,17 +73,7 @@ async function mutateOperation(root, operationId, patch, touchRevision, eventTyp
127
73
  const stateRoot = resolveOperationStateRoot(root);
128
74
  const file = operationFile(stateRoot, operationId);
129
75
  await fs.mkdir(path.dirname(file), { recursive: true });
130
- return withOperationLock(file, async () => {
131
- const current = normalizeOperationRecord(JSON.parse(await fs.readFile(file, "utf8")));
132
- const guardedPatch = guardTerminalTransition(current, patch);
133
- const now = new Date().toISOString();
134
- const revision = touchRevision ? current.revision + 1 : current.revision;
135
- const candidate = custom ? custom(current, revision, now) : { ...current, ...guardedPatch, version: 2, id: current.id, kind: current.kind, revision, updatedAt: now, lastProgressAt: touchRevision ? now : current.lastProgressAt };
136
- const next = normalizeOperationRecord(candidate);
137
- await writeRecord(file, next);
138
- await appendOperationEvent(stateRoot, next, eventType, Object.keys(patch));
139
- return next;
140
- });
76
+ return withOperationLock(file, async () => { const current = normalizeOperationRecord(JSON.parse(await fs.readFile(file, "utf8"))); const guardedPatch = guardTerminalTransition(current, patch); const now = new Date().toISOString(); const revision = touchRevision ? current.revision + 1 : current.revision; const candidate = custom ? custom(current, revision, now) : { ...current, ...guardedPatch, version: 2, id: current.id, kind: current.kind, revision, updatedAt: now, lastProgressAt: touchRevision ? now : current.lastProgressAt }; const next = normalizeOperationRecord(candidate); await writeRecord(file, next); await appendOperationEvent(stateRoot, next, eventType, Object.keys(patch)); return next; });
141
77
  }
142
78
  async function appendOperationEvent(root, record, type, changed, details) { const file = operationEventsFile(root, record.id); await fs.mkdir(path.dirname(file), { recursive: true }); const event = { version: 1, operationId: record.id, revision: record.revision, at: new Date().toISOString(), type, status: record.status, phase: record.phase, changed, details }; await fs.appendFile(file, `${JSON.stringify(event)}\n`); }
143
79
  async function writeRecord(file, record) { const temp = `${file}.${process.pid}.${crypto.randomUUID()}.tmp`; await fs.writeFile(temp, `${JSON.stringify(record, null, 2)}\n`); try {
@@ -193,15 +129,8 @@ function processAlive(pid) { try {
193
129
  catch {
194
130
  return false;
195
131
  } }
196
- function guardTerminalTransition(current, patch) {
197
- if (!isTerminal(current.status))
198
- return patch;
199
- // Once one controller owns terminalization, late execution/cancellation paths
200
- // may still append cleanup/notification metadata but cannot rewrite the
201
- // terminal outcome, phase, result, error or finish timestamp.
202
- const { status: _status, phase: _phase, result: _result, error: _error, finishedAt: _finishedAt, ...metadata } = patch;
203
- return metadata;
204
- }
132
+ function guardTerminalTransition(current, patch) { if (!isTerminal(current.status))
133
+ return patch; const { status: _status, phase: _phase, result: _result, error: _error, finishedAt: _finishedAt, ...metadata } = patch; return metadata; }
205
134
  function deriveProgress(participants) { const values = Object.values(participants); return { expected: values.length, registered: values.filter((item) => item.status === "REGISTERED" || item.status === "IDLE").length, running: values.filter((item) => item.status === "RUNNING").length, completed: values.filter((item) => item.status === "COMPLETED").length, failed: values.filter((item) => item.status === "FAILED" || item.status === "CANCELLED").length, blocked: values.filter((item) => item.status === "BLOCKED").length }; }
206
135
  function defaultSupervision(kind) { return { required: kind === "audit" || kind === "change", materialized: false, generations: [] }; }
207
136
  function defaultNotification() { return { lastLeadWakeRevision: 0, terminalDelivered: false, attempts: 0 }; }
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/operations/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/operations/state.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ interface SupervisorContextPolicy {
31
31
  hardHandoffThreshold: number;
32
32
  }
33
33
  export declare function operationSupervisorContextPolicy(config: HarnessProjectConfig): SupervisorContextPolicy;
34
+ export declare function operationSupervisorInitializationTimeoutSeconds(config: HarnessProjectConfig): number;
34
35
  export declare function ensureOperationSupervisor(root: string, config: HarnessProjectConfig, contract: TaskContract, topology: ResolvedAgentTopology, options?: EnsureSupervisorOptions): Promise<OperationSupervisorHandle | undefined>;
35
36
  export declare function consolidateWithOperationSupervisor(root: string, config: HarnessProjectConfig, contract: TaskContract, topology: ResolvedAgentTopology, input: SupervisorConsolidationInput): Promise<SupervisorConsolidationResult>;
36
37
  export declare function maybeRotateOperationSupervisor(root: string, config: HarnessProjectConfig, contract: TaskContract, topology: ResolvedAgentTopology): Promise<OperationSupervisorHandle | undefined>;
@@ -6,8 +6,9 @@ import { archivePaseoSdkAgent } from "../paseo/sdk.js";
6
6
  import { recordPaseoTrace } from "../paseo/trace.js";
7
7
  import { dispatchMaterializedAgentPrompt, executeAgentPrompt, materializeAgentPrompt } from "../workers/agentPrompt.js";
8
8
  import { persistOperationConsolidation, persistSupervisorCheckpoint } from "./artifacts.js";
9
- import { activeOperationSupervisor, currentOperationContext, loadOperation, patchOperation, registerSupervisorGeneration, resolveOperationStateRoot, updateSupervisorGeneration } from "./state.js";
9
+ import { activeOperationSupervisor, currentOperationContext, initializingOperationSupervisor, loadOperation, patchOperation, registerSupervisorGeneration, resolveOperationStateRoot, updateSupervisorGeneration } from "./state.js";
10
10
  const SUPERVISOR_INITIALIZATION_ATTEMPTS = 2;
11
+ const DEFAULT_SUPERVISOR_INITIALIZATION_TIMEOUT_SECONDS = 60;
11
12
  export function operationSupervisorContextPolicy(config) {
12
13
  const orchestration = config.orchestration;
13
14
  const configured = orchestration?.operations?.supervision?.context;
@@ -15,6 +16,27 @@ export function operationSupervisorContextPolicy(config) {
15
16
  const hardHandoffThreshold = Math.max(handoffThreshold, ratio(configured?.hardHandoffThreshold, 0.85));
16
17
  return { handoffThreshold, hardHandoffThreshold };
17
18
  }
19
+ export function operationSupervisorInitializationTimeoutSeconds(config) {
20
+ const orchestration = config.orchestration;
21
+ const value = orchestration?.operations?.supervision?.initializationTimeoutSeconds;
22
+ return typeof value === "number" && Number.isFinite(value) && value > 0
23
+ ? value
24
+ : DEFAULT_SUPERVISOR_INITIALIZATION_TIMEOUT_SECONDS;
25
+ }
26
+ function supervisorInitializationConfig(config) {
27
+ if (!config.orchestration)
28
+ return config;
29
+ return {
30
+ ...config,
31
+ orchestration: {
32
+ ...config.orchestration,
33
+ worker: {
34
+ ...config.orchestration.worker,
35
+ timeoutSeconds: operationSupervisorInitializationTimeoutSeconds(config)
36
+ }
37
+ }
38
+ };
39
+ }
18
40
  export async function ensureOperationSupervisor(root, config, contract, topology, options = {}) {
19
41
  const operationId = currentOperationContext().id;
20
42
  if (!operationId)
@@ -32,9 +54,8 @@ export async function ensureOperationSupervisor(root, config, contract, topology
32
54
  }
33
55
  const selection = executionSelectionForAgent(topology, "operation-supervisor");
34
56
  const active = activeOperationSupervisor(operation);
35
- if (active?.agentId) {
57
+ if (active?.agentId)
36
58
  return { operationId, generation: active.generation, agentId: active.agentId, materialized: true, selection };
37
- }
38
59
  let lastError;
39
60
  for (let attempt = 1; attempt <= SUPERVISOR_INITIALIZATION_ATTEMPTS; attempt += 1) {
40
61
  operation = await loadOperation(stateRoot, operationId);
@@ -48,29 +69,45 @@ export async function ensureOperationSupervisor(root, config, contract, topology
48
69
  lastError = "Paseo SDK did not materialize a persistent supervisor session";
49
70
  break;
50
71
  }
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
72
  operation = await registerSupervisorGeneration(stateRoot, operationId, {
55
73
  agentId: materialized.id,
56
- materialized: true
74
+ materialized: true,
75
+ status: "INITIALIZING",
76
+ initializationAttempt: attempt
57
77
  });
58
- const generation = operation.supervision.activeGeneration;
78
+ const generation = [...operation.supervision.generations].reverse().find((item) => item.agentId === materialized.id && item.status === "INITIALIZING")?.generation;
79
+ if (!generation)
80
+ throw new Error("AEH_OPERATION_SUPERVISOR_STATE: materialized supervisor generation was not durably registered as INITIALIZING.");
59
81
  await recordPaseoTrace(stateRoot, "operation.supervisor.materialized", {
60
- operationId, generation, agentId: materialized.id, revision: operation.revision, attempt
82
+ operationId, generation, agentId: materialized.id, revision: operation.revision, attempt, status: "INITIALIZING"
61
83
  });
62
84
  try {
63
- const session = await dispatchMaterializedAgentPrompt(root, config, contract, selection, materialized, supervisorInitializationPrompt(operation), {
85
+ operation = await updateSupervisorGeneration(stateRoot, operationId, generation, {
86
+ initializationDispatchedAt: new Date().toISOString(),
87
+ error: undefined
88
+ });
89
+ const session = await dispatchMaterializedAgentPrompt(root, supervisorInitializationConfig(config), contract, selection, materialized, supervisorInitializationPrompt(operation), {
64
90
  phase: "supervision",
65
91
  operationKind: operation.kind,
66
92
  parentAgentId: operation.lead?.agentId,
67
93
  supervisorAgent: true
68
94
  });
69
- if (session.exitCode !== 0 || !session.id) {
95
+ if (session.exitCode !== 0 || !session.id)
70
96
  throw new Error(session.stderr || session.stdout || `exit ${session.exitCode}`);
71
- }
97
+ const completedAt = new Date().toISOString();
98
+ const activated = await updateSupervisorGeneration(stateRoot, operationId, generation, {
99
+ status: "ACTIVE",
100
+ activatedAt: completedAt,
101
+ initializationCompletedAt: completedAt,
102
+ initializationEvidence: session.transport?.includes("paseo") ? "paseo-sdk-turn-barrier" : "turn-barrier",
103
+ error: undefined
104
+ });
105
+ if (activated.supervision.activeGeneration !== generation)
106
+ throw new Error("AEH_OPERATION_SUPERVISOR_STATE: initialized supervisor did not become the active generation.");
72
107
  await recordPaseoTrace(stateRoot, "operation.supervisor.initialized", {
73
- operationId, generation, agentId: session.id, revision: operation.revision, attempt
108
+ operationId, generation, agentId: session.id, revision: activated.revision, attempt,
109
+ timeoutSeconds: operationSupervisorInitializationTimeoutSeconds(config),
110
+ evidence: "turn-barrier"
74
111
  });
75
112
  return { operationId, generation, agentId: session.id, materialized: true, selection, session };
76
113
  }
@@ -82,7 +119,8 @@ export async function ensureOperationSupervisor(root, config, contract, topology
82
119
  }).catch(() => undefined);
83
120
  await archivePaseoSdkAgent(root, materialized.id).catch(() => undefined);
84
121
  await recordPaseoTrace(stateRoot, "operation.supervisor.initialization-failed", {
85
- operationId, generation, agentId: materialized.id, attempt, error: lastError
122
+ operationId, generation, agentId: materialized.id, attempt, error: lastError,
123
+ timeoutSeconds: operationSupervisorInitializationTimeoutSeconds(config)
86
124
  }).catch(() => undefined);
87
125
  }
88
126
  }
@@ -121,16 +159,11 @@ export async function consolidateWithOperationSupervisor(root, config, contract,
121
159
  throw new Error(`AEH_OPERATION_SUPERVISOR_CONTRACT: ${String(error)}`);
122
160
  }
123
161
  const sourceIds = [...new Set(output.sourceFindingIds)].sort();
124
- if (sourceIds.length !== rawIds.length || sourceIds.some((id, index) => id !== rawIds[index])) {
162
+ if (sourceIds.length !== rawIds.length || sourceIds.some((id, index) => id !== rawIds[index]))
125
163
  throw new Error(`AEH_OPERATION_SUPERVISOR_PROVENANCE: consolidation did not account for the exact raw finding set. expected=${rawIds.join(",")} received=${sourceIds.join(",")}`);
126
- }
127
- const artifact = await persistOperationConsolidation(stateRoot, supervisor.operationId, input.key, {
128
- generation: supervisor.generation, sourceArtifacts: input.sourceArtifacts ?? [], rawFindingIds: rawIds, output
129
- });
164
+ const artifact = await persistOperationConsolidation(stateRoot, supervisor.operationId, input.key, { generation: supervisor.generation, sourceArtifacts: input.sourceArtifacts ?? [], rawFindingIds: rawIds, output });
130
165
  const current = await loadOperation(stateRoot, supervisor.operationId);
131
- await patchOperation(stateRoot, supervisor.operationId, {
132
- supervision: { ...current.supervision, latestConsolidationRevision: current.revision + 1, latestConsolidationArtifact: artifact }
133
- });
166
+ await patchOperation(stateRoot, supervisor.operationId, { supervision: { ...current.supervision, latestConsolidationRevision: current.revision + 1, latestConsolidationArtifact: artifact } });
134
167
  return { output, artifact, session };
135
168
  }
136
169
  export async function maybeRotateOperationSupervisor(root, config, contract, topology) {
@@ -145,44 +178,36 @@ export async function maybeRotateOperationSupervisor(root, config, contract, top
145
178
  const context = await statusLeadContext(root, config, active.agentId);
146
179
  const policy = operationSupervisorContextPolicy(config);
147
180
  const usageRatio = context.usage.ratio;
148
- const rotate = usageRatio !== undefined
149
- ? usageRatio >= policy.handoffThreshold
150
- : context.state === "HANDOFF_REQUIRED" || context.state === "HARD_HANDOFF";
181
+ const rotate = usageRatio !== undefined ? usageRatio >= policy.handoffThreshold : context.state === "HANDOFF_REQUIRED" || context.state === "HARD_HANDOFF";
151
182
  if (!rotate) {
152
183
  if (usageRatio !== undefined)
153
184
  await updateSupervisorGeneration(stateRoot, operationId, active.generation, { contextRatio: usageRatio, error: undefined });
154
185
  return { operationId, generation: active.generation, agentId: active.agentId, materialized: true, selection: executionSelectionForAgent(topology, "operation-supervisor") };
155
186
  }
156
187
  const checkpointArtifact = await persistSupervisorCheckpoint(stateRoot, operationId, active.generation, buildSupervisorCheckpoint(operation, usageRatio));
157
- await updateSupervisorGeneration(stateRoot, operationId, active.generation, {
158
- status: "DRAINING", drainingAt: new Date().toISOString(), checkpointArtifact, contextRatio: usageRatio, error: undefined
159
- });
188
+ await updateSupervisorGeneration(stateRoot, operationId, active.generation, { status: "DRAINING", drainingAt: new Date().toISOString(), checkpointArtifact, contextRatio: usageRatio, error: undefined });
160
189
  const selection = executionSelectionForAgent(topology, "operation-supervisor");
161
190
  const latest = await loadOperation(stateRoot, operationId);
162
- const materialized = await materializeAgentPrompt(root, config, contract, selection, {
163
- phase: "supervision", operationKind: operation.kind, parentAgentId: operation.lead?.agentId, supervisorAgent: true
164
- });
191
+ const materialized = await materializeAgentPrompt(root, config, contract, selection, { phase: "supervision", operationKind: operation.kind, parentAgentId: operation.lead?.agentId, supervisorAgent: true });
165
192
  if (!materialized?.id) {
166
193
  await updateSupervisorGeneration(stateRoot, operationId, active.generation, { status: "ACTIVE", drainingAt: undefined, error: "replacement materialization failed" });
167
194
  throw new Error("AEH_OPERATION_SUPERVISOR_ROTATION_FAILED: Paseo SDK did not materialize the replacement supervisor.");
168
195
  }
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
173
- });
196
+ const registered = await registerSupervisorGeneration(stateRoot, operationId, { agentId: materialized.id, materialized: true, checkpointArtifact, status: "INITIALIZING", initializationAttempt: 1 });
197
+ const replacementGeneration = [...registered.supervision.generations].reverse().find((item) => item.agentId === materialized.id && item.status === "INITIALIZING")?.generation;
198
+ if (!replacementGeneration)
199
+ throw new Error("AEH_OPERATION_SUPERVISOR_ROTATION_FAILED: replacement generation was not durably registered as INITIALIZING.");
200
+ await recordPaseoTrace(stateRoot, "operation.supervisor.materialized", { operationId, generation: replacementGeneration, agentId: materialized.id, revision: registered.revision, replacementFor: active.generation, status: "INITIALIZING" });
174
201
  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
- });
202
+ await updateSupervisorGeneration(stateRoot, operationId, replacementGeneration, { initializationDispatchedAt: new Date().toISOString(), error: undefined });
203
+ const session = await dispatchMaterializedAgentPrompt(root, supervisorInitializationConfig(config), contract, selection, materialized, supervisorInitializationPrompt(latest, checkpointArtifact), { phase: "supervision", operationKind: operation.kind, parentAgentId: operation.lead?.agentId, supervisorAgent: true });
178
204
  if (session.exitCode !== 0 || !session.id)
179
205
  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
- });
206
+ const completedAt = new Date().toISOString();
207
+ const activated = await updateSupervisorGeneration(stateRoot, operationId, replacementGeneration, { status: "ACTIVE", activatedAt: completedAt, initializationCompletedAt: completedAt, initializationEvidence: "paseo-sdk-turn-barrier", error: undefined });
208
+ if (activated.supervision.activeGeneration !== replacementGeneration)
209
+ throw new Error("replacement supervisor did not become active after initialization");
210
+ await recordPaseoTrace(stateRoot, "operation.supervisor.rotated", { operationId, fromGeneration: active.generation, fromAgentId: active.agentId, toGeneration: replacementGeneration, toAgentId: session.id, contextRatio: usageRatio ?? -1, handoffThreshold: policy.handoffThreshold, hardHandoffThreshold: policy.hardHandoffThreshold, checkpointArtifact });
186
211
  return { operationId, generation: replacementGeneration, agentId: session.id, materialized: true, selection, session };
187
212
  }
188
213
  catch (error) {
@@ -234,15 +259,12 @@ function supervisorDurableSnapshot(operation) {
234
259
  stages: operation.stages, progress: operation.progress,
235
260
  latestConsolidationArtifact: operation.supervision.latestConsolidationArtifact,
236
261
  activeSupervisorGeneration: operation.supervision.activeGeneration,
262
+ initializingSupervisorGeneration: initializingOperationSupervisor(operation)?.generation,
237
263
  unresolvedParticipants: Object.values(operation.participants)
238
264
  .filter((participant) => !["COMPLETED", "FAILED", "CANCELLED"].includes(participant.status))
239
265
  .map((participant) => ({ id: participant.id, logicalAgent: participant.logicalAgent, role: participant.role, stage: participant.stage, status: participant.status, parentSupervisorGeneration: participant.parentSupervisorGeneration, resultArtifact: participant.resultArtifact }))
240
266
  };
241
267
  }
242
- function buildSupervisorCheckpoint(operation, contextRatio) {
243
- return { ...supervisorDurableSnapshot(operation), contextRatio, instruction: "Resume semantic supervision from this durable checkpoint and OperationRecord. Do not request transcript replay from the draining supervisor." };
244
- }
245
- function ratio(value, fallback) {
246
- return typeof value === "number" && Number.isFinite(value) && value > 0 && value <= 1 ? value : fallback;
247
- }
268
+ function buildSupervisorCheckpoint(operation, contextRatio) { return { ...supervisorDurableSnapshot(operation), contextRatio, instruction: "Resume semantic supervision from this durable checkpoint and OperationRecord. Do not request transcript replay from the draining supervisor." }; }
269
+ function ratio(value, fallback) { return typeof value === "number" && Number.isFinite(value) && value > 0 && value <= 1 ? value : fallback; }
248
270
  //# sourceMappingURL=supervisor.js.map