@tangle-network/agent-runtime 2.3.14 → 3.0.2

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 (78) hide show
  1. package/dist/{activation-B8dLwJj6.d.ts → activation-BzC4bbcR.d.ts} +2 -2
  2. package/dist/{activation-BzNeFJDB.js → activation-DJsJdvb7.js} +4 -4
  3. package/dist/{activation-BzNeFJDB.js.map → activation-DJsJdvb7.js.map} +1 -1
  4. package/dist/agent.d.ts +1 -1
  5. package/dist/agent.js +3 -3
  6. package/dist/{bundle-DhV73H6U.js → bundle-DYwJ3alD.js} +2 -2
  7. package/dist/{bundle-DhV73H6U.js.map → bundle-DYwJ3alD.js.map} +1 -1
  8. package/dist/candidate-execution/index.d.ts +3 -3
  9. package/dist/candidate-execution/index.js +5 -5
  10. package/dist/{coordination-manager-BluavEgY.js → coordination-manager-CXlabreV.js} +4 -4
  11. package/dist/{coordination-manager-BluavEgY.js.map → coordination-manager-CXlabreV.js.map} +1 -1
  12. package/dist/{delegate-Bzpvzgl_.js → delegate-DgMQo-K8.js} +2 -2
  13. package/dist/{delegate-Bzpvzgl_.js.map → delegate-DgMQo-K8.js.map} +1 -1
  14. package/dist/durable.d.ts +1 -1
  15. package/dist/durable.js +9 -9
  16. package/dist/{graph-DHjdkdcj.js → graph-DSVXDbSf.js} +7 -7
  17. package/dist/graph-DSVXDbSf.js.map +1 -0
  18. package/dist/{improve-D9A79N5a.js → improve-CMSrJ22U.js} +7 -7
  19. package/dist/{improve-D9A79N5a.js.map → improve-CMSrJ22U.js.map} +1 -1
  20. package/dist/index.d.ts +4 -4
  21. package/dist/index.js +10 -10
  22. package/dist/intelligence.d.ts +4 -4
  23. package/dist/intelligence.js +7 -7
  24. package/dist/kernel.d.ts +3 -3
  25. package/dist/kernel.js +12 -12
  26. package/dist/{loop-runner-D9fuOb69.d.ts → loop-runner-BU5HX1Y7.d.ts} +2 -2
  27. package/dist/{loop-runner-DqvZtCe5.js → loop-runner-De7RIY_2.js} +2 -2
  28. package/dist/{loop-runner-DqvZtCe5.js.map → loop-runner-De7RIY_2.js.map} +1 -1
  29. package/dist/loop-runner-bin.d.ts +1 -1
  30. package/dist/loop-runner-bin.js +1 -1
  31. package/dist/mcp/bin.js +3 -3
  32. package/dist/mcp/index.d.ts +1 -1
  33. package/dist/mcp/index.js +6 -6
  34. package/dist/{prepare-DrHOZFJy.js → prepare-BfaOus1-.js} +3 -3
  35. package/dist/{prepare-DrHOZFJy.js.map → prepare-BfaOus1-.js.map} +1 -1
  36. package/dist/{profile-BzzmKuIX.js → profile-CvucOo-Q.js} +2 -2
  37. package/dist/{profile-BzzmKuIX.js.map → profile-CvucOo-Q.js.map} +1 -1
  38. package/dist/profiles.d.ts +1 -1
  39. package/dist/{protected-model-port-IKqhTypD.d.ts → protected-model-port-DEsNIYi1.d.ts} +2 -2
  40. package/dist/{provision-supervisor-DP5U58V4.js → provision-supervisor-BoOIYwov.js} +5 -5
  41. package/dist/{provision-supervisor-DP5U58V4.js.map → provision-supervisor-BoOIYwov.js.map} +1 -1
  42. package/dist/{run-cancellation-BxoFCpJ_.js → run-cancellation-3tqWES3A.js} +2 -2
  43. package/dist/{run-cancellation-BxoFCpJ_.js.map → run-cancellation-3tqWES3A.js.map} +1 -1
  44. package/dist/{runtime-LY1ovtim.js → runtime-1dL7Te6f.js} +54 -30
  45. package/dist/runtime-1dL7Te6f.js.map +1 -0
  46. package/dist/{scope-DRaBilEX.js → scope-CwhYLg6s.js} +2550 -2487
  47. package/dist/scope-CwhYLg6s.js.map +1 -0
  48. package/dist/{search-executor-DLo_9jUv.js → search-executor-5d-avuUt.js} +4 -4
  49. package/dist/{search-executor-DLo_9jUv.js.map → search-executor-5d-avuUt.js.map} +1 -1
  50. package/dist/{server-CeQ2alK3.js → server-DtAPLLu3.js} +4 -4
  51. package/dist/{server-CeQ2alK3.js.map → server-DtAPLLu3.js.map} +1 -1
  52. package/dist/{structural-rollout-BIjjZ_XX.js → structural-rollout-Dk0NlRpZ.js} +4 -4
  53. package/dist/{structural-rollout-BIjjZ_XX.js.map → structural-rollout-Dk0NlRpZ.js.map} +1 -1
  54. package/dist/{supervise-BdAUXtjZ.js → supervise-DYtL1RvC.js} +6 -6
  55. package/dist/{supervise-BdAUXtjZ.js.map → supervise-DYtL1RvC.js.map} +1 -1
  56. package/dist/{supervision-discovery-Da5zebY2.js → supervision-discovery-EtxsGdsk.js} +3 -3
  57. package/dist/{supervision-discovery-Da5zebY2.js.map → supervision-discovery-EtxsGdsk.js.map} +1 -1
  58. package/dist/{supervisor-3JHXy3tz.js → supervisor-CORJv7-r.js} +222 -147
  59. package/dist/supervisor-CORJv7-r.js.map +1 -0
  60. package/dist/testing.d.ts +1 -1
  61. package/dist/testing.js +13 -13
  62. package/dist/{top-web-DK6lTMHG.js → top-web-B0a7QfaZ.js} +551 -149
  63. package/dist/top-web-B0a7QfaZ.js.map +1 -0
  64. package/dist/tui/bin.js +4 -3
  65. package/dist/tui/bin.js.map +1 -1
  66. package/dist/tui/index.d.ts +203 -3
  67. package/dist/tui/index.js +3 -3
  68. package/dist/{types-S3RbyJ4x.d.ts → types-QS0ItMiE.d.ts} +151 -21
  69. package/dist/{workspace-streams-Dep2L6XD.js → workspace-streams-COSTjQLW.js} +85 -88
  70. package/dist/workspace-streams-COSTjQLW.js.map +1 -0
  71. package/dist/{workspace-streams-Dq2Fzk3c.d.ts → workspace-streams-DbKiDOWA.d.ts} +9 -3
  72. package/package.json +2 -1
  73. package/dist/graph-DHjdkdcj.js.map +0 -1
  74. package/dist/runtime-LY1ovtim.js.map +0 -1
  75. package/dist/scope-DRaBilEX.js.map +0 -1
  76. package/dist/supervisor-3JHXy3tz.js.map +0 -1
  77. package/dist/top-web-DK6lTMHG.js.map +0 -1
  78. package/dist/workspace-streams-Dep2L6XD.js.map +0 -1
