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.
- package/THIRD_PARTY_NOTICES.md +4 -4
- package/assets/package.json +1 -1
- package/assets/pnpm-lock.yaml +84 -33
- package/dist/agent-BYy0Tc6P.js +334 -0
- package/dist/agent-BYy0Tc6P.js.map +1 -0
- package/dist/{agent-DVHkx8aT.js → agent-DcQAvomp.js} +4 -4
- package/dist/{agent-DVHkx8aT.js.map → agent-DcQAvomp.js.map} +1 -1
- package/dist/analysis-CxSCt1YY.js.map +1 -1
- package/dist/assemble-BFsyMhb-.js +2 -0
- package/dist/{assemble-B-nmz8oH.js → assemble-h8s0hzTQ.js} +23 -14
- package/dist/assemble-h8s0hzTQ.js.map +1 -0
- package/dist/{cli--CQ3Iy9q.js → cli-DemDdg8J.js} +165 -54
- package/dist/cli-DemDdg8J.js.map +1 -0
- package/dist/{cli-spec-DKAu09Gi.js → cli-spec-BxLPgNN-.js} +8 -2
- package/dist/cli-spec-BxLPgNN-.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{command-D-jnQWVG.js → command-CxwnRrTs.js} +11 -11
- package/dist/{command-D-jnQWVG.js.map → command-CxwnRrTs.js.map} +1 -1
- package/dist/command-DhgZPhsY.js +2 -0
- package/dist/{command-DQAvbG7d.js → command-PEbIzJj3.js} +12 -12
- package/dist/{command-DQAvbG7d.js.map → command-PEbIzJj3.js.map} +1 -1
- package/dist/{command-BSJzHMtP.js → command-pHfluVCF.js} +11 -9
- package/dist/command-pHfluVCF.js.map +1 -0
- package/dist/{command-CEm8PZ1N.js → command-y91-aNhu.js} +169 -280
- package/dist/command-y91-aNhu.js.map +1 -0
- package/dist/{commands-A4udfyKZ.js → commands-De-SxIgY.js} +1 -1
- package/dist/{commands-CF8mOfiu.js → commands-DhCuEa6z.js} +6 -6
- package/dist/{commands-CF8mOfiu.js.map → commands-DhCuEa6z.js.map} +1 -1
- package/dist/{config-Cuj0kVYj.js → config-CqSLZkwx.js} +39 -14
- package/dist/{config-Cuj0kVYj.js.map → config-CqSLZkwx.js.map} +1 -1
- package/dist/{db-DxDzMhtB.js → db-DA4LBwi_.js} +4 -4
- package/dist/{db-DxDzMhtB.js.map → db-DA4LBwi_.js.map} +1 -1
- package/dist/db-DDfq7Tx_.js +2 -0
- package/dist/{dist-BZXYHN2X.js → dist-BSoys6pg.js} +2 -2
- package/dist/{dist-BZXYHN2X.js.map → dist-BSoys6pg.js.map} +1 -1
- package/dist/{docker-DQDZWXF9.js → docker-DMRwn7yh.js} +2 -2
- package/dist/{docker-DQDZWXF9.js.map → docker-DMRwn7yh.js.map} +1 -1
- package/dist/{docker-oSbCExHL.js → docker-DwG9f76x.js} +4 -4
- package/dist/{docker-oSbCExHL.js.map → docker-DwG9f76x.js.map} +1 -1
- package/dist/{docker-DnWAVdEm.js → docker-jf52ARP7.js} +1 -1
- package/dist/{doctor-CxlH1pDM.js → doctor-DhvVbNKv.js} +23 -18
- package/dist/doctor-DhvVbNKv.js.map +1 -0
- package/dist/{egress-73SQfKdx.js → egress-D9vJCATi.js} +35 -19
- package/dist/egress-D9vJCATi.js.map +1 -0
- package/dist/{environment-Mz7wvrtD.js → environment-ByCF9s3n.js} +6 -16
- package/dist/{environment-Mz7wvrtD.js.map → environment-ByCF9s3n.js.map} +1 -1
- package/dist/files-B16cQ6XX.js +2 -0
- package/dist/files-BC5Yqir-.js +2 -0
- package/dist/{files-bF2fPuT9.js → files-CfsIRN7n.js} +40 -7
- package/dist/files-CfsIRN7n.js.map +1 -0
- package/dist/{files-D2-qn_Dl.js → files-DHBBIYx_.js} +6 -6
- package/dist/{files-D2-qn_Dl.js.map → files-DHBBIYx_.js.map} +1 -1
- package/dist/{git-D6hMeieS.js → git-oX92_Jh-.js} +2 -2
- package/dist/{git-D6hMeieS.js.map → git-oX92_Jh-.js.map} +1 -1
- package/dist/{harness-ls5aX1UO.js → harness-BbMShUC-.js} +4 -4
- package/dist/{harness-ls5aX1UO.js.map → harness-BbMShUC-.js.map} +1 -1
- package/dist/harness.d.ts +2 -2
- package/dist/harness.js +1 -1
- package/dist/{header-DzFDoMCI.js → header-sPQ9Lq2S.js} +2 -2
- package/dist/{header-DzFDoMCI.js.map → header-sPQ9Lq2S.js.map} +1 -1
- package/dist/{images-Cc1-coFc.js → images-C9Y4ijbG.js} +6 -6
- package/dist/{images-Cc1-coFc.js.map → images-C9Y4ijbG.js.map} +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +23 -23
- package/dist/index.js.map +1 -1
- package/dist/init-DPJv7OmX.js +2 -0
- package/dist/{init-CFljS8BJ.js → init-x55uF8a4.js} +10 -10
- package/dist/{init-CFljS8BJ.js.map → init-x55uF8a4.js.map} +1 -1
- package/dist/{invocations-rXktgSAn.js → invocations-DSMfs3Dx.js} +3 -3
- package/dist/{invocations-rXktgSAn.js.map → invocations-DSMfs3Dx.js.map} +1 -1
- package/dist/{jiti-BOLXpKyG.js → jiti-DWsGEgxD.js} +4 -4
- package/dist/{jiti-BOLXpKyG.js.map → jiti-DWsGEgxD.js.map} +1 -1
- package/dist/judge.d.ts +7 -6
- package/dist/judge.js +8 -3
- package/dist/judge.js.map +1 -1
- package/dist/{live-Bs3LReMV.js → live-DZkCtmNP.js} +2 -2
- package/dist/{live-Bs3LReMV.js.map → live-DZkCtmNP.js.map} +1 -1
- package/dist/{matchers-DyLvm7EG.js → matchers-D51lM8dO.js} +4 -4
- package/dist/{matchers-DyLvm7EG.js.map → matchers-D51lM8dO.js.map} +1 -1
- package/dist/model-CNoc8t2Y.js +2 -0
- package/dist/model-DQQQ3q_n.js +2 -0
- package/dist/model-GFM8iOzM.js +228 -0
- package/dist/model-GFM8iOzM.js.map +1 -0
- package/dist/{model-CDL98xue.js → model-ORtLm2UB.js} +41 -3
- package/dist/{model-CDL98xue.js.map → model-ORtLm2UB.js.map} +1 -1
- package/dist/{node-kG64XxdE.js → node-OXPxBD2N.js} +3 -3
- package/dist/{node-kG64XxdE.js.map → node-OXPxBD2N.js.map} +1 -1
- package/dist/{opencode-providers-DZuD_oYt.js → opencode-providers-DJVocFOU.js} +31 -3
- package/dist/opencode-providers-DJVocFOU.js.map +1 -0
- package/dist/{options-CAQhu--C.js → options-CIutEeuy.js} +86 -46
- package/dist/options-CIutEeuy.js.map +1 -0
- package/dist/{plan-gwk6dJ8c.js → plan-DcHTdiJN.js} +21 -5
- package/dist/plan-DcHTdiJN.js.map +1 -0
- package/dist/{preflight-BtubXKQ8.js → preflight-BQyUr_hW.js} +1 -1
- package/dist/{preflight-BypZMNBG.js → preflight-vISQIiF1.js} +3 -3
- package/dist/{preflight-BypZMNBG.js.map → preflight-vISQIiF1.js.map} +1 -1
- package/dist/{prepare-D6Uzcubb.js → prepare-BTeAiW9Q.js} +5 -5
- package/dist/{prepare-D6Uzcubb.js.map → prepare-BTeAiW9Q.js.map} +1 -1
- package/dist/{prepare-Cwv0bHs_.js → prepare-Ca0Nxd9b.js} +2 -2
- package/dist/{provenance-Dfb8YY5Y.js → provenance-D4vo7RF6.js} +21 -3
- package/dist/provenance-D4vo7RF6.js.map +1 -0
- package/dist/{providers-2p3ylMHI.js → providers-Bjgky1u8.js} +3 -3
- package/dist/{providers-2p3ylMHI.js.map → providers-Bjgky1u8.js.map} +1 -1
- package/dist/{providers-BUOxitcT.js → providers-DfVMglqP.js} +1 -1
- package/dist/query-CWkZnV62.js +2 -0
- package/dist/{query-CFATHZmV.js → query-D2KaStTs.js} +2 -2
- package/dist/{query-CFATHZmV.js.map → query-D2KaStTs.js.map} +1 -1
- package/dist/questions-CzXdVVsh.js +325 -0
- package/dist/questions-CzXdVVsh.js.map +1 -0
- package/dist/{record-DQ8wzyco.js → record-CbuQH4l1.js} +7 -3
- package/dist/record-CbuQH4l1.js.map +1 -0
- package/dist/{results-CeXb8Wde.js → results-BI-zTqQy.js} +4 -4
- package/dist/{results-CeXb8Wde.js.map → results-BI-zTqQy.js.map} +1 -1
- package/dist/{root-CFDjpWuc.js → root-Zeokqt3-.js} +2 -2
- package/dist/{root-CFDjpWuc.js.map → root-Zeokqt3-.js.map} +1 -1
- package/dist/{sandbox-By2gkdkC.js → sandbox-Dd-4Bx6B.js} +3 -3
- package/dist/{sandbox-By2gkdkC.js.map → sandbox-Dd-4Bx6B.js.map} +1 -1
- package/dist/sandbox.d.ts +2 -2
- package/dist/sandbox.js +1 -1
- package/dist/server-BjbgFX28.js +2 -0
- package/dist/{server-Bi61uiY0.js → server-C7t8WYCR.js} +11 -9
- package/dist/{server-Bi61uiY0.js.map → server-C7t8WYCR.js.map} +1 -1
- package/dist/source-CLE8vMNa.js +2 -0
- package/dist/{source-Bsfa3LZH.js → source-fNUCWsCW.js} +2 -2
- package/dist/{source-Bsfa3LZH.js.map → source-fNUCWsCW.js.map} +1 -1
- package/dist/{src-DXx_29pq.js → src-B1OT_Zhf.js} +46 -46
- package/dist/{src-DXx_29pq.js.map → src-B1OT_Zhf.js.map} +1 -1
- package/dist/{src-BQyMiWri.js → src-BAiYD4eC.js} +48 -7
- package/dist/{src-BQyMiWri.js.map → src-BAiYD4eC.js.map} +1 -1
- package/dist/{src-D8KYzxBX.js → src-BmBFlEIe.js} +12 -7
- package/dist/{src-D8KYzxBX.js.map → src-BmBFlEIe.js.map} +1 -1
- package/dist/{src-N7E_mfcZ.js → src-C91RndLw.js} +1 -1
- package/dist/{src-C-LHyTSV.js → src-CEQFcAJH.js} +1 -1
- package/dist/src-CNp0srm9.js +3 -0
- package/dist/{src-DwwiVLqv.js → src-D3eW1e7Y.js} +19 -15
- package/dist/{src-DwwiVLqv.js.map → src-D3eW1e7Y.js.map} +1 -1
- package/dist/src-DJsBrqo6.js +4 -0
- package/dist/src-DTlmkpJe.js +3 -0
- package/dist/{src-Cmp-7YrD.js → src-DWk0e7ix.js} +5 -5
- package/dist/{src-Cmp-7YrD.js.map → src-DWk0e7ix.js.map} +1 -1
- package/dist/{src-AEwxd1UP.js → src-DfEAlC9s.js} +4 -4
- package/dist/{src-AEwxd1UP.js.map → src-DfEAlC9s.js.map} +1 -1
- package/dist/src-DgYURuJ6.js +3 -0
- package/dist/src-sSPmuaAc.js +3 -0
- package/dist/state-Bx-pH2ON.js +2 -0
- package/dist/{state-DZ7eqb1F.js → state-g6ij_40j.js} +14 -14
- package/dist/{state-DZ7eqb1F.js.map → state-g6ij_40j.js.map} +1 -1
- package/dist/studio-app/assets/index-B1Pf3LAT.css +2 -0
- package/dist/studio-app/assets/index-DciOL7BI.js +58 -0
- package/dist/studio-app/index.html +2 -2
- package/dist/summary-DjbxgCDi.js +192 -0
- package/dist/summary-DjbxgCDi.js.map +1 -0
- package/dist/{summary-D7Ttky0z.js → summary-gawvEpNu.js} +33 -5
- package/dist/summary-gawvEpNu.js.map +1 -0
- package/dist/tools-B7SoW5kU.js +249 -0
- package/dist/tools-B7SoW5kU.js.map +1 -0
- package/dist/{types-DLec-6Cx.d.ts → types-C5AEPr29.d.ts} +178 -29
- package/dist/view/index.d.ts +63 -1
- package/dist/view/index.js +5 -5
- package/dist/{views-BrHOv6wg.js → views-CHXQfSWQ.js} +4 -4
- package/dist/{views-BrHOv6wg.js.map → views-CHXQfSWQ.js.map} +1 -1
- package/dist/views-DDei2LHa.js +3 -0
- package/dist/{worker-entry-DnYkANPG.js → worker-entry-B6nuDpBX.js} +3 -3
- package/dist/{worker-entry-DnYkANPG.js.map → worker-entry-B6nuDpBX.js.map} +1 -1
- package/dist/{workspace-C2S0Z6gl.js → workspace-DUUfne8b.js} +4 -4
- package/dist/{workspace-C2S0Z6gl.js.map → workspace-DUUfne8b.js.map} +1 -1
- package/dist/{workspace-CyoXG6CY.js → workspace-DXV77ZqW.js} +1 -1
- package/docker/Dockerfile +2 -0
- package/docker/reeval-path.sh +21 -0
- package/package.json +1 -1
- package/dist/assemble-B-nmz8oH.js.map +0 -1
- package/dist/assemble-CmRVDZ2Q.js +0 -2
- package/dist/cli--CQ3Iy9q.js.map +0 -1
- package/dist/cli-spec-DKAu09Gi.js.map +0 -1
- package/dist/command-BSJzHMtP.js.map +0 -1
- package/dist/command-CEm8PZ1N.js.map +0 -1
- package/dist/db-Cjj2ZsfQ.js +0 -2
- package/dist/doctor-CxlH1pDM.js.map +0 -1
- package/dist/egress-73SQfKdx.js.map +0 -1
- package/dist/files--6CEUXm7.js +0 -2
- package/dist/files-Bd25OAQH.js +0 -2
- package/dist/files-bF2fPuT9.js.map +0 -1
- package/dist/init-z2ZPn9Tj.js +0 -2
- package/dist/model-v-0_Ik7S.js +0 -2
- package/dist/opencode-providers-DZuD_oYt.js.map +0 -1
- package/dist/options-CAQhu--C.js.map +0 -1
- package/dist/plan-gwk6dJ8c.js.map +0 -1
- package/dist/provenance-Dfb8YY5Y.js.map +0 -1
- package/dist/query-DR4m6CXf.js +0 -2
- package/dist/record-DQ8wzyco.js.map +0 -1
- package/dist/server-CsSBL8NC.js +0 -2
- package/dist/source-BXzrmof5.js +0 -2
- package/dist/src-55j1zNHH.js +0 -3
- package/dist/src-BDwSuyIo.js +0 -3
- package/dist/src-DEgff9Z7.js +0 -4
- package/dist/src-W9g-y5X5.js +0 -3
- package/dist/src-daS0wKH2.js +0 -3
- package/dist/state-Cyw3QTsN.js +0 -2
- package/dist/studio-app/assets/index-D6XyfFSH.js +0 -58
- package/dist/studio-app/assets/index-xwzWdcE_.css +0 -2
- package/dist/summary-D7Ttky0z.js.map +0 -1
- package/dist/views-CwCWLWqo.js +0 -3
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -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.
|
|
48
|
-
| @tanstack/react-query | 5.
|
|
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.
|
|
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.
|
|
1196
|
+
## @tanstack/react-query@5.104.0
|
|
1197
1197
|
|
|
1198
1198
|
- Licence: MIT
|
|
1199
1199
|
- Source: git+https://github.com/TanStack/query.git
|
package/assets/package.json
CHANGED
package/assets/pnpm-lock.yaml
CHANGED
|
@@ -9,8 +9,8 @@ importers:
|
|
|
9
9
|
.:
|
|
10
10
|
dependencies:
|
|
11
11
|
'@earendil-works/pi-coding-agent':
|
|
12
|
-
specifier: 0.
|
|
13
|
-
version: 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.
|
|
111
|
-
resolution: {integrity: sha512-
|
|
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.
|
|
115
|
-
resolution: {integrity: sha512-
|
|
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.
|
|
119
|
-
resolution: {integrity: sha512-
|
|
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-
|
|
124
|
-
resolution: {integrity: sha512-
|
|
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-
|
|
129
|
-
resolution: {integrity: sha512-
|
|
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-
|
|
133
|
-
resolution: {integrity: sha512-
|
|
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@
|
|
538
|
-
resolution: {integrity: sha512-
|
|
545
|
+
openai@7.19.0:
|
|
546
|
+
resolution: {integrity: sha512-MX2s3u2L5racTO0CC/SWpCOasJQBCJrqLKXK+l82cAhdeF8mPMBEe/gxMm0ZFa2xpKpOFLRjxv5afYEZbBXmbQ==}
|
|
547
|
+
engines: {node: '>=22.0.0'}
|
|
539
548
|
peerDependencies:
|
|
540
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
845
|
-
'@earendil-works/pi-ai': 0.
|
|
846
|
-
'@earendil-works/pi-telemetry': 0.
|
|
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.
|
|
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.
|
|
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:
|
|
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-
|
|
913
|
+
'@earendil-works/pi-codemode@0.99.1':
|
|
882
914
|
dependencies:
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
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-
|
|
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.
|
|
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@
|
|
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-
|
|
3
|
-
import { B as WORKSPACE_DIR, R as SANDBOX_ROOT } from "./src-
|
|
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-
|
|
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-
|
|
532
|
+
//# sourceMappingURL=agent-DcQAvomp.js.map
|