@assemblyline-agents/runtime 3.1.0 → 3.3.0
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/README.md +6 -0
- package/dist/agent-hook-controller-factory.d.ts +28 -0
- package/dist/agent-hook-controller-factory.d.ts.map +1 -0
- package/dist/agent-hook-controller-factory.js +83 -0
- package/dist/agent-hook-controller-factory.js.map +1 -0
- package/dist/background-subagents.d.ts +43 -0
- package/dist/background-subagents.d.ts.map +1 -0
- package/dist/background-subagents.js +309 -0
- package/dist/background-subagents.js.map +1 -0
- package/dist/builtin-tool-executors.d.ts +1 -0
- package/dist/builtin-tool-executors.d.ts.map +1 -1
- package/dist/builtin-tool-executors.js +38 -30
- package/dist/builtin-tool-executors.js.map +1 -1
- package/dist/builtin-tools.d.ts.map +1 -1
- package/dist/builtin-tools.js +5 -4
- package/dist/builtin-tools.js.map +1 -1
- package/dist/capability-catalog.d.ts +8 -5
- package/dist/capability-catalog.d.ts.map +1 -1
- package/dist/capability-catalog.js +28 -1
- package/dist/capability-catalog.js.map +1 -1
- package/dist/conversation-turn-dispatch.d.ts +1 -1
- package/dist/conversation-turn-dispatch.d.ts.map +1 -1
- package/dist/conversation-turn-dispatch.js +25 -1
- package/dist/conversation-turn-dispatch.js.map +1 -1
- package/dist/dynamic-schedule-runtime.d.ts +42 -0
- package/dist/dynamic-schedule-runtime.d.ts.map +1 -0
- package/dist/dynamic-schedule-runtime.js +57 -0
- package/dist/dynamic-schedule-runtime.js.map +1 -0
- package/dist/harness-loop.d.ts +6 -6
- package/dist/harness-loop.d.ts.map +1 -1
- package/dist/harness-loop.js +26 -15
- package/dist/harness-loop.js.map +1 -1
- package/dist/in-memory-conversation-turn-store.d.ts +1 -0
- package/dist/in-memory-conversation-turn-store.d.ts.map +1 -1
- package/dist/in-memory-conversation-turn-store.js +11 -0
- package/dist/in-memory-conversation-turn-store.js.map +1 -1
- package/dist/index.d.ts +23 -41
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +172 -169
- package/dist/index.js.map +1 -1
- package/dist/local-sandbox.d.ts.map +1 -1
- package/dist/local-sandbox.js +2 -1
- package/dist/local-sandbox.js.map +1 -1
- package/dist/public-api.d.ts +2 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js.map +1 -1
- package/dist/replay-resume.d.ts.map +1 -1
- package/dist/replay-resume.js +3 -2
- package/dist/replay-resume.js.map +1 -1
- package/dist/run-heartbeat.d.ts +45 -18
- package/dist/run-heartbeat.d.ts.map +1 -1
- package/dist/run-heartbeat.js +120 -14
- package/dist/run-heartbeat.js.map +1 -1
- package/dist/run-outcome.d.ts +1 -1
- package/dist/run-outcome.d.ts.map +1 -1
- package/dist/run-outcome.js.map +1 -1
- package/dist/run-recovery.d.ts +9 -1
- package/dist/run-recovery.d.ts.map +1 -1
- package/dist/run-recovery.js +26 -1
- package/dist/run-recovery.js.map +1 -1
- package/dist/runtime-types.d.ts +23 -3
- package/dist/runtime-types.d.ts.map +1 -1
- package/dist/sandbox-authored-tool-child.d.ts +7 -0
- package/dist/sandbox-authored-tool-child.d.ts.map +1 -0
- package/dist/sandbox-authored-tool-child.js +217 -0
- package/dist/sandbox-authored-tool-child.js.map +1 -0
- package/dist/sandbox-authored-tool-executor.d.ts +23 -0
- package/dist/sandbox-authored-tool-executor.d.ts.map +1 -0
- package/dist/sandbox-authored-tool-executor.js +290 -0
- package/dist/sandbox-authored-tool-executor.js.map +1 -0
- package/dist/sandbox-session-lifecycle.d.ts +1 -0
- package/dist/sandbox-session-lifecycle.d.ts.map +1 -1
- package/dist/sandbox-session-lifecycle.js +48 -16
- package/dist/sandbox-session-lifecycle.js.map +1 -1
- package/dist/sandbox-tool-bridge.d.ts +19 -0
- package/dist/sandbox-tool-bridge.d.ts.map +1 -0
- package/dist/sandbox-tool-bridge.js +227 -0
- package/dist/sandbox-tool-bridge.js.map +1 -0
- package/dist/scheduled-delivery.d.ts +6 -0
- package/dist/scheduled-delivery.d.ts.map +1 -0
- package/dist/scheduled-delivery.js +117 -0
- package/dist/scheduled-delivery.js.map +1 -0
- package/dist/source-loader.d.ts +10 -0
- package/dist/source-loader.d.ts.map +1 -1
- package/dist/source-loader.js +64 -3
- package/dist/source-loader.js.map +1 -1
- package/dist/state-stores.js +1 -1
- package/dist/state-stores.js.map +1 -1
- package/dist/state.d.ts +2 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +1 -0
- package/dist/state.js.map +1 -1
- package/dist/storage.d.ts +1 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +3 -0
- package/dist/storage.js.map +1 -1
- package/dist/subagent-execution.d.ts +17 -1
- package/dist/subagent-execution.d.ts.map +1 -1
- package/dist/subagent-execution.js +217 -6
- package/dist/subagent-execution.js.map +1 -1
- package/dist/subagent-handoff.d.ts +44 -0
- package/dist/subagent-handoff.d.ts.map +1 -0
- package/dist/subagent-handoff.js +271 -0
- package/dist/subagent-handoff.js.map +1 -0
- package/dist/tool-apis.d.ts +1 -1
- package/dist/tool-apis.d.ts.map +1 -1
- package/dist/tool-apis.js +17 -10
- package/dist/tool-apis.js.map +1 -1
- package/dist/tool-execution.d.ts +17 -3
- package/dist/tool-execution.d.ts.map +1 -1
- package/dist/tool-execution.js +147 -20
- package/dist/tool-execution.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,7 +1,96 @@
|
|
|
1
1
|
import { storedHarnessContinuation } from "./harness-continuation.js";
|
|
2
2
|
import { timestamp } from "./runtime-util.js";
|
|
3
|
+
import { isJsonObject } from "./json-util.js";
|
|
3
4
|
import { findChildSubagent, findSubagent, surfaceForRun } from "./agent-surface.js";
|
|
5
|
+
import { acceptSubagentHandoff, buildVerifiedSubagentHandoff, publicSubagentHandoff, readySubagentHandoff, recordSubagentHandoffReady, SUBAGENT_HANDOFF_INSTRUCTIONS, subagentHandoffRetryMessage } from "./subagent-handoff.js";
|
|
4
6
|
export async function runSubagentImpl(host, parentRunId, subagentName, task) {
|
|
7
|
+
const child = await createSubagentRunImpl(host, parentRunId, subagentName, task);
|
|
8
|
+
const timeline = await executeSubagentRunImpl(host, child.id);
|
|
9
|
+
const receipt = readySubagentHandoff(timeline.events);
|
|
10
|
+
if (timeline.run.status === "completed" && receipt) {
|
|
11
|
+
await acceptSubagentHandoff(host.state, parentRunId, receipt);
|
|
12
|
+
}
|
|
13
|
+
return host.replay(timeline.run.id);
|
|
14
|
+
}
|
|
15
|
+
const RESUMABLE_CHILD_STATUSES = new Set(["completed", "failed", "cancelled", "suspended"]);
|
|
16
|
+
/**
|
|
17
|
+
* Continue an existing child run instead of starting a fresh one. The child
|
|
18
|
+
* keeps its sandbox session, workspace files, and transcript, so recovering a
|
|
19
|
+
* failed or incomplete delegation costs one follow-up turn rather than a full
|
|
20
|
+
* rebuild of work that already ran.
|
|
21
|
+
*/
|
|
22
|
+
export async function resumeSubagentImpl(host, parentRunId, childRunId, expectedSubagentName, message) {
|
|
23
|
+
const parent = await host.state.getRun(parentRunId);
|
|
24
|
+
if (!parent)
|
|
25
|
+
throw new Error(`Parent run not found: ${parentRunId}`);
|
|
26
|
+
const child = await host.state.getRun(childRunId);
|
|
27
|
+
if (!child)
|
|
28
|
+
throw new Error(`Subagent run not found: ${childRunId}`);
|
|
29
|
+
const subagentName = typeof child.input.subagent === "string" ? child.input.subagent : undefined;
|
|
30
|
+
if (!subagentName)
|
|
31
|
+
throw new Error(`Run ${childRunId} is not a subagent run.`);
|
|
32
|
+
if (subagentName !== expectedSubagentName) {
|
|
33
|
+
throw new Error(`Subagent run ${childRunId} belongs to ${subagentName}, not ${expectedSubagentName}.`);
|
|
34
|
+
}
|
|
35
|
+
if (!(await resumableByRun(host, child, parent))) {
|
|
36
|
+
throw new Error(`Subagent run ${childRunId} does not belong to this conversation.`);
|
|
37
|
+
}
|
|
38
|
+
// Only a settled child can take a follow-up. An executing run would be
|
|
39
|
+
// double-driven, and a run parked on approval, input, or a connection has its
|
|
40
|
+
// own resume path.
|
|
41
|
+
if (!RESUMABLE_CHILD_STATUSES.has(child.status)) {
|
|
42
|
+
throw new Error(`Subagent run ${childRunId} is ${child.status}; wait for it to settle before resuming it.`);
|
|
43
|
+
}
|
|
44
|
+
const selectedSubagents = Array.isArray(parent.input.agentSubagents)
|
|
45
|
+
? parent.input.agentSubagents.filter((name) => typeof name === "string")
|
|
46
|
+
: [];
|
|
47
|
+
if (!selectedSubagents.includes(subagentName)) {
|
|
48
|
+
throw new Error(`Subagent ${subagentName} is not enabled by the current agent capability snapshot.`);
|
|
49
|
+
}
|
|
50
|
+
await host.state.appendEvent(parentRunId, "subagent.resumed", {
|
|
51
|
+
subagent: subagentName,
|
|
52
|
+
childRunId,
|
|
53
|
+
previousStatus: child.status
|
|
54
|
+
});
|
|
55
|
+
const timeline = await sendSubagentFollowupImpl(host, childRunId, message);
|
|
56
|
+
const receipt = readySubagentHandoff(timeline.events);
|
|
57
|
+
if (timeline.run.status === "completed" && receipt) {
|
|
58
|
+
await acceptSubagentHandoff(host.state, parentRunId, receipt);
|
|
59
|
+
}
|
|
60
|
+
await host.state.appendEvent(parentRunId, "subagent.completed", {
|
|
61
|
+
subagent: subagentName,
|
|
62
|
+
childRunId: timeline.run.id,
|
|
63
|
+
status: timeline.run.status,
|
|
64
|
+
resumed: true,
|
|
65
|
+
...(receipt ? { handoff: publicSubagentHandoff(receipt) } : {})
|
|
66
|
+
});
|
|
67
|
+
return host.replay(timeline.run.id);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* A run may resume its own children, and any later turn of the same
|
|
71
|
+
* conversation may resume them too. Background work reports its completion on a
|
|
72
|
+
* fresh root turn, so the run that recovers a failed child is rarely the run
|
|
73
|
+
* that started it.
|
|
74
|
+
*/
|
|
75
|
+
async function resumableByRun(host, child, parent) {
|
|
76
|
+
const childParentRunId = typeof child.input.parentRunId === "string" ? child.input.parentRunId : undefined;
|
|
77
|
+
if (childParentRunId === parent.id)
|
|
78
|
+
return true;
|
|
79
|
+
const conversationId = typeof parent.input.conversationId === "string" ? parent.input.conversationId : parent.id;
|
|
80
|
+
const background = isJsonObject(child.input.background) ? child.input.background : undefined;
|
|
81
|
+
if (typeof background?.conversationId === "string" && background.conversationId === conversationId)
|
|
82
|
+
return true;
|
|
83
|
+
if (!childParentRunId)
|
|
84
|
+
return false;
|
|
85
|
+
const childParent = await host.state.getRun(childParentRunId);
|
|
86
|
+
if (!childParent)
|
|
87
|
+
return false;
|
|
88
|
+
const childConversationId = typeof childParent.input.conversationId === "string"
|
|
89
|
+
? childParent.input.conversationId
|
|
90
|
+
: childParent.id;
|
|
91
|
+
return childConversationId === conversationId;
|
|
92
|
+
}
|
|
93
|
+
export async function createSubagentRunImpl(host, parentRunId, subagentName, task, options = {}) {
|
|
5
94
|
const parent = await host.state.getRun(parentRunId);
|
|
6
95
|
if (!parent)
|
|
7
96
|
throw new Error(`Parent run not found: ${parentRunId}`);
|
|
@@ -12,15 +101,24 @@ export async function runSubagentImpl(host, parentRunId, subagentName, task) {
|
|
|
12
101
|
throw new Error(`Subagent ${subagentName} is not enabled by the current agent capability snapshot.`);
|
|
13
102
|
}
|
|
14
103
|
const parentSurface = surfaceForRun(host.manifest, parent);
|
|
104
|
+
if (options.background && parentSurface.path !== "root") {
|
|
105
|
+
throw new Error("Only the root agent can start background subagent work.");
|
|
106
|
+
}
|
|
15
107
|
const subagent = findChildSubagent(parentSurface, subagentName);
|
|
16
108
|
if (!subagent)
|
|
17
109
|
throw new Error(`Subagent not found: ${subagentName}`);
|
|
18
|
-
const spanStartedAt = timestamp();
|
|
19
110
|
await host.state.appendEvent(parentRunId, "subagent.called", {
|
|
20
111
|
subagent: subagentName,
|
|
21
112
|
task
|
|
22
113
|
});
|
|
23
|
-
|
|
114
|
+
const background = options.background
|
|
115
|
+
? {
|
|
116
|
+
conversationId: typeof parent.input.conversationId === "string" ? parent.input.conversationId : parent.id,
|
|
117
|
+
channel: typeof parent.input.channel === "string" ? parent.input.channel : "local",
|
|
118
|
+
eventId: typeof parent.input.eventId === "string" ? parent.input.eventId : parent.id
|
|
119
|
+
}
|
|
120
|
+
: undefined;
|
|
121
|
+
const child = await host.state.createRun({
|
|
24
122
|
agentRevision: host.manifest.agentRevision,
|
|
25
123
|
status: "created",
|
|
26
124
|
input: {
|
|
@@ -37,7 +135,10 @@ export async function runSubagentImpl(host, parentRunId, subagentName, task) {
|
|
|
37
135
|
projectId: typeof parent.input.projectId === "string" ? parent.input.projectId : null,
|
|
38
136
|
workspaceId: typeof parent.input.workspaceId === "string" ? parent.input.workspaceId : null,
|
|
39
137
|
tenantId: typeof parent.input.tenantId === "string" ? parent.input.tenantId : null,
|
|
138
|
+
delivery: parent.input.delivery ?? null,
|
|
139
|
+
originReplyTarget: parent.input.replyTarget ?? null,
|
|
40
140
|
metadata: parent.input.metadata ?? {},
|
|
141
|
+
...(background ? { background } : {}),
|
|
41
142
|
// Eval harness options follow the parent so subagent tool calls hit the
|
|
42
143
|
// same stubs and approval policy ({results} cursors restart per child).
|
|
43
144
|
...(parent.input.eval !== undefined ? { eval: parent.input.eval } : {})
|
|
@@ -48,13 +149,41 @@ export async function runSubagentImpl(host, parentRunId, subagentName, task) {
|
|
|
48
149
|
subagent: subagentName,
|
|
49
150
|
freshHistory: true,
|
|
50
151
|
freshState: true,
|
|
51
|
-
engine: "pi"
|
|
152
|
+
engine: "pi",
|
|
153
|
+
background: options.background === true
|
|
52
154
|
});
|
|
155
|
+
return child;
|
|
156
|
+
}
|
|
157
|
+
export async function executeSubagentRunImpl(host, childRunId) {
|
|
158
|
+
const storedChild = await host.state.getRun(childRunId);
|
|
159
|
+
if (!storedChild)
|
|
160
|
+
throw new Error(`Subagent run not found: ${childRunId}`);
|
|
161
|
+
if (storedChild.status !== "created")
|
|
162
|
+
return host.replay(childRunId);
|
|
163
|
+
let child = storedChild;
|
|
164
|
+
const parentRunId = typeof child.input.parentRunId === "string" ? child.input.parentRunId : undefined;
|
|
165
|
+
const subagentName = typeof child.input.subagent === "string" ? child.input.subagent : undefined;
|
|
166
|
+
const task = child.input.task;
|
|
167
|
+
if (!parentRunId || !subagentName || !isJsonObject(task)) {
|
|
168
|
+
throw new Error(`Run ${childRunId} is not an executable subagent run.`);
|
|
169
|
+
}
|
|
170
|
+
const parent = await host.state.getRun(parentRunId);
|
|
171
|
+
if (!parent)
|
|
172
|
+
throw new Error(`Parent run not found: ${parentRunId}`);
|
|
173
|
+
const surfacePath = typeof child.input.agentSurface === "string" ? child.input.agentSurface : undefined;
|
|
174
|
+
const subagent = surfacePath ? findSubagent(host.manifest, surfacePath) : undefined;
|
|
175
|
+
if (!subagent || subagent.name !== subagentName)
|
|
176
|
+
throw new Error(`Subagent not found: ${subagentName}`);
|
|
177
|
+
const spanStartedAt = timestamp();
|
|
53
178
|
child = await host.state.updateRun(child.id, { status: "running" });
|
|
54
179
|
const message = JSON.stringify(task);
|
|
55
180
|
const conversationId = child.id;
|
|
56
181
|
const hookController = await host.createSubagentHookController(child, subagent, message, conversationId);
|
|
57
182
|
const initialSnapshot = await hookController.evaluate("run_start");
|
|
183
|
+
const controlledChild = await host.state.getRun(child.id);
|
|
184
|
+
if (!controlledChild || controlledChild.status !== "running")
|
|
185
|
+
return host.replay(child.id);
|
|
186
|
+
child = controlledChild;
|
|
58
187
|
child = await host.state.updateRun(child.id, {
|
|
59
188
|
input: {
|
|
60
189
|
...child.input,
|
|
@@ -76,7 +205,7 @@ export async function runSubagentImpl(host, parentRunId, subagentName, task) {
|
|
|
76
205
|
});
|
|
77
206
|
return {
|
|
78
207
|
...built,
|
|
79
|
-
instructions: [subagent.instructions.text, ...capabilities.instructions]
|
|
208
|
+
instructions: [subagent.instructions.text, ...capabilities.instructions, SUBAGENT_HANDOFF_INSTRUCTIONS]
|
|
80
209
|
.filter(Boolean)
|
|
81
210
|
.join("\n\n")
|
|
82
211
|
};
|
|
@@ -113,9 +242,17 @@ export async function runSubagentImpl(host, parentRunId, subagentName, task) {
|
|
|
113
242
|
finally {
|
|
114
243
|
heartbeat.stop();
|
|
115
244
|
}
|
|
245
|
+
let timeline = await host.replay(child.id);
|
|
246
|
+
timeline = await finalizeSubagentHandoffImpl(host, timeline);
|
|
247
|
+
child = timeline.run;
|
|
248
|
+
const receipt = readySubagentHandoff(timeline.events);
|
|
116
249
|
await host.state.appendEvent(parentRunId, "subagent.completed", {
|
|
117
250
|
subagent: subagentName,
|
|
118
|
-
childRunId: child.id
|
|
251
|
+
childRunId: child.id,
|
|
252
|
+
status: child.status,
|
|
253
|
+
...(receipt ? {
|
|
254
|
+
handoff: publicSubagentHandoff(receipt)
|
|
255
|
+
} : {})
|
|
119
256
|
});
|
|
120
257
|
await host.emitSpan("ai.assembly-line.subagent.run", spanStartedAt, host.runSpanAttributes(parent, {
|
|
121
258
|
subagentName,
|
|
@@ -128,6 +265,80 @@ export async function runSubagentImpl(host, parentRunId, subagentName, task) {
|
|
|
128
265
|
});
|
|
129
266
|
return host.replay(child.id);
|
|
130
267
|
}
|
|
268
|
+
export async function finalizeSubagentHandoffImpl(host, initialTimeline) {
|
|
269
|
+
let timeline = initialTimeline;
|
|
270
|
+
if (timeline.run.status !== "completed")
|
|
271
|
+
return timeline;
|
|
272
|
+
if (readyAfterLatestCompletion(timeline.events))
|
|
273
|
+
return timeline;
|
|
274
|
+
let lastError;
|
|
275
|
+
for (let attempt = 0; attempt < 2; attempt += 1) {
|
|
276
|
+
try {
|
|
277
|
+
const receipt = await buildVerifiedSubagentHandoff(host.state, host.blob, timeline.run);
|
|
278
|
+
await recordSubagentHandoffReady(host.state, timeline.run.id, receipt);
|
|
279
|
+
return host.replay(timeline.run.id);
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
lastError = error instanceof Error ? error.message : String(error);
|
|
283
|
+
const retrying = attempt === 0;
|
|
284
|
+
await host.state.appendEvent(timeline.run.id, "subagent.handoff_rejected", {
|
|
285
|
+
error: lastError,
|
|
286
|
+
attempt: attempt + 1,
|
|
287
|
+
retrying
|
|
288
|
+
});
|
|
289
|
+
if (!retrying)
|
|
290
|
+
break;
|
|
291
|
+
try {
|
|
292
|
+
await resumeAgentHarnessSubagent(host, timeline.run, subagentHandoffRetryMessage(lastError));
|
|
293
|
+
timeline = await host.replay(timeline.run.id);
|
|
294
|
+
}
|
|
295
|
+
catch (retryError) {
|
|
296
|
+
lastError = `Artifact handoff retry could not run: ${retryError instanceof Error ? retryError.message : String(retryError)}`;
|
|
297
|
+
break;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
const failed = await host.state.updateRun(timeline.run.id, {
|
|
302
|
+
status: "failed",
|
|
303
|
+
terminalReason: "subagent.handoff_failed",
|
|
304
|
+
terminalError: lastError ?? "Artifact handoff failed."
|
|
305
|
+
});
|
|
306
|
+
await host.state.appendEvent(failed.id, "run.failed", {
|
|
307
|
+
reason: "subagent.handoff_failed",
|
|
308
|
+
error: failed.terminalError ?? "Artifact handoff failed."
|
|
309
|
+
});
|
|
310
|
+
return host.replay(failed.id);
|
|
311
|
+
}
|
|
312
|
+
export function subagentToolResult(timeline) {
|
|
313
|
+
const completed = [...timeline.events].reverse().find((event) => event.type === "run.completed");
|
|
314
|
+
const receipt = readySubagentHandoff(timeline.events);
|
|
315
|
+
return {
|
|
316
|
+
runId: timeline.run.id,
|
|
317
|
+
status: timeline.run.status,
|
|
318
|
+
...(completed && typeof completed.data.response === "string" ? { response: completed.data.response } : {}),
|
|
319
|
+
...(receipt ? { handoff: publicSubagentHandoff(receipt) } : {}),
|
|
320
|
+
...(timeline.run.status === "failed" && timeline.run.terminalReason
|
|
321
|
+
? { terminalReason: timeline.run.terminalReason }
|
|
322
|
+
: {}),
|
|
323
|
+
...(timeline.run.status === "failed" && timeline.run.terminalError
|
|
324
|
+
? { error: timeline.run.terminalError }
|
|
325
|
+
: {}),
|
|
326
|
+
// A failed child keeps its workspace and transcript. Point the parent at
|
|
327
|
+
// the recovery path so it never re-runs work that already completed.
|
|
328
|
+
...(timeline.run.status === "failed" ? { recovery: subagentRecoveryHint(timeline.run.id) } : {})
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
/** Parent-facing instruction for continuing a child run instead of restarting it. */
|
|
332
|
+
export function subagentRecoveryHint(childRunId) {
|
|
333
|
+
return `This child's sandbox, workspace files, and transcript are intact. Continue it with delegate using resumeRunId "${childRunId}" and a short instruction naming what is still missing. Do not re-delegate the original task: that starts an empty workspace and rebuilds finished work.`;
|
|
334
|
+
}
|
|
335
|
+
function readyAfterLatestCompletion(events) {
|
|
336
|
+
const latestCompletion = [...events].reverse().find((event) => event.type === "run.completed");
|
|
337
|
+
const ready = [...events].reverse().find((event) => event.type === "subagent.handoff_ready");
|
|
338
|
+
return ready && (!latestCompletion || ready.sequence > latestCompletion.sequence)
|
|
339
|
+
? readySubagentHandoff(events)
|
|
340
|
+
: undefined;
|
|
341
|
+
}
|
|
131
342
|
export async function readSubagentImpl(host, childRunId, cursor) {
|
|
132
343
|
const timeline = await host.replay(childRunId);
|
|
133
344
|
const afterSequence = cursor ? Number(cursor) : 0;
|
|
@@ -149,7 +360,7 @@ export async function sendSubagentFollowupImpl(host, childRunId, message) {
|
|
|
149
360
|
throw new Error(`Subagent not found: ${subagentName}`);
|
|
150
361
|
}
|
|
151
362
|
await resumeAgentHarnessSubagent(host, child, message);
|
|
152
|
-
return host.replay(child.id);
|
|
363
|
+
return finalizeSubagentHandoffImpl(host, await host.replay(child.id));
|
|
153
364
|
}
|
|
154
365
|
/** Resume a Pi-backed subagent with a follow-up through its durable continuation. */
|
|
155
366
|
async function resumeAgentHarnessSubagent(host, child, message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-execution.js","sourceRoot":"","sources":["../src/subagent-execution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subagent-execution.js","sourceRoot":"","sources":["../src/subagent-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { JsonObject } from "@assemblyline-agents/core";
|
|
2
|
+
import type { BlobAdapter } from "./runtime-types.js";
|
|
3
|
+
import type { RunEvent, RunRecord, StateAdapter } from "./state.js";
|
|
4
|
+
export declare const SUBAGENT_HANDOFF_INSTRUCTIONS: string;
|
|
5
|
+
export interface SubagentHandoffFile {
|
|
6
|
+
path: string;
|
|
7
|
+
filename: string;
|
|
8
|
+
contentType: string;
|
|
9
|
+
sizeBytes: number;
|
|
10
|
+
sha256: string;
|
|
11
|
+
blobKey: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SubagentHandoffLink {
|
|
14
|
+
kind: string;
|
|
15
|
+
artifactId: string;
|
|
16
|
+
revision: string;
|
|
17
|
+
title: string;
|
|
18
|
+
url: string;
|
|
19
|
+
visibility: string;
|
|
20
|
+
}
|
|
21
|
+
export interface SubagentHandoffReceipt {
|
|
22
|
+
version: 1;
|
|
23
|
+
sourceRunId: string;
|
|
24
|
+
files: SubagentHandoffFile[];
|
|
25
|
+
links: SubagentHandoffLink[];
|
|
26
|
+
}
|
|
27
|
+
interface DeliverableRequirement {
|
|
28
|
+
kind: "file" | "link";
|
|
29
|
+
description: string;
|
|
30
|
+
}
|
|
31
|
+
export declare class SubagentHandoffError extends Error {
|
|
32
|
+
constructor(message: string);
|
|
33
|
+
}
|
|
34
|
+
export declare function subagentDeliverableRequirements(run: RunRecord): DeliverableRequirement[];
|
|
35
|
+
export declare function buildVerifiedSubagentHandoff(state: StateAdapter, blob: BlobAdapter, run: RunRecord): Promise<SubagentHandoffReceipt>;
|
|
36
|
+
export declare function readySubagentHandoff(events: RunEvent[]): SubagentHandoffReceipt | undefined;
|
|
37
|
+
export declare function recordSubagentHandoffReady(state: StateAdapter, runId: string, receipt: SubagentHandoffReceipt): Promise<void>;
|
|
38
|
+
export declare function acceptSubagentHandoff(state: StateAdapter, targetRunId: string, receipt: SubagentHandoffReceipt): Promise<void>;
|
|
39
|
+
export declare function publicSubagentHandoff(receipt: SubagentHandoffReceipt): JsonObject;
|
|
40
|
+
export declare function subagentHandoffRetryMessage(error: string): string;
|
|
41
|
+
export declare function backgroundHandoffSummary(receipt: SubagentHandoffReceipt): string | undefined;
|
|
42
|
+
export declare function acceptBackgroundSubagentHandoff(state: StateAdapter, run: RunRecord): Promise<void>;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=subagent-handoff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-handoff.d.ts","sourceRoot":"","sources":["../src/subagent-handoff.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpE,eAAO,MAAM,6BAA6B,QAM9B,CAAC;AAEb,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,SAAS,GAAG,sBAAsB,EAAE,CAcxF;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,sBAAsB,CAAC,CA0BjC;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAAsB,GAAG,SAAS,CAM3F;AAED,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,UAAU,CAkBjF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,GAAG,SAAS,CAU5F;AAED,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
|