@@ -689,6 +689,73 @@ function deepFreezeCandidate(value, seen = /* @__PURE__ */ new Set()) {
689
689
  for (const child of Object.values(value)) deepFreezeCandidate(child, seen);
690
690
  return Object.freeze(value);
691
691
  }
692
+ // src/candidate-execution/artifact-streams.ts
693
+ /** Verify the complete stream, including its final digest, before accepting its consumer's result. */
694
+ async function* verifiedArtifactChunks(artifact, port, signal) {
695
+ signal?.throwIfAborted();
696
+ if (!("content" in artifact) && !port.readStream) throw new Error("streaming workspace artifacts require readStream");
697
+ const chunks = "content" in artifact ? [Buffer.from(artifact.content, "base64")] : port.readStream(artifact, { signal });
698
+ const hash = createHash("sha256");
699
+ let byteLength = 0;
700
+ for await (const chunk of chunks) {
701
+ signal?.throwIfAborted();
702
+ if (!(chunk instanceof Uint8Array)) throw new Error("candidate artifact emitted a non-byte chunk");
703
+ byteLength += chunk.byteLength;
704
+ if (byteLength > artifact.byteLength) throw new Error("candidate artifact exceeds its declared length");
705
+ hash.update(chunk);
706
+ yield chunk;
707
+ }
708
+ signal?.throwIfAborted();
709
+ if (byteLength !== artifact.byteLength || `sha256:${hash.digest("hex")}` !== artifact.sha256) throw new Error("candidate artifact failed digest or length verification");
710
+ }
711
+ const selfVerifyingPuts = /* @__PURE__ */ new WeakMap();
712
+ /**
713
+ * Declare that this exact putStream resolves only after reading its stored object back from where
714
+ * this exact readStream reads it, and matching its digest and length. The claim belongs to the
715
+ * pair, so a wrapper that replaces either function never inherits it.
716
+ */
717
+ function markPutStreamVerified(putStream, readStream) {
718
+ selfVerifyingPuts.set(putStream, readStream);
719
+ }
720
+ /** Whether a port's putStream already read back what its readStream will return. */
721
+ function putStreamVerifiedBy(port) {
722
+ return port.putStream !== void 0 && port.readStream !== void 0 && selfVerifyingPuts.get(port.putStream) === port.readStream;
723
+ }
724
+ /** Stream evaluator evidence into its existing store and verify durable readback before returning. */
725
+ async function persistCandidateOutputArtifactStream(port, input) {
726
+ if (!port.putStream || !port.readStream) throw new Error("streaming workspace persistence requires putStream and readStream");
727
+ input.signal?.throwIfAborted();
728
+ const hash = createHash("sha256");
729
+ let byteLength = 0;
730
+ let consumed = false;
731
+ async function* checked() {
732
+ for await (const chunk of input.chunks) {
733
+ input.signal?.throwIfAborted();
734
+ if (!(chunk instanceof Uint8Array)) throw new Error("candidate artifact emitted a non-byte chunk");
735
+ byteLength += chunk.byteLength;
736
+ if (byteLength > input.maxBytes) throw new Error("candidate workspace archive exceeds maxArchiveBytes");
737
+ hash.update(chunk);
738
+ yield chunk;
739
+ }
740
+ consumed = true;
741
+ input.signal?.throwIfAborted();
742
+ }
743
+ const chunks = checked();
744
+ try {
745
+ const ref = agentCandidateArtifactRefSchema.parse(await port.putStream({
746
+ executionId: input.executionId,
747
+ purpose: input.purpose,
748
+ chunks,
749
+ ...input.signal ? { signal: input.signal } : {}
750
+ }));
751
+ input.signal?.throwIfAborted();
752
+ if (!consumed || ref.sha256 !== `sha256:${hash.digest("hex")}` || ref.byteLength !== byteLength) throw new Error("candidate output locator does not identify the submitted bytes");
753
+ if (!putStreamVerifiedBy(port)) for await (const _chunk of verifiedArtifactChunks(ref, port, input.signal));
754
+ return immutableCandidateValue(ref);
755
+ } finally {
756
+ await chunks.return(void 0);
757
+ }
758
+ }
692
759
  // src/candidate-execution/artifacts.ts
