reeval 0.0.1 → 0.3.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 (202) hide show
  1. package/THIRD_PARTY_NOTICES.md +4 -4
  2. package/assets/package.json +1 -1
  3. package/assets/pnpm-lock.yaml +84 -33
  4. package/dist/agent-BYy0Tc6P.js +334 -0
  5. package/dist/agent-BYy0Tc6P.js.map +1 -0
  6. package/dist/{agent-DVHkx8aT.js → agent-DcQAvomp.js} +4 -4
  7. package/dist/{agent-DVHkx8aT.js.map → agent-DcQAvomp.js.map} +1 -1
  8. package/dist/analysis-CxSCt1YY.js.map +1 -1
  9. package/dist/assemble-BFsyMhb-.js +2 -0
  10. package/dist/{assemble-B-nmz8oH.js → assemble-h8s0hzTQ.js} +23 -14
  11. package/dist/assemble-h8s0hzTQ.js.map +1 -0
  12. package/dist/{cli--CQ3Iy9q.js → cli-DemDdg8J.js} +165 -54
  13. package/dist/cli-DemDdg8J.js.map +1 -0
  14. package/dist/{cli-spec-DKAu09Gi.js → cli-spec-BxLPgNN-.js} +8 -2
  15. package/dist/cli-spec-BxLPgNN-.js.map +1 -0
  16. package/dist/cli.js +2 -2
  17. package/dist/{command-D-jnQWVG.js → command-CxwnRrTs.js} +11 -11
  18. package/dist/{command-D-jnQWVG.js.map → command-CxwnRrTs.js.map} +1 -1
  19. package/dist/command-DhgZPhsY.js +2 -0
  20. package/dist/{command-DQAvbG7d.js → command-PEbIzJj3.js} +12 -12
  21. package/dist/{command-DQAvbG7d.js.map → command-PEbIzJj3.js.map} +1 -1
  22. package/dist/{command-BSJzHMtP.js → command-pHfluVCF.js} +11 -9
  23. package/dist/command-pHfluVCF.js.map +1 -0
  24. package/dist/{command-CEm8PZ1N.js → command-y91-aNhu.js} +169 -280
  25. package/dist/command-y91-aNhu.js.map +1 -0
  26. package/dist/{commands-A4udfyKZ.js → commands-De-SxIgY.js} +1 -1
  27. package/dist/{commands-CF8mOfiu.js → commands-DhCuEa6z.js} +6 -6
  28. package/dist/{commands-CF8mOfiu.js.map → commands-DhCuEa6z.js.map} +1 -1
  29. package/dist/{config-Cuj0kVYj.js → config-CqSLZkwx.js} +39 -14
  30. package/dist/{config-Cuj0kVYj.js.map → config-CqSLZkwx.js.map} +1 -1
  31. package/dist/{db-DxDzMhtB.js → db-DA4LBwi_.js} +4 -4
  32. package/dist/{db-DxDzMhtB.js.map → db-DA4LBwi_.js.map} +1 -1
  33. package/dist/db-DDfq7Tx_.js +2 -0
  34. package/dist/{dist-BZXYHN2X.js → dist-BSoys6pg.js} +2 -2
  35. package/dist/{dist-BZXYHN2X.js.map → dist-BSoys6pg.js.map} +1 -1
  36. package/dist/{docker-DQDZWXF9.js → docker-DMRwn7yh.js} +2 -2
  37. package/dist/{docker-DQDZWXF9.js.map → docker-DMRwn7yh.js.map} +1 -1
  38. package/dist/{docker-oSbCExHL.js → docker-DwG9f76x.js} +4 -4
  39. package/dist/{docker-oSbCExHL.js.map → docker-DwG9f76x.js.map} +1 -1
  40. package/dist/{docker-DnWAVdEm.js → docker-jf52ARP7.js} +1 -1
  41. package/dist/{doctor-CxlH1pDM.js → doctor-DhvVbNKv.js} +23 -18
  42. package/dist/doctor-DhvVbNKv.js.map +1 -0
  43. package/dist/{egress-73SQfKdx.js → egress-D9vJCATi.js} +35 -19
  44. package/dist/egress-D9vJCATi.js.map +1 -0
  45. package/dist/{environment-Mz7wvrtD.js → environment-ByCF9s3n.js} +6 -16
  46. package/dist/{environment-Mz7wvrtD.js.map → environment-ByCF9s3n.js.map} +1 -1
  47. package/dist/files-B16cQ6XX.js +2 -0
  48. package/dist/files-BC5Yqir-.js +2 -0
  49. package/dist/{files-bF2fPuT9.js → files-CfsIRN7n.js} +40 -7
  50. package/dist/files-CfsIRN7n.js.map +1 -0
  51. package/dist/{files-D2-qn_Dl.js → files-DHBBIYx_.js} +6 -6
  52. package/dist/{files-D2-qn_Dl.js.map → files-DHBBIYx_.js.map} +1 -1
  53. package/dist/{git-D6hMeieS.js → git-oX92_Jh-.js} +2 -2
  54. package/dist/{git-D6hMeieS.js.map → git-oX92_Jh-.js.map} +1 -1
  55. package/dist/{harness-ls5aX1UO.js → harness-BbMShUC-.js} +4 -4
  56. package/dist/{harness-ls5aX1UO.js.map → harness-BbMShUC-.js.map} +1 -1
  57. package/dist/harness.d.ts +2 -2
  58. package/dist/harness.js +1 -1
  59. package/dist/{header-DzFDoMCI.js → header-sPQ9Lq2S.js} +2 -2
  60. package/dist/{header-DzFDoMCI.js.map → header-sPQ9Lq2S.js.map} +1 -1
  61. package/dist/{images-Cc1-coFc.js → images-C9Y4ijbG.js} +6 -6
  62. package/dist/{images-Cc1-coFc.js.map → images-C9Y4ijbG.js.map} +1 -1
  63. package/dist/index.d.ts +4 -4
  64. package/dist/index.js +23 -23
  65. package/dist/index.js.map +1 -1
  66. package/dist/init-DPJv7OmX.js +2 -0
  67. package/dist/{init-CFljS8BJ.js → init-x55uF8a4.js} +10 -10
  68. package/dist/{init-CFljS8BJ.js.map → init-x55uF8a4.js.map} +1 -1
  69. package/dist/{invocations-rXktgSAn.js → invocations-DSMfs3Dx.js} +3 -3
  70. package/dist/{invocations-rXktgSAn.js.map → invocations-DSMfs3Dx.js.map} +1 -1
  71. package/dist/{jiti-BOLXpKyG.js → jiti-DWsGEgxD.js} +4 -4
  72. package/dist/{jiti-BOLXpKyG.js.map → jiti-DWsGEgxD.js.map} +1 -1
  73. package/dist/judge.d.ts +7 -6
  74. package/dist/judge.js +8 -3
  75. package/dist/judge.js.map +1 -1
  76. package/dist/{live-Bs3LReMV.js → live-DZkCtmNP.js} +2 -2
  77. package/dist/{live-Bs3LReMV.js.map → live-DZkCtmNP.js.map} +1 -1
  78. package/dist/{matchers-DyLvm7EG.js → matchers-D51lM8dO.js} +4 -4
  79. package/dist/{matchers-DyLvm7EG.js.map → matchers-D51lM8dO.js.map} +1 -1
  80. package/dist/model-CNoc8t2Y.js +2 -0
  81. package/dist/model-DQQQ3q_n.js +2 -0
  82. package/dist/model-GFM8iOzM.js +228 -0
  83. package/dist/model-GFM8iOzM.js.map +1 -0
  84. package/dist/{model-CDL98xue.js → model-ORtLm2UB.js} +41 -3
  85. package/dist/{model-CDL98xue.js.map → model-ORtLm2UB.js.map} +1 -1
  86. package/dist/{node-kG64XxdE.js → node-OXPxBD2N.js} +3 -3
  87. package/dist/{node-kG64XxdE.js.map → node-OXPxBD2N.js.map} +1 -1
  88. package/dist/{opencode-providers-DZuD_oYt.js → opencode-providers-DJVocFOU.js} +31 -3
  89. package/dist/opencode-providers-DJVocFOU.js.map +1 -0
  90. package/dist/{options-CAQhu--C.js → options-CIutEeuy.js} +86 -46
  91. package/dist/options-CIutEeuy.js.map +1 -0
  92. package/dist/{plan-gwk6dJ8c.js → plan-DcHTdiJN.js} +21 -5
  93. package/dist/plan-DcHTdiJN.js.map +1 -0
  94. package/dist/{preflight-BtubXKQ8.js → preflight-BQyUr_hW.js} +1 -1
  95. package/dist/{preflight-BypZMNBG.js → preflight-vISQIiF1.js} +3 -3
  96. package/dist/{preflight-BypZMNBG.js.map → preflight-vISQIiF1.js.map} +1 -1
  97. package/dist/{prepare-D6Uzcubb.js → prepare-BTeAiW9Q.js} +5 -5
  98. package/dist/{prepare-D6Uzcubb.js.map → prepare-BTeAiW9Q.js.map} +1 -1
  99. package/dist/{prepare-Cwv0bHs_.js → prepare-Ca0Nxd9b.js} +2 -2
  100. package/dist/{provenance-Dfb8YY5Y.js → provenance-D4vo7RF6.js} +21 -3
  101. package/dist/provenance-D4vo7RF6.js.map +1 -0
  102. package/dist/{providers-2p3ylMHI.js → providers-Bjgky1u8.js} +3 -3
  103. package/dist/{providers-2p3ylMHI.js.map → providers-Bjgky1u8.js.map} +1 -1
  104. package/dist/{providers-BUOxitcT.js → providers-DfVMglqP.js} +1 -1
  105. package/dist/query-CWkZnV62.js +2 -0
  106. package/dist/{query-CFATHZmV.js → query-D2KaStTs.js} +2 -2
  107. package/dist/{query-CFATHZmV.js.map → query-D2KaStTs.js.map} +1 -1
  108. package/dist/questions-CzXdVVsh.js +325 -0
  109. package/dist/questions-CzXdVVsh.js.map +1 -0
  110. package/dist/{record-DQ8wzyco.js → record-CbuQH4l1.js} +7 -3
  111. package/dist/record-CbuQH4l1.js.map +1 -0
  112. package/dist/{results-CeXb8Wde.js → results-BI-zTqQy.js} +4 -4
  113. package/dist/{results-CeXb8Wde.js.map → results-BI-zTqQy.js.map} +1 -1
  114. package/dist/{root-CFDjpWuc.js → root-Zeokqt3-.js} +2 -2
  115. package/dist/{root-CFDjpWuc.js.map → root-Zeokqt3-.js.map} +1 -1
  116. package/dist/{sandbox-By2gkdkC.js → sandbox-Dd-4Bx6B.js} +3 -3
  117. package/dist/{sandbox-By2gkdkC.js.map → sandbox-Dd-4Bx6B.js.map} +1 -1
  118. package/dist/sandbox.d.ts +2 -2
  119. package/dist/sandbox.js +1 -1
  120. package/dist/server-BjbgFX28.js +2 -0
  121. package/dist/{server-Bi61uiY0.js → server-C7t8WYCR.js} +11 -9
  122. package/dist/{server-Bi61uiY0.js.map → server-C7t8WYCR.js.map} +1 -1
  123. package/dist/source-CLE8vMNa.js +2 -0
  124. package/dist/{source-Bsfa3LZH.js → source-fNUCWsCW.js} +2 -2
  125. package/dist/{source-Bsfa3LZH.js.map → source-fNUCWsCW.js.map} +1 -1
  126. package/dist/{src-DXx_29pq.js → src-B1OT_Zhf.js} +46 -46
  127. package/dist/{src-DXx_29pq.js.map → src-B1OT_Zhf.js.map} +1 -1
  128. package/dist/{src-BQyMiWri.js → src-BAiYD4eC.js} +48 -7
  129. package/dist/{src-BQyMiWri.js.map → src-BAiYD4eC.js.map} +1 -1
  130. package/dist/{src-D8KYzxBX.js → src-BmBFlEIe.js} +12 -7
  131. package/dist/{src-D8KYzxBX.js.map → src-BmBFlEIe.js.map} +1 -1
  132. package/dist/{src-N7E_mfcZ.js → src-C91RndLw.js} +1 -1
  133. package/dist/{src-C-LHyTSV.js → src-CEQFcAJH.js} +1 -1
  134. package/dist/src-CNp0srm9.js +3 -0
  135. package/dist/{src-DwwiVLqv.js → src-D3eW1e7Y.js} +19 -15
  136. package/dist/{src-DwwiVLqv.js.map → src-D3eW1e7Y.js.map} +1 -1
  137. package/dist/src-DJsBrqo6.js +4 -0
  138. package/dist/src-DTlmkpJe.js +3 -0
  139. package/dist/{src-Cmp-7YrD.js → src-DWk0e7ix.js} +5 -5
  140. package/dist/{src-Cmp-7YrD.js.map → src-DWk0e7ix.js.map} +1 -1
  141. package/dist/{src-AEwxd1UP.js → src-DfEAlC9s.js} +4 -4
  142. package/dist/{src-AEwxd1UP.js.map → src-DfEAlC9s.js.map} +1 -1
  143. package/dist/src-DgYURuJ6.js +3 -0
  144. package/dist/src-sSPmuaAc.js +3 -0
  145. package/dist/state-Bx-pH2ON.js +2 -0
  146. package/dist/{state-DZ7eqb1F.js → state-g6ij_40j.js} +14 -14
  147. package/dist/{state-DZ7eqb1F.js.map → state-g6ij_40j.js.map} +1 -1
  148. package/dist/studio-app/assets/index-B1Pf3LAT.css +2 -0
  149. package/dist/studio-app/assets/index-DciOL7BI.js +58 -0
  150. package/dist/studio-app/index.html +2 -2
  151. package/dist/summary-DjbxgCDi.js +192 -0
  152. package/dist/summary-DjbxgCDi.js.map +1 -0
  153. package/dist/{summary-D7Ttky0z.js → summary-gawvEpNu.js} +33 -5
  154. package/dist/summary-gawvEpNu.js.map +1 -0
  155. package/dist/tools-B7SoW5kU.js +249 -0
  156. package/dist/tools-B7SoW5kU.js.map +1 -0
  157. package/dist/{types-DLec-6Cx.d.ts → types-C5AEPr29.d.ts} +178 -29
  158. package/dist/view/index.d.ts +63 -1
  159. package/dist/view/index.js +5 -5
  160. package/dist/{views-BrHOv6wg.js → views-CHXQfSWQ.js} +4 -4
  161. package/dist/{views-BrHOv6wg.js.map → views-CHXQfSWQ.js.map} +1 -1
  162. package/dist/views-DDei2LHa.js +3 -0
  163. package/dist/{worker-entry-DnYkANPG.js → worker-entry-B6nuDpBX.js} +3 -3
  164. package/dist/{worker-entry-DnYkANPG.js.map → worker-entry-B6nuDpBX.js.map} +1 -1
  165. package/dist/{workspace-C2S0Z6gl.js → workspace-DUUfne8b.js} +4 -4
  166. package/dist/{workspace-C2S0Z6gl.js.map → workspace-DUUfne8b.js.map} +1 -1
  167. package/dist/{workspace-CyoXG6CY.js → workspace-DXV77ZqW.js} +1 -1
  168. package/docker/Dockerfile +2 -0
  169. package/docker/reeval-path.sh +21 -0
  170. package/package.json +1 -1
  171. package/dist/assemble-B-nmz8oH.js.map +0 -1
  172. package/dist/assemble-CmRVDZ2Q.js +0 -2
  173. package/dist/cli--CQ3Iy9q.js.map +0 -1
  174. package/dist/cli-spec-DKAu09Gi.js.map +0 -1
  175. package/dist/command-BSJzHMtP.js.map +0 -1
  176. package/dist/command-CEm8PZ1N.js.map +0 -1
  177. package/dist/db-Cjj2ZsfQ.js +0 -2
  178. package/dist/doctor-CxlH1pDM.js.map +0 -1
  179. package/dist/egress-73SQfKdx.js.map +0 -1
  180. package/dist/files--6CEUXm7.js +0 -2
  181. package/dist/files-Bd25OAQH.js +0 -2
  182. package/dist/files-bF2fPuT9.js.map +0 -1
  183. package/dist/init-z2ZPn9Tj.js +0 -2
  184. package/dist/model-v-0_Ik7S.js +0 -2
  185. package/dist/opencode-providers-DZuD_oYt.js.map +0 -1
  186. package/dist/options-CAQhu--C.js.map +0 -1
  187. package/dist/plan-gwk6dJ8c.js.map +0 -1
  188. package/dist/provenance-Dfb8YY5Y.js.map +0 -1
  189. package/dist/query-DR4m6CXf.js +0 -2
  190. package/dist/record-DQ8wzyco.js.map +0 -1
  191. package/dist/server-CsSBL8NC.js +0 -2
  192. package/dist/source-BXzrmof5.js +0 -2
  193. package/dist/src-55j1zNHH.js +0 -3
  194. package/dist/src-BDwSuyIo.js +0 -3
  195. package/dist/src-DEgff9Z7.js +0 -4
  196. package/dist/src-W9g-y5X5.js +0 -3
  197. package/dist/src-daS0wKH2.js +0 -3
  198. package/dist/state-Cyw3QTsN.js +0 -2
  199. package/dist/studio-app/assets/index-D6XyfFSH.js +0 -58
  200. package/dist/studio-app/assets/index-xwzWdcE_.css +0 -2
  201. package/dist/summary-D7Ttky0z.js.map +0 -1
  202. package/dist/views-CwCWLWqo.js +0 -3
