reeval 0.6.1 → 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 (192) 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 +35 -311
  5. package/dist/{agent-BrqDHAx6.js → agent-Dhd5FJCZ.js} +4 -4
  6. package/dist/{agent-BrqDHAx6.js.map → agent-Dhd5FJCZ.js.map} +1 -1
  7. package/dist/{agent-bHgHIPVD.js → agent-gjBiZis8.js} +4 -4
  8. package/dist/{agent-bHgHIPVD.js.map → agent-gjBiZis8.js.map} +1 -1
  9. package/dist/assemble-D8sZ4Jiv.js +2 -0
  10. package/dist/{assemble-BB_dcnfh.js → assemble-Dd_mZYnu.js} +109 -7
  11. package/dist/assemble-Dd_mZYnu.js.map +1 -0
  12. package/dist/bridge/index.mjs +84 -9
  13. package/dist/bridge/package.json +3 -3
  14. package/dist/bridge/pnpm-lock.yaml +84 -89
  15. package/dist/bridge/pnpm-workspace.yaml +1 -1
  16. package/dist/{capture-tcMRp6ks.js → capture-CisAmy-G.js} +3 -3
  17. package/dist/{capture-tcMRp6ks.js.map → capture-CisAmy-G.js.map} +1 -1
  18. package/dist/capture-DquyqAHC.js +2 -0
  19. package/dist/{cli-BM-qbqO_.js → cli-r9CDqoFL.js} +139 -172
  20. package/dist/cli-r9CDqoFL.js.map +1 -0
  21. package/dist/{cli-spec-DUeyuSIQ.js → cli-spec-DOyxAMc2.js} +22 -9
  22. package/dist/cli-spec-DOyxAMc2.js.map +1 -0
  23. package/dist/cli.js +2 -2
  24. package/dist/{matchers-Bp-OH1vj.js → client-LsfDiD-X.js} +152 -76
  25. package/dist/client-LsfDiD-X.js.map +1 -0
  26. package/dist/{command-BT9i1I5S.js → command-Cej2t3y-.js} +9 -9
  27. package/dist/{command-BT9i1I5S.js.map → command-Cej2t3y-.js.map} +1 -1
  28. package/dist/command-Cxfgghqo.js +2 -0
  29. package/dist/{command-DITkSzxp.js → command-D6r2pwO5.js} +10 -10
  30. package/dist/{command-DITkSzxp.js.map → command-D6r2pwO5.js.map} +1 -1
  31. package/dist/{command-BpoZJVeI.js → command-DMR69l5G.js} +12 -12
  32. package/dist/{command-BpoZJVeI.js.map → command-DMR69l5G.js.map} +1 -1
  33. package/dist/{command-DATlIXj1.js → command-l4ZFCeMh.js} +6 -6
  34. package/dist/{command-DATlIXj1.js.map → command-l4ZFCeMh.js.map} +1 -1
  35. package/dist/{commands-C0SFWd1T.js → commands-BA_NCh2h.js} +6 -6
  36. package/dist/{commands-C0SFWd1T.js.map → commands-BA_NCh2h.js.map} +1 -1
  37. package/dist/{commands-CDty3r_G.js → commands-DgOUkcSO.js} +1 -1
  38. package/dist/{config-Cy_vLUbw.js → config-DuQDCx0B.js} +3 -3
  39. package/dist/{config-Cy_vLUbw.js.map → config-DuQDCx0B.js.map} +1 -1
  40. package/dist/{context-loi9OCZv.js → context-CvUv7DUb.js} +3 -4
  41. package/dist/{context-loi9OCZv.js.map → context-CvUv7DUb.js.map} +1 -1
  42. package/dist/{db-iskAs8Ox.js → db-CjX7JF4o.js} +13 -25
  43. package/dist/{db-iskAs8Ox.js.map → db-CjX7JF4o.js.map} +1 -1
  44. package/dist/db-o_osRkqr.js +3 -0
  45. package/dist/{dist-Dmm3bnKA.js → dist-CTzThfu_.js} +3 -3
  46. package/dist/{dist-Dmm3bnKA.js.map → dist-CTzThfu_.js.map} +1 -1
  47. package/dist/{docker-B9wx9-KX.js → docker-DaUaG4XZ.js} +4 -4
  48. package/dist/{docker-B9wx9-KX.js.map → docker-DaUaG4XZ.js.map} +1 -1
  49. package/dist/{docker-Di4o89kZ.js → docker-Dnya8eo9.js} +1 -1
  50. package/dist/{docker-Ctnty6xd.js → docker-ZaYeKE2w.js} +2 -2
  51. package/dist/{docker-Ctnty6xd.js.map → docker-ZaYeKE2w.js.map} +1 -1
  52. package/dist/{doctor-BMUVi-gC.js → doctor-Bk6aJeec.js} +10 -10
  53. package/dist/{doctor-BMUVi-gC.js.map → doctor-Bk6aJeec.js.map} +1 -1
  54. package/dist/{egress-3bdvDu1s.js → egress-BKbyriEa.js} +13 -13
  55. package/dist/{egress-3bdvDu1s.js.map → egress-BKbyriEa.js.map} +1 -1
  56. package/dist/{files-CITwkC4O.js → files-BSMSnQMa.js} +2 -2
  57. package/dist/{files-CITwkC4O.js.map → files-BSMSnQMa.js.map} +1 -1
  58. package/dist/files-DmZGPsWK.js +2 -0
  59. package/dist/{files-DGhQZaXT.js → files-TNrZJQ3Y.js} +15 -4
  60. package/dist/{files-DGhQZaXT.js.map → files-TNrZJQ3Y.js.map} +1 -1
  61. package/dist/files-Tb8wY0Ze.js +2 -0
  62. package/dist/{git-BzyBakoB.js → git-DNGtrOg9.js} +2 -2
  63. package/dist/{git-BzyBakoB.js.map → git-DNGtrOg9.js.map} +1 -1
  64. package/dist/{harness-8-dnGNgT.js → harness-CDRaaGvR.js} +2 -2
  65. package/dist/{harness-8-dnGNgT.js.map → harness-CDRaaGvR.js.map} +1 -1
  66. package/dist/harness.d.ts +1 -1
  67. package/dist/harness.js +1 -1
  68. package/dist/{header-IE-uIvX0.js → header-BZF8Xss1.js} +2 -2
  69. package/dist/{header-IE-uIvX0.js.map → header-BZF8Xss1.js.map} +1 -1
  70. package/dist/{images-QBtOj-_q.js → images-BpwFDT1E.js} +6 -6
  71. package/dist/{images-QBtOj-_q.js.map → images-BpwFDT1E.js.map} +1 -1
  72. package/dist/index.d.ts +12 -7
  73. package/dist/index.js +31 -24
  74. package/dist/index.js.map +1 -1
  75. package/dist/init-1THeGfut.js +2 -0
  76. package/dist/{init-B47uIoHu.js → init-CBWt1rZT.js} +4 -4
  77. package/dist/{init-B47uIoHu.js.map → init-CBWt1rZT.js.map} +1 -1
  78. package/dist/{invocations-DHC946b-.js → invocations-DArYWyXN.js} +2 -2
  79. package/dist/{invocations-DHC946b-.js.map → invocations-DArYWyXN.js.map} +1 -1
  80. package/dist/judge.d.ts +1 -1
  81. package/dist/model-D_pF3Vcl.js +2 -0
  82. package/dist/{model-CtrJdFi6.js → model-DyQbu7KF.js} +113 -3
  83. package/dist/model-DyQbu7KF.js.map +1 -0
  84. package/dist/{opencode-providers-DJVocFOU.js → opencode-providers-ByD85Q0l.js} +33 -19
  85. package/dist/opencode-providers-ByD85Q0l.js.map +1 -0
  86. package/dist/{options-DVB78W8X.js → options-Ge_x32XE.js} +3 -3
  87. package/dist/{options-DVB78W8X.js.map → options-Ge_x32XE.js.map} +1 -1
  88. package/dist/{plan-Bsge1_cc.js → plan-BqBadHYj.js} +14 -7
  89. package/dist/plan-BqBadHYj.js.map +1 -0
  90. package/dist/{preflight-B5ue4TlX.js → preflight-CFtZNTLt.js} +1 -1
  91. package/dist/{preflight-BOstyJDX.js → preflight-CyaAZE9r.js} +3 -3
  92. package/dist/{preflight-BOstyJDX.js.map → preflight-CyaAZE9r.js.map} +1 -1
  93. package/dist/{prepare-ChIEi8hP.js → prepare-Dl7-t3fO.js} +2 -2
  94. package/dist/{prepare-jpXfdH-9.js → prepare-Zr1xOMUX.js} +4 -4
  95. package/dist/{prepare-jpXfdH-9.js.map → prepare-Zr1xOMUX.js.map} +1 -1
  96. package/dist/{provenance-BTJCjEPg.js → provenance-Byl2T6LJ.js} +2 -2
  97. package/dist/{provenance-BTJCjEPg.js.map → provenance-Byl2T6LJ.js.map} +1 -1
  98. package/dist/{providers-BJCxWIm4.js → providers-Cflw7Ks-.js} +3 -3
  99. package/dist/{providers-BJCxWIm4.js.map → providers-Cflw7Ks-.js.map} +1 -1
  100. package/dist/{providers-DxVIaae1.js → providers-SBMExI53.js} +1 -1
  101. package/dist/query-CvutWHaL.js +2 -0
  102. package/dist/{query-Cpe659ni.js → query-DUSLlic0.js} +2 -2
  103. package/dist/{query-Cpe659ni.js.map → query-DUSLlic0.js.map} +1 -1
  104. package/dist/results-owJR-NFm.js +52 -0
  105. package/dist/results-owJR-NFm.js.map +1 -0
  106. package/dist/resume-BL4Yw7Ld.js +406 -0
  107. package/dist/resume-BL4Yw7Ld.js.map +1 -0
  108. package/dist/sandbox.d.ts +1 -1
  109. package/dist/server-CNPsB0cT.js +2 -0
  110. package/dist/{server-CSSXF89R.js → server-yFVUxAm0.js} +6 -6
  111. package/dist/{server-CSSXF89R.js.map → server-yFVUxAm0.js.map} +1 -1
  112. package/dist/source-Cmc5SKFn.js +2 -0
  113. package/dist/{source-BcHShRWU.js → source-M3gS517R.js} +2 -2
  114. package/dist/{source-BcHShRWU.js.map → source-M3gS517R.js.map} +1 -1
  115. package/dist/src--L8B4WGa.js +3 -0
  116. package/dist/{src-BRdoxjJS.js → src-79JhW-zG.js} +15 -15
  117. package/dist/{src-BRdoxjJS.js.map → src-79JhW-zG.js.map} +1 -1
  118. package/dist/src-BLN459er.js +3 -0
  119. package/dist/src-Bz66jDtE.js +3 -0
  120. package/dist/src-CfUwg9UY.js +3 -0
  121. package/dist/{src-B3J1D0nL.js → src-CokPbYCb.js} +76 -60
  122. package/dist/src-CokPbYCb.js.map +1 -0
  123. package/dist/{src-a6y9cGkR.js → src-DH0jhpoi.js} +1 -1
  124. package/dist/{src-DyQJdvp2.js → src-DSE0FWaU.js} +5 -5
  125. package/dist/{src-DyQJdvp2.js.map → src-DSE0FWaU.js.map} +1 -1
  126. package/dist/{src-Czhg5ONv.js → src-DTcalvuF.js} +3 -3
  127. package/dist/{src-Czhg5ONv.js.map → src-DTcalvuF.js.map} +1 -1
  128. package/dist/src-DV_3QDHA.js +4 -0
  129. package/dist/{src-BjVw2K4H.js → src-DxFJrMUA.js} +4 -4
  130. package/dist/{src-BjVw2K4H.js.map → src-DxFJrMUA.js.map} +1 -1
  131. package/dist/{src-Dk96a9w7.js → src-IOr1rhEg.js} +6 -6
  132. package/dist/{src-Dk96a9w7.js.map → src-IOr1rhEg.js.map} +1 -1
  133. package/dist/src-Ljh2vKXm.js +3 -0
  134. package/dist/{src-CdwJuMBO.js → src-s-VffoYK.js} +2 -2
  135. package/dist/{src-CdwJuMBO.js.map → src-s-VffoYK.js.map} +1 -1
  136. package/dist/{state-evRYxV_q.js → state-DEj_utaE.js} +15 -15
  137. package/dist/{state-evRYxV_q.js.map → state-DEj_utaE.js.map} +1 -1
  138. package/dist/state-DkqbCVVp.js +2 -0
  139. package/dist/studio-app/assets/{index-WQPq5K3E.js → index-Bbl0oTxu.js} +1 -1
  140. package/dist/studio-app/index.html +1 -1
  141. package/dist/{summary-DTUCNA-v.js → summary--FBuB_sr.js} +3 -3
  142. package/dist/{summary-DTUCNA-v.js.map → summary--FBuB_sr.js.map} +1 -1
  143. package/dist/{summary-CIw18kb-.js → summary-D012KlUM.js} +5 -5
  144. package/dist/{summary-CIw18kb-.js.map → summary-D012KlUM.js.map} +1 -1
  145. package/dist/tool-target-BU1JnSE9.js +34 -0
  146. package/dist/tool-target-BU1JnSE9.js.map +1 -0
  147. package/dist/{tools-By2WuNxm.js → tools-CJHw-zCo.js} +3 -3
  148. package/dist/{tools-By2WuNxm.js.map → tools-CJHw-zCo.js.map} +1 -1
  149. package/dist/{types-C2Gl05_c.d.ts → types-BsRSknLe.d.ts} +6 -5
  150. package/dist/view/index.d.ts +1 -1
  151. package/dist/view/index.js +2 -2
  152. package/dist/{views-BJ0i1Iuw.js → views-jhL9Jb8A.js} +4 -4
  153. package/dist/{views-BJ0i1Iuw.js.map → views-jhL9Jb8A.js.map} +1 -1
  154. package/dist/views-yPmmoo8f.js +3 -0
  155. package/dist/{worker-entry-mCctDzig.js → worker-entry-OwnsrUdr.js} +72 -2
  156. package/dist/worker-entry-OwnsrUdr.js.map +1 -0
  157. package/dist/{workspace-Bl1SiRQa.js → workspace-C4_J0pqb.js} +3 -3
  158. package/dist/{workspace-Bl1SiRQa.js.map → workspace-C4_J0pqb.js.map} +1 -1
  159. package/dist/{workspace-CvAPfa8b.js → workspace-wudSz_W-.js} +1 -1
  160. package/package.json +11 -10
  161. package/dist/assemble-BB_dcnfh.js.map +0 -1
  162. package/dist/assemble-DcLLkwnB.js +0 -2
  163. package/dist/capture-EvOaSXj_.js +0 -2
  164. package/dist/cli-BM-qbqO_.js.map +0 -1
  165. package/dist/cli-spec-DUeyuSIQ.js.map +0 -1
  166. package/dist/command-Bn_kbh3B.js +0 -2
  167. package/dist/db-4nMvBFNX.js +0 -2
  168. package/dist/files-C_CsTMtM.js +0 -2
  169. package/dist/files-vgLA9tcj.js +0 -2
  170. package/dist/init-DIAJuCs2.js +0 -2
  171. package/dist/matchers-Bp-OH1vj.js.map +0 -1
  172. package/dist/model-C_B5JrhL.js +0 -2
  173. package/dist/model-CtrJdFi6.js.map +0 -1
  174. package/dist/opencode-providers-DJVocFOU.js.map +0 -1
  175. package/dist/plan-Bsge1_cc.js.map +0 -1
  176. package/dist/query-BtLxk32J.js +0 -2
  177. package/dist/results-CiJzkjNI.js +0 -37
  178. package/dist/results-CiJzkjNI.js.map +0 -1
  179. package/dist/server-CN3lGbK-.js +0 -2
  180. package/dist/source-CxLRUqU2.js +0 -2
  181. package/dist/src-B3J1D0nL.js.map +0 -1
  182. package/dist/src-Ba3zMSdv.js +0 -3
  183. package/dist/src-BpVFmHqj.js +0 -3
  184. package/dist/src-CJONyPRm.js +0 -3
  185. package/dist/src-CLO4dUg7.js +0 -3
  186. package/dist/src-DQCjANtm.js +0 -3
  187. package/dist/src-yCDQ7kpQ.js +0 -4
  188. package/dist/state-CeYoWFWx.js +0 -2
  189. package/dist/stats-BNAHlNMD.js +0 -114
  190. package/dist/stats-BNAHlNMD.js.map +0 -1
  191. package/dist/views-BEurSpHC.js +0 -3
  192. 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-DVB78W8X.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-evRYxV_q.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-BB_dcnfh.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.142.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,
