reeval 0.6.3 → 0.7.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 (174) hide show
  1. package/README.md +265 -0
  2. package/THIRD_PARTY_NOTICES.md +5 -5
  3. package/assets/package.json +1 -1
  4. package/assets/pnpm-lock.yaml +30 -307
  5. package/dist/{agent-DKuFnZPM.js → agent-Dhd5FJCZ.js} +4 -4
  6. package/dist/{agent-DKuFnZPM.js.map → agent-Dhd5FJCZ.js.map} +1 -1
  7. package/dist/{agent-oirN_8IS.js → agent-gjBiZis8.js} +4 -4
  8. package/dist/{agent-oirN_8IS.js.map → agent-gjBiZis8.js.map} +1 -1
  9. package/dist/assemble-D8sZ4Jiv.js +2 -0
  10. package/dist/{assemble-DYCDgbTq.js → assemble-Dd_mZYnu.js} +109 -7
  11. package/dist/assemble-Dd_mZYnu.js.map +1 -0
  12. package/dist/bridge/index.mjs +66 -7
  13. package/dist/bridge/package.json +3 -3
  14. package/dist/bridge/pnpm-lock.yaml +84 -89
  15. package/dist/{cli-BIhzl_v_.js → cli-r9CDqoFL.js} +139 -186
  16. package/dist/cli-r9CDqoFL.js.map +1 -0
  17. package/dist/{cli-spec-DUeyuSIQ.js → cli-spec-DOyxAMc2.js} +22 -9
  18. package/dist/cli-spec-DOyxAMc2.js.map +1 -0
  19. package/dist/cli.js +2 -2
  20. package/dist/{matchers-Bp-OH1vj.js → client-LsfDiD-X.js} +152 -76
  21. package/dist/client-LsfDiD-X.js.map +1 -0
  22. package/dist/{command-KoOJ0ntD.js → command-Cej2t3y-.js} +9 -9
  23. package/dist/{command-KoOJ0ntD.js.map → command-Cej2t3y-.js.map} +1 -1
  24. package/dist/command-Cxfgghqo.js +2 -0
  25. package/dist/{command-DuJBqcwu.js → command-D6r2pwO5.js} +10 -10
  26. package/dist/{command-DuJBqcwu.js.map → command-D6r2pwO5.js.map} +1 -1
  27. package/dist/{command-B8tcwUJk.js → command-DMR69l5G.js} +12 -12
  28. package/dist/{command-B8tcwUJk.js.map → command-DMR69l5G.js.map} +1 -1
  29. package/dist/{command-fJpZK205.js → command-l4ZFCeMh.js} +6 -6
  30. package/dist/{command-fJpZK205.js.map → command-l4ZFCeMh.js.map} +1 -1
  31. package/dist/{commands-CHdTfPB6.js → commands-BA_NCh2h.js} +6 -6
  32. package/dist/{commands-CHdTfPB6.js.map → commands-BA_NCh2h.js.map} +1 -1
  33. package/dist/{commands-DE604ldB.js → commands-DgOUkcSO.js} +1 -1
  34. package/dist/{config-7-gXOgQf.js → config-DuQDCx0B.js} +3 -3
  35. package/dist/{config-7-gXOgQf.js.map → config-DuQDCx0B.js.map} +1 -1
  36. package/dist/{db-DvkzBhM6.js → db-CjX7JF4o.js} +12 -24
  37. package/dist/{db-DvkzBhM6.js.map → db-CjX7JF4o.js.map} +1 -1
  38. package/dist/db-o_osRkqr.js +3 -0
  39. package/dist/{dist-DsZNsoD3.js → dist-CTzThfu_.js} +3 -3
  40. package/dist/{dist-DsZNsoD3.js.map → dist-CTzThfu_.js.map} +1 -1
  41. package/dist/{docker-BBOMThRi.js → docker-DaUaG4XZ.js} +4 -4
  42. package/dist/{docker-BBOMThRi.js.map → docker-DaUaG4XZ.js.map} +1 -1
  43. package/dist/{docker-CiNVc7di.js → docker-Dnya8eo9.js} +1 -1
  44. package/dist/{docker-CzFiN2AZ.js → docker-ZaYeKE2w.js} +2 -2
  45. package/dist/{docker-CzFiN2AZ.js.map → docker-ZaYeKE2w.js.map} +1 -1
  46. package/dist/{doctor-C06kYs2r.js → doctor-Bk6aJeec.js} +10 -10
  47. package/dist/{doctor-C06kYs2r.js.map → doctor-Bk6aJeec.js.map} +1 -1
  48. package/dist/{egress-De64jpeQ.js → egress-BKbyriEa.js} +10 -10
  49. package/dist/{egress-De64jpeQ.js.map → egress-BKbyriEa.js.map} +1 -1
  50. package/dist/{files-BqIF7iu4.js → files-BSMSnQMa.js} +2 -2
  51. package/dist/{files-BqIF7iu4.js.map → files-BSMSnQMa.js.map} +1 -1
  52. package/dist/files-DmZGPsWK.js +2 -0
  53. package/dist/{files-Cq99wif-.js → files-TNrZJQ3Y.js} +15 -4
  54. package/dist/{files-Cq99wif-.js.map → files-TNrZJQ3Y.js.map} +1 -1
  55. package/dist/files-Tb8wY0Ze.js +2 -0
  56. package/dist/{git-Dnl-kXgD.js → git-DNGtrOg9.js} +2 -2
  57. package/dist/{git-Dnl-kXgD.js.map → git-DNGtrOg9.js.map} +1 -1
  58. package/dist/{harness-3QUEWx8G.js → harness-CDRaaGvR.js} +2 -2
  59. package/dist/{harness-3QUEWx8G.js.map → harness-CDRaaGvR.js.map} +1 -1
  60. package/dist/harness.d.ts +1 -1
  61. package/dist/harness.js +1 -1
  62. package/dist/{header-IE-uIvX0.js → header-BZF8Xss1.js} +2 -2
  63. package/dist/{header-IE-uIvX0.js.map → header-BZF8Xss1.js.map} +1 -1
  64. package/dist/{images-B8Mp_VXZ.js → images-BpwFDT1E.js} +6 -6
  65. package/dist/{images-B8Mp_VXZ.js.map → images-BpwFDT1E.js.map} +1 -1
  66. package/dist/index.d.ts +12 -7
  67. package/dist/index.js +24 -17
  68. package/dist/index.js.map +1 -1
  69. package/dist/init-1THeGfut.js +2 -0
  70. package/dist/{init-B8mw86E6.js → init-CBWt1rZT.js} +4 -4
  71. package/dist/{init-B8mw86E6.js.map → init-CBWt1rZT.js.map} +1 -1
  72. package/dist/{invocations-DHC946b-.js → invocations-DArYWyXN.js} +2 -2
  73. package/dist/{invocations-DHC946b-.js.map → invocations-DArYWyXN.js.map} +1 -1
  74. package/dist/judge.d.ts +1 -1
  75. package/dist/model-D_pF3Vcl.js +2 -0
  76. package/dist/{model-CtrJdFi6.js → model-DyQbu7KF.js} +113 -3
  77. package/dist/model-DyQbu7KF.js.map +1 -0
  78. package/dist/{opencode-providers-DjlA5fuC.js → opencode-providers-ByD85Q0l.js} +21 -7
  79. package/dist/{opencode-providers-DjlA5fuC.js.map → opencode-providers-ByD85Q0l.js.map} +1 -1
  80. package/dist/{options-CWYB613o.js → options-Ge_x32XE.js} +3 -3
  81. package/dist/{options-CWYB613o.js.map → options-Ge_x32XE.js.map} +1 -1
  82. package/dist/{plan-CsPE24pp.js → plan-BqBadHYj.js} +14 -7
  83. package/dist/plan-BqBadHYj.js.map +1 -0
  84. package/dist/{preflight-DKZjb7ZH.js → preflight-CFtZNTLt.js} +1 -1
  85. package/dist/{preflight-r0DgibQV.js → preflight-CyaAZE9r.js} +3 -3
  86. package/dist/{preflight-r0DgibQV.js.map → preflight-CyaAZE9r.js.map} +1 -1
  87. package/dist/{prepare-DOkvAa9D.js → prepare-Dl7-t3fO.js} +2 -2
  88. package/dist/{prepare-CTLg3nuk.js → prepare-Zr1xOMUX.js} +4 -4
  89. package/dist/{prepare-CTLg3nuk.js.map → prepare-Zr1xOMUX.js.map} +1 -1
  90. package/dist/{provenance--cVNo80L.js → provenance-Byl2T6LJ.js} +2 -2
  91. package/dist/{provenance--cVNo80L.js.map → provenance-Byl2T6LJ.js.map} +1 -1
  92. package/dist/{providers-DNLQzVnc.js → providers-Cflw7Ks-.js} +3 -3
  93. package/dist/{providers-DNLQzVnc.js.map → providers-Cflw7Ks-.js.map} +1 -1
  94. package/dist/{providers-B2cSfewm.js → providers-SBMExI53.js} +1 -1
  95. package/dist/query-CvutWHaL.js +2 -0
  96. package/dist/{query-DTtIZaua.js → query-DUSLlic0.js} +2 -2
  97. package/dist/{query-DTtIZaua.js.map → query-DUSLlic0.js.map} +1 -1
  98. package/dist/results-owJR-NFm.js +52 -0
  99. package/dist/results-owJR-NFm.js.map +1 -0
  100. package/dist/resume-BL4Yw7Ld.js +406 -0
  101. package/dist/resume-BL4Yw7Ld.js.map +1 -0
  102. package/dist/sandbox.d.ts +1 -1
  103. package/dist/server-CNPsB0cT.js +2 -0
  104. package/dist/{server-BFlKK2j6.js → server-yFVUxAm0.js} +6 -6
  105. package/dist/{server-BFlKK2j6.js.map → server-yFVUxAm0.js.map} +1 -1
  106. package/dist/source-Cmc5SKFn.js +2 -0
  107. package/dist/{source-B2ASbTdc.js → source-M3gS517R.js} +2 -2
  108. package/dist/{source-B2ASbTdc.js.map → source-M3gS517R.js.map} +1 -1
  109. package/dist/{src-Bo8GFUXg.js → src--L8B4WGa.js} +1 -1
  110. package/dist/{src-zOeHvrzR.js → src-79JhW-zG.js} +13 -13
  111. package/dist/{src-zOeHvrzR.js.map → src-79JhW-zG.js.map} +1 -1
  112. package/dist/{src-BoziVhKa.js → src-BLN459er.js} +1 -1
  113. package/dist/src-Bz66jDtE.js +3 -0
  114. package/dist/{src-CPkDaNxp.js → src-CfUwg9UY.js} +1 -1
  115. package/dist/{src-BHFNhTTQ.js → src-CokPbYCb.js} +45 -45
  116. package/dist/{src-BHFNhTTQ.js.map → src-CokPbYCb.js.map} +1 -1
  117. package/dist/{src-CDiGyoDt.js → src-DH0jhpoi.js} +1 -1
  118. package/dist/{src-CVoCJjEe.js → src-DTcalvuF.js} +2 -2
  119. package/dist/{src-CVoCJjEe.js.map → src-DTcalvuF.js.map} +1 -1
  120. package/dist/src-DV_3QDHA.js +4 -0
  121. package/dist/{src-CqsERnCZ.js → src-IOr1rhEg.js} +4 -4
  122. package/dist/{src-CqsERnCZ.js.map → src-IOr1rhEg.js.map} +1 -1
  123. package/dist/src-Ljh2vKXm.js +3 -0
  124. package/dist/{state-DBKcUJ2u.js → state-DEj_utaE.js} +10 -10
  125. package/dist/{state-DBKcUJ2u.js.map → state-DEj_utaE.js.map} +1 -1
  126. package/dist/state-DkqbCVVp.js +2 -0
  127. package/dist/studio-app/assets/{index-WQPq5K3E.js → index-Bbl0oTxu.js} +1 -1
  128. package/dist/studio-app/index.html +1 -1
  129. package/dist/{summary-CahgSiVt.js → summary--FBuB_sr.js} +3 -3
  130. package/dist/{summary-CahgSiVt.js.map → summary--FBuB_sr.js.map} +1 -1
  131. package/dist/{summary-BBABbon9.js → summary-D012KlUM.js} +5 -5
  132. package/dist/{summary-BBABbon9.js.map → summary-D012KlUM.js.map} +1 -1
  133. package/dist/tool-target-BU1JnSE9.js +34 -0
  134. package/dist/tool-target-BU1JnSE9.js.map +1 -0
  135. package/dist/{tools-53YHomyk.js → tools-CJHw-zCo.js} +3 -3
  136. package/dist/{tools-53YHomyk.js.map → tools-CJHw-zCo.js.map} +1 -1
  137. package/dist/{types-CoAfC-_k.d.ts → types-BsRSknLe.d.ts} +5 -4
  138. package/dist/view/index.d.ts +1 -1
  139. package/dist/view/index.js +2 -2
  140. package/dist/{views-Drl2OXuj.js → views-jhL9Jb8A.js} +4 -4
  141. package/dist/{views-Drl2OXuj.js.map → views-jhL9Jb8A.js.map} +1 -1
  142. package/dist/views-yPmmoo8f.js +3 -0
  143. package/dist/{worker-entry-mCctDzig.js → worker-entry-OwnsrUdr.js} +72 -2
  144. package/dist/worker-entry-OwnsrUdr.js.map +1 -0
  145. package/dist/{workspace-BT4jd04k.js → workspace-C4_J0pqb.js} +3 -3
  146. package/dist/{workspace-BT4jd04k.js.map → workspace-C4_J0pqb.js.map} +1 -1
  147. package/dist/{workspace-U6M1gKzo.js → workspace-wudSz_W-.js} +1 -1
  148. package/package.json +9 -8
  149. package/dist/assemble-DYCDgbTq.js.map +0 -1
  150. package/dist/assemble-DykFydSU.js +0 -2
  151. package/dist/cli-BIhzl_v_.js.map +0 -1
  152. package/dist/cli-spec-DUeyuSIQ.js.map +0 -1
  153. package/dist/command-CwuwuKJD.js +0 -2
  154. package/dist/db-BVE1kZ2w.js +0 -2
  155. package/dist/files-Cs8tbYQY.js +0 -2
  156. package/dist/files-wUtoO5aA.js +0 -2
  157. package/dist/init-DDEpamaf.js +0 -2
  158. package/dist/matchers-Bp-OH1vj.js.map +0 -1
  159. package/dist/model-C_B5JrhL.js +0 -2
  160. package/dist/model-CtrJdFi6.js.map +0 -1
  161. package/dist/plan-CsPE24pp.js.map +0 -1
  162. package/dist/query-BWc_5Lhe.js +0 -2
  163. package/dist/results-CrFs7_In.js +0 -37
  164. package/dist/results-CrFs7_In.js.map +0 -1
  165. package/dist/server-HRUHVcHc.js +0 -2
  166. package/dist/source-Co7h89WK.js +0 -2
  167. package/dist/src-BE19tji4.js +0 -3
  168. package/dist/src-CFxHPwQA.js +0 -3
  169. package/dist/src-D-go5-qz.js +0 -4
  170. package/dist/state-BaHjYXr1.js +0 -2
  171. package/dist/stats-BNAHlNMD.js +0 -114
  172. package/dist/stats-BNAHlNMD.js.map +0 -1
  173. package/dist/views-BhGinAz_.js +0 -3
  174. package/dist/worker-entry-mCctDzig.js.map +0 -1