@@ -44,8 +44,8 @@ with its own licence.
44
44
  | @radix-ui/react-use-size | 1.1.4 | MIT | dist/studio-app |
45
45
  | @radix-ui/react-visually-hidden | 1.2.11 | MIT | dist/studio-app |
46
46
  | @tanstack/history | 1.162.4 | MIT | dist/studio-app |
47
- | @tanstack/query-core | 5.103.2 | MIT | dist/studio-app |
48
- | @tanstack/react-query | 5.103.2 | MIT | dist/studio-app |
47
+ | @tanstack/query-core | 5.104.0 | MIT | dist/studio-app |
48
+ | @tanstack/react-query | 5.104.0 | MIT | dist/studio-app |
49
49
  | @tanstack/react-router | 1.170.39 | MIT | dist/studio-app |
50
50
  | @tanstack/react-store | 0.11.1 | MIT | dist/studio-app |
51
51
  | @tanstack/react-virtual | 3.14.13 | MIT | dist/studio-app |
@@ -1163,7 +1163,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1163
1163
  SOFTWARE.
1164
1164
  ```
1165
1165
 
1166
- ## @tanstack/query-core@5.103.2
1166
+ ## @tanstack/query-core@5.104.0
1167
1167
 
1168
1168
  - Licence: MIT
1169
1169
  - Source: git+https://github.com/TanStack/query.git
@@ -1193,7 +1193,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1193
1193
  SOFTWARE.
1194
1194
  ```
