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.
- package/dist/agents/structuredOutput.d.ts +5 -0
- package/dist/agents/structuredOutput.js +25 -3
- package/dist/agents/structuredOutput.js.map +1 -1
- package/dist/operations/state.d.ts +9 -1
- package/dist/operations/state.js +21 -92
- package/dist/operations/state.js.map +1 -1
- package/dist/operations/supervisor.d.ts +1 -0
- package/dist/operations/supervisor.js +73 -51
- package/dist/operations/supervisor.js.map +1 -1
- package/dist/paseo/runtime.d.ts +2 -2
- package/dist/paseo/runtime.js +99 -325
- package/dist/paseo/runtime.js.map +1 -1
- package/dist/paseo/sdk.d.ts +9 -1
- package/dist/paseo/sdk.js +46 -8
- package/dist/paseo/sdk.js.map +1 -1
- package/dist/workers/agentPrompt.d.ts +5 -0
- package/dist/workers/agentPrompt.js +63 -6
- package/dist/workers/agentPrompt.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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(
|
|
32
|
+
const stderrJson = parseWholeJson(stderrRaw);
|
|
18
33
|
if (stderrJson !== undefined)
|
|
19
34
|
return stderrJson;
|
|
20
|
-
|
|
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":"
|
|
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;
|
package/dist/operations/state.js
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
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
|
-
|
|
68
|
-
|
|
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
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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:
|
|
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.
|
|
171
|
-
|
|
172
|
-
|
|
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
|
-
|
|
176
|
-
|
|
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
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
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
|
-
|
|
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
|