@polpo-ai/node 0.15.144 → 0.16.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/dist/adapters/composite-spawner.d.ts +1 -0
- package/dist/adapters/composite-spawner.d.ts.map +1 -1
- package/dist/adapters/composite-spawner.js +3 -0
- package/dist/adapters/composite-spawner.js.map +1 -1
- package/dist/adapters/in-process-spawner.d.ts +9 -2
- package/dist/adapters/in-process-spawner.d.ts.map +1 -1
- package/dist/adapters/in-process-spawner.js +9 -7
- package/dist/adapters/in-process-spawner.js.map +1 -1
- package/dist/adapters/loop-engine.d.ts.map +1 -1
- package/dist/adapters/loop-engine.js +510 -491
- package/dist/adapters/loop-engine.js.map +1 -1
- package/dist/adapters/node-spawner.d.ts +2 -0
- package/dist/adapters/node-spawner.d.ts.map +1 -1
- package/dist/adapters/node-spawner.js +15 -0
- package/dist/adapters/node-spawner.js.map +1 -1
- package/dist/adapters/spawn-helpers.d.ts +8 -2
- package/dist/adapters/spawn-helpers.d.ts.map +1 -1
- package/dist/adapters/spawn-helpers.js +31 -13
- package/dist/adapters/spawn-helpers.js.map +1 -1
- package/dist/core/deadlock-resolver.d.ts +8 -10
- package/dist/core/deadlock-resolver.d.ts.map +1 -1
- package/dist/core/deadlock-resolver.js +125 -132
- package/dist/core/deadlock-resolver.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/orchestrator.d.ts +8 -4
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +43 -79
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/run-lifecycle.d.ts +11 -2
- package/dist/core/run-lifecycle.d.ts.map +1 -1
- package/dist/core/run-lifecycle.js +197 -45
- package/dist/core/run-lifecycle.js.map +1 -1
- package/dist/core/runner-capability-bootstrap.d.ts +19 -0
- package/dist/core/runner-capability-bootstrap.d.ts.map +1 -0
- package/dist/core/runner-capability-bootstrap.js +98 -0
- package/dist/core/runner-capability-bootstrap.js.map +1 -0
- package/dist/core/runner.js +10 -0
- package/dist/core/runner.js.map +1 -1
- package/dist/sandbox/lease.d.ts +7 -0
- package/dist/sandbox/lease.d.ts.map +1 -1
- package/dist/sandbox/lease.js +35 -5
- package/dist/sandbox/lease.js.map +1 -1
- package/dist/server/app.d.ts +4 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +28 -12
- package/dist/server/app.js.map +1 -1
- package/dist/server/deps.d.ts +5 -4
- package/dist/server/deps.d.ts.map +1 -1
- package/dist/server/deps.js +0 -7
- package/dist/server/deps.js.map +1 -1
- package/dist/server/ephemeral-run-store.d.ts +2 -1
- package/dist/server/ephemeral-run-store.d.ts.map +1 -1
- package/dist/server/ephemeral-run-store.js +14 -1
- package/dist/server/ephemeral-run-store.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +6 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/types.d.ts +3 -0
- package/dist/server/types.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* - Abort (deps.signal) carries the subprocess SIGTERM semantics: kill
|
|
20
20
|
* the engine, force exitCode 1, mark the run "killed".
|
|
21
21
|
*/
|
|
22
|
+
import { watchRunState } from "@polpo-ai/core/run-state-monitor";
|
|
22
23
|
import { appendFileSync, mkdirSync, existsSync } from "node:fs";
|
|
23
24
|
import { join } from "node:path";
|
|
24
25
|
import { FileMemoryStore } from "@polpo-ai/file-stores";
|
|
@@ -26,7 +27,7 @@ import { spawnLoopEngine } from "../adapters/loop-engine.js";
|
|
|
26
27
|
import { InMemorySteeringController, } from "@polpo-ai/core/steering";
|
|
27
28
|
import { sanitizeTranscriptEntry } from "../server/security.js";
|
|
28
29
|
import { EncryptedVaultStore } from "../vault/encrypted-store.js";
|
|
29
|
-
import { createToolInvocationContext, normalizeRuntimePromptContextSegments, normalizeRuntimeContextTrustMode, } from "@polpo-ai/core";
|
|
30
|
+
import { createToolInvocationContext, normalizeRuntimeMetadata, normalizeAgentIdentity, AgentIdentityError, normalizeRuntimePromptContextSegments, normalizeRuntimeContextTrustMode, } from "@polpo-ai/core";
|
|
30
31
|
import { GuardrailBlockedError, createConfiguredRunPreflightPolicy, createConfiguredRunOutputPolicy, createConfiguredRunToolMiddleware, createObservationalRunToolMiddleware, } from "@polpo-ai/core/guardrails";
|
|
31
32
|
import { NodeFileSystem } from "../adapters/node-filesystem.js";
|
|
32
33
|
import { NodeShell } from "../adapters/node-shell.js";
|
|
@@ -82,6 +83,19 @@ export class RunActivityLog {
|
|
|
82
83
|
catch { /* best effort */ }
|
|
83
84
|
}
|
|
84
85
|
}
|
|
86
|
+
/** A stalled persistence lookup must not prevent local owner cleanup. */
|
|
87
|
+
async function boundedRunPersistence(work) {
|
|
88
|
+
let timer;
|
|
89
|
+
try {
|
|
90
|
+
return await Promise.race([Promise.resolve().then(work), new Promise((_, reject) => {
|
|
91
|
+
timer = setTimeout(() => reject(new Error("Run persistence timed out")), 5000);
|
|
92
|
+
timer.unref?.();
|
|
93
|
+
})]);
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
clearTimeout(timer);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
85
99
|
function requestsBrainTools(allowedTools) {
|
|
86
100
|
if (!allowedTools?.length)
|
|
87
101
|
return false;
|
|
@@ -92,30 +106,78 @@ function requestsBrainTools(allowedTools) {
|
|
|
92
106
|
* See module header for the host contract.
|
|
93
107
|
*/
|
|
94
108
|
export async function executeRun(config, deps) {
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
109
|
+
const abort = new AbortController();
|
|
110
|
+
const steering = deps.steering ?? new InMemorySteeringController({ delivery: config.resumeState?.steering?.delivery });
|
|
111
|
+
const onSteeringStop = () => abort.abort(steering.signal.reason);
|
|
112
|
+
if (steering.signal.aborted)
|
|
113
|
+
onSteeringStop();
|
|
114
|
+
else
|
|
115
|
+
steering.signal.addEventListener("abort", onSteeringStop, { once: true });
|
|
116
|
+
const onHostAbort = () => abort.abort(deps.signal?.reason);
|
|
117
|
+
if (deps.signal?.aborted)
|
|
118
|
+
onHostAbort();
|
|
119
|
+
else
|
|
120
|
+
deps.signal?.addEventListener("abort", onHostAbort, { once: true });
|
|
121
|
+
const timeoutMs = deps.preparationTimeoutMs ?? 30_000;
|
|
122
|
+
const validTimeout = Number.isSafeInteger(timeoutMs) && timeoutMs > 0 && timeoutMs <= 300_000;
|
|
123
|
+
const preparationDeadline = validTimeout
|
|
124
|
+
? setTimeout(() => abort.abort(new Error("Run preparation timed out")), timeoutMs)
|
|
125
|
+
: undefined;
|
|
126
|
+
preparationDeadline?.unref?.();
|
|
127
|
+
const finishPreparation = () => clearTimeout(preparationDeadline);
|
|
128
|
+
let monitor;
|
|
129
|
+
const onPersistedStop = () => abort.abort(monitor?.signal.reason);
|
|
130
|
+
try {
|
|
131
|
+
return await executeRegisteredRun(config, { ...deps, steering, signal: abort.signal }, () => {
|
|
132
|
+
if (monitor)
|
|
133
|
+
return;
|
|
134
|
+
monitor = watchRunState({ runId: config.runId, runStore: deps.runStore });
|
|
135
|
+
monitor.signal.addEventListener("abort", onPersistedStop, { once: true });
|
|
136
|
+
}, finishPreparation);
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
finishPreparation();
|
|
140
|
+
monitor?.dispose();
|
|
141
|
+
monitor?.signal.removeEventListener("abort", onPersistedStop);
|
|
142
|
+
deps.signal?.removeEventListener("abort", onHostAbort);
|
|
143
|
+
steering.signal.removeEventListener("abort", onSteeringStop);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
async function executeRegisteredRun(config, deps, observe, finishPreparation) {
|
|
147
|
+
let finalization;
|
|
148
|
+
const finalize = () => finalization ??= Promise.resolve().then(() => deps.finalize?.());
|
|
102
149
|
const { runStore, pid, configPath } = deps;
|
|
150
|
+
const readRun = () => boundedRunPersistence(() => runStore.getRun(config.runId));
|
|
151
|
+
const persistOutcome = async (status, result, spawnError = false) => {
|
|
152
|
+
// An error or timeout can occur after a successful commit. Always confirm
|
|
153
|
+
// against durable state, including a cancellation committed by another host.
|
|
154
|
+
try {
|
|
155
|
+
await boundedRunPersistence(() => runStore.completeRun(config.runId, status, result));
|
|
156
|
+
}
|
|
157
|
+
catch { /* read below */ }
|
|
158
|
+
try {
|
|
159
|
+
const persisted = await readRun();
|
|
160
|
+
if (!persisted || persisted.status === "running")
|
|
161
|
+
throw new Error("Unconfirmed run outcome");
|
|
162
|
+
return { status: persisted.status, result: persisted.result ?? result,
|
|
163
|
+
...(spawnError && persisted.status === "failed" ? { spawnError: true } : {}) };
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
// No success can be inferred from a local result if its authoritative row
|
|
167
|
+
// disappeared or persistence is unavailable. Never recreate a missing Run.
|
|
168
|
+
return { status: "failed", result: errorResult(new Error("Run outcome was not confirmed by persistence")),
|
|
169
|
+
...(spawnError ? { spawnError: true } : {}) };
|
|
170
|
+
}
|
|
171
|
+
};
|
|
103
172
|
const actLog = new RunActivityLog(config.polpoDir, config.runId, config.taskId, config.agent.name, pid);
|
|
104
|
-
const steering = deps.steering
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
await steering.restore(config.resumeState.steering);
|
|
110
|
-
}
|
|
111
|
-
// When a transcript session is available (postgres/sqlite), persist the
|
|
112
|
-
// transcript to the DB. This ensures it survives sandbox destruction.
|
|
173
|
+
const steering = deps.steering;
|
|
174
|
+
const checkPreparation = () => {
|
|
175
|
+
deps.signal?.throwIfAborted();
|
|
176
|
+
steering.signal.throwIfAborted();
|
|
177
|
+
};
|
|
113
178
|
let logSession;
|
|
114
|
-
|
|
115
|
-
logSession = await deps.createLogSession();
|
|
116
|
-
}
|
|
179
|
+
let correlatedSessionId = deps.inject?.sessionId;
|
|
117
180
|
const now = new Date().toISOString();
|
|
118
|
-
const correlatedSessionId = logSession?.sessionId ?? deps.inject?.sessionId;
|
|
119
181
|
const initialRecord = {
|
|
120
182
|
id: config.runId,
|
|
121
183
|
taskId: config.taskId,
|
|
@@ -142,13 +204,95 @@ export async function executeRun(config, deps) {
|
|
|
142
204
|
engine: "agent",
|
|
143
205
|
delivery: deps.inject ? "stream" : "background",
|
|
144
206
|
};
|
|
145
|
-
// In DB mode, run record already exists (created by spawner) — update it with PID
|
|
146
|
-
await runStore.upsertRun(initialRecord);
|
|
147
|
-
actLog.logEvent("spawning", { task: config.task.title });
|
|
148
207
|
let handle;
|
|
149
208
|
const guardrailDecisions = [];
|
|
150
209
|
let guardrailDecisionsTruncated = false;
|
|
210
|
+
const stopBeforeSpawn = async () => {
|
|
211
|
+
let current = await readRun();
|
|
212
|
+
if (!current)
|
|
213
|
+
throw new Error("Run record is unavailable before execution");
|
|
214
|
+
if (current.status === "running" && !deps.signal?.aborted && !steering.signal.aborted)
|
|
215
|
+
return;
|
|
216
|
+
finishPreparation();
|
|
217
|
+
await finalize();
|
|
218
|
+
steering.close();
|
|
219
|
+
if (current.status === "running") {
|
|
220
|
+
actLog.logEvent("sigterm");
|
|
221
|
+
await boundedRunPersistence(() => runStore.completeRun(config.runId, "killed", errorResult(new Error("Killed by SIGTERM (timeout or shutdown) before engine start"))));
|
|
222
|
+
current = await readRun();
|
|
223
|
+
if (!current || current.status === "running")
|
|
224
|
+
throw new Error("Run cancellation was not persisted");
|
|
225
|
+
}
|
|
226
|
+
return { status: current.status, result: current.result ?? {
|
|
227
|
+
exitCode: current.status === "completed" ? 0 : 1, stdout: "", stderr: "", duration: 0,
|
|
228
|
+
} };
|
|
229
|
+
};
|
|
151
230
|
try {
|
|
231
|
+
const preparationTimeoutMs = deps.preparationTimeoutMs ?? 30_000;
|
|
232
|
+
if (!Number.isSafeInteger(preparationTimeoutMs) || preparationTimeoutMs < 1 || preparationTimeoutMs > 300_000) {
|
|
233
|
+
throw new Error("Run preparation requires a bounded positive deadline");
|
|
234
|
+
}
|
|
235
|
+
checkPreparation();
|
|
236
|
+
// TaskRunner already owns a durable Run. Observe it before initial log or
|
|
237
|
+
// steering I/O. A fresh file-mode run has no row yet, so start its observer
|
|
238
|
+
// only after registration; missing rows are never given grace afterwards.
|
|
239
|
+
const existing = await readRun();
|
|
240
|
+
checkPreparation();
|
|
241
|
+
if (existing) {
|
|
242
|
+
observe();
|
|
243
|
+
const stoppedBeforePreparation = await stopBeforeSpawn();
|
|
244
|
+
if (stoppedBeforePreparation)
|
|
245
|
+
return stoppedBeforePreparation;
|
|
246
|
+
}
|
|
247
|
+
if (config.resumeState?.steering) {
|
|
248
|
+
await steering.restore(config.resumeState.steering, { signal: deps.signal });
|
|
249
|
+
checkPreparation();
|
|
250
|
+
}
|
|
251
|
+
if (deps.createLogSession) {
|
|
252
|
+
// Do not race this promise against abort: the host may still allocate a
|
|
253
|
+
// session/resource. Its finalizer retains ownership until it settles.
|
|
254
|
+
logSession = await deps.createLogSession({ signal: deps.signal });
|
|
255
|
+
checkPreparation();
|
|
256
|
+
}
|
|
257
|
+
correlatedSessionId = logSession?.sessionId ?? deps.inject?.sessionId;
|
|
258
|
+
if (correlatedSessionId) {
|
|
259
|
+
initialRecord.sessionId = correlatedSessionId;
|
|
260
|
+
initialRecord.activity.sessionId = correlatedSessionId;
|
|
261
|
+
}
|
|
262
|
+
if (existing) {
|
|
263
|
+
const stoppedBeforeRegistration = await stopBeforeSpawn();
|
|
264
|
+
if (stoppedBeforeRegistration)
|
|
265
|
+
return stoppedBeforeRegistration;
|
|
266
|
+
}
|
|
267
|
+
checkPreparation();
|
|
268
|
+
// Keep an uncertain/late commit owned until it settles. Never retry this
|
|
269
|
+
// registration after lost acknowledgement or cancellation.
|
|
270
|
+
await runStore.upsertRun(initialRecord);
|
|
271
|
+
observe();
|
|
272
|
+
checkPreparation();
|
|
273
|
+
actLog.logEvent("spawning", { task: config.task.title });
|
|
274
|
+
const stoppedAtRegistration = await stopBeforeSpawn();
|
|
275
|
+
if (stoppedAtRegistration)
|
|
276
|
+
return stoppedAtRegistration;
|
|
277
|
+
const agentIdentity = config.agentIdentity === undefined ? undefined : normalizeAgentIdentity(config.agentIdentity);
|
|
278
|
+
if ((agentIdentity && agentIdentity.name !== config.agent.name)
|
|
279
|
+
|| (config.toolInvocation?.agent && (config.toolInvocation.agent.name !== agentIdentity?.name
|
|
280
|
+
|| config.toolInvocation.agent.incarnation !== agentIdentity?.incarnation)))
|
|
281
|
+
throw new AgentIdentityError();
|
|
282
|
+
// Snapshot host-owned identity before any content guardrail can rewrite it.
|
|
283
|
+
const toolInvocation = config.toolInvocation ? createToolInvocationContext({
|
|
284
|
+
...config.toolInvocation,
|
|
285
|
+
metadata: { ...config.toolInvocation.metadata },
|
|
286
|
+
...(agentIdentity ? { agent: agentIdentity } : {}),
|
|
287
|
+
}) : createToolInvocationContext({
|
|
288
|
+
...(agentIdentity ? { agent: agentIdentity } : {}),
|
|
289
|
+
requestId: config.runId,
|
|
290
|
+
runId: config.runId,
|
|
291
|
+
...(correlatedSessionId ? { sessionId: correlatedSessionId } : {}),
|
|
292
|
+
...(config.task.user ? { user: config.task.user } : {}),
|
|
293
|
+
metadata: normalizeRuntimeMetadata(config.task.metadata) ?? {},
|
|
294
|
+
surface: "task",
|
|
295
|
+
});
|
|
152
296
|
// Use the injected vault store when available (postgres/sqlite or
|
|
153
297
|
// orchestrator-owned), fall back to file-based
|
|
154
298
|
let vaultStore = deps.vaultStore;
|
|
@@ -160,6 +304,7 @@ export async function executeRun(config, deps) {
|
|
|
160
304
|
}
|
|
161
305
|
const memoryStore = deps.memoryStore ?? new FileMemoryStore(config.polpoDir);
|
|
162
306
|
const { FileMemoryItemStore } = await import("@polpo-ai/file-stores");
|
|
307
|
+
checkPreparation();
|
|
163
308
|
const memoryItemStore = deps.memoryItemStore
|
|
164
309
|
?? new FileMemoryItemStore(config.polpoDir);
|
|
165
310
|
const contextTrust = normalizeRuntimeContextTrustMode(config.contextTrust ?? deps.inject?.contextTrust);
|
|
@@ -242,6 +387,7 @@ export async function executeRun(config, deps) {
|
|
|
242
387
|
|| guardedInput.value.id !== config.task.id) {
|
|
243
388
|
throw new GuardrailBlockedError("Guardrail rewrote task identity during preflight", guardedInput.decisions);
|
|
244
389
|
}
|
|
390
|
+
checkPreparation();
|
|
245
391
|
guardedTask = guardedInput.value;
|
|
246
392
|
const guardedContext = await runPreflightPolicy.evaluate({
|
|
247
393
|
phase: "context",
|
|
@@ -256,6 +402,7 @@ export async function executeRun(config, deps) {
|
|
|
256
402
|
if (!guardedContext.value || typeof guardedContext.value !== "object") {
|
|
257
403
|
throw new GuardrailBlockedError("Guardrail rewrote task context to an invalid value", guardedContext.decisions);
|
|
258
404
|
}
|
|
405
|
+
checkPreparation();
|
|
259
406
|
promptContextSegments = normalizeRuntimePromptContextSegments(guardedContext.value.promptContextSegments);
|
|
260
407
|
guardedRuntimeContext = guardedContext.value.runtimeContext;
|
|
261
408
|
const guardedModelInput = await runPreflightPolicy.evaluate({
|
|
@@ -280,6 +427,7 @@ export async function executeRun(config, deps) {
|
|
|
280
427
|
|| guardedModelInput.value.task.id !== config.task.id) {
|
|
281
428
|
throw new GuardrailBlockedError("Guardrail rewrote run identity during model preflight", guardedModelInput.decisions);
|
|
282
429
|
}
|
|
430
|
+
checkPreparation();
|
|
283
431
|
guardedAgent = guardedModelInput.value.agent;
|
|
284
432
|
guardedTask = guardedModelInput.value.task;
|
|
285
433
|
promptContextSegments = normalizeRuntimePromptContextSegments(guardedModelInput.value.promptContextSegments);
|
|
@@ -295,14 +443,7 @@ export async function executeRun(config, deps) {
|
|
|
295
443
|
const spawnCtx = {
|
|
296
444
|
polpoDir: config.polpoDir,
|
|
297
445
|
runId: config.runId,
|
|
298
|
-
toolInvocation
|
|
299
|
-
requestId: config.runId,
|
|
300
|
-
runId: config.runId,
|
|
301
|
-
...(correlatedSessionId ? { sessionId: correlatedSessionId } : {}),
|
|
302
|
-
...(guardedTask.user ? { user: guardedTask.user } : {}),
|
|
303
|
-
metadata: {},
|
|
304
|
-
surface: "task",
|
|
305
|
-
}),
|
|
446
|
+
toolInvocation,
|
|
306
447
|
outputDir: config.outputDir,
|
|
307
448
|
emailAllowedDomains: config.emailAllowedDomains,
|
|
308
449
|
reasoning: config.reasoning,
|
|
@@ -313,7 +454,9 @@ export async function executeRun(config, deps) {
|
|
|
313
454
|
memoryItemStore,
|
|
314
455
|
brainService,
|
|
315
456
|
brainContext,
|
|
316
|
-
data: deps.data
|
|
457
|
+
data: deps.data === undefined
|
|
458
|
+
? (await import("../data/index.js")).runnerDataClient(config.polpoDir, config.agent.name)
|
|
459
|
+
: deps.data ?? undefined,
|
|
317
460
|
// Per-tenant gateway for the in-process host (undefined for subprocess,
|
|
318
461
|
// which resolves the gateway from sandbox env).
|
|
319
462
|
gatewayConfig: deps.gatewayConfig,
|
|
@@ -331,6 +474,8 @@ export async function executeRun(config, deps) {
|
|
|
331
474
|
shell: deps.shell ?? new NodeShell(),
|
|
332
475
|
checkpointSandboxVolume: deps.checkpointSandboxVolume,
|
|
333
476
|
connectionCapabilityResolver: deps.connectionCapabilityResolver,
|
|
477
|
+
resolveCustomTools: deps.resolveCustomTools,
|
|
478
|
+
resolveMcpCapabilities: deps.resolveMcpCapabilities,
|
|
334
479
|
// Durable turns: resume checkpoint handed over by orphan recovery,
|
|
335
480
|
// and the per-turn checkpoint sink (one RunStore write per turn,
|
|
336
481
|
// best-effort — a flaky store must never fail a healthy run).
|
|
@@ -369,7 +514,14 @@ export async function executeRun(config, deps) {
|
|
|
369
514
|
inject: deps.inject,
|
|
370
515
|
onTranscript: handleTranscript,
|
|
371
516
|
};
|
|
517
|
+
// Preflight and host preparation can await network work. Recheck after
|
|
518
|
+
// those waits, before creating model/tool capabilities for this run.
|
|
519
|
+
const stoppedAfterPreparation = await stopBeforeSpawn();
|
|
520
|
+
if (stoppedAfterPreparation)
|
|
521
|
+
return stoppedAfterPreparation;
|
|
522
|
+
checkPreparation();
|
|
372
523
|
handle = spawnLoopEngine(guardedAgent, guardedTask, config.cwd, spawnCtx);
|
|
524
|
+
finishPreparation();
|
|
373
525
|
if (config.resumeState) {
|
|
374
526
|
actLog.logEvent("resuming", {
|
|
375
527
|
loopName: config.resumeState.loopName,
|
|
@@ -397,17 +549,18 @@ export async function executeRun(config, deps) {
|
|
|
397
549
|
actLog.logEvent("spawned");
|
|
398
550
|
}
|
|
399
551
|
catch (err) {
|
|
552
|
+
finishPreparation();
|
|
400
553
|
const result = errorResult(err);
|
|
401
554
|
actLog.logEvent("error", { message: result.stderr });
|
|
402
555
|
if (guardrailDecisions.length > 0) {
|
|
403
556
|
try {
|
|
404
|
-
await runStore.updateActivity(config.runId, {
|
|
557
|
+
await boundedRunPersistence(() => runStore.updateActivity(config.runId, {
|
|
405
558
|
...initialRecord.activity,
|
|
406
559
|
guardrailDecisions,
|
|
407
560
|
...(guardrailDecisionsTruncated
|
|
408
561
|
? { guardrailDecisionsTruncated: true }
|
|
409
562
|
: {}),
|
|
410
|
-
});
|
|
563
|
+
}));
|
|
411
564
|
}
|
|
412
565
|
catch {
|
|
413
566
|
// The runtime failure remains authoritative when audit persistence fails.
|
|
@@ -417,14 +570,14 @@ export async function executeRun(config, deps) {
|
|
|
417
570
|
await finalize();
|
|
418
571
|
}
|
|
419
572
|
catch { /* preserve the primary spawn error */ }
|
|
420
|
-
|
|
573
|
+
const requestedStatus = deps.signal?.aborted || steering.signal.aborted ? "killed" : "failed";
|
|
421
574
|
steering.close();
|
|
422
|
-
return
|
|
575
|
+
return persistOutcome(requestedStatus, result, true);
|
|
423
576
|
}
|
|
424
577
|
// Activity polling + persistent logging
|
|
425
578
|
const poll = setInterval(async () => {
|
|
426
579
|
try {
|
|
427
|
-
await runStore.updateActivity(config.runId, handle.activity);
|
|
580
|
+
await boundedRunPersistence(() => runStore.updateActivity(config.runId, handle.activity));
|
|
428
581
|
actLog.logActivity({ ...handle.activity });
|
|
429
582
|
}
|
|
430
583
|
catch { /* DB temporarily locked */
|
|
@@ -457,14 +610,14 @@ export async function executeRun(config, deps) {
|
|
|
457
610
|
}
|
|
458
611
|
// Final activity + sessionId flush before marking terminal
|
|
459
612
|
try {
|
|
460
|
-
await runStore.updateActivity(config.runId, handle.activity);
|
|
613
|
+
await boundedRunPersistence(() => runStore.updateActivity(config.runId, handle.activity));
|
|
461
614
|
}
|
|
462
615
|
catch { /* best effort */ }
|
|
463
616
|
actLog.logActivity({ ...handle.activity });
|
|
464
617
|
// Store auto-collected outcomes on the run record
|
|
465
618
|
if (handle.outcomes && handle.outcomes.length > 0) {
|
|
466
619
|
try {
|
|
467
|
-
await runStore.updateOutcomes(config.runId, handle.outcomes);
|
|
620
|
+
await boundedRunPersistence(() => runStore.updateOutcomes(config.runId, handle.outcomes));
|
|
468
621
|
}
|
|
469
622
|
catch { /* best effort */ }
|
|
470
623
|
actLog.logEvent("outcomes", { count: handle.outcomes.length, types: handle.outcomes.map((o) => o.type) });
|
|
@@ -478,8 +631,7 @@ export async function executeRun(config, deps) {
|
|
|
478
631
|
await finalize();
|
|
479
632
|
const status = aborted ? "killed" : (result.exitCode === 0 ? "completed" : "failed");
|
|
480
633
|
actLog.logEvent("done", { status, exitCode: result.exitCode, duration: result.duration });
|
|
481
|
-
await
|
|
482
|
-
return { status, result };
|
|
634
|
+
return await persistOutcome(status, result);
|
|
483
635
|
}
|
|
484
636
|
catch (err) {
|
|
485
637
|
clearInterval(poll);
|
|
@@ -491,13 +643,13 @@ export async function executeRun(config, deps) {
|
|
|
491
643
|
err = finalizeError;
|
|
492
644
|
}
|
|
493
645
|
try {
|
|
494
|
-
await runStore.updateActivity(config.runId, handle.activity);
|
|
646
|
+
await boundedRunPersistence(() => runStore.updateActivity(config.runId, handle.activity));
|
|
495
647
|
}
|
|
496
648
|
catch { /* best effort */ }
|
|
497
649
|
actLog.logEvent("error", { message: err instanceof Error ? err.message : String(err) });
|
|
498
650
|
const result = errorResult(err);
|
|
499
|
-
|
|
500
|
-
return
|
|
651
|
+
const requestedStatus = aborted ? "killed" : "failed";
|
|
652
|
+
return await persistOutcome(requestedStatus, result);
|
|
501
653
|
}
|
|
502
654
|
finally {
|
|
503
655
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-lifecycle.js","sourceRoot":"","sources":["../../src/core/run-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-lifecycle.js","sourceRoot":"","sources":["../../src/core/run-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type DataClient } from "@polpo-ai/core/data";
|
|
2
|
+
import type { Readable } from "node:stream";
|
|
3
|
+
import { type RunnerCapabilityBootstrapPayload, type ResolveMcpRuntimeCapabilities, type ResolveCustomTools, type RunnerConfig } from "@polpo-ai/core";
|
|
4
|
+
/** The sandbox host must disable stdin echo and wait for readiness before a
|
|
5
|
+
* single delivery. Read a frame, never EOF: session providers keep stdin open.
|
|
6
|
+
* No payload is written to env, disk, config, stdout, stderr or error causes. */
|
|
7
|
+
export declare function readRunnerCapabilities(input: Readable, onReady: () => void): Promise<RunnerCapabilityBootstrapPayload>;
|
|
8
|
+
/** Validate every binding before constructing ports. The frame is the explicit
|
|
9
|
+
* grant ceiling: absent Data/custom tools must not use ambient env/local code. */
|
|
10
|
+
export declare function bindRunnerCapabilities(input: unknown, config: Pick<RunnerConfig, "runId" | "agentIdentity" | "toolInvocation"> & {
|
|
11
|
+
agent: {
|
|
12
|
+
name: string;
|
|
13
|
+
};
|
|
14
|
+
}): {
|
|
15
|
+
data: DataClient | null;
|
|
16
|
+
resolveMcpCapabilities?: ResolveMcpRuntimeCapabilities;
|
|
17
|
+
resolveCustomTools: ResolveCustomTools;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=runner-capability-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner-capability-bootstrap.d.ts","sourceRoot":"","sources":["../../src/core/runner-capability-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAGL,KAAK,gCAAgC,EAAE,KAAK,6BAA6B,EAAE,KAAK,kBAAkB,EAC1E,KAAK,YAAY,EAC1C,MAAM,gBAAgB,CAAC;AAIxB;;iFAEiF;AACjF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,gCAAgC,CAAC,CA0CtH;AAED;kFACkF;AAClF,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,eAAe,GAAG,gBAAgB,CAAC,GAAG;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACrG;IAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,sBAAsB,CAAC,EAAE,6BAA6B,CAAC;IAAC,kBAAkB,EAAE,kBAAkB,CAAA;CAAE,CAmB7H"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { createRemoteDataClient } from "@polpo-ai/core/data";
|
|
2
|
+
import { createRemoteMcpRuntimeCapabilities, createRemoteCustomTools, RunnerCapabilityBootstrapPayloadSchema, MAX_RUNNER_CAPABILITY_BOOTSTRAP_BYTES, RUNNER_CAPABILITY_BOOTSTRAP_TIMEOUT_MS, normalizeAgentIdentity, } from "@polpo-ai/core";
|
|
3
|
+
const failed = () => new Error("Runner capability bootstrap failed");
|
|
4
|
+
/** The sandbox host must disable stdin echo and wait for readiness before a
|
|
5
|
+
* single delivery. Read a frame, never EOF: session providers keep stdin open.
|
|
6
|
+
* No payload is written to env, disk, config, stdout, stderr or error causes. */
|
|
7
|
+
export function readRunnerCapabilities(input, onReady) {
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
let buffered = Buffer.alloc(0);
|
|
10
|
+
let settled = false;
|
|
11
|
+
const cleanup = () => {
|
|
12
|
+
clearTimeout(timer);
|
|
13
|
+
input.pause();
|
|
14
|
+
input.removeListener("data", data);
|
|
15
|
+
input.removeListener("end", invalid);
|
|
16
|
+
input.removeListener("error", invalid);
|
|
17
|
+
input.removeListener("close", invalid);
|
|
18
|
+
buffered = Buffer.alloc(0);
|
|
19
|
+
};
|
|
20
|
+
const invalid = () => {
|
|
21
|
+
if (settled)
|
|
22
|
+
return;
|
|
23
|
+
settled = true;
|
|
24
|
+
cleanup();
|
|
25
|
+
reject(failed());
|
|
26
|
+
};
|
|
27
|
+
const data = (chunk) => {
|
|
28
|
+
if (settled)
|
|
29
|
+
return;
|
|
30
|
+
const bytes = typeof chunk === "string" ? Buffer.from(chunk) : chunk;
|
|
31
|
+
if (buffered.length + bytes.length > MAX_RUNNER_CAPABILITY_BOOTSTRAP_BYTES) {
|
|
32
|
+
invalid();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
buffered = Buffer.concat([buffered, bytes]);
|
|
36
|
+
const newline = buffered.indexOf(10);
|
|
37
|
+
if (newline < 0)
|
|
38
|
+
return;
|
|
39
|
+
try {
|
|
40
|
+
if (buffered.subarray(newline + 1).toString("utf8").trim()) {
|
|
41
|
+
invalid();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const result = RunnerCapabilityBootstrapPayloadSchema.safeParse(JSON.parse(buffered.subarray(0, newline).toString("utf8")));
|
|
45
|
+
if (!result.success || [result.data.mcp, result.data.customTools].some(lease => lease && Date.parse(lease.expiresAt) <= Date.now())) {
|
|
46
|
+
invalid();
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
settled = true;
|
|
50
|
+
cleanup();
|
|
51
|
+
resolve(Object.freeze(result.data));
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
invalid();
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const timer = setTimeout(invalid, RUNNER_CAPABILITY_BOOTSTRAP_TIMEOUT_MS);
|
|
58
|
+
input.on("data", data);
|
|
59
|
+
input.once("end", invalid);
|
|
60
|
+
input.once("error", invalid);
|
|
61
|
+
input.once("close", invalid);
|
|
62
|
+
try {
|
|
63
|
+
onReady();
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
invalid();
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/** Validate every binding before constructing ports. The frame is the explicit
|
|
71
|
+
* grant ceiling: absent Data/custom tools must not use ambient env/local code. */
|
|
72
|
+
export function bindRunnerCapabilities(input, config) {
|
|
73
|
+
const parsed = RunnerCapabilityBootstrapPayloadSchema.safeParse(input);
|
|
74
|
+
if (!parsed.success)
|
|
75
|
+
throw failed();
|
|
76
|
+
const payload = parsed.data;
|
|
77
|
+
if (payload.runId !== config.runId || payload.agentName !== config.agent.name
|
|
78
|
+
|| [payload.mcp, payload.customTools].some(lease => lease && Date.parse(lease.expiresAt) <= Date.now()))
|
|
79
|
+
throw failed();
|
|
80
|
+
try {
|
|
81
|
+
const identity = config.agentIdentity ? normalizeAgentIdentity(config.agentIdentity) : undefined;
|
|
82
|
+
if (identity?.name !== payload.agentIdentity?.name || identity?.incarnation !== payload.agentIdentity?.incarnation
|
|
83
|
+
|| (identity && identity.name !== config.agent.name)
|
|
84
|
+
|| (config.toolInvocation?.agent && (config.toolInvocation.agent.name !== identity?.name
|
|
85
|
+
|| config.toolInvocation.agent.incarnation !== identity?.incarnation))
|
|
86
|
+
|| (config.toolInvocation && config.toolInvocation.runId !== config.runId))
|
|
87
|
+
throw failed();
|
|
88
|
+
const resolveMcpCapabilities = payload.mcp ? createRemoteMcpRuntimeCapabilities(payload.mcp) : undefined;
|
|
89
|
+
const resolveCustomTools = payload.customTools ? createRemoteCustomTools(payload.customTools) : async () => [];
|
|
90
|
+
const data = payload.data ? createRemoteDataClient({ url: payload.data.url, token: payload.data.token,
|
|
91
|
+
headers: { "x-polpo-sandbox-id": payload.data.sandboxId } }) : null;
|
|
92
|
+
return { data, resolveMcpCapabilities, resolveCustomTools };
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
throw failed();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=runner-capability-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner-capability-bootstrap.js","sourceRoot":"","sources":["../../src/core/runner-capability-bootstrap.ts"],"names":[],"mappings":"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"}
|