1195
1195
 
1196
- ## @tanstack/react-query@5.103.2
1196
+ ## @tanstack/react-query@5.104.0
1197
1197
 
1198
1198
  - Licence: MIT
1199
1199
  - Source: git+https://github.com/TanStack/query.git
@@ -4,6 +4,6 @@
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@earendil-works/pi-coding-agent": "0.87.1"
7
+ "@earendil-works/pi-coding-agent": "0.99.1"
8
8
  }
9
9
  }
@@ -9,8 +9,8 @@ importers:
9
9
  .:
10
10
  dependencies:
11
11
  '@earendil-works/pi-coding-agent':
12
- specifier: 0.87.1
13
- version: 0.87.1(ws@8.22.0)
12
+ specifier: 0.99.1
13
+ version: 0.99.1(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(ws@8.22.0)
14
14
 
15
15
  packages:
16
16
 
@@ -107,30 +107,38 @@ packages:
107
107
  resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==}
108
108
  engines: {node: '>=6.9.0'}
109
109
 
110
- '@earendil-works/chord@0.87.1':
111
- resolution: {integrity: sha512-bg7IkJGFcEaMqqYgOGUiq5Ky9RghpRfrlZ8I/v/1b4bBZ02A7t3E+6uhPRbadwWb/kWsnVFbZsqOKRN4a3LLCg==}
110
+ '@earendil-works/chord@0.99.1':
111
+ resolution: {integrity: sha512-4xyn0IBzJ+Xu/iOGi2hjXJGAR61QEhEWZsIqTDqr+GmItdquYwBO5jYFnqGiBaTqlY12/EpM7QHoEKSHbyvOug==}
112
112
  engines: {node: '>=22.19.0'}