@@ -1561,7 +1620,7 @@ async function runTurn(start, turn) {
1561
1620
  }
1562
1621
  const harnessUsage = mapUsage(msg.usage ?? msg.message?.usage);
1563
1622
  if (harnessUsage) turnUsage = addUsage(turnUsage, harnessUsage);
1564
- if (typeof msg.total_cost_usd === "number") totalCostUsd = (totalCostUsd ?? 0) + msg.total_cost_usd;
1623
+ if (typeof msg.total_cost_usd === "number") totalCostUsd = msg.total_cost_usd;
1565
1624
  if (start.responseFormat?.type === "json" && msg.structured_output !== void 0) {
1566
1625
  const id = randomUUID();
1567
1626
  emit({
@@ -1584,6 +1643,7 @@ async function runTurn(start, turn) {
1584
1643
  emit,
1585
1644
  usage: streamEventState.pendingStepUsage ?? harnessUsage
1586
1645
  });
1646
+ if (!queryInput.answersSentMessage(msg)) continue;
1587
1647
  queryInput.observeResult();
1588
1648
  if (!queryInput.hasActiveUserMessages()) {
1589
1649
  queryInput.close();
@@ -1631,6 +1691,14 @@ function createQueryInput({ initialUserMessage, userMessages, abortSignal }) {
1631
1691
  let closed = false;
1632
1692
  let observedResult = false;
1633
1693
  const submittedMessages = /* @__PURE__ */ new Map();
1694
+ const initialMessageId = randomUUID();
1695
+ const sentMessageIds = /* @__PURE__ */ new Set([initialMessageId]);
1696
+ let cliEchoesMessageIds = false;
1697
+ const noteEcho = (ids) => {
1698
+ const echoed = ids.some((id) => typeof id === "string" && sentMessageIds.has(id));
1699
+ if (echoed) cliEchoesMessageIds = true;
1700
+ return echoed;
1701
+ };
1634
1702
  const close = (error) => {
1635
1703
  if (closed) return;
1636
1704
  closed = true;
@@ -1657,6 +1725,8 @@ function createQueryInput({ initialUserMessage, userMessages, abortSignal }) {
1657
1725
  handleLifecycle: (message) => {
1658
1726
  const lifecycle = message;
1659
1727
  if (lifecycle.command_uuid == null || lifecycle.state == null) return;
1728
+ noteEcho([lifecycle.command_uuid]);
1729
+ if (lifecycle.command_uuid === initialMessageId && (lifecycle.state === "cancelled" || lifecycle.state === "discarded")) observedResult = true;
1660
1730
  const submitted = submittedMessages.get(lifecycle.command_uuid);
1661
1731
  if (submitted == null) return;
1662
1732
  if (lifecycle.state === "queued" || lifecycle.state === "started") {
@@ -1667,6 +1737,10 @@ function createQueryInput({ initialUserMessage, userMessages, abortSignal }) {
1667
1737
  submittedMessages.delete(lifecycle.command_uuid);
1668
1738
  },
1669
1739
  hasActiveUserMessages: () => submittedMessages.size > 0 || userMessages.pendingCount > 0,
1740
+ answersSentMessage: (result) => {
1741
+ const { user_message_uuid, user_message_uuids, origin } = result;
1742
+ return noteEcho([user_message_uuid, ...Array.isArray(user_message_uuids) ? user_message_uuids : []]) || !cliEchoesMessageIds && origin?.kind !== "task-notification";
1743
+ },
1670
1744
  observeResult: () => {
1671
1745
  observedResult = true;
1672
1746
  },
@@ -1685,7 +1759,7 @@ function createQueryInput({ initialUserMessage, userMessages, abortSignal }) {
1685
1759
  return {
1686
1760
  value: toUserMessage({
1687
1761
  text: initialUserMessage,
1688
- messageId: randomUUID()
1762
+ messageId: initialMessageId
1689
1763
  }),
1690
1764
  done: false
1691
1765
  };
@@ -1696,6 +1770,7 @@ function createQueryInput({ initialUserMessage, userMessages, abortSignal }) {
1696
1770
  done: true
1697
1771
  };
1698
1772
  submittedMessages.set(nextMessage.value.messageId, nextMessage.value);
1773
+ sentMessageIds.add(nextMessage.value.messageId);
1699
1774
  return {
1700
1775
  value: toUserMessage({
1701
1776
  text: nextMessage.value.text,
@@ -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.30.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
  }