693
760
  function artifactCacheKey(artifact) {
694
761
  return `${artifact.sha256}:${artifact.byteLength}`;
@@ -1300,8 +1367,10 @@ function assertWorkspaceFilesWithinLimits(files, limits) {
1300
1367
  assertWorkspacePathOrder(path, previousPath, observedPaths, "candidate workspace paths must be unique and sorted");
1301
1368
  previousPath = path;
1302
1369
  if (!isWorkspaceFileMode(file.mode)) throw new Error(`candidate workspace file has unsupported mode: ${path}`);
1303
- if (file.bytes.byteLength > limits.maxFileBytes) throw new Error(`candidate workspace file exceeds maxFileBytes: ${path}`);
1304
- totalBytes += file.bytes.byteLength;
1370
+ if ("bytes" in file && "byteLength" in file) throw new Error(`candidate workspace file has ambiguous length: ${path}`);
1371
+ const byteLength = "bytes" in file ? file.bytes.byteLength : file.byteLength;
1372
+ if (!Number.isSafeInteger(byteLength) || byteLength < 0 || byteLength > limits.maxFileBytes) throw new Error(`candidate workspace file exceeds maxFileBytes: ${path}`);
1373
+ totalBytes += byteLength;
1305
1374
  if (totalBytes > limits.maxTotalFileBytes) throw new Error("candidate workspace exceeds maxTotalFileBytes");
1306
1375
  }
1307
1376
  }
