@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.
Files changed (76) hide show
  1. package/dist/adapters/composite-spawner.d.ts +1 -0
  2. package/dist/adapters/composite-spawner.d.ts.map +1 -1
  3. package/dist/adapters/composite-spawner.js +3 -0
  4. package/dist/adapters/composite-spawner.js.map +1 -1
  5. package/dist/adapters/in-process-spawner.d.ts +10 -2
  6. package/dist/adapters/in-process-spawner.d.ts.map +1 -1
  7. package/dist/adapters/in-process-spawner.js +9 -7
  8. package/dist/adapters/in-process-spawner.js.map +1 -1
  9. package/dist/adapters/loop-engine.d.ts.map +1 -1
  10. package/dist/adapters/loop-engine.js +510 -491
  11. package/dist/adapters/loop-engine.js.map +1 -1
  12. package/dist/adapters/node-spawner.d.ts +2 -0
  13. package/dist/adapters/node-spawner.d.ts.map +1 -1
  14. package/dist/adapters/node-spawner.js +15 -0
  15. package/dist/adapters/node-spawner.js.map +1 -1
  16. package/dist/adapters/spawn-helpers.d.ts +8 -2
  17. package/dist/adapters/spawn-helpers.d.ts.map +1 -1
  18. package/dist/adapters/spawn-helpers.js +33 -13
  19. package/dist/adapters/spawn-helpers.js.map +1 -1
  20. package/dist/core/deadlock-resolver.d.ts +8 -10
  21. package/dist/core/deadlock-resolver.d.ts.map +1 -1
  22. package/dist/core/deadlock-resolver.js +125 -132
  23. package/dist/core/deadlock-resolver.js.map +1 -1
  24. package/dist/core/index.d.ts +1 -1
  25. package/dist/core/index.d.ts.map +1 -1
  26. package/dist/core/index.js +1 -1
  27. package/dist/core/index.js.map +1 -1
  28. package/dist/core/orchestrator.d.ts +8 -4
  29. package/dist/core/orchestrator.d.ts.map +1 -1
  30. package/dist/core/orchestrator.js +43 -79
  31. package/dist/core/orchestrator.js.map +1 -1
  32. package/dist/core/run-lifecycle.d.ts +11 -1
  33. package/dist/core/run-lifecycle.d.ts.map +1 -1
  34. package/dist/core/run-lifecycle.js +197 -44
  35. package/dist/core/run-lifecycle.js.map +1 -1
  36. package/dist/core/runner-capability-bootstrap.d.ts +19 -0
  37. package/dist/core/runner-capability-bootstrap.d.ts.map +1 -0
  38. package/dist/core/runner-capability-bootstrap.js +98 -0
  39. package/dist/core/runner-capability-bootstrap.js.map +1 -0
  40. package/dist/core/runner.js +10 -0
  41. package/dist/core/runner.js.map +1 -1
  42. package/dist/custom-tools/runtime.d.ts +1 -0
  43. package/dist/custom-tools/runtime.d.ts.map +1 -1
  44. package/dist/custom-tools/runtime.js +1 -0
  45. package/dist/custom-tools/runtime.js.map +1 -1
  46. package/dist/data/index.d.ts +17 -0
  47. package/dist/data/index.d.ts.map +1 -0
  48. package/dist/data/index.js +125 -0
  49. package/dist/data/index.js.map +1 -0
  50. package/dist/index.d.ts +1 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +1 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/sandbox/lease.d.ts +7 -0
  55. package/dist/sandbox/lease.d.ts.map +1 -1
  56. package/dist/sandbox/lease.js +35 -5
  57. package/dist/sandbox/lease.js.map +1 -1
  58. package/dist/server/app.d.ts +6 -1
  59. package/dist/server/app.d.ts.map +1 -1
  60. package/dist/server/app.js +39 -14
  61. package/dist/server/app.js.map +1 -1
  62. package/dist/server/deps.d.ts +5 -4
  63. package/dist/server/deps.d.ts.map +1 -1
  64. package/dist/server/deps.js +0 -7
  65. package/dist/server/deps.js.map +1 -1
  66. package/dist/server/ephemeral-run-store.d.ts +2 -1
  67. package/dist/server/ephemeral-run-store.d.ts.map +1 -1
  68. package/dist/server/ephemeral-run-store.js +14 -1
  69. package/dist/server/ephemeral-run-store.js.map +1 -1
  70. package/dist/server/index.d.ts +1 -1
  71. package/dist/server/index.d.ts.map +1 -1
  72. package/dist/server/index.js +6 -2
  73. package/dist/server/index.js.map +1 -1
  74. package/dist/server/types.d.ts +3 -0
  75. package/dist/server/types.d.ts.map +1 -1
  76. 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
- let finalized = false;
96
- const finalize = async () => {
97
- if (finalized)
98
- return;
99
- finalized = true;
100
- await deps.finalize?.();
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
- ?? (config.resumeState?.steering
106
- ? InMemorySteeringController.fromSnapshot(config.resumeState.steering)
107
- : new InMemorySteeringController());
108
- if (steering && deps.steering && config.resumeState?.steering) {
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
- if (deps.createLogSession) {
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: config.toolInvocation ?? createToolInvocationContext({
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
- await runStore.completeRun(config.runId, "failed", result);
573
+ const requestedStatus = deps.signal?.aborted || steering.signal.aborted ? "killed" : "failed";
420
574
  steering.close();
421
- return { status: "failed", result, spawnError: true };
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 runStore.completeRun(config.runId, status, result);
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
- await runStore.completeRun(config.runId, "failed", result);
499
- return { status: "failed", result };
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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"}