@@ -3,11 +3,12 @@ import { o as redactSecrets } from "./redact-DJ9JCShu.js";
3
3
  import { u as environmentSandbox } from "./environment-DiCljXMD.js";
4
4
  import { i as evalSlug, l as sha256, n as attemptKey, s as recordFileName, t as attemptId } from "./ids-Bp6ut7ZD.js";
5
5
  import { c as judgeModelName } from "./judge-7WjNdU9z.js";
6
- import { d as sandboxId, s as harnessId, u as profileJudge } from "./options-CWYB613o.js";
6
+ import { d as sandboxId, s as harnessId, u as profileJudge } from "./options-Ge_x32XE.js";
7
7
  import { r as patchForJudge, t as collapseDependencies } from "./patch-CGCVipPu.js";
8
- import { o as round3, t as liftInterval } from "./stats-BNAHlNMD.js";
8
+ import { $ as liftInterval, et as round3 } from "./model-DyQbu7KF.js";
9
9
  import { n as promptTokens, r as sumUsage } from "./usage-DsYUqIUM.js";
10
- import { a as packageVersions, r as judgeVersion, t as FINGERPRINT_SCOPE } from "./state-DBKcUJ2u.js";
10
+ import { a as packageVersions, r as judgeVersion, t as FINGERPRINT_SCOPE } from "./state-DEj_utaE.js";
11
+ import { a as previousAttempt, n as isCompletedAttempt } from "./resume-BL4Yw7Ld.js";
11
12
  import { dirname, join, relative, resolve, sep } from "node:path";