113
113
 
114
- '@earendil-works/pi-agent-core@0.87.1':
115
- resolution: {integrity: sha512-Zev3B0HK7YS5A4EZQ2XnEqiJuirx6QBiltJ+LpmjV5a/+2IU0cfKtIfnkNkORK707XOvKBY2WRtk7cAwHpbh2Q==}
114
+ '@earendil-works/pi-agent-core@0.99.1':
115
+ resolution: {integrity: sha512-zywvWnj5FujeuFI/x/CJHwwxhcLIQgjqseTA+bQgX4O8gJTcgjRd/I8SZnQDqJvxC9QcV12ujiGLviv6EgwcCg==}
116
116
  engines: {node: '>=22.19.0'}
117
117
 
118
- '@earendil-works/pi-ai@0.87.1':
119
- resolution: {integrity: sha512-X/3PfQBnnoeVdO9Cv8zHghUMglzlgNZYGNzoPnbRoGnHl3Rw3TlA2UKSUB7BRHUOxMryHXYa8dnjWZlbRheDZA==}
118
+ '@earendil-works/pi-ai@0.99.1':
119
+ resolution: {integrity: sha512-4nV9JKc94iPX8bwdGPc2nTuVPKIPsffhnp3WoN9NYCNqbtoOF8LhYcIs/+Sn/alroqJK/5QRu6/Z6Ck+n0hyBA==}
120
120
  engines: {node: '>=22.19.0'}
121
121
  hasBin: true
122
122
 
123
- '@earendil-works/pi-coding-agent@0.87.1':
124
- resolution: {integrity: sha512-m8ArJUtVcQMSe1lLE/Ei7vX/JV7O39sWmWBsXV2NOU70F0qCp8GubA24pT3LnwTmM6LL2xV80/h6sQg85n69ew==}
123
+ '@earendil-works/pi-codemode@0.99.1':
124
+ resolution: {integrity: sha512-oh8TMsBI3SWTN3xTQtX8u5n+BKhnVXcFagroWumfn6/WWfBnDYL/LmeQtjLb83WRTb9rcu+ZdK8rFa4vggvCJg==}
125
+ engines: {node: '>=22.19.0'}
126
+
127
+ '@earendil-works/pi-coding-agent@0.99.1':
128
+ resolution: {integrity: sha512-cWUrTOqA5M73cOYMgsh9PlhDrsBhavd+n5kVY6F7BGbGl1RjqCteVCoeVMVqhngoGACVDyw1tbLjajL8l9jrHg==}
125
129
  engines: {node: '>=22.19.0'}
126
130
  hasBin: true
127
131
 
128
- '@earendil-works/pi-telemetry@0.87.1':
129
- resolution: {integrity: sha512-MC6TRQH5lgMXpcN+Vku2WMI2T8BsiUPzMQHGo81uqFZD3/9O79WWJAysEDGuzduP6R4tvtgwMLwmqIxynM10JQ==}
132
+ '@earendil-works/pi-mcp@0.99.1':
133
+ resolution: {integrity: sha512-YCFGPkmDzLwQuIzwfbP6Vuk/g/ukKpZhwTpbcfzomuI1Fkiu6hHRkOGwAqsO3G8cTkZWkM8vmOkFJjStQNC4qA==}
130
134
  engines: {node: '>=22.19.0'}
131
135
 
132
- '@earendil-works/pi-tui@0.87.1':
133
- resolution: {integrity: sha512-YEH2vRyOeiO7hhN6j6AE6YwKSq2Kz2f3XR8bj1TbR+aGE/JsnY1hLPMI2pvaZfRM1n9Y00tejxFQ4zbzvF7nkQ==}
136
+ '@earendil-works/pi-telemetry@0.99.1':
137
+ resolution: {integrity: sha512-9PBPjGk+TXRtuMianpqBbHBpYpyKusESF6rwdmgD0WTZSTUQXhcKEO0hAINRLuSwy4V7yPvXV+EVV0ONY7mbpQ==}
138
+ engines: {node: '>=22.19.0'}
139
+
140
+ '@earendil-works/pi-tui@0.99.1':
141
+ resolution: {integrity: sha512-gZp0Guat96Fr1AuC/xqVz5B2lulZakp/PxD1lXx3lSgBdjiqmwYhJbcQ0HRrGAfy0WtMGn9b05RJr5qJf7oIuw==}
134
142
  engines: {node: '>=22.19.0'}
