@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.
Files changed (64) 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 +9 -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 +31 -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 -2
  33. package/dist/core/run-lifecycle.d.ts.map +1 -1
  34. package/dist/core/run-lifecycle.js +197 -45
  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/sandbox/lease.d.ts +7 -0
  43. package/dist/sandbox/lease.d.ts.map +1 -1
  44. package/dist/sandbox/lease.js +35 -5
  45. package/dist/sandbox/lease.js.map +1 -1
  46. package/dist/server/app.d.ts +4 -1
  47. package/dist/server/app.d.ts.map +1 -1
  48. package/dist/server/app.js +28 -12
  49. package/dist/server/app.js.map +1 -1
  50. package/dist/server/deps.d.ts +5 -4
  51. package/dist/server/deps.d.ts.map +1 -1
  52. package/dist/server/deps.js +0 -7
  53. package/dist/server/deps.js.map +1 -1
  54. package/dist/server/ephemeral-run-store.d.ts +2 -1
  55. package/dist/server/ephemeral-run-store.d.ts.map +1 -1
  56. package/dist/server/ephemeral-run-store.js +14 -1
  57. package/dist/server/ephemeral-run-store.js.map +1 -1
  58. package/dist/server/index.d.ts +1 -1
  59. package/dist/server/index.d.ts.map +1 -1
  60. package/dist/server/index.js +6 -2
  61. package/dist/server/index.js.map +1 -1
  62. package/dist/server/types.d.ts +3 -0
  63. package/dist/server/types.d.ts.map +1 -1
  64. 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,7 +454,9 @@ export async function executeRun(config, deps) {
313
454
  memoryItemStore,
314
455
  brainService,
315
456
  brainContext,
316
- data: deps.data ?? (await import("../data/index.js")).runnerDataClient(config.polpoDir, config.agent.name),
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
- await runStore.completeRun(config.runId, "failed", result);
573
+ const requestedStatus = deps.signal?.aborted || steering.signal.aborted ? "killed" : "failed";
421
574
  steering.close();
422
- return { status: "failed", result, spawnError: true };
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 runStore.completeRun(config.runId, status, result);
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
- await runStore.completeRun(config.runId, "failed", result);
500
- return { status: "failed", result };
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":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D,OAAO,EACL,0BAA0B,GAE3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,EACL,2BAA2B,EAC3B,qCAAqC,EACrC,gCAAgC,GACjC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,+BAA+B,EAC/B,iCAAiC,EACjC,oCAAoC,GAKrC,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAE7C,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAClF,CAAC;AAED,mEAAmE;AACnE,MAAM,OAAO,cAAc;IACjB,OAAO,CAAU;IACjB,YAAY,GAAG,EAAE,CAAC;IAE1B,YAAY,QAAgB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAE,GAAW;QACzF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACjG,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,wEAAwE;YACxE,6DAA6D;YAC7D,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,WAAW,CAAC,QAAiC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,IAAI,CAAC,YAAY;YAAE,OAAO;QAC3C,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,2FAA2F;IAC3F,aAAa,CAAC,KAA8B;QAC1C,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,4BAA4B;IAC5B,QAAQ,CAAC,KAAa,EAAE,IAA8B;QACpD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAEO,KAAK,CAAC,GAA4B;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC;YAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACxG,CAAC;CACF;AAkGD,SAAS,kBAAkB,CAAC,YAA2C;IACrE,IAAI,CAAC,YAAY,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACnC,oBAAoB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpC,CACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAoB,EAAE,IAAoB;IACzE,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QACzC,IAAI,SAAS;YAAE,OAAO;QACtB,SAAS,GAAG,IAAI,CAAC;QACjB,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC1B,CAAC,CAAC;IACF,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;WACzB,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ;YAC9B,CAAC,CAAC,0BAA0B,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;YACtE,CAAC,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;IACxC,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC;QAC9D,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,UAAyC,CAAC;IAC9C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,mBAAmB,GAAG,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5E,MAAM,aAAa,GAAc;QAC/B,EAAE,EAAE,MAAM,CAAC,KAAK;QAChB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG;QACH,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;QAC5B,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;QACd,0EAA0E;QAC1E,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,gEAAgE;QAChE,4DAA4D;QAC5D,kEAAkE;QAClE,uDAAuD;QACvD,QAAQ,EAAE;YACR,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG;YAChF,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE;QACD,UAAU;QACV,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;KAChD,CAAC;IACF,kFAAkF;IAClF,MAAM,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAEzD,IAAI,MAAmB,CAAC;IACxB,MAAM,kBAAkB,GAAiC,EAAE,CAAC;IAC5D,IAAI,2BAA2B,GAAG,KAAK,CAAC;IACxC,IAAI,CAAC;QACH,kEAAkE;QAClE,+CAA+C;QAC/C,IAAI,UAAU,GAA2B,IAAI,CAAC,UAAU,CAAC;QACzD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC;gBAAC,UAAU,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,WAAW,GAAgB,IAAI,CAAC,WAAW,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1F,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;eACvC,IAAI,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,gCAAgC,CACnD,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,YAAY,CACjD,CAAC;QACF,IAAI,qBAAqB,GAAG,YAAY,KAAK,SAAS;YACpD,CAAC,CAAC,qCAAqC,CAAC,MAAM,CAAC,qBAAqB,CAAC;YACrE,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,IAAI,qBAAqB,GAAG,MAAM,CAAC,cAAc,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YACpF,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,uBAAuB,CAAC;gBACtB,OAAO,EAAE,MAAM,CAAC,GAAG;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,UAAU,EAAE,OAAO,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,UAAU,EAAE,OAAO,CAAC;YAC1D,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;YAC1B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;YAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;gBAClB,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACL,MAAM,gBAAgB,GAAG,CAAC,KAA8B,EAAE,EAAE;YAC1D,yEAAyE;YACzE,8DAA8D;YAC9D,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,2CAA2C,CAAC,CAAC;YACpF,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5B,2DAA2D;YAC3D,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,sBAAsB;oBAC/D,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,wBAAwB;wBACzD,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAqB;4BACnD,CAAC,CAAC,cAAc,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC5C,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;qBAC7F,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,kCAAkC;YACxD,CAAC;QACH,CAAC,CAAC;QACF,MAAM,mBAAmB,GAAG,CAAC,KAAiC,EAAE,EAAE;YAChE,IAAI,kBAAkB,CAAC,MAAM,GAAG,gCAAgC,EAAE,CAAC;gBACjE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,2BAA2B,GAAG,IAAI,CAAC;YACrC,CAAC;YACD,gBAAgB,CAAC;gBACf,IAAI,EAAE,oBAAoB;gBAC1B,KAAK;aACN,CAAC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;eAC7C,kCAAkC,CACnC,MAAM,CAAC,UAAU,EACjB,EAAE,UAAU,EAAE,mBAAmB,EAAE,CACpC,CAAC;QACJ,IAAI,kBAAkB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;YAC/C,MAAM,OAAO,GAAG;gBACd,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;gBACxB,OAAO,EAAE,MAAe;gBACxB,MAAM,EAAE,MAAe;gBACvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;oBAClB,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;oBACpD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC;gBACrD,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,WAAW;gBAClB,IAAI;gBACJ,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,IACE,CAAC,YAAY,CAAC,KAAK;mBAChB,OAAO,YAAY,CAAC,KAAK,KAAK,QAAQ;mBACtC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,EAC3C,CAAC;gBACD,MAAM,IAAI,qBAAqB,CAC7B,kDAAkD,EAClD,YAAY,CAAC,SAAS,CACvB,CAAC;YACJ,CAAC;YACD,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;YAEjC,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC;gBACvD,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE;oBACL,qBAAqB;oBACrB,cAAc,EAAE,qBAAqB;iBACtC;gBACD,IAAI;gBACJ,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACtE,MAAM,IAAI,qBAAqB,CAC7B,oDAAoD,EACpD,cAAc,CAAC,SAAS,CACzB,CAAC;YACJ,CAAC;YACD,qBAAqB,GAAG,qCAAqC,CAC3D,cAAc,CAAC,KAAK,CAAC,qBAAqB,CAC3C,CAAC;YACF,qBAAqB,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC;YAE5D,MAAM,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC;gBAC1D,KAAK,EAAE,iBAAiB;gBACxB,KAAK,EAAE;oBACL,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,WAAW;oBACjB,qBAAqB;oBACrB,cAAc,EAAE,qBAAqB;iBACtC;gBACD,IAAI;gBACJ,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,IACE,CAAC,iBAAiB,CAAC,KAAK;mBACrB,OAAO,iBAAiB,CAAC,KAAK,KAAK,QAAQ;mBAC3C,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK;mBAC9B,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ;mBACjD,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI;mBACxD,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI;mBAC7B,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;mBAChD,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,EACrD,CAAC;gBACD,MAAM,IAAI,qBAAqB,CAC7B,uDAAuD,EACvD,iBAAiB,CAAC,SAAS,CAC5B,CAAC;YACJ,CAAC;YACD,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC;YAC7C,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3C,qBAAqB,GAAG,qCAAqC,CAC3D,iBAAiB,CAAC,KAAK,CAAC,qBAAqB,CAC9C,CAAC;YACF,qBAAqB,GAAG,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC;QACjE,CAAC;QACD,MAAM,wBAAwB,GAAG,iCAAiC,CAChE,MAAM,CAAC,UAAU,EACjB,EAAE,UAAU,EAAE,mBAAmB,EAAE,CACpC,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB;eAC3C,CAAC,MAAM,CAAC,aAAa,KAAK,OAAO,IAAI,wBAAwB;gBAC9D,CAAC,CAAC,oCAAoC,CAAC,wBAAwB,CAAC;gBAChE,CAAC,CAAC,wBAAwB,CAAC,CAAC;QAChC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;eACvC,+BAA+B,CAChC,MAAM,CAAC,UAAU,EACjB,EAAE,UAAU,EAAE,mBAAmB,EAAE,CACpC,CAAC;QAEJ,MAAM,QAAQ,GAAG;YACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,2BAA2B,CAAC;gBACnE,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,MAAM;aAChB,CAAC;YACF,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,UAAU;YACV,WAAW;YACX,eAAe;YACf,YAAY;YACZ,YAAY;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1G,wEAAwE;YACxE,gDAAgD;YAChD,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY;YACZ,qBAAqB;YACrB,iBAAiB;YACjB,wEAAwE;YACxE,oEAAoE;YACpE,eAAe;YACf,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;YAC1D,mBAAmB,EAAE,MAAM,CAAC,aAAa,IAAI,SAAS;YACtD,kEAAkE;YAClE,wCAAwC;YACxC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,cAAc,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,SAAS,EAAE;YACpC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,4BAA4B,EAAE,IAAI,CAAC,4BAA4B;YAC/D,mEAAmE;YACnE,iEAAiE;YACjE,8DAA8D;YAC9D,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ;YACR,oEAAoE;YACpE,iEAAiE;YACjE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB;YAC/D,gBAAgB,EAAE,KAAK,EAAE,KAAsB,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/B,CAAC;YACD,6EAA6E;YAC7E,8EAA8E;YAC9E,yEAAyE;YACzE,6CAA6C;YAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACnB,CAAC,CAAC,CAAC,KAAwF,EAAE,EAAE;oBAC3F,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW;4BACrC,CAAC,CAAC,iBAAiB;4BACnB,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;gCAC3B,CAAC,CAAC,kBAAkB;gCACpB,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB;oCACjC,CAAC,CAAC,kBAAkB;oCACpB,CAAC,CAAC,YAAY,CAAC;wBACrB,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC7C,CAAC;oBAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;gBACtC,CAAC;gBACH,CAAC,CAAC,SAAS;YACb,sEAAsE;YACtE,sEAAsE;YACtE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,gBAAgB;SAC/B,CAAC;QACF,MAAM,GAAG,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC1E,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE;gBAC1B,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ;gBACrC,QAAQ,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;QACD,qEAAqE;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,qEAAqE;QACrE,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,mBAAmB,CAAC;QAClD,CAAC;QACD,IAAI,kBAAkB,IAAI,iBAAiB,IAAI,eAAe,EAAE,CAAC;YAC/D,MAAM,CAAC,QAAQ,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC1D,CAAC;QACD,IAAI,2BAA2B,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,GAAG,IAAI,CAAC;QACrD,CAAC;QACD,iFAAiF;QACjF,uEAAuE;QACvE,6DAA6D;QAC7D,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE;oBAC1C,GAAG,aAAa,CAAC,QAAQ;oBACzB,kBAAkB;oBAClB,GAAG,CAAC,2BAA2B;wBAC7B,CAAC,CAAC,EAAE,2BAA2B,EAAE,IAAI,EAAE;wBACvC,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,0EAA0E;YAC5E,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,QAAQ,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;QAC1E,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IAED,wCAAwC;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC,CAAC,2BAA2B;QACrC,CAAC;IACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAErB,gEAAgE;IAChE,iDAAiD;IACjD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;QAAE,OAAO,EAAE,CAAC;;QAC/B,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IACxC,IAAI,QAAQ,EAAE,MAAM,CAAC,OAAO;QAAE,eAAe,EAAE,CAAC;;QAC3C,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,IAAI,2BAA2B,EAAE,CAAC;YACtE,MAAM,CAAC,QAAQ,CAAC,2BAA2B,GAAG,IAAI,CAAC;QACrD,CAAC;QACD,2DAA2D;QAC3D,IAAI,CAAC;YAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACjG,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE3C,kDAAkD;QAClD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC;gBAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACjG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjH,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,yCAAyC,CAAC;QAC1G,CAAC;QACD,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,MAAM,GAAc,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1F,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC;YAAC,MAAM,QAAQ,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YAC/C,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;gBAAE,GAAG,GAAG,aAAa,CAAC;QACnD,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACjG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,MAAM,QAAQ,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,uDAAuD,CAAC,CAAC;QAC3F,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,QAAQ,EAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC/D,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
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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"}