12
13
  import { readFile, stat } from "node:fs/promises";
13
14
  //#region src/history/sources.ts
@@ -98,7 +99,7 @@ function capText(text, cap = OUTPUT_CAP) {
98
99
  const readRecord = async (path) => JSON.parse(await readFile(path, "utf8").catch(() => "null"));
99
100
  /** The engine and the worker's record can disagree, e.g. when a timeout fails the eval first. */
100
101
  function mergeOutcome(e, record) {
101
- if (e.state === "skipped" && record && record.outcome !== "pass") return {
102
+ if (e.state === "skipped" && record) return {
102
103
  outcome: record.outcome,
103
104
  error: record.error
104
105
  };
@@ -375,10 +376,92 @@ function cellOf(entry, cell, gate, harness) {
375
376
  }
376
377
  return found;
377
378
  }
379
+ async function copyRef(ref, from, out) {
380
+ if (!from) return ref;
381
+ const bytes = await readFile(join(from, ...ref.path.split("/"))).catch(() => null);
382
+ if (!bytes) return ref;
383
+ return out.add(ref.path, Buffer.from(bytes).toString("utf8"));
384
+ }
385
+ /** A completed attempt from a previous assemble of this runId, kept on resume. */
386
+ async function addPreviousAttempt(e, kept, seen, out, judge, previousArtifacts, sources) {
387
+ const cell = e.attempt?.cell ?? {
388
+ ...UNKNOWN_CELL,
389
+ key: kept.cell,
390
+ harness: kept.cell.split("/")[0] ?? "unknown",
391
+ environment: kept.cell.split("/")[1] ?? "unknown",
392
+ sandbox: kept.cell.split("/")[2]?.replace(/#\d+$/, "") ?? "unknown"
393
+ };
394
+ if (!seen.sources.has(e.file) && sources) seen.sources.set(e.file, sources);
395
+ if (!seen.sources.has(e.file)) seen.sources.set(e.file, []);
396
+ const resolved = sources ?? seen.sources.get(e.file) ?? [];
397
+ const stub = {
398
+ id: e.id,
399
+ key: e.key,
400
+ file: e.file,
401
+ group: e.group,
402
+ name: e.name,
403
+ attempt: e.attempt,
404
+ state: "skipped",
405
+ durationMs: kept.durationMs,
406
+ errors: [],
407
+ formattedErrors: [],
408
+ meta: void 0
409
+ };
410
+ seen.add(null, cell, stub);
411
+ const entry = seen.entry(stub, resolved);
412
+ const cellRecord = cellOf(entry, cell, e.attempt?.gate ?? "all", e.attempt?.harness);
413
+ const files = {};
414
+ for (const [name, ref] of Object.entries(kept.files)) {
415
+ if (!ref) continue;
416
+ if (Array.isArray(ref)) {
417
+ const copied = [];
418
+ for (const art of ref) {
419
+ if (!previousArtifacts) {
420
+ copied.push(art);
421
+ continue;
422
+ }
423
+ const bytes = await readFile(join(previousArtifacts, ...art.path.split("/"))).catch(() => null);
424
+ copied.push(bytes ? out.addBinary(art.path, bytes) : art);
425
+ }
426
+ if (copied.length) files[name] = copied;
427
+ continue;
428
+ }
429
+ files[name] = await copyRef(ref, previousArtifacts, out);
430
+ }
431
+ const checks = [];
432
+ for (const c of kept.checks) checks.push({
433
+ ...c,
434
+ log: c.log ? await copyRef(c.log, previousArtifacts, out) : c.log
435
+ });
436
+ entry.attempts.push({
437
+ ...kept,
438
+ seq: null,
439
+ files,
440
+ checks
441
+ });
442
+ if (!cellRecord.fingerprint && kept.outcome !== "skipped") {
443
+ const parts = {
444
+ sources: sha256(JSON.stringify(resolved)),
445
+ harness: sha256(JSON.stringify(e.attempt ? withoutCaps(e.attempt.harness) : null)),
446
+ environment: cellRecord.environmentDigest,
447
+ image: kept.imageId,
448
+ agentCli: null,
449
+ judge,
450
+ context: sha256(JSON.stringify(kept.context))
451
+ };
452
+ cellRecord.fingerprintParts = parts;
453
+ cellRecord.fingerprint = fingerprintOf(parts);
454
+ }
455
+ }
378
456
  /** Reads one attempt's worker record, files its artifacts and adds it to its eval and cell. */
379
- async function addAttempt(e, ctx, seen, out, judge) {
457
+ async function addAttempt(e, ctx, seen, out, judge, previous, previousArtifacts) {
380
458
  const cell = e.attempt?.cell ?? UNKNOWN_CELL;
381
459
  const n = e.attempt?.n ?? 1;
460
+ const kept = previousAttempt(previous, e.key);
461
+ if (e.state === "skipped" && kept && isCompletedAttempt(kept.outcome, kept.error)) {
462
+ await addPreviousAttempt(e, kept, seen, out, judge, previousArtifacts);
463
+ return;
464
+ }
382
465
  const record = await readRecord(join(ctx.stagingDir, "evals", recordFileName(e.key)));
383
466
  const { outcome, error } = mergeOutcome(e, record);
384
467
  if (!seen.sources.has(e.file)) seen.sources.set(e.file, await traceSources(ctx.config.root, e.file));
@@ -649,7 +732,26 @@ async function assembleRun(input) {
649
732
  threshold: runJudge.threshold,
650
733
  version: judgeVersion(input.es, packageVersions(input.enginePackages), judgeModel ?? "")
651
734
  }));
652
- for (const e of engine.evals) await addAttempt(e, ctx, seen, out, judge);
735
+ for (const e of engine.evals) await addAttempt(e, ctx, seen, out, judge, input.previous, input.previousArtifacts);
736
+ if (input.previous) {
737
+ const have = new Set([...seen.byEval.values()].flatMap((entry) => entry.attempts.map((a) => a.key)));
738
+ for (const entry of input.previous.evals) for (const a of entry.attempts) {
739
+ if (have.has(a.key) || !isCompletedAttempt(a.outcome, a.error)) continue;
740
+ await addPreviousAttempt({
741
+ id: entry.id,
742
+ key: a.key,
743
+ file: entry.file,
744
+ group: entry.group,
745
+ name: entry.name,
746
+ attempt: void 0,
747
+ state: "skipped",
748
+ durationMs: a.durationMs,
749
+ errors: [],
750
+ formattedErrors: [],
751
+ meta: void 0
752
+ }, a, seen, out, judge, input.previousArtifacts, entry.sources);
753
+ }
754
+ }
653
755
  const evals = [...seen.byEval.values()];
654
756
  rollUp(evals);
655
757
  sequence(evals);
@@ -727,4 +829,4 @@ async function assembleRun(input) {
727
829
  //#endregion
728
830
  export { fingerprintOf as a, transcriptLines as c, cellOutcome as i, worstOutcome as l, assembleRun as n, judgementKey as o, capText as r, mergeOutcome as s, OUTPUT_CAP as t };
729
831
 
730
- //# sourceMappingURL=assemble-DYCDgbTq.js.map
832
+ //# sourceMappingURL=assemble-Dd_mZYnu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble-Dd_mZYnu.js","names":[],"sources":["../src/history/sources.ts","../src/history/assemble.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- // Modified by Invertase with patches/@ai-sdk__harness-claude-code@1.0.148.patch; see THIRD_PARTY_NOTICES.md.
1
+ // Modified by Invertase with patches/@ai-sdk__harness-claude-code@1.0.152.patch; see THIRD_PARTY_NOTICES.md.
2
2
  import { appendFile, mkdir, writeFile } from "node:fs/promises";
3
3
  import { existsSync, readFileSync } from "node:fs";
4
4
  import { randomUUID } from "node:crypto";
@@ -6,6 +6,7 @@ import { argv, env, pid, stdout } from "node:process";
6
6
  import { WebSocketServer } from "ws";
7
7
  import * as claudeAgentSdk from "@anthropic-ai/claude-agent-sdk";
8
8
  import * as mcpServerModule from "@modelcontextprotocol/sdk/server/mcp.js";
9
+ import { isDeepStrictEqual } from "node:util";
9
10
  import { z } from "zod/v4";
10
11
  //#region ../harness/dist/bridge/index.js
11
12
  const DEBUG_LEVEL_WEIGHT = {
@@ -633,7 +634,8 @@ function createClaudeStreamEventState() {
633
634
  pendingStepUsage: void 0,
634
635
  pendingResponseUsage: void 0,
635
636
  stepOpen: false,
636
- mcpToolUseIds: /* @__PURE__ */ new Set(),
637
+ mcpToolCalls: /* @__PURE__ */ new Map(),
638
+ mcpHandlerCalls: /* @__PURE__ */ new Map(),
637
639
  externalMcpToolUseIds: /* @__PURE__ */ new Set(),
638
640
  structuredOutputToolUseIds: /* @__PURE__ */ new Set(),
639
641
  observedTerminalError: void 0
@@ -693,7 +695,7 @@ function createEmitStreamEvent({ state, emit, emitWarning, emitTerminalError, on
693
695
  });
694
696
  return;
695
697
  }
696
- if (type === "tool_progress" || type === "system" && msg.subtype != null && RAW_TASK_MESSAGE_SUBTYPES.has(msg.subtype)) {
698
+ if (type === "tool_progress" || type === "rate_limit_event" || type === "system" && msg.subtype != null && RAW_TASK_MESSAGE_SUBTYPES.has(msg.subtype)) {
697
699
  emit({
698
700
  type: "raw",
699
701
  rawValue: msg
@@ -730,7 +732,10 @@ function createEmitStreamEvent({ state, emit, emitWarning, emitTerminalError, on
730
732
  }
731
733
  if (block.name.startsWith(HOST_TOOL_PREFIX)) {
732
734
  state.pendingStepToolUseIds.add(block.id);
733
- state.mcpToolUseIds.add(block.id);
735
+ state.mcpToolCalls.set(block.id, {
736
+ toolName: block.name.slice(20),
737
+ input: block.input ?? {}
738
+ });
734
739
  opensStep = true;
735
740
  continue;
736
741
  }
@@ -768,9 +773,37 @@ function createEmitStreamEvent({ state, emit, emitWarning, emitTerminalError, on
768
773
  const toolUseResult = messageContent.filter((block) => block.type === "tool_result").length === 1 ? msg.tool_use_result : void 0;
769
774
  for (const block of messageContent) if (block.type === "tool_result" && typeof block.tool_use_id === "string") {
770
775
  if (state.structuredOutputToolUseIds.delete(block.tool_use_id)) continue;
771
- if (state.mcpToolUseIds.has(block.tool_use_id)) {
772
- state.mcpToolUseIds.delete(block.tool_use_id);
776
+ const mcpToolCall = state.mcpToolCalls.get(block.tool_use_id);
777
+ if (mcpToolCall != null) {
778
+ const handlerReportedCall = takeMcpHandlerCall({
779
+ state,
780
+ toolCallId: block.tool_use_id,
781
+ toolCall: mcpToolCall
782
+ });
783
+ state.mcpToolCalls.delete(block.tool_use_id);
773
784
  state.pendingStepToolUseIds.delete(block.tool_use_id);
785
+ if (handlerReportedCall) continue;
786
+ const isError = !!block.is_error;
787
+ const result = toolUseResult !== void 0 ? toolUseResult : resolveToolResult({
788
+ toolName: mcpToolCall.toolName,
789
+ dynamic: false,
790
+ isError,
791
+ rawContent: block.content
792
+ });
793
+ emit({
794
+ type: "tool-call",
795
+ toolCallId: block.tool_use_id,
796
+ toolName: mcpToolCall.toolName,
797
+ input: JSON.stringify(mcpToolCall.input),
798
+ providerExecuted: true
799
+ });
800
+ emit({
801
+ type: "tool-result",
802
+ toolCallId: block.tool_use_id,
803
+ toolName: mcpToolCall.toolName,
804
+ result,
805
+ isError
806
+ });
774
807
  continue;
775
808
  }
776
809
  state.approvalRequestedToolUseIds.delete(block.tool_use_id);
@@ -802,6 +835,20 @@ function createEmitStreamEvent({ state, emit, emitWarning, emitTerminalError, on
802
835
  }
803
836
  };
804
837
  }
838
+ function takeMcpHandlerCall({ state, toolCallId, toolCall }) {
839
+ if (state.mcpHandlerCalls.delete(toolCallId)) return true;
840
+ for (const [handlerCallId, handlerCall] of state.mcpHandlerCalls) if (handlerCall.toolName === toolCall.toolName && isDeepStrictEqual(handlerCall.input, toolCall.input)) {
841
+ state.mcpHandlerCalls.delete(handlerCallId);
842
+ return true;
843
+ }
844
+ const matchingHandlerCallIds = Array.from(state.mcpHandlerCalls).filter(([, handlerCall]) => handlerCall.toolName === toolCall.toolName).map(([handlerCallId]) => handlerCallId);
845
+ const matchingToolCallCount = Array.from(state.mcpToolCalls.values()).filter((pendingCall) => pendingCall.toolName === toolCall.toolName).length;
846
+ if (matchingHandlerCallIds.length > 0 && matchingHandlerCallIds.length === matchingToolCallCount) {
847
+ state.mcpHandlerCalls.delete(matchingHandlerCallIds[0]);
848
+ return true;
849
+ }
850
+ return false;
851
+ }
805
852
  function finishApprovalStep({ state, emit, approvalId }) {
806
853
  state.stepOpen = true;
807
854
  state.pendingStepToolUseIds.delete(approvalId);
@@ -1415,6 +1462,10 @@ async function runTurn(start, turn) {
1415
1462
  const [input, extra] = handlerArgs;
1416
1463
  const metadataToolCallId = extra._meta?.["claudecode/toolUseId"];
1417
1464
  const toolCallId = typeof metadataToolCallId === "string" ? metadataToolCallId : randomUUID();
1465
+ streamEventState.mcpHandlerCalls.set(toolCallId, {
1466
+ toolName: tool.name,
1467
+ input
1468
+ });
1418
1469
  emit({
1419
1470
  type: "tool-call",
1420
1471
  toolCallId,
@@ -1444,7 +1495,15 @@ async function runTurn(start, turn) {
1444
1495
  instance: server
1445
1496
  };
1446
1497
  }
1447
- const compaction = createCompactionLatch((event) => emit(event));
1498
+ const compaction = createCompactionLatch((event) => {
1499
+ const hasOpenStep = streamEventState.stepOpen;
1500
+ emit(event);
1501
+ if (!hasOpenStep) emitFinishStep({
1502
+ state: streamEventState,
1503
+ emit,
1504
+ usage: void 0
1505
+ });
1506
+ });
1448
1507
  const queryInput = createQueryInput({
1449
1508
  initialUserMessage: start.prompt,
1450
1509
  userMessages: turn.experimental_userMessages,
@@ -4,9 +4,9 @@
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@anthropic-ai/claude-agent-sdk": "0.3.281",
8
- "@anthropic-ai/claude-code": "2.1.281",
9
- "@modelcontextprotocol/sdk": "1.32.0",
7
+ "@anthropic-ai/claude-agent-sdk": "0.3.290",
8
+ "@anthropic-ai/claude-code": "2.1.290",
9
+ "@modelcontextprotocol/sdk": "1.32.1",
10
10
  "ws": "8.21.0",
11
11
  "zod": "4.4.3"
12
12
  }