135
143
 
136
144
  '@esbuild/aix-ppc64@0.28.2':
@@ -534,12 +542,25 @@ packages:
534
542
  resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
535
543
  engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
536
544
 
537
- openai@6.40.0:
538
- resolution: {integrity: sha512-MWtTjd/gQt4jpbji61NTgFWJLoY/PdRJ6wG9/ZDRMYNMlBKrCrSlkLI+KgHP1vR1qT6LKSAyAqIxno6lcK9JiA==}
545
+ openai@7.19.0:
546
+ resolution: {integrity: sha512-MX2s3u2L5racTO0CC/SWpCOasJQBCJrqLKXK+l82cAhdeF8mPMBEe/gxMm0ZFa2xpKpOFLRjxv5afYEZbBXmbQ==}
547
+ engines: {node: '>=22.0.0'}
539
548
  peerDependencies:
540
- ws: ^8.18.0
549
+ '@aws-sdk/credential-provider-node': '>=3.972.0 <4'
550
+ '@smithy/hash-node': '>=4.3.0 <5'
551
+ '@smithy/signature-v4': '>=5.4.0 <6'
552
+ undici: '>=5 <9'
553
+ ws: ^8.21.0
541
554
  zod: ^3.25 || ^4.0
542
555
  peerDependenciesMeta:
556
+ '@aws-sdk/credential-provider-node':
557
+ optional: true
558
+ '@smithy/hash-node':
559
+ optional: true
560
+ '@smithy/signature-v4':
561
+ optional: true
562
+ undici:
563
+ optional: true
543
564
  ws:
544
565
  optional: true
545
566
  zod:
@@ -572,6 +593,9 @@ packages:
572
593
  kerberos:
573
594
  optional: true
574
595
 
596
+ quickjs-wasi@3.6.2:
597
+ resolution: {integrity: sha512-FCqGtGOrMgzUiIrMNMA2YnsOxCNwo31dzqXvclXUC6xeT35NJLKXQJsvbeCTjvoFAwZgEAPg8U6+KAPDGXn8Mg==}
598
+
575
599
  retry@0.12.0:
576
600
  resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
577
601
  engines: {node: '>= 4'}
@@ -835,55 +859,69 @@ snapshots:
835
859
 
836
860
  '@babel/runtime@7.29.7': {}
837
861
 
838
- '@earendil-works/chord@0.87.1':
862
+ '@earendil-works/chord@0.99.1':
839
863
  dependencies:
840
864
  esbuild: 0.28.2
841
865
 
842
- '@earendil-works/pi-agent-core@0.87.1(ws@8.22.0)':
866
+ '@earendil-works/pi-agent-core@0.99.1(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.22.0)':
843
867
  dependencies:
844
- '@earendil-works/chord': 0.87.1
845
- '@earendil-works/pi-ai': 0.87.1(ws@8.22.0)
846
- '@earendil-works/pi-telemetry': 0.87.1
868
+ '@earendil-works/chord': 0.99.1
869
+ '@earendil-works/pi-ai': 0.99.1(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.22.0)
870
+ '@earendil-works/pi-telemetry': 0.99.1
847
871
  diff: 8.0.4
848
872
  ignore: 7.0.8
849
873
  typebox: 1.3.27
850
874
  yaml: 2.9.0
851
875
  transitivePeerDependencies:
876
+ - '@aws-sdk/credential-provider-node'
852
877
  - '@modelcontextprotocol/sdk'
878
+ - '@smithy/hash-node'
879
+ - '@smithy/signature-v4'
853
880
  - bufferutil
854
881
  - kerberos
855
882
  - supports-color
883
+ - undici
856
884
  - utf-8-validate
857
885
  - ws
858
886
  - zod
859
887
 
860
- '@earendil-works/pi-ai@0.87.1(ws@8.22.0)':
888
+ '@earendil-works/pi-ai@0.99.1(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.22.0)':
861
889
  dependencies:
862
890
  '@anthropic-ai/sdk': 0.124.0
863
891
  '@aws-sdk/client-bedrock-runtime': 3.1127.0
864
- '@earendil-works/pi-telemetry': 0.87.1
892
+ '@earendil-works/pi-telemetry': 0.99.1
865
893
  '@google/genai': 2.21.0
866
894
  '@smithy/node-http-handler': 4.12.1
867
895
  http-proxy-agent: 9.1.0
868
896
  https-proxy-agent: 9.1.0
869
- openai: 6.40.0(ws@8.22.0)
897
+ openai: 7.19.0(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.22.0)
870
898
  partial-json: 0.1.7
871
899
  typebox: 1.3.27
872
900
  transitivePeerDependencies:
901
+ - '@aws-sdk/credential-provider-node'
873
902
  - '@modelcontextprotocol/sdk'
903
+ - '@smithy/hash-node'
904
+ - '@smithy/signature-v4'
874
905
  - bufferutil
875
906
  - kerberos
876
907
  - supports-color
908
+ - undici
877
909
  - utf-8-validate
878
910
  - ws
879
911
  - zod
880
912
 
881
- '@earendil-works/pi-coding-agent@0.87.1(ws@8.22.0)':
913
+ '@earendil-works/pi-codemode@0.99.1':
882
914
  dependencies:
883
- '@earendil-works/chord': 0.87.1
884
- '@earendil-works/pi-agent-core': 0.87.1(ws@8.22.0)
885
- '@earendil-works/pi-ai': 0.87.1(ws@8.22.0)
886
- '@earendil-works/pi-tui': 0.87.1
915
+ quickjs-wasi: 3.6.2
916
+
917
+ '@earendil-works/pi-coding-agent@0.99.1(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(ws@8.22.0)':
918
+ dependencies:
919
+ '@earendil-works/chord': 0.99.1
920
+ '@earendil-works/pi-agent-core': 0.99.1(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.22.0)
921
+ '@earendil-works/pi-ai': 0.99.1(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.22.0)
922
+ '@earendil-works/pi-codemode': 0.99.1
923
+ '@earendil-works/pi-mcp': 0.99.1
924
+ '@earendil-works/pi-tui': 0.99.1
887
925
  '@silvia-odwyer/photon-node': 0.3.4
