@polpo-ai/node 0.15.143 → 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 +10 -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 +33 -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 -1
- package/dist/core/run-lifecycle.d.ts.map +1 -1
- package/dist/core/run-lifecycle.js +197 -44
- 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/custom-tools/runtime.d.ts +1 -0
- package/dist/custom-tools/runtime.d.ts.map +1 -1
- package/dist/custom-tools/runtime.js +1 -0
- package/dist/custom-tools/runtime.js.map +1 -1
- package/dist/data/index.d.ts +17 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +125 -0
- package/dist/data/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.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 +6 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +39 -14
- 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,6 +454,9 @@ export async function executeRun(config, deps) {
|
|
|
313
454
|
memoryItemStore,
|
|
314
455
|
brainService,
|
|
315
456
|
brainContext,
|
|
457
|
+
data: deps.data === undefined
|
|
458
|
+
? (await import("../data/index.js")).runnerDataClient(config.polpoDir, config.agent.name)
|
|
459
|
+
: deps.data ?? undefined,
|
|
316
460
|
// Per-tenant gateway for the in-process host (undefined for subprocess,
|
|
317
461
|
// which resolves the gateway from sandbox env).
|
|
318
462
|
gatewayConfig: deps.gatewayConfig,
|
|
@@ -330,6 +474,8 @@ export async function executeRun(config, deps) {
|
|
|
330
474
|
shell: deps.shell ?? new NodeShell(),
|
|
331
475
|
checkpointSandboxVolume: deps.checkpointSandboxVolume,
|
|
332
476
|
connectionCapabilityResolver: deps.connectionCapabilityResolver,
|
|
477
|
+
resolveCustomTools: deps.resolveCustomTools,
|
|
478
|
+
resolveMcpCapabilities: deps.resolveMcpCapabilities,
|
|
333
479
|
// Durable turns: resume checkpoint handed over by orphan recovery,
|
|
334
480
|
// and the per-turn checkpoint sink (one RunStore write per turn,
|
|
335
481
|
// best-effort — a flaky store must never fail a healthy run).
|
|
@@ -368,7 +514,14 @@ export async function executeRun(config, deps) {
|
|
|
368
514
|
inject: deps.inject,
|
|
369
515
|
onTranscript: handleTranscript,
|
|
370
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();
|
|
371
523
|
handle = spawnLoopEngine(guardedAgent, guardedTask, config.cwd, spawnCtx);
|
|
524
|
+
finishPreparation();
|
|
372
525
|
if (config.resumeState) {
|
|
373
526
|
actLog.logEvent("resuming", {
|
|
374
527
|
loopName: config.resumeState.loopName,
|
|
@@ -396,17 +549,18 @@ export async function executeRun(config, deps) {
|
|
|
396
549
|
actLog.logEvent("spawned");
|
|
397
550
|
}
|
|
398
551
|
catch (err) {
|
|
552
|
+
finishPreparation();
|
|
399
553
|
const result = errorResult(err);
|
|
400
554
|
actLog.logEvent("error", { message: result.stderr });
|
|
401
555
|
if (guardrailDecisions.length > 0) {
|
|
402
556
|
try {
|
|
403
|
-
await runStore.updateActivity(config.runId, {
|
|
557
|
+
await boundedRunPersistence(() => runStore.updateActivity(config.runId, {
|
|
404
558
|
...initialRecord.activity,
|
|
405
559
|
guardrailDecisions,
|
|
406
560
|
...(guardrailDecisionsTruncated
|
|
407
561
|
? { guardrailDecisionsTruncated: true }
|
|
408
562
|
: {}),
|
|
409
|
-
});
|
|
563
|
+
}));
|
|
410
564
|
}
|
|
411
565
|
catch {
|
|
412
566
|
// The runtime failure remains authoritative when audit persistence fails.
|
|
@@ -416,14 +570,14 @@ export async function executeRun(config, deps) {
|
|
|
416
570
|
await finalize();
|
|
417
571
|
}
|
|
418
572
|
catch { /* preserve the primary spawn error */ }
|
|
419
|
-
|
|
573
|
+
const requestedStatus = deps.signal?.aborted || steering.signal.aborted ? "killed" : "failed";
|
|
420
574
|
steering.close();
|
|
421
|
-
return
|
|
575
|
+
return persistOutcome(requestedStatus, result, true);
|
|
422
576
|
}
|
|
423
577
|
// Activity polling + persistent logging
|
|
424
578
|
const poll = setInterval(async () => {
|
|
425
579
|
try {
|
|
426
|
-
await runStore.updateActivity(config.runId, handle.activity);
|
|
580
|
+
await boundedRunPersistence(() => runStore.updateActivity(config.runId, handle.activity));
|
|
427
581
|
actLog.logActivity({ ...handle.activity });
|
|
428
582
|
}
|
|
429
583
|
catch { /* DB temporarily locked */
|
|
@@ -456,14 +610,14 @@ export async function executeRun(config, deps) {
|
|
|
456
610
|
}
|
|
457
611
|
// Final activity + sessionId flush before marking terminal
|
|
458
612
|
try {
|
|
459
|
-
await runStore.updateActivity(config.runId, handle.activity);
|
|
613
|
+
await boundedRunPersistence(() => runStore.updateActivity(config.runId, handle.activity));
|
|
460
614
|
}
|
|
461
615
|
catch { /* best effort */ }
|
|
462
616
|
actLog.logActivity({ ...handle.activity });
|
|
463
617
|
// Store auto-collected outcomes on the run record
|
|
464
618
|
if (handle.outcomes && handle.outcomes.length > 0) {
|
|
465
619
|
try {
|
|
466
|
-
await runStore.updateOutcomes(config.runId, handle.outcomes);
|
|
620
|
+
await boundedRunPersistence(() => runStore.updateOutcomes(config.runId, handle.outcomes));
|
|
467
621
|
}
|
|
468
622
|
catch { /* best effort */ }
|
|
469
623
|
actLog.logEvent("outcomes", { count: handle.outcomes.length, types: handle.outcomes.map((o) => o.type) });
|
|
@@ -477,8 +631,7 @@ export async function executeRun(config, deps) {
|
|
|
477
631
|
await finalize();
|
|
478
632
|
const status = aborted ? "killed" : (result.exitCode === 0 ? "completed" : "failed");
|
|
479
633
|
actLog.logEvent("done", { status, exitCode: result.exitCode, duration: result.duration });
|
|
480
|
-
await
|
|
481
|
-
return { status, result };
|
|
634
|
+
return await persistOutcome(status, result);
|
|
482
635
|
}
|
|
483
636
|
catch (err) {
|
|
484
637
|
clearInterval(poll);
|
|
@@ -490,13 +643,13 @@ export async function executeRun(config, deps) {
|
|
|
490
643
|
err = finalizeError;
|
|
491
644
|
}
|
|
492
645
|
try {
|
|
493
|
-
await runStore.updateActivity(config.runId, handle.activity);
|
|
646
|
+
await boundedRunPersistence(() => runStore.updateActivity(config.runId, handle.activity));
|
|
494
647
|
}
|
|
495
648
|
catch { /* best effort */ }
|
|
496
649
|
actLog.logEvent("error", { message: err instanceof Error ? err.message : String(err) });
|
|
497
650
|
const result = errorResult(err);
|
|
498
|
-
|
|
499
|
-
return
|
|
651
|
+
const requestedStatus = aborted ? "killed" : "failed";
|
|
652
|
+
return await persistOutcome(requestedStatus, result);
|
|
500
653
|
}
|
|
501
654
|
finally {
|
|
502
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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"}
|