@@ -1406,73 +1475,6 @@ function workspaceTarHeader(name, mode, size) {
1406
1475
  gname: ""
1407
1476
  };
1408
1477
  }
1409
- // src/candidate-execution/artifact-streams.ts
1410
- /** Verify the complete stream, including its final digest, before accepting its consumer's result. */
1411
- async function* verifiedArtifactChunks(artifact, port, signal) {
1412
- signal?.throwIfAborted();
1413
- if (!("content" in artifact) && !port.readStream) throw new Error("streaming workspace artifacts require readStream");
1414
- const chunks = "content" in artifact ? [Buffer.from(artifact.content, "base64")] : port.readStream(artifact, { signal });
1415
- const hash = createHash("sha256");
1416
- let byteLength = 0;
1417
- for await (const chunk of chunks) {
1418
- signal?.throwIfAborted();
1419
- if (!(chunk instanceof Uint8Array)) throw new Error("candidate artifact emitted a non-byte chunk");
1420
- byteLength += chunk.byteLength;
1421
- if (byteLength > artifact.byteLength) throw new Error("candidate artifact exceeds its declared length");
1422
- hash.update(chunk);
1423
- yield chunk;
1424
- }
1425
- signal?.throwIfAborted();
1426
- if (byteLength !== artifact.byteLength || `sha256:${hash.digest("hex")}` !== artifact.sha256) throw new Error("candidate artifact failed digest or length verification");
1427
- }
1428
- const selfVerifyingPuts = /* @__PURE__ */ new WeakMap();
1429
- /**
1430
- * Declare that this exact putStream resolves only after reading its stored object back from where
1431
- * this exact readStream reads it, and matching its digest and length. The claim belongs to the
1432
- * pair, so a wrapper that replaces either function never inherits it.
1433
- */
1434
- function markPutStreamVerified(putStream, readStream) {
1435
- selfVerifyingPuts.set(putStream, readStream);
1436
- }
1437
- /** Whether a port's putStream already read back what its readStream will return. */
1438
- function putStreamVerifiedBy(port) {
1439
- return port.putStream !== void 0 && port.readStream !== void 0 && selfVerifyingPuts.get(port.putStream) === port.readStream;
1440
- }
1441
- /** Stream evaluator evidence into its existing store and verify durable readback before returning. */
1442
- async function persistCandidateOutputArtifactStream(port, input) {
1443
- if (!port.putStream || !port.readStream) throw new Error("streaming workspace persistence requires putStream and readStream");
1444
- input.signal?.throwIfAborted();
1445
- const hash = createHash("sha256");
1446
- let byteLength = 0;
1447
- let consumed = false;
1448
- async function* checked() {
1449
- for await (const chunk of input.chunks) {
1450
- input.signal?.throwIfAborted();
1451
- if (!(chunk instanceof Uint8Array)) throw new Error("candidate artifact emitted a non-byte chunk");
1452
- byteLength += chunk.byteLength;
1453
- if (byteLength > input.maxBytes) throw new Error("candidate workspace archive exceeds maxArchiveBytes");
1454
- hash.update(chunk);
1455
- yield chunk;
1456
- }
1457
- consumed = true;
1458
- input.signal?.throwIfAborted();
1459
- }
1460
- const chunks = checked();
1461
- try {
1462
- const ref = agentCandidateArtifactRefSchema.parse(await port.putStream({
1463
- executionId: input.executionId,
1464
- purpose: input.purpose,
1465
- chunks,
1466
- ...input.signal ? { signal: input.signal } : {}
1467
- }));
1468
- input.signal?.throwIfAborted();
1469
- if (!consumed || ref.sha256 !== `sha256:${hash.digest("hex")}` || ref.byteLength !== byteLength) throw new Error("candidate output locator does not identify the submitted bytes");
1470
- if (!putStreamVerifiedBy(port)) for await (const _chunk of verifiedArtifactChunks(ref, port, input.signal));
1471
- return immutableCandidateValue(ref);
1472
- } finally {
1473
- await chunks.return(void 0);
1474
- }
1475
- }
1476
1478
  // src/candidate-execution/git-materialize.ts