888
926
  chalk: 6.0.0
889
927
  cross-spawn: 7.0.6
@@ -895,12 +933,16 @@ snapshots:
895
933
  jiti: 2.7.0
896
934
  minimatch: 10.2.6
897
935
  proper-lockfile: 4.1.2
936
+ quickjs-wasi: 3.6.2
898
937
  semver: 7.8.5
899
938
  typebox: 1.3.27
900
939
  undici: 8.10.2
901
940
  yaml: 2.9.0
902
941
  transitivePeerDependencies:
942
+ - '@aws-sdk/credential-provider-node'
903
943
  - '@modelcontextprotocol/sdk'
944
+ - '@smithy/hash-node'
945
+ - '@smithy/signature-v4'
904
946
  - bufferutil
905
947
  - kerberos
906
948
  - supports-color
@@ -908,9 +950,13 @@ snapshots:
908
950
  - ws
909
951
  - zod
910
952
 
911
- '@earendil-works/pi-telemetry@0.87.1': {}
953
+ '@earendil-works/pi-mcp@0.99.1':
954
+ dependencies:
955
+ cross-spawn: 7.0.6
956
+
957
+ '@earendil-works/pi-telemetry@0.99.1': {}
912
958
 
913
- '@earendil-works/pi-tui@0.87.1':
959
+ '@earendil-works/pi-tui@0.99.1':
914
960
  dependencies:
915
961
  get-east-asian-width: 1.6.0
916
962
  marked: 18.0.11
@@ -1259,8 +1305,11 @@ snapshots:
1259
1305
  fetch-blob: 3.2.0
1260
1306
  formdata-polyfill: 4.0.10
1261
1307
 
1262
- openai@6.40.0(ws@8.22.0):
1308
+ openai@7.19.0(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.22.0):
1263
1309
  optionalDependencies:
1310
+ '@aws-sdk/credential-provider-node': 3.972.84
1311
+ '@smithy/signature-v4': 5.7.4
1312
+ undici: 8.10.2
1264
1313
  ws: 8.22.0
1265
1314
 
1266
1315
  p-retry@4.6.2:
@@ -1294,6 +1343,8 @@ snapshots:
1294
1343
 
1295
1344
  proxy-agent-negotiate@1.1.0: {}
1296
1345
 
1346
+ quickjs-wasi@3.6.2: {}
1347
+
1297
1348
  retry@0.12.0: {}
1298
1349
 
1299
1350
  retry@0.13.1: {}