1477
1479
  async function verifyCandidateCode(code, repositories, patchBytes) {
1478
1480
  if (code.kind === "disabled") return void 0;
@@ -2306,15 +2308,17 @@ async function readAgentCandidateWorkspaceArtifactFiles(input) {
2306
2308
  await consumeWorkspaceArtifacts(input, void 0, selected);
2307
2309
  return new Map([...selected].map(([path, chunks]) => [path, Buffer.concat(chunks)]));
2308
2310
  }
2309
- /** Restore regular-file artifacts into an empty destination, publishing only after complete verification. */
2311
+ /** Restore regular files into an empty destination after complete verification; paths selects a subset. */
2310
2312
  async function materializeAgentCandidateWorkspaceFromArtifacts(input) {
2311
2313
  input.signal?.throwIfAborted();
2312
2314
  if (!input.artifacts.readStream) throw new Error("streaming workspace artifacts require readStream");
2315
+ const paths = input.paths === void 0 ? void 0 : new Set(input.paths);
2316
+ if (paths && paths.size !== input.paths?.length) throw new Error("workspace selection must name unique manifest files");
2313
2317
  const destination = resolve(input.destination);
2314
2318
  await prepareEmptyDestination(destination);
2315
2319
  const staging = await mkdtemp(`${destination}.materializing-`);
2316
2320
  try {
2317
- await consumeWorkspaceArtifacts(input, staging);
2321
+ await consumeWorkspaceArtifacts(input, staging, void 0, paths);
2318
2322
  input.signal?.throwIfAborted();
2319
2323
  await rename(staging, destination);
2320
2324
  } catch (error) {
@@ -2325,13 +2329,17 @@ async function materializeAgentCandidateWorkspaceFromArtifacts(input) {
2325
2329
  throw error;
2326
2330
  }
2327
2331
  }
2328
- async function consumeWorkspaceArtifacts(input, destination, selected) {
2332
+ async function consumeWorkspaceArtifacts(input, destination, selected, paths) {
2329
2333
  const { artifacts, signal } = input;
2330
2334
  const snapshot = deepFreezeCandidate(structuredClone(input.snapshot));
2331
2335
  signal?.throwIfAborted();
2332
2336
  if (!artifacts.readStream) throw new Error("streaming workspace artifacts require readStream");
2333
2337
  const limits = workspaceLimits(input.limits);
2334
2338
  validateManifest(snapshot.material, limits);
2339
+ if (paths) {
2340
+ const files = new Set(snapshot.material.files.map((file) => file.path));
2341
+ if ([...paths].some((path) => !files.has(path))) throw new Error("workspace selection must name unique manifest files");
2342
+ }
2335
2343
  if (snapshot.archive.byteLength > limits.maxArchiveBytes) throw new Error("candidate workspace archive exceeds maxArchiveBytes");
2336
2344
  const manifest = canonicalCandidateBytes$1(snapshot.material);
2337
2345
  verifyBytes(manifest, snapshot.manifest.sha256, snapshot.manifest.byteLength, "candidate workspace manifest");
@@ -2353,7 +2361,7 @@ async function consumeWorkspaceArtifacts(input, destination, selected) {
2353
2361
  signal?.throwIfAborted();
2354
2362
  const expected = snapshot.material.files[index++];
2355
2363
  if (!expected || entry.header.type !== "file" || entry.header.name !== `workspace/${expected.path}` || entry.header.mode !== expected.mode || entry.header.size !== expected.byteLength) throw new Error("candidate workspace archive does not match its snapshot manifest");
2356
- const file = destination ? await openDestination(destination, expected.path) : void 0;
2364
+ const file = destination && (!paths || paths.has(expected.path)) ? await openDestination(destination, expected.path) : void 0;
2357
2365
  try {
2358
2366
  async function* checked() {
2359
2367
  const hash = createHash("sha256");
@@ -2467,19 +2475,8 @@ async function digestChunks(chunks, maxBytes, signal) {
2467
2475
  };
2468
2476
  }
2469
2477
  function validateManifest(material, limits) {
2470
- if (material.kind !== "agent-candidate-workspace-manifest" || material.files.length > limits.maxFiles) throw new Error("candidate workspace exceeds maxFiles");
2471
- let total = 0;
2472
- let previous;
2473
- const paths = /* @__PURE__ */ new Set();
2474
- for (const file of material.files) {
2475
- safeArchivePath(file.path, limits.maxPathBytes);
2476
- assertWorkspacePathOrder(file.path, previous, paths, "candidate workspace paths must be unique and sorted");
2477
- previous = file.path;
2478
- if (!Number.isSafeInteger(file.mode) || file.mode < 0 || file.mode > 511) throw new Error("candidate workspace file has unsupported mode");
2479
- if (!Number.isSafeInteger(file.byteLength) || file.byteLength < 0 || file.byteLength > limits.maxFileBytes) throw new Error("candidate workspace file exceeds maxFileBytes");
2480
- total += file.byteLength;
2481
- if (total > limits.maxTotalFileBytes) throw new Error("candidate workspace exceeds maxTotalFileBytes");
2482
- }
2478
+ if (material.kind !== "agent-candidate-workspace-manifest") throw new Error("candidate workspace has an invalid manifest kind");
2479
+ assertWorkspaceFilesWithinLimits(material.files, limits);
2483
2480
  }
2484
2481
  async function* oneChunk(bytes) {
2485
2482
  yield bytes;
@@ -2487,6 +2484,6 @@ async function* oneChunk(bytes) {
2487
2484
  function asError(error) {
2488
2485
  return error instanceof Error ? error : new Error(String(error));
2489
2486
  }
2490
- export { mapWithConcurrency as $, verifyWorkspaceSnapshotArtifacts as A, hasControlCharacter as B, candidateWorkspaceManifest as C, checkInIdleMs as Ct, verifyBytes as D, teardownSurfaces as Dt, readVerifiedArtifact as E, teardownExecutor as Et, embeddedCandidateArtifact as F, cloneSpend as G, addSpend as H, immutableCandidateValue as I, errorMessage as J, cloneTokenUsage as K, omitTopLevelDigest as L, canonicalCandidateDigest$1 as M, canonicalCandidateDocument as N, verifyMaterializedProfileWorkspace as O, deepFreezeCandidate as P, isAsyncIterable as Q, sha256Bytes$1 as R, artifactCacheKey as S, boundedChildDeadlineAt as St, readMaterializedWorkspaceFiles as T, singleFlightTeardown as Tt, addTokenUsage as U, abortError as V, chargedTokens as W, hasCompleteCacheBreakdown as X, fnv1a32Hex as Y, isAbortError as Z, workspaceLimits as _, CHILD_DEADLINE_REASON as _t, verifyAgentCandidateWorkspaceArtifacts as a, stringifySafe as at, isWellFormedUnicode as b, ROOT_DEADLINE_REASON as bt, createAgentCandidateWorkspacePort as c, unmeteredSpend as ct, verifyTaskCheckout as d, zeroTokenUsage as dt, promptCacheTokenClasses as et, verifyTaskOutcomePatch as f, addResourceSpend as ft, verifyAgentCandidateWorkspaceArchive as g, ACCEPTED_RESULT_GRACE_MS as gt, captureAgentCandidateWorkspaceFiles as h, withBudgetResources as ht, readAgentCandidateWorkspaceArtifactFiles as i, sleep as it, canonicalCandidateBytes$1 as j, verifyMaterializedWorkspace as k, readCandidateGitHubResource as l, withTimeout as lt, verifiedArtifactChunks as m, resourceTelemetry as mt, captureAgentCandidateWorkspaceTreeToArtifacts as n, randomUuid as nt, verifyAgentCandidateWorkspaceTree as o, throwAbort as ot, markPutStreamVerified as p, assertResources as pt, deleteBoxSafe as q, materializeAgentCandidateWorkspaceFromArtifacts as r, roundBoxMinutes as rt, captureAgentCandidateWorkspace as s, throwIfAborted as st, captureAgentCandidateWorkspaceToArtifacts as t, randomSuffix as tt, verifyCandidateCode as u, zeroSpend as ut, persistCandidateOutputArtifact as v, DEADLINE_CHECK_IN_MESSAGE as vt, captureMaterializedWorkspace as w, isDeadlineAbortReason as wt, WorkspaceScanLimitError as x, armDeadlineTimer as xt, assertExactObjectKeys as y, DEFAULT_SUCCESSFUL_SHUTDOWN_MS as yt, verifyCanonicalCandidateDocument as z };
2487
+ export { isAsyncIterable as $, markPutStreamVerified as A, verifyCanonicalCandidateDocument as B, captureMaterializedWorkspace as C, boundedChildDeadlineAt as Ct, verifyMaterializedProfileWorkspace as D, teardownExecutor as Dt, verifyBytes as E, singleFlightTeardown as Et, deepFreezeCandidate as F, chargedTokens as G, abortError as H, embeddedCandidateArtifact as I, deleteBoxSafe as J, cloneSpend as K, immutableCandidateValue as L, canonicalCandidateBytes$1 as M, canonicalCandidateDigest$1 as N, verifyMaterializedWorkspace as O, teardownSurfaces as Ot, canonicalCandidateDocument as P, isAbortError as Q, omitTopLevelDigest as R, candidateWorkspaceManifest as S, armDeadlineTimer as St, readVerifiedArtifact as T, isDeadlineAbortReason as Tt, addSpend as U, hasControlCharacter as V, addTokenUsage as W, fnv1a32Hex as X, errorMessage as Y, hasCompleteCacheBreakdown as Z, persistCandidateOutputArtifact as _, ACCEPTED_RESULT_GRACE_MS as _t, verifyAgentCandidateWorkspaceArtifacts as a, sleep as at, WorkspaceScanLimitError as b, DEFAULT_SUCCESSFUL_SHUTDOWN_MS as bt, createAgentCandidateWorkspacePort as c, throwIfAborted as ct, verifyTaskCheckout as d, zeroSpend as dt, mapWithConcurrency as et, verifyTaskOutcomePatch as f, zeroTokenUsage as ft, workspaceLimits as g, withBudgetResources as gt, verifyAgentCandidateWorkspaceArchive as h, resourceTelemetry as ht, readAgentCandidateWorkspaceArtifactFiles as i, roundBoxMinutes as it, verifiedArtifactChunks as j, verifyWorkspaceSnapshotArtifacts as k, readCandidateGitHubResource as l, unmeteredSpend as lt, safeArchivePath as m, assertResources as mt, captureAgentCandidateWorkspaceTreeToArtifacts as n, randomSuffix as nt, verifyAgentCandidateWorkspaceTree as o, stringifySafe as ot, captureAgentCandidateWorkspaceFiles as p, addResourceSpend as pt, cloneTokenUsage as q, materializeAgentCandidateWorkspaceFromArtifacts as r, randomUuid as rt, captureAgentCandidateWorkspace as s, throwAbort as st, captureAgentCandidateWorkspaceToArtifacts as t, promptCacheTokenClasses as tt, verifyCandidateCode as u, withTimeout as ut, assertExactObjectKeys as v, CHILD_DEADLINE_REASON as vt, readMaterializedWorkspaceFiles as w, checkInIdleMs as wt, artifactCacheKey as x, ROOT_DEADLINE_REASON as xt, isWellFormedUnicode as y, DEADLINE_CHECK_IN_MESSAGE as yt, sha256Bytes$1 as z };
2491
2488
 
2492
- //# sourceMappingURL=workspace-streams-Dep2L6XD.js.map
2489
+ //# sourceMappingURL=workspace-streams-COSTjQLW.js.map