@@ -0,0 +1,334 @@
1
+ import { a as fromCwd } from "./ids-Bp6ut7ZD.js";
2
+ import { a as notesDir, u as writeNote } from "./files-CfsIRN7n.js";
3
+ import { a as providerModel } from "./model-GFM8iOzM.js";
4
+ import { a as stagedAttempts, i as listOutcomes, n as divergence, t as attemptSummary } from "./tools-B7SoW5kU.js";
5
+ import { z } from "zod";
6
+ import { generateText, stepCountIs, tool } from "ai";
7
+ /** Pairs the fake compares, as a careful model would: a few, not all of them. */
8
+ const FAKE_PAIRS = 3;
9
+ const NOTE_PROMPT = `You write a short note on how one coding agent (the harness) did on one eval of a reeval run. You can't see transcripts; read the attempts with the tools.
10
+
11
+ 1. Call list_attempts first.
12
+ 2. If any attempt failed, call compare_attempts on its suggested pairs (at most three). Say where the failed attempt's steps diverged from the passing one's, and whether the miss looks like the text the agent was given (a skill, docs, rules), the eval itself (its prompt or checks), or the harness (errors, retries, tool failures). Open an attempt with open_attempt only when the comparison isn't enough.
13
+ 3. If nothing failed, say so in one line, and name anything unusual (step counts, files, verdicts close to the threshold).
14
+
15
+ Plain text, at most 150 words, no headings. Name attempts by their id, e.g. cursor:composer-2.5/with-skill/docker#2. Say what the attempts show, not what you guess.`;
16
+ /** The tools over `attempts`, with every result counted against `maxChars`. */
17
+ function noteTools(attempts, maxChars) {
18
+ let left = maxChars;
19
+ const spend = (value) => {
20
+ const size = JSON.stringify(value).length;
21
+ if (size > left) return { error: "The input budget (analysis.maxInputTokens) is spent: write the note from what you have." };
22
+ left -= size;
23
+ return value;
24
+ };
25
+ const byId = (id) => attempts.find((a) => a.id === id);
26
+ const unknown = (id) => ({ error: `No attempt ${id}. The attempts are ${attempts.map((a) => a.id).join(", ")}.` });
27
+ return {
28
+ list_attempts: tool({
29
+ description: "Every attempt's outcome, error, failed checks and verdicts in a line, and failed-vs-passed pairs to compare.",
30
+ inputSchema: z.object({}),
31
+ execute: async () => spend(listOutcomes(attempts))
32
+ }),
33
+ open_attempt: tool({
34
+ description: "One attempt: each turn's prompt, steps (tool calls, edits, errors) and final message, its checks, verdicts and diff.",
35
+ inputSchema: z.object({ id: z.string().describe("An attempt id from list_attempts") }),
36
+ execute: async ({ id }) => {
37
+ const a = byId(id);
38
+ return a ? spend(attemptSummary(a)) : unknown(id);
39
+ }
40
+ }),
41
+ compare_attempts: tool({
42
+ description: "Where a failed attempt's steps first differ from a passing one's, the checks, verdicts and files that differ, and each diff's start.",
43
+ inputSchema: z.object({
44
+ failed: z.string().describe("The failed attempt id"),
45
+ passed: z.string().describe("The passing attempt id")
46
+ }),
47
+ execute: async ({ failed, passed }) => {
48
+ const f = byId(failed);
49
+ const p = byId(passed);
50
+ if (!f) return unknown(failed);
51
+ if (!p) return unknown(passed);
52
+ return spend(divergence(f, p));
53
+ }
54
+ })
55
+ };
56
+ }
57
+ /** Writes one note; a failed call is a note with `error`, never a throw. */
58
+ async function writeAgentNote(input) {
59
+ const { model, runId, evalId, harness, attempts } = input;
60
+ const base = {
61
+ kind: "reeval-analysis-note",
62
+ schemaVersion: 1,
63
+ runId,
64
+ evalId,
65
+ harness,
66
+ model: model.name,
67
+ attempts: attempts.map((a) => a.id)
68
+ };
69
+ const count = (o) => attempts.filter((a) => a.outcome === o).length;
70
+ const prompt = [
71
+ `Eval: ${evalId}`,
72
+ `Harness: ${harness}`,
73
+ `Attempts: ${attempts.length} (${count("pass")} passed, ${count("fail")} failed, ${count("infra_error")} infra errors, ${count("skipped")} skipped)`,
74
+ ...input.instructions ? ["", `What matters in this project: ${input.instructions}`] : []
75
+ ].join("\n");
76
+ try {
77
+ const result = await generateText({
78
+ model: model.fake ? fakeNoteModel(model.fake, {
79
+ eval: evalId,
80
+ harness
81
+ }) : await providerModel(model),
82
+ system: NOTE_PROMPT,
83
+ prompt,
84
+ tools: noteTools(attempts, input.maxInputTokens * 4),
85
+ stopWhen: stepCountIs(8),
86
+ prepareStep: ({ stepNumber }) => stepNumber === 7 ? { toolChoice: "none" } : void 0,
87
+ temperature: .2,
88
+ maxOutputTokens: input.maxOutputTokens,
89
+ maxRetries: 3,
90
+ ...input.signal ? { abortSignal: input.signal } : {}
91
+ });
92
+ const text = result.text.trim();
93
+ return {
94
+ ...base,
95
+ resolvedModel: result.response?.modelId ?? null,
96
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
97
+ text,
98
+ ...text ? {} : { error: `the model wrote no note in 8 steps` },
99
+ usage: {
100
+ inputTokens: result.totalUsage?.inputTokens ?? null,
101
+ outputTokens: result.totalUsage?.outputTokens ?? null
102
+ }
103
+ };
104
+ } catch (error) {
105
+ return {
106
+ ...base,
107
+ resolvedModel: null,
108
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
109
+ text: "",
110
+ error: error instanceof Error ? error.message : String(error),
111
+ usage: {
112
+ inputTokens: null,
113
+ outputTokens: null
114
+ }
115
+ };
116
+ }
117
+ }
118
+ /** Each tool result so far in the conversation, by tool name. */
119
+ function toolResults(prompt) {
120
+ const results = [];
121
+ for (const message of prompt) {
122
+ if (message.role !== "tool" || !Array.isArray(message.content)) continue;
123
+ for (const part of message.content) if (part.type === "tool-result" && part.toolName && part.output) results.push({
124
+ tool: part.toolName,
125
+ value: part.output.value
126
+ });
127
+ }
128
+ return results;
129
+ }
130
+ /**
131
+ * A language model that does what the prompt asks of a real one: lists the attempts, compares up
132
+ * to three failed-vs-passed pairs, then answers with the fake's note, through the AI SDK's own
133
+ * tool loop, so the tools and the budget run as they would.
134
+ */
135
+ function fakeNoteModel(fake, about) {
136
+ const usage = {
137
+ inputTokens: {
138
+ total: 0,
139
+ noCache: 0,
140
+ cacheRead: 0,
141
+ cacheWrite: 0
142
+ },
143
+ outputTokens: {
144
+ total: 0,
145
+ text: 0,
146
+ reasoning: 0
147
+ }
148
+ };
149
+ let calls = 0;
150
+ const toolCalls = (calls) => ({
151
+ content: calls.map((c, i) => ({
152
+ type: "tool-call",
153
+ toolCallId: `fake_${c.name}_${i}`,
154
+ toolName: c.name,
155
+ input: JSON.stringify(c.input)
156
+ })),
157
+ finishReason: {
158
+ unified: "tool-calls",
159
+ raw: "tool_calls"
160
+ },
161
+ usage,
162
+ warnings: [],
163
+ response: { modelId: "fake-analysis" }
164
+ });
165
+ return {
166
+ specificationVersion: "v4",
167
+ provider: "fake",
168
+ modelId: "fake-analysis",
169
+ supportedUrls: {},
170
+ doGenerate: async (options) => {
171
+ calls++;
172
+ const { note } = fake;
173
+ if (typeof note === "object" && note !== null) throw new Error(note.error);
174
+ const results = toolResults(options.prompt);
175
+ const listed = results.find((r) => r.tool === "list_attempts")?.value;
176
+ if (!listed) return toolCalls([{
177
+ name: "list_attempts",
178
+ input: {}
179
+ }]);
180
+ const compared = results.filter((r) => r.tool === "compare_attempts").map((r) => r.value);
181
+ const pairs = listed.pairs ?? [];
182
+ if (pairs.length && !compared.length && calls < 8) return toolCalls(pairs.slice(0, FAKE_PAIRS).map((p) => ({
183
+ name: "compare_attempts",
184
+ input: {
185
+ failed: p.failed,
186
+ passed: p.passed
187
+ }
188
+ })));
189
+ const input = {
190
+ ...about,
191
+ attempts: (listed.attempts ?? []).map((a) => ({
192
+ id: a.id,
193
+ outcome: a.outcome
194
+ })),
195
+ compared: compared.filter((c) => c && "failed" in c).map((c) => ({
196
+ failed: c.failed,
197
+ passed: c.passed,
198
+ divergedAt: c.divergedAt
199
+ }))
200
+ };
201
+ return {
202
+ content: [{
203
+ type: "text",
204
+ text: typeof note === "function" ? note(input) : note ?? `${input.attempts.filter((a) => a.outcome === "pass").length} of ${input.attempts.length} attempts passed.`
205
+ }],
206
+ finishReason: {
207
+ unified: "stop",
208
+ raw: "stop"
209
+ },
210
+ usage,
211
+ warnings: [],
212
+ response: { modelId: "fake-analysis" }
213
+ };
214
+ },
215
+ doStream: async () => {
216
+ throw new Error("the fake analysis model does not stream");
217
+ }
218
+ };
219
+ }
220
+ //#endregion
221
+ //#region src/analysis/agent/index.ts
222
+ /** Notes in flight at once: a run with many evals and harnesses doesn't burst the provider. */
223
+ const MAX_NOTES = 4;
224
+ const groupKey = (evalId, harness) => `${evalId}\0${harness}`;
225
+ function startNotes({ config, model, runId, stagingDir, planned, warn }) {
226
+ const expected = /* @__PURE__ */ new Map();
227
+ const order = new Map(planned.map((p, i) => [p.key, i]));
228
+ for (const p of planned) {
229
+ if (p.attempt.plan.skip) continue;
230
+ const key = groupKey(p.id, p.attempt.cell.harness);
231
+ expected.set(key, (expected.get(key) ?? 0) + 1);
232
+ }
233
+ const finished = /* @__PURE__ */ new Map();
234
+ const started = /* @__PURE__ */ new Set();
235
+ const pending = [];
236
+ const abort = new AbortController();
237
+ let running = 0;
238
+ const waiting = [];
239
+ const slot = async () => {
240
+ if (running < MAX_NOTES) running++;
241
+ else await new Promise((resolve) => waiting.push(resolve));
242
+ };
243
+ const release = () => {
244
+ const next = waiting.shift();
245
+ if (next) next();
246
+ else running--;
247
+ };
248
+ const start = (key) => {
249
+ const results = (finished.get(key) ?? []).sort((a, b) => (order.get(a.key) ?? 0) - (order.get(b.key) ?? 0));
250
+ started.add(key);
251
+ const first = results[0];
252
+ if (!first?.attempt || results.every((r) => r.state === "skipped")) return;
253
+ const harness = first.attempt.cell.harness;
254
+ const about = `analysis note on ${first.id} (${harness})`;
255
+ pending.push((async () => {
256
+ await slot();
257
+ try {
258
+ if (abort.signal.aborted) return null;
259
+ const note = await writeAgentNote({
260
+ model,
261
+ runId,
262
+ evalId: first.id,
263
+ harness,
264
+ attempts: await stagedAttempts(stagingDir, results),
265
+ maxInputTokens: config.analysis.maxInputTokens,
266
+ maxOutputTokens: config.analysis.maxOutputTokens,
267
+ ...config.analysis.instructions ? { instructions: config.analysis.instructions } : {},
268
+ signal: abort.signal
269
+ });
270
+ if (abort.signal.aborted) return null;
271
+ if (note.error) warn(`${about} failed: ${note.error}`);
272
+ await writeNote(config.root, note);
273
+ return note;
274
+ } catch (error) {
275
+ if (!abort.signal.aborted) warn(`${about} wasn't written: ${error.message}`);
276
+ return null;
277
+ } finally {
278
+ release();
279
+ }
280
+ })());
281
+ };
282
+ return {
283
+ onResult(result) {
284
+ if (!result.attempt || abort.signal.aborted) return;
285
+ const key = groupKey(result.id, result.attempt.cell.harness);
286
+ if (!expected.has(key) || started.has(key)) return;
287
+ const results = [...finished.get(key) ?? [], result];
288
+ finished.set(key, results);
289
+ if (results.length >= (expected.get(key) ?? 0)) start(key);
290
+ },
291
+ async finish(cancelled) {
292
+ if (cancelled) abort.abort(/* @__PURE__ */ new Error("The run was cancelled"));
293
+ else for (const key of finished.keys()) if (!started.has(key)) start(key);
294
+ return (await Promise.all(pending)).filter((n) => n !== null);
295
+ }
296
+ };
297
+ }
298
+ /**
299
+ * Writes the run's summary into the analysis cache, once the run is written; the line to print.
300
+ * A failure is a warning: the run's outcomes and exit code stand.
301
+ */
302
+ async function summarizeRun(config, runId, model) {
303
+ try {
304
+ const { writeRunSummary } = await import("./summary-DjbxgCDi.js");
305
+ const { doc, path } = await writeRunSummary({
306
+ config,
307
+ runId,
308
+ model
309
+ });
310
+ if (doc.error) return {
311
+ level: "warn",
312
+ text: `analysis summary failed: ${doc.error}`
313
+ };
314
+ return {
315
+ level: "info",
316
+ text: `analysis: summary in ${fromCwd(path)} (reeval analyze shows it)`
317
+ };
318
+ } catch (error) {
319
+ return {
320
+ level: "warn",
321
+ text: `analysis summary wasn't written: ${error.message}`
322
+ };
323
+ }
324
+ }
325
+ /** The line the run prints once its notes are written. */
326
+ const notesLine = (root, runId, notes) => {
327
+ const failed = notes.filter((n) => n.error).length;
328
+ const n = notes.length;
329
+ return `analysis: ${n} note${n === 1 ? "" : "s"}${failed ? ` (${failed} failed)` : ""} in ${fromCwd(notesDir(root, runId))}`;
330
+ };
331
+ //#endregion
332
+ export { notesLine, startNotes, summarizeRun };
333
+
334
+ //# sourceMappingURL=agent-BYy0Tc6P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-BYy0Tc6P.js","names":[],"sources":["../src/analysis/agent/note.ts","../src/analysis/agent/index.ts"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { t as InfraError } from "./types-C5vI3g1C.js";
2
- import { d as agentFor, f as authHint, u as agentAuth } from "./egress-73SQfKdx.js";
3
- import { B as WORKSPACE_DIR, R as SANDBOX_ROOT } from "./src-DwwiVLqv.js";
2
+ import { d as agentFor, f as authHint, u as agentAuth } from "./egress-D9vJCATi.js";
3
+ import { B as WORKSPACE_DIR, R as SANDBOX_ROOT } from "./src-D3eW1e7Y.js";
4
4
  import { i as debugTrace, r as debugLog } from "./attempt-BdRQ9jKX.js";
5
5
  import { t as addUsage } from "./usage-DsYUqIUM.js";
6
- import { n as isDockerSandbox } from "./docker-oSbCExHL.js";
6
+ import { n as isDockerSandbox } from "./docker-DwG9f76x.js";
7
7
  import { HarnessAgent } from "@ai-sdk/harness/agent";
8
8
  //#region src/harness/transcript.ts
9
9
  const str = (value) => typeof value === "string" ? value : "";
@@ -529,4 +529,4 @@ function createAgentHarness(descriptor) {
529
529
  //#endregion
530
530
  export { createAgentHarness };
531
531
 
532
- //# sourceMappingURL=agent-DVHkx8aT.js.map
532
+ //# sourceMappingURL=agent-DcQAvomp.js.map