niceeval 0.15.1-canary.76 → 0.16.1

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 (714) hide show
  1. package/INDEX.md +45 -40
  2. package/dist/adapter-execution-trace.cjs.map +1 -1
  3. package/dist/adapter-execution-trace.d.cts +26 -0
  4. package/dist/adapter-execution-trace.d.mts +26 -0
  5. package/dist/adapter-execution-trace.d.ts +26 -0
  6. package/dist/adapter-usage.cjs.map +1 -1
  7. package/dist/adapter-usage.d.cts +9 -0
  8. package/dist/adapter-usage.d.mts +9 -0
  9. package/dist/adapter-usage.d.ts +9 -0
  10. package/dist/adapter.cjs +19 -4
  11. package/dist/adapter.cjs.map +1 -1
  12. package/dist/adapter.d.cts +37 -12
  13. package/dist/adapter.d.mts +37 -12
  14. package/dist/adapter.d.ts +37 -12
  15. package/dist/agents/ai-sdk.cjs +3 -0
  16. package/dist/agents/ai-sdk.cjs.map +1 -1
  17. package/dist/agents/bub.cjs +3 -0
  18. package/dist/agents/bub.cjs.map +1 -1
  19. package/dist/agents/claude-code-native.cjs +28 -2
  20. package/dist/agents/claude-code-native.cjs.map +1 -1
  21. package/dist/agents/claude-code.cjs +3 -0
  22. package/dist/agents/claude-code.cjs.map +1 -1
  23. package/dist/agents/codex.cjs +3 -0
  24. package/dist/agents/codex.cjs.map +1 -1
  25. package/dist/agents/coding-cli-versions.cjs +9 -10
  26. package/dist/agents/coding-cli-versions.cjs.map +1 -1
  27. package/dist/agents/coding-cli-versions.d.cts +1 -1
  28. package/dist/agents/coding-cli-versions.d.mts +1 -1
  29. package/dist/agents/coding-cli-versions.d.ts +1 -1
  30. package/dist/agents/deepseek-harness.cjs +3 -0
  31. package/dist/agents/deepseek-harness.cjs.map +1 -1
  32. package/dist/agents/hermes.cjs +3 -0
  33. package/dist/agents/hermes.cjs.map +1 -1
  34. package/dist/agents/index.cjs.map +1 -1
  35. package/dist/agents/index.d.cts +3 -2
  36. package/dist/agents/index.d.mts +3 -2
  37. package/dist/agents/index.d.ts +3 -2
  38. package/dist/agents/omp.cjs +3 -0
  39. package/dist/agents/omp.cjs.map +1 -1
  40. package/dist/agents/openai-compat.cjs +6 -0
  41. package/dist/agents/openai-compat.cjs.map +1 -1
  42. package/dist/agents/openclaw.cjs +3 -0
  43. package/dist/agents/openclaw.cjs.map +1 -1
  44. package/dist/agents/opencode.cjs +3 -0
  45. package/dist/agents/opencode.cjs.map +1 -1
  46. package/dist/agents/sdk-streams.cjs +9 -0
  47. package/dist/agents/sdk-streams.cjs.map +1 -1
  48. package/dist/agents/ui-message-stream.cjs +3 -0
  49. package/dist/agents/ui-message-stream.cjs.map +1 -1
  50. package/dist/assertions/api.cjs.map +1 -1
  51. package/dist/assertions/api.d.cts +27 -5
  52. package/dist/assertions/api.d.mts +27 -5
  53. package/dist/assertions/api.d.ts +27 -5
  54. package/dist/assertions/collection.cjs +6 -0
  55. package/dist/assertions/collection.cjs.map +1 -1
  56. package/dist/assertions/collection.d.cts +4 -2
  57. package/dist/assertions/collection.d.mts +4 -2
  58. package/dist/assertions/collection.d.ts +4 -2
  59. package/dist/assertions/collection.js +12 -8
  60. package/dist/assertions/context-match.cjs +70 -0
  61. package/dist/assertions/context-match.cjs.map +1 -0
  62. package/dist/assertions/context-match.d.cts +107 -0
  63. package/dist/assertions/context-match.d.mts +107 -0
  64. package/dist/assertions/context-match.d.ts +107 -0
  65. package/dist/assertions/context-match.js +12 -0
  66. package/dist/assertions/context-match.js.map +1 -0
  67. package/dist/assertions/full-content.cjs +109 -0
  68. package/dist/assertions/full-content.cjs.map +1 -0
  69. package/dist/assertions/full-content.d.cts +6 -0
  70. package/dist/assertions/full-content.d.mts +6 -0
  71. package/dist/assertions/full-content.d.ts +6 -0
  72. package/dist/assertions/full-content.js +12 -0
  73. package/dist/assertions/full-content.js.map +1 -0
  74. package/dist/assertions/judge-presets.cjs +2 -34
  75. package/dist/assertions/judge-presets.cjs.map +1 -1
  76. package/dist/assertions/judge-presets.d.cts +6 -9
  77. package/dist/assertions/judge-presets.d.mts +6 -9
  78. package/dist/assertions/judge-presets.d.ts +6 -9
  79. package/dist/assertions/judge-presets.js +8 -8
  80. package/dist/assertions/judge.cjs +107 -29
  81. package/dist/assertions/judge.cjs.map +1 -1
  82. package/dist/assertions/judge.d.cts +2 -0
  83. package/dist/assertions/judge.d.mts +2 -0
  84. package/dist/assertions/judge.d.ts +2 -0
  85. package/dist/assertions/match.cjs +244 -5
  86. package/dist/assertions/match.cjs.map +1 -1
  87. package/dist/assertions/match.d.cts +43 -3
  88. package/dist/assertions/match.d.mts +43 -3
  89. package/dist/assertions/match.d.ts +43 -3
  90. package/dist/assertions/match.js +88 -78
  91. package/dist/assertions/material.cjs +520 -0
  92. package/dist/assertions/material.cjs.map +1 -0
  93. package/dist/assertions/material.d.cts +56 -0
  94. package/dist/assertions/material.d.mts +56 -0
  95. package/dist/assertions/material.d.ts +56 -0
  96. package/dist/assertions/material.js +20 -0
  97. package/dist/assertions/material.js.map +1 -0
  98. package/dist/assertions/record/attachment.cjs +5 -2
  99. package/dist/assertions/record/attachment.cjs.map +1 -1
  100. package/dist/assertions/record/codec.cjs +2 -1
  101. package/dist/assertions/record/codec.cjs.map +1 -1
  102. package/dist/assertions/record/model.cjs.map +1 -1
  103. package/dist/assertions/record/model.d.cts +6 -1
  104. package/dist/assertions/record/model.d.mts +6 -1
  105. package/dist/assertions/record/model.d.ts +6 -1
  106. package/dist/assertions/runtime.cjs +207 -14
  107. package/dist/assertions/runtime.cjs.map +1 -1
  108. package/dist/assertions/runtime.d.cts +9 -0
  109. package/dist/assertions/runtime.d.mts +9 -0
  110. package/dist/assertions/runtime.d.ts +9 -0
  111. package/dist/assertions/runtime.js +14 -8
  112. package/dist/assertions/score-match-audit.cjs +18 -8
  113. package/dist/assertions/score-match-audit.cjs.map +1 -1
  114. package/dist/assertions/score-match-gateway.cjs +83 -25
  115. package/dist/assertions/score-match-gateway.cjs.map +1 -1
  116. package/dist/assertions/score-match-gateway.d.cts +2 -0
  117. package/dist/assertions/score-match-gateway.d.mts +2 -0
  118. package/dist/assertions/score-match-gateway.d.ts +2 -0
  119. package/dist/assertions/value-composition.test-d.cjs +77 -0
  120. package/dist/assertions/value-composition.test-d.cjs.map +1 -0
  121. package/dist/assertions/value-composition.test-d.d.cts +1 -0
  122. package/dist/assertions/value-composition.test-d.d.mts +1 -0
  123. package/dist/assertions/value-composition.test-d.d.ts +1 -0
  124. package/dist/assertions/value-composition.test-d.js +4 -0
  125. package/dist/assertions/value-composition.test-d.js.map +1 -0
  126. package/dist/context/assert-first.cjs +207 -213
  127. package/dist/context/assert-first.cjs.map +1 -1
  128. package/dist/context/assert-first.d.cts +49 -23
  129. package/dist/context/assert-first.d.mts +49 -23
  130. package/dist/context/assert-first.d.ts +49 -23
  131. package/dist/context/session.cjs +111 -9
  132. package/dist/context/session.cjs.map +1 -1
  133. package/dist/context/session.d.cts +18 -0
  134. package/dist/context/session.d.mts +18 -0
  135. package/dist/context/session.d.ts +18 -0
  136. package/dist/define.cjs +17 -1
  137. package/dist/define.cjs.map +1 -1
  138. package/dist/eval/cli/contribution.cjs +2 -0
  139. package/dist/eval/cli/contribution.cjs.map +1 -1
  140. package/dist/eval/host/index.cjs +2 -0
  141. package/dist/eval/host/index.cjs.map +1 -1
  142. package/dist/eval/record/evaluation.cjs +3 -0
  143. package/dist/eval/record/evaluation.cjs.map +1 -1
  144. package/dist/eval/record/membership-provenance.d.cts +15 -15
  145. package/dist/eval/record/membership-provenance.d.mts +15 -15
  146. package/dist/eval/record/membership-provenance.d.ts +15 -15
  147. package/dist/eval/record/score.cjs +7 -0
  148. package/dist/eval/record/score.cjs.map +1 -1
  149. package/dist/eval/record/sealed-assertion.cjs +3 -0
  150. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  151. package/dist/eval/record/verdict.cjs +7 -0
  152. package/dist/eval/record/verdict.cjs.map +1 -1
  153. package/dist/expect/index.cjs +8 -2
  154. package/dist/expect/index.cjs.map +1 -1
  155. package/dist/expect/index.d.cts +9 -4
  156. package/dist/expect/index.d.mts +9 -4
  157. package/dist/expect/index.d.ts +9 -4
  158. package/dist/expect/index.js +72 -62
  159. package/dist/expect/index.mjs +72 -62
  160. package/dist/experiment/host/cli/contribution.cjs +37 -23
  161. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  162. package/dist/experiment/host/cli/contribution.d.cts +9 -1
  163. package/dist/experiment/host/cli/contribution.d.mts +9 -1
  164. package/dist/experiment/host/cli/contribution.d.ts +9 -1
  165. package/dist/experiment/host/current.cjs +74 -0
  166. package/dist/experiment/host/current.cjs.map +1 -0
  167. package/dist/experiment/host/current.d.cts +33 -0
  168. package/dist/experiment/host/current.d.mts +33 -0
  169. package/dist/experiment/host/current.d.ts +33 -0
  170. package/dist/experiment/host/current.js +10 -0
  171. package/dist/experiment/host/current.js.map +1 -0
  172. package/dist/experiment/host/index.cjs +17 -174
  173. package/dist/experiment/host/index.cjs.map +1 -1
  174. package/dist/experiment/host/index.d.cts +8 -54
  175. package/dist/experiment/host/index.d.mts +8 -54
  176. package/dist/experiment/host/index.d.ts +8 -54
  177. package/dist/experiment/host/operations.cjs +33 -10
  178. package/dist/experiment/host/operations.cjs.map +1 -1
  179. package/dist/experiment/host/operations.d.cts +29 -1
  180. package/dist/experiment/host/operations.d.mts +29 -1
  181. package/dist/experiment/host/operations.d.ts +29 -1
  182. package/dist/experiment/host/operations.js +6 -4
  183. package/dist/experiment/host/requirements.cjs +3 -0
  184. package/dist/experiment/host/requirements.cjs.map +1 -0
  185. package/dist/experiment/host/requirements.d.cts +3 -0
  186. package/dist/experiment/host/requirements.d.mts +3 -0
  187. package/dist/experiment/host/requirements.d.ts +3 -0
  188. package/dist/experiment/host/requirements.js +4 -0
  189. package/dist/experiment/host/requirements.js.map +1 -0
  190. package/dist/experiment/host/runtime.cjs +179 -0
  191. package/dist/experiment/host/runtime.cjs.map +1 -0
  192. package/dist/experiment/host/runtime.d.cts +79 -0
  193. package/dist/experiment/host/runtime.d.mts +79 -0
  194. package/dist/experiment/host/runtime.d.ts +79 -0
  195. package/dist/experiment/host/runtime.js +6 -0
  196. package/dist/experiment/host/runtime.js.map +1 -0
  197. package/dist/experiment/host/types.cjs.map +1 -1
  198. package/dist/experiment/host/types.d.cts +17 -16
  199. package/dist/experiment/host/types.d.mts +17 -16
  200. package/dist/experiment/host/types.d.ts +17 -16
  201. package/dist/fresh-import.cjs +2 -1
  202. package/dist/fresh-import.cjs.map +1 -1
  203. package/dist/index.cjs +4 -2
  204. package/dist/index.cjs.map +1 -1
  205. package/dist/index.d.cts +12 -6
  206. package/dist/index.d.mts +12 -6
  207. package/dist/index.d.ts +12 -6
  208. package/dist/index.js +32 -30
  209. package/dist/index.mjs +32 -30
  210. package/dist/inspection/artifacts.cjs +83 -54
  211. package/dist/inspection/artifacts.cjs.map +1 -1
  212. package/dist/inspection/artifacts.d.cts +8 -0
  213. package/dist/inspection/artifacts.d.mts +8 -0
  214. package/dist/inspection/artifacts.d.ts +8 -0
  215. package/dist/inspection/artifacts.js +2 -0
  216. package/dist/inspection/assertions.cjs +4 -1
  217. package/dist/inspection/assertions.cjs.map +1 -1
  218. package/dist/inspection/cli/contribution.cjs +27 -4
  219. package/dist/inspection/cli/contribution.cjs.map +1 -1
  220. package/dist/inspection/cli/contribution.d.cts +2 -1
  221. package/dist/inspection/cli/contribution.d.mts +2 -1
  222. package/dist/inspection/cli/contribution.d.ts +2 -1
  223. package/dist/inspection/execution-traces.cjs +114 -8
  224. package/dist/inspection/execution-traces.cjs.map +1 -1
  225. package/dist/inspection/execution-traces.d.cts +38 -0
  226. package/dist/inspection/execution-traces.d.mts +38 -0
  227. package/dist/inspection/execution-traces.d.ts +38 -0
  228. package/dist/inspection/facts.cjs +12 -0
  229. package/dist/inspection/facts.cjs.map +1 -1
  230. package/dist/inspection/limits.cjs +5 -1
  231. package/dist/inspection/limits.cjs.map +1 -1
  232. package/dist/inspection/limits.d.cts +4 -0
  233. package/dist/inspection/limits.d.mts +4 -0
  234. package/dist/inspection/limits.d.ts +4 -0
  235. package/dist/inspection/limits.js +6 -2
  236. package/dist/inspection/overview.cjs +74 -33
  237. package/dist/inspection/overview.cjs.map +1 -1
  238. package/dist/inspection/overview.d.cts +19 -1
  239. package/dist/inspection/overview.d.mts +19 -1
  240. package/dist/inspection/overview.d.ts +19 -1
  241. package/dist/inspection/overview.js +4 -2
  242. package/dist/inspection/project-input.cjs +9 -0
  243. package/dist/inspection/project-input.cjs.map +1 -0
  244. package/dist/inspection/project-input.d.cts +20 -0
  245. package/dist/inspection/project-input.d.mts +20 -0
  246. package/dist/inspection/project-input.d.ts +20 -0
  247. package/dist/inspection/project-input.js +8 -0
  248. package/dist/inspection/project-input.js.map +1 -0
  249. package/dist/inspection/project-result.cjs +60 -0
  250. package/dist/inspection/project-result.cjs.map +1 -0
  251. package/dist/inspection/project-result.d.cts +1264 -0
  252. package/dist/inspection/project-result.d.mts +1264 -0
  253. package/dist/inspection/project-result.d.ts +1264 -0
  254. package/dist/inspection/project-result.js +10 -0
  255. package/dist/inspection/project-result.js.map +1 -0
  256. package/dist/inspection/project-source.cjs +109 -0
  257. package/dist/inspection/project-source.cjs.map +1 -0
  258. package/dist/inspection/project-source.d.cts +10 -0
  259. package/dist/inspection/project-source.d.mts +10 -0
  260. package/dist/inspection/project-source.d.ts +10 -0
  261. package/dist/inspection/project-source.js +6 -0
  262. package/dist/inspection/project-source.js.map +1 -0
  263. package/dist/inspection/project.cjs +100 -0
  264. package/dist/inspection/project.cjs.map +1 -0
  265. package/dist/inspection/project.d.cts +3 -0
  266. package/dist/inspection/project.d.mts +3 -0
  267. package/dist/inspection/project.d.ts +3 -0
  268. package/dist/inspection/project.js +6 -0
  269. package/dist/inspection/project.js.map +1 -0
  270. package/dist/inspection/protocol.cjs +19 -9
  271. package/dist/inspection/protocol.cjs.map +1 -1
  272. package/dist/inspection/protocol.d.cts +5506 -38189
  273. package/dist/inspection/protocol.d.mts +5506 -38189
  274. package/dist/inspection/protocol.d.ts +5506 -38189
  275. package/dist/inspection/public.mjs +896 -84
  276. package/dist/inspection/query.cjs +2 -0
  277. package/dist/inspection/query.cjs.map +1 -1
  278. package/dist/inspection/results.cjs +234 -29
  279. package/dist/inspection/results.cjs.map +1 -1
  280. package/dist/inspection/results.d.cts +870 -13
  281. package/dist/inspection/results.d.mts +870 -13
  282. package/dist/inspection/results.d.ts +870 -13
  283. package/dist/inspection/results.js +36 -34
  284. package/dist/inspection/select.cjs +126 -14
  285. package/dist/inspection/select.cjs.map +1 -1
  286. package/dist/inspection/select.d.cts +1 -1
  287. package/dist/inspection/select.d.mts +1 -1
  288. package/dist/inspection/select.d.ts +1 -1
  289. package/dist/inspection/source.cjs +4 -0
  290. package/dist/inspection/source.cjs.map +1 -1
  291. package/dist/inspection/sources.cjs +5 -0
  292. package/dist/inspection/sources.cjs.map +1 -1
  293. package/dist/inspection/trace.cjs +82 -84
  294. package/dist/inspection/trace.cjs.map +1 -1
  295. package/dist/inspection/trace.d.cts +7 -2
  296. package/dist/inspection/trace.d.mts +7 -2
  297. package/dist/inspection/trace.d.ts +7 -2
  298. package/dist/model-slots.cjs +35 -0
  299. package/dist/model-slots.cjs.map +1 -0
  300. package/dist/model-slots.d.cts +19 -0
  301. package/dist/model-slots.d.mts +19 -0
  302. package/dist/model-slots.d.ts +19 -0
  303. package/dist/model-slots.js +8 -0
  304. package/dist/model-slots.js.map +1 -0
  305. package/dist/o11y/adapter-call-price.cjs +4 -0
  306. package/dist/o11y/adapter-call-price.cjs.map +1 -1
  307. package/dist/o11y/adapter-call-price.d.cts +24 -0
  308. package/dist/o11y/adapter-call-price.d.mts +24 -0
  309. package/dist/o11y/adapter-call-price.d.ts +24 -0
  310. package/dist/o11y/adapter-call-price.js +6 -2
  311. package/dist/o11y/adapter-usage-projection.cjs +158 -0
  312. package/dist/o11y/adapter-usage-projection.cjs.map +1 -0
  313. package/dist/o11y/adapter-usage-projection.d.cts +141 -0
  314. package/dist/o11y/adapter-usage-projection.d.mts +141 -0
  315. package/dist/o11y/adapter-usage-projection.d.ts +141 -0
  316. package/dist/o11y/adapter-usage-projection.js +20 -0
  317. package/dist/o11y/adapter-usage-projection.js.map +1 -0
  318. package/dist/o11y/eval-usage.cjs +149 -0
  319. package/dist/o11y/eval-usage.cjs.map +1 -0
  320. package/dist/o11y/eval-usage.d.cts +46 -0
  321. package/dist/o11y/eval-usage.d.mts +46 -0
  322. package/dist/o11y/eval-usage.d.ts +46 -0
  323. package/dist/o11y/eval-usage.js +8 -0
  324. package/dist/o11y/eval-usage.js.map +1 -0
  325. package/dist/o11y/judge-call-price.cjs +62 -0
  326. package/dist/o11y/judge-call-price.cjs.map +1 -0
  327. package/dist/o11y/judge-call-price.d.cts +3 -0
  328. package/dist/o11y/judge-call-price.d.mts +3 -0
  329. package/dist/o11y/judge-call-price.d.ts +3 -0
  330. package/dist/o11y/judge-call-price.js +6 -0
  331. package/dist/o11y/judge-call-price.js.map +1 -0
  332. package/dist/o11y/judge-usage-projection.cjs +134 -0
  333. package/dist/o11y/judge-usage-projection.cjs.map +1 -0
  334. package/dist/o11y/judge-usage-projection.d.cts +18 -0
  335. package/dist/o11y/judge-usage-projection.d.mts +18 -0
  336. package/dist/o11y/judge-usage-projection.d.ts +18 -0
  337. package/dist/o11y/judge-usage-projection.js +20 -0
  338. package/dist/o11y/judge-usage-projection.js.map +1 -0
  339. package/dist/o11y/judge-usage-receipt.cjs +135 -0
  340. package/dist/o11y/judge-usage-receipt.cjs.map +1 -0
  341. package/dist/o11y/judge-usage-receipt.d.cts +5 -0
  342. package/dist/o11y/judge-usage-receipt.d.mts +5 -0
  343. package/dist/o11y/judge-usage-receipt.d.ts +5 -0
  344. package/dist/o11y/judge-usage-receipt.js +6 -0
  345. package/dist/o11y/judge-usage-receipt.js.map +1 -0
  346. package/dist/o11y/judge-usage.cjs +171 -0
  347. package/dist/o11y/judge-usage.cjs.map +1 -0
  348. package/dist/o11y/judge-usage.d.cts +35 -0
  349. package/dist/o11y/judge-usage.d.mts +35 -0
  350. package/dist/o11y/judge-usage.d.ts +35 -0
  351. package/dist/o11y/judge-usage.js +6 -0
  352. package/dist/o11y/judge-usage.js.map +1 -0
  353. package/dist/plugin/contracts.cjs +2 -0
  354. package/dist/plugin/contracts.cjs.map +1 -1
  355. package/dist/plugin/link.cjs +7 -0
  356. package/dist/plugin/link.cjs.map +1 -1
  357. package/dist/record/attachment/protocol.cjs +8 -6
  358. package/dist/record/attachment/protocol.cjs.map +1 -1
  359. package/dist/record/attachment/protocol.d.cts +10 -0
  360. package/dist/record/attachment/protocol.d.mts +10 -0
  361. package/dist/record/attachment/protocol.d.ts +10 -0
  362. package/dist/record/attachment/protocol.js +38 -36
  363. package/dist/record/codec/seal-manifest.d.cts +3 -3
  364. package/dist/record/codec/seal-manifest.d.mts +3 -3
  365. package/dist/record/codec/seal-manifest.d.ts +3 -3
  366. package/dist/record/family/adapter-usage/definition.d.cts +1 -0
  367. package/dist/record/family/adapter-usage/definition.d.mts +1 -0
  368. package/dist/record/family/adapter-usage/definition.d.ts +1 -0
  369. package/dist/record/family/adapter-usage/persistence.cjs +1 -1
  370. package/dist/record/family/adapter-usage/persistence.cjs.map +1 -1
  371. package/dist/record/family/adapter-usage/persistence.d.cts +2 -1
  372. package/dist/record/family/adapter-usage/persistence.d.mts +2 -1
  373. package/dist/record/family/adapter-usage/persistence.d.ts +2 -1
  374. package/dist/record/family/adapter-usage/schema.cjs +21 -2
  375. package/dist/record/family/adapter-usage/schema.cjs.map +1 -1
  376. package/dist/record/family/adapter-usage/schema.d.cts +85 -0
  377. package/dist/record/family/adapter-usage/schema.d.mts +85 -0
  378. package/dist/record/family/adapter-usage/schema.d.ts +85 -0
  379. package/dist/record/family/adapter-usage/schema.js +18 -12
  380. package/dist/record/family/catalog.cjs +31 -27
  381. package/dist/record/family/catalog.cjs.map +1 -1
  382. package/dist/record/family/catalog.d.cts +94 -3
  383. package/dist/record/family/catalog.d.mts +94 -3
  384. package/dist/record/family/catalog.d.ts +94 -3
  385. package/dist/record/family/current.cjs +45 -42
  386. package/dist/record/family/current.cjs.map +1 -1
  387. package/dist/record/family/current.d.cts +240 -1
  388. package/dist/record/family/current.d.mts +240 -1
  389. package/dist/record/family/current.d.ts +240 -1
  390. package/dist/record/family/execution-traces/definition.d.cts +26 -0
  391. package/dist/record/family/execution-traces/definition.d.mts +26 -0
  392. package/dist/record/family/execution-traces/definition.d.ts +26 -0
  393. package/dist/record/family/execution-traces/definition.js +20 -14
  394. package/dist/record/family/execution-traces/schema.cjs +57 -1
  395. package/dist/record/family/execution-traces/schema.cjs.map +1 -1
  396. package/dist/record/family/execution-traces/schema.d.cts +114 -0
  397. package/dist/record/family/execution-traces/schema.d.mts +114 -0
  398. package/dist/record/family/execution-traces/schema.d.ts +114 -0
  399. package/dist/record/family/execution-traces/schema.js +18 -12
  400. package/dist/record/family/judge-usage/definition.cjs +12 -0
  401. package/dist/record/family/judge-usage/definition.cjs.map +1 -0
  402. package/dist/record/family/judge-usage/definition.d.cts +91 -0
  403. package/dist/record/family/judge-usage/definition.d.mts +91 -0
  404. package/dist/record/family/judge-usage/definition.d.ts +91 -0
  405. package/dist/record/family/judge-usage/definition.js +6 -0
  406. package/dist/record/family/judge-usage/definition.js.map +1 -0
  407. package/dist/record/family/judge-usage/persistence.cjs +10 -0
  408. package/dist/record/family/judge-usage/persistence.cjs.map +1 -0
  409. package/dist/record/family/judge-usage/persistence.d.cts +91 -0
  410. package/dist/record/family/judge-usage/persistence.d.mts +91 -0
  411. package/dist/record/family/judge-usage/persistence.d.ts +91 -0
  412. package/dist/record/family/judge-usage/persistence.js +6 -0
  413. package/dist/record/family/judge-usage/persistence.js.map +1 -0
  414. package/dist/record/family/judge-usage/schema.cjs +307 -0
  415. package/dist/record/family/judge-usage/schema.cjs.map +1 -0
  416. package/dist/record/family/judge-usage/schema.d.cts +351 -0
  417. package/dist/record/family/judge-usage/schema.d.mts +351 -0
  418. package/dist/record/family/judge-usage/schema.d.ts +351 -0
  419. package/dist/record/family/judge-usage/schema.js +18 -0
  420. package/dist/record/family/judge-usage/schema.js.map +1 -0
  421. package/dist/record/host/sqlite-host.cjs +55 -9
  422. package/dist/record/host/sqlite-host.cjs.map +1 -1
  423. package/dist/record/host/types.cjs.map +1 -1
  424. package/dist/record/host/types.d.cts +7 -0
  425. package/dist/record/host/types.d.mts +7 -0
  426. package/dist/record/host/types.d.ts +7 -0
  427. package/dist/record/model/run-context.cjs +7 -1
  428. package/dist/record/model/run-context.cjs.map +1 -1
  429. package/dist/record/model/run-context.d.cts +4 -0
  430. package/dist/record/model/run-context.d.mts +4 -0
  431. package/dist/record/model/run-context.d.ts +4 -0
  432. package/dist/record/model/seal-manifest.d.cts +1 -1
  433. package/dist/record/model/seal-manifest.d.mts +1 -1
  434. package/dist/record/model/seal-manifest.d.ts +1 -1
  435. package/dist/record/sqlite/client.cjs +18 -5
  436. package/dist/record/sqlite/client.cjs.map +1 -1
  437. package/dist/record/sqlite/client.d.cts +1 -1
  438. package/dist/record/sqlite/client.d.mts +1 -1
  439. package/dist/record/sqlite/client.d.ts +1 -1
  440. package/dist/record/sqlite/project-state-database.cjs +29 -8
  441. package/dist/record/sqlite/project-state-database.cjs.map +1 -1
  442. package/dist/run/host/runtime.cjs +4 -0
  443. package/dist/run/host/runtime.cjs.map +1 -1
  444. package/dist/run/storage/sqlite.cjs +20 -0
  445. package/dist/run/storage/sqlite.cjs.map +1 -1
  446. package/dist/runner/adapter-execution-trace.cjs +125 -2
  447. package/dist/runner/adapter-execution-trace.cjs.map +1 -1
  448. package/dist/runner/adapter-execution-trace.d.cts +1 -1
  449. package/dist/runner/adapter-execution-trace.d.mts +1 -1
  450. package/dist/runner/adapter-execution-trace.d.ts +1 -1
  451. package/dist/runner/adapter-usage.cjs +55 -7
  452. package/dist/runner/adapter-usage.cjs.map +1 -1
  453. package/dist/runner/adapter-usage.d.cts +9 -2
  454. package/dist/runner/adapter-usage.d.mts +9 -2
  455. package/dist/runner/adapter-usage.d.ts +9 -2
  456. package/dist/runner/adoption.cjs +9 -0
  457. package/dist/runner/adoption.cjs.map +1 -1
  458. package/dist/runner/attempt-cancellation.cjs +12 -0
  459. package/dist/runner/attempt-cancellation.cjs.map +1 -0
  460. package/dist/runner/attempt-cancellation.d.cts +6 -0
  461. package/dist/runner/attempt-cancellation.d.mts +6 -0
  462. package/dist/runner/attempt-cancellation.d.ts +6 -0
  463. package/dist/runner/attempt-cancellation.js +6 -0
  464. package/dist/runner/attempt-cancellation.js.map +1 -0
  465. package/dist/runner/attempt-resources.cjs +10 -4
  466. package/dist/runner/attempt-resources.cjs.map +1 -1
  467. package/dist/runner/attempt-resources.d.cts +2 -1
  468. package/dist/runner/attempt-resources.d.mts +2 -1
  469. package/dist/runner/attempt-resources.d.ts +2 -1
  470. package/dist/runner/attempt.cjs +1177 -1139
  471. package/dist/runner/attempt.cjs.map +1 -1
  472. package/dist/runner/config-identity.cjs +20 -1
  473. package/dist/runner/config-identity.cjs.map +1 -1
  474. package/dist/runner/config-identity.d.cts +5 -0
  475. package/dist/runner/config-identity.d.mts +5 -0
  476. package/dist/runner/config-identity.d.ts +5 -0
  477. package/dist/runner/discover.cjs +14 -0
  478. package/dist/runner/discover.cjs.map +1 -1
  479. package/dist/runner/discover.d.cts +3 -0
  480. package/dist/runner/discover.d.mts +3 -0
  481. package/dist/runner/discover.d.ts +3 -0
  482. package/dist/runner/feedback/human.cjs +9 -4
  483. package/dist/runner/feedback/human.cjs.map +1 -1
  484. package/dist/runner/fingerprint.cjs +1 -0
  485. package/dist/runner/fingerprint.cjs.map +1 -1
  486. package/dist/runner/judge-usage.cjs +18 -0
  487. package/dist/runner/judge-usage.cjs.map +1 -0
  488. package/dist/runner/judge-usage.d.cts +5 -0
  489. package/dist/runner/judge-usage.d.mts +5 -0
  490. package/dist/runner/judge-usage.d.ts +5 -0
  491. package/dist/runner/judge-usage.js +8 -0
  492. package/dist/runner/judge-usage.js.map +1 -0
  493. package/dist/runner/project-target.cjs.map +1 -1
  494. package/dist/runner/project-target.d.cts +2 -0
  495. package/dist/runner/project-target.d.mts +2 -0
  496. package/dist/runner/project-target.d.ts +2 -0
  497. package/dist/runner/record/planning.cjs +1 -0
  498. package/dist/runner/record/planning.cjs.map +1 -1
  499. package/dist/runner/record.cjs +4 -0
  500. package/dist/runner/record.cjs.map +1 -1
  501. package/dist/runner/reporters/braintrust.cjs +2 -0
  502. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  503. package/dist/runner/reuse-diagnostics.cjs +9 -10
  504. package/dist/runner/reuse-diagnostics.cjs.map +1 -1
  505. package/dist/runner/reuse-diagnostics.d.cts +5 -6
  506. package/dist/runner/reuse-diagnostics.d.mts +5 -6
  507. package/dist/runner/reuse-diagnostics.d.ts +5 -6
  508. package/dist/runner/reuse-diagnostics.js +4 -4
  509. package/dist/runner/reuse-plan.cjs +100 -48
  510. package/dist/runner/reuse-plan.cjs.map +1 -1
  511. package/dist/runner/reuse-plan.d.cts +60 -3
  512. package/dist/runner/reuse-plan.d.mts +60 -3
  513. package/dist/runner/reuse-plan.d.ts +60 -3
  514. package/dist/runner/reuse-plan.js +14 -10
  515. package/dist/runner/run.cjs +8 -6
  516. package/dist/runner/run.cjs.map +1 -1
  517. package/dist/runner/session.cjs +1 -1
  518. package/dist/runner/session.cjs.map +1 -1
  519. package/dist/runner/session.d.cts +1 -1
  520. package/dist/runner/session.d.mts +1 -1
  521. package/dist/runner/session.d.ts +1 -1
  522. package/dist/runner/source-producer.cjs +3 -1
  523. package/dist/runner/source-producer.cjs.map +1 -1
  524. package/dist/runner/types.cjs.map +1 -1
  525. package/dist/runner/types.d.cts +26 -5
  526. package/dist/runner/types.d.mts +26 -5
  527. package/dist/runner/types.d.ts +26 -5
  528. package/dist/sandbox/action.cjs +3 -0
  529. package/dist/sandbox/action.cjs.map +1 -1
  530. package/dist/sandbox/commands.cjs +3 -0
  531. package/dist/sandbox/commands.cjs.map +1 -1
  532. package/dist/sandbox/compose.cjs +6 -0
  533. package/dist/sandbox/compose.cjs.map +1 -1
  534. package/dist/sandbox/docker-profile/registry.cjs +7 -0
  535. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  536. package/dist/sandbox/docker-profile/runtime.cjs +3 -0
  537. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  538. package/dist/sandbox/docker-profile/schema.cjs +7 -0
  539. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  540. package/dist/sandbox/incus.cjs +7 -0
  541. package/dist/sandbox/incus.cjs.map +1 -1
  542. package/dist/sandbox/layer.cjs +12 -0
  543. package/dist/sandbox/layer.cjs.map +1 -1
  544. package/dist/shared/adapter-cleanup.cjs +18 -0
  545. package/dist/shared/adapter-cleanup.cjs.map +1 -0
  546. package/dist/shared/adapter-cleanup.d.cts +4 -0
  547. package/dist/shared/adapter-cleanup.d.mts +4 -0
  548. package/dist/shared/adapter-cleanup.d.ts +4 -0
  549. package/dist/shared/adapter-cleanup.js +10 -0
  550. package/dist/shared/adapter-cleanup.js.map +1 -0
  551. package/dist/shared/attempt-lifecycle.cjs +3 -0
  552. package/dist/shared/attempt-lifecycle.cjs.map +1 -0
  553. package/dist/shared/attempt-lifecycle.d.cts +13 -0
  554. package/dist/shared/attempt-lifecycle.d.mts +13 -0
  555. package/dist/shared/attempt-lifecycle.d.ts +13 -0
  556. package/dist/shared/attempt-lifecycle.js +4 -0
  557. package/dist/shared/attempt-lifecycle.js.map +1 -0
  558. package/dist/show/contribution.cjs +52 -14
  559. package/dist/show/contribution.cjs.map +1 -1
  560. package/dist/show/contribution.d.cts +23 -1
  561. package/dist/show/contribution.d.mts +23 -1
  562. package/dist/show/contribution.d.ts +23 -1
  563. package/dist/show/model.cjs +8 -1
  564. package/dist/show/model.cjs.map +1 -1
  565. package/dist/show/model.d.cts +10 -1
  566. package/dist/show/model.d.mts +10 -1
  567. package/dist/show/model.d.ts +10 -1
  568. package/dist/show/render.cjs +287 -49
  569. package/dist/show/render.cjs.map +1 -1
  570. package/dist/show/render.d.cts +3 -0
  571. package/dist/show/render.d.mts +3 -0
  572. package/dist/show/render.d.ts +3 -0
  573. package/dist/sources/projector.cjs +3 -0
  574. package/dist/sources/projector.cjs.map +1 -1
  575. package/dist/types.cjs.map +1 -1
  576. package/dist/types.d.cts +1 -1
  577. package/dist/types.d.mts +1 -1
  578. package/dist/types.d.ts +1 -1
  579. package/dist/view/app-dist/.vite/manifest.json +2 -2
  580. package/dist/view/app-dist/assets/index-CmVoXbwG.js +63 -0
  581. package/dist/view/app-dist/assets/{quality-cost-scatter-CFB3wnkN.js → quality-cost-scatter-BuLISaH4.js} +1 -1
  582. package/dist/view/app-dist/index.html +1 -1
  583. package/dist/view/cli/contribution.cjs +54 -21
  584. package/dist/view/cli/contribution.cjs.map +1 -1
  585. package/dist/view/cli/contribution.d.cts +2 -1
  586. package/dist/view/cli/contribution.d.mts +2 -1
  587. package/dist/view/cli/contribution.d.ts +2 -1
  588. package/dist/view/function-runtime.mjs +13231 -11647
  589. package/dist/view/http-protocol.cjs +3 -0
  590. package/dist/view/http-protocol.cjs.map +1 -1
  591. package/dist/view/http-protocol.d.cts +8 -0
  592. package/dist/view/http-protocol.d.mts +8 -0
  593. package/dist/view/http-protocol.d.ts +8 -0
  594. package/dist/view/inspection-host.cjs +17 -1
  595. package/dist/view/inspection-host.cjs.map +1 -1
  596. package/dist/view/render.cjs +1 -0
  597. package/dist/view/render.cjs.map +1 -1
  598. package/dist/view/render.d.cts +2 -1
  599. package/dist/view/render.d.mts +2 -1
  600. package/dist/view/render.d.ts +2 -1
  601. package/dist/view/revision.cjs.map +1 -1
  602. package/dist/view/revision.d.cts +12 -0
  603. package/dist/view/revision.d.mts +12 -0
  604. package/dist/view/revision.d.ts +12 -0
  605. package/dist/view/server.cjs +10 -9
  606. package/dist/view/server.cjs.map +1 -1
  607. package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
  608. package/docs-site/zh/explanation/adapter.mdx +2 -2
  609. package/docs-site/zh/explanation/assert.mdx +60 -24
  610. package/docs-site/zh/explanation/drive.mdx +1 -1
  611. package/docs-site/zh/explanation/evals.mdx +31 -29
  612. package/docs-site/zh/explanation/experiment.mdx +15 -15
  613. package/docs-site/zh/explanation/judge.mdx +23 -15
  614. package/docs-site/zh/explanation/overview.mdx +44 -21
  615. package/docs-site/zh/explanation/record.mdx +28 -13
  616. package/docs-site/zh/explanation/results-flow.mdx +37 -0
  617. package/docs-site/zh/explanation/runner.mdx +27 -6
  618. package/docs-site/zh/index.mdx +22 -115
  619. package/docs-site/zh/introduction.mdx +89 -61
  620. package/docs-site/zh/reference/cli.mdx +50 -26
  621. package/docs-site/zh/reference/define-agent.mdx +37 -5
  622. package/docs-site/zh/reference/define-eval.mdx +130 -29
  623. package/docs-site/zh/reference/define-experiment.mdx +251 -0
  624. package/docs-site/zh/reference/events.mdx +34 -30
  625. package/docs-site/zh/reference/expect.mdx +77 -2
  626. package/docs-site/zh/reference/official-adapters.mdx +2 -2
  627. package/docs-site/zh/troubleshooting/debug-sandbox.mdx +43 -24
  628. package/docs-site/zh/troubleshooting/debugging.mdx +65 -42
  629. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +35 -28
  630. package/docs-site/zh/tutorials/accept-results.mdx +34 -24
  631. package/docs-site/zh/tutorials/agent-feedback-loop.mdx +74 -43
  632. package/docs-site/zh/tutorials/agent-onboarding.mdx +27 -20
  633. package/docs-site/zh/tutorials/authoring.mdx +138 -121
  634. package/docs-site/zh/tutorials/ci-integration.mdx +46 -22
  635. package/docs-site/zh/tutorials/compare-runs.mdx +40 -13
  636. package/docs-site/zh/tutorials/concurrency.mdx +66 -62
  637. package/docs-site/zh/tutorials/configuration.mdx +17 -17
  638. package/docs-site/zh/tutorials/connect-otel.mdx +48 -37
  639. package/docs-site/zh/tutorials/connect-your-agent.mdx +80 -173
  640. package/docs-site/zh/tutorials/control-run-cost.mdx +63 -12
  641. package/docs-site/zh/tutorials/criteria-files.mdx +28 -21
  642. package/docs-site/zh/tutorials/custom-application.mdx +75 -55
  643. package/docs-site/zh/tutorials/dataset-fanout.mdx +32 -22
  644. package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +38 -31
  645. package/docs-site/zh/tutorials/docker-in-docker.mdx +83 -89
  646. package/docs-site/zh/tutorials/eval-groups.mdx +70 -89
  647. package/docs-site/zh/tutorials/evaluation-kinds.mdx +12 -5
  648. package/docs-site/zh/tutorials/experiment-services.mdx +243 -0
  649. package/docs-site/zh/tutorials/fixtures.mdx +42 -26
  650. package/docs-site/zh/tutorials/handle-execution-failures.mdx +41 -19
  651. package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +21 -16
  652. package/docs-site/zh/tutorials/niceeval-taste-application.mdx +394 -0
  653. package/docs-site/zh/tutorials/niceeval-taste.mdx +190 -0
  654. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +51 -39
  655. package/docs-site/zh/tutorials/plugins.mdx +55 -31
  656. package/docs-site/zh/tutorials/prebuilt-sandbox.mdx +204 -0
  657. package/docs-site/zh/tutorials/quickstart.mdx +91 -47
  658. package/docs-site/zh/tutorials/reporters.mdx +45 -30
  659. package/docs-site/zh/tutorials/rerun-and-cache.mdx +39 -40
  660. package/docs-site/zh/tutorials/sandbox-agent.mdx +65 -40
  661. package/docs-site/zh/tutorials/sandbox-providers.mdx +104 -282
  662. package/docs-site/zh/tutorials/sandbox-reuse.mdx +65 -97
  663. package/docs-site/zh/tutorials/select-and-preview.mdx +25 -20
  664. package/docs-site/zh/tutorials/verify-judge.mdx +49 -26
  665. package/docs-site/zh/tutorials/viewing-results.mdx +130 -80
  666. package/docs-site/zh/tutorials/write-experiment.mdx +116 -298
  667. package/docs-site/zh/tutorials/write-send.mdx +53 -52
  668. package/node_modules/undici/docs/docs/api/Agent.md +8 -8
  669. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  670. package/node_modules/undici/docs/docs/api/Errors.md +25 -0
  671. package/node_modules/undici/docs/docs/api/Interceptors.md +4 -3
  672. package/node_modules/undici/docs/docs/api/Pool.md +5 -6
  673. package/node_modules/undici/lib/api/readable.js +1 -2
  674. package/node_modules/undici/lib/core/request.js +23 -2
  675. package/node_modules/undici/lib/core/util.js +0 -39
  676. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -4
  677. package/node_modules/undici/lib/dispatcher/client-h2.js +52 -8
  678. package/node_modules/undici/lib/dispatcher/client.js +1 -1
  679. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -2
  680. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  681. package/node_modules/undici/lib/dispatcher/pool-base.js +63 -2
  682. package/node_modules/undici/lib/dispatcher/pool.js +90 -7
  683. package/node_modules/undici/lib/dispatcher/proxy-agent.js +16 -3
  684. package/node_modules/undici/lib/handler/deduplication-handler.js +24 -11
  685. package/node_modules/undici/lib/handler/redirect-handler.js +5 -0
  686. package/node_modules/undici/lib/handler/retry-handler.js +72 -13
  687. package/node_modules/undici/lib/interceptor/cache.js +4 -1
  688. package/node_modules/undici/lib/interceptor/decompress.js +236 -69
  689. package/node_modules/undici/lib/web/cache/cache.js +17 -8
  690. package/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  691. package/node_modules/undici/lib/web/cookies/index.js +19 -7
  692. package/node_modules/undici/lib/web/cookies/util.js +3 -1
  693. package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -1
  694. package/node_modules/undici/lib/web/fetch/body.js +22 -15
  695. package/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  696. package/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  697. package/node_modules/undici/lib/web/fetch/headers.js +34 -31
  698. package/node_modules/undici/lib/web/fetch/index.js +38 -14
  699. package/node_modules/undici/lib/web/fetch/request.js +74 -79
  700. package/node_modules/undici/lib/web/fetch/response.js +43 -44
  701. package/node_modules/undici/lib/web/fetch/util.js +7 -7
  702. package/node_modules/undici/lib/web/infra/index.js +16 -1
  703. package/node_modules/undici/lib/web/webidl/index.js +2 -14
  704. package/node_modules/undici/lib/web/websocket/events.js +43 -26
  705. package/node_modules/undici/lib/web/websocket/receiver.js +5 -0
  706. package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  707. package/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  708. package/node_modules/undici/package.json +1 -1
  709. package/node_modules/undici/types/diagnostics-channel.d.ts +2 -1
  710. package/node_modules/undici/types/interceptors.d.ts +1 -1
  711. package/node_modules/undici/types/webidl.d.ts +13 -7
  712. package/package.json +4 -4
  713. package/dist/view/app-dist/assets/index-DFzw1L97.js +0 -63
  714. package/docs-site/zh/tutorials/experiments.mdx +0 -101
@@ -0,0 +1,10 @@
1
+ import { createRequire as __niceevalCreateRequire } from "node:module";
2
+ const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
3
+ const __niceevalCanonical = __niceevalRequire("./project-result.cjs");
4
+ const __niceevalExport0 = __niceevalCanonical["InspectionProjectGapReasonSchema"];
5
+ export { __niceevalExport0 as InspectionProjectGapReasonSchema };
6
+ const __niceevalExport1 = __niceevalCanonical["InspectionProjectResultSchema"];
7
+ export { __niceevalExport1 as InspectionProjectResultSchema };
8
+ const __niceevalExport2 = __niceevalCanonical["InspectionProjectSlotSchema"];
9
+ export { __niceevalExport2 as InspectionProjectSlotSchema };
10
+ //# sourceMappingURL=project-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-result.js","sources":[],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openCurrentProjectSource = void 0;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
6
+ const effect_1 = require("effect");
7
+ const current_ts_1 = require("../experiment/host/current.cjs");
8
+ const index_ts_1 = require("../record/sqlite/index.cjs");
9
+ const protocol_ts_1 = require("../record/attachment/protocol.cjs");
10
+ const current_ts_2 = require("../record/family/current.cjs");
11
+ const record_errors_ts_1 = require("../record/errors/record-errors.cjs");
12
+ const reuse_plan_ts_1 = require("../runner/reuse-plan.cjs");
13
+ const facts_ts_1 = require("./facts.cjs");
14
+ const source_ts_1 = require("./source.cjs");
15
+ const project_input_ts_1 = require("./project-input.cjs");
16
+ /** One scoped reader owns both the availability inputs and Inspection facts. */
17
+ exports.openCurrentProjectSource = effect_1.Effect.fn("openCurrentProjectSource")(function* (input) {
18
+ const root = (0, node_path_1.resolve)(input.cwd, ".niceeval");
19
+ let source;
20
+ const resources = [];
21
+ if (input.recordPath === undefined && !(0, node_fs_1.existsSync)((0, node_path_1.resolve)(root, "record.sqlite"))) {
22
+ source = yield* (0, source_ts_1.openInspectionSource)((0, source_ts_1.operationalInspectionSource)(input.cwd));
23
+ }
24
+ else {
25
+ const session = input.recordPath === undefined
26
+ ? yield* (0, index_ts_1.acquireProjectRecordReadSession)(root)
27
+ : yield* effect_1.Effect.acquireRelease(effect_1.Effect.try(() => (0, index_ts_1.openHostOwnedRecordReadSession)(input.recordPath)), (opened) => effect_1.Effect.sync(() => opened.close()));
28
+ const cutoff = session.readSealedRunSummaryPage("", 1).cutoff;
29
+ source = Object.freeze({
30
+ kind: "project-record",
31
+ cutoff: () => cutoff,
32
+ readRunResource: session.readRunResource,
33
+ readSealedRunSummaryPage: session.readSealedRunSummaryPage,
34
+ findAttemptLocatorCandidates: session.findAttemptLocatorCandidates,
35
+ readSealedRunCore: session.readSealedRunCore,
36
+ readContentPage: session.readContentChunkPage,
37
+ readCollectionPage: session.readCollectionItemPage,
38
+ });
39
+ let afterRunId = "";
40
+ for (;;) {
41
+ const page = session.listRunResources({ afterRunId, pageSize: 100 });
42
+ resources.push(...page.runs);
43
+ if (page.nextAfterRunId === null)
44
+ break;
45
+ afterRunId = page.nextAfterRunId;
46
+ }
47
+ }
48
+ const target = yield* (0, current_ts_1.prepareCurrentTarget)(input);
49
+ const runs = yield* effect_1.Effect.try(() => (0, facts_ts_1.loadInspectionRuns)(source));
50
+ const assessmentRuns = runs.map((run) => ({
51
+ createdRevision: run.physical.createdRevision,
52
+ document: run.run,
53
+ members: run.members.map((member) => ({
54
+ document: member,
55
+ bindingRevision: run.physical.members.find((row) => row.slotId === member.slotId)?.bindingRevision,
56
+ attempt: member.attempt === null ? null : {
57
+ resolved: (0, facts_ts_1.resolveInspectionMemberAttempt)(runs, run, member),
58
+ sourceRunId: run.run.runId,
59
+ publication: published(resources.find((resource) => resource.runId === run.run.runId)?.slots.find((slot) => slot.slotId === member.slotId)?.publication),
60
+ },
61
+ })),
62
+ }));
63
+ const lifecycleRuns = yield* (0, reuse_plan_ts_1.mergeCurrentAssessmentRuns)(assessmentRuns, resources);
64
+ const assessments = yield* (0, current_ts_1.assessCurrentTarget)(target, {
65
+ runs: lifecycleRuns,
66
+ byRunId: new Map(lifecycleRuns.map((run) => [run.document.runId, run])),
67
+ selectionHasProblem: false,
68
+ coreIssues: [],
69
+ readAttempt: (ref) => effect_1.Effect.succeed(ref.resolved === undefined ? { state: "missing" } : {
70
+ state: "available",
71
+ value: { ...ref, document: ref.resolved.attempt, publicationAvailable: ref.publication !== undefined || ref.resolved.origin.physical.attempts.some((attempt) => attempt.attemptId === ref.resolved.attempt.attemptId && attempt.publicationIdentity !== undefined) },
72
+ }),
73
+ readAssertions: (attempt) => effect_1.Effect.sync(() => {
74
+ const read = (0, facts_ts_1.readInspectionAssertions)(attempt.resolved);
75
+ if (read.state === "available")
76
+ return { state: "available", value: read.value };
77
+ if (read.state === "not-recorded")
78
+ return { state: "not-recorded" };
79
+ if (read.state === "unsupported")
80
+ return { state: "unsupported", family: current_ts_2.NiceEvalRecordAttachments.assertions.family, revision: read.attachment.physical.familyRevision };
81
+ return { state: "invalid", issues: [(0, record_errors_ts_1.recordIssue)("record-schema-invalid", ["assertions", "current-invalid"])] };
82
+ }),
83
+ readActivities: (attempt) => effect_1.Effect.sync(() => {
84
+ const definition = current_ts_2.NiceEvalRecordAttachments.runnerActivities.attempt;
85
+ const attachment = (0, facts_ts_1.attemptAttachment)(attempt.resolved, definition.family);
86
+ if (attachment === undefined)
87
+ return { state: "not-recorded" };
88
+ if (attachment.physical.familyRevision !== current_ts_2.NiceEvalCurrentRecordAttachments.runnerActivities.attempt.revision)
89
+ return { state: "unsupported", family: definition.family, revision: attachment.physical.familyRevision };
90
+ const value = (0, protocol_ts_1.hydrateRecordAttachmentCurrent)(definition, attachment.value, { content: () => effect_1.Result.succeed(undefined), reference: () => effect_1.Result.succeed(undefined) });
91
+ return effect_1.Result.isSuccess(value) ? { state: "available", value: value.success } : { state: "invalid", issues: [(0, record_errors_ts_1.recordIssue)("record-schema-invalid", [definition.family, value.failure.code])] };
92
+ }),
93
+ sourceFor: (attempt, sourceBarrier) => ({
94
+ attemptId: attempt.document.attemptId,
95
+ origin: { runId: attempt.document.originRunId, slotId: attempt.document.slotId },
96
+ sourceBarrier,
97
+ sourceRunId: attempt.sourceRunId,
98
+ locator: attempt.resolved.locator,
99
+ relation: attempt.sourceRunId === attempt.document.originRunId ? "origin" : "reference",
100
+ action: attempt.publication?.action ?? runs.find((run) => run.run.runId === attempt.sourceRunId).members.find((member) => member.attempt?.attemptId === attempt.document.attemptId).action,
101
+ }),
102
+ });
103
+ (0, project_input_ts_1.bindProjectInput)(source, { cutoffIdentity: source.cutoff().identity, target, assessments, runs, resources: Object.freeze(resources) });
104
+ return source;
105
+ });
106
+ function published(value) {
107
+ return value?.state === "published" ? value : undefined;
108
+ }
109
+ //# sourceMappingURL=project-source.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-source.js","sourceRoot":"","sources":["project-source.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { Effect, Result } from \"effect\";\nimport { prepareCurrentTarget, assessCurrentTarget } from \"../experiment/host/current.ts\";\nimport { acquireProjectRecordReadSession, openHostOwnedRecordReadSession } from \"../record/sqlite/index.ts\";\nimport { hydrateRecordAttachmentCurrent } from \"../record/attachment/protocol.ts\";\nimport { NiceEvalCurrentRecordAttachments, NiceEvalRecordAttachments } from \"../record/family/current.ts\";\nimport { recordIssue } from \"../record/errors/record-errors.ts\";\nimport type { Config } from \"../runner/types.ts\";\nimport type { CurrentAssessmentRun } from \"../runner/reuse-plan.ts\";\nimport type { CurrentAssessmentAttempt } from \"../runner/reuse-plan.ts\";\nimport { mergeCurrentAssessmentRuns } from \"../runner/reuse-plan.ts\";\nimport type { ReadableRunResource } from \"../run/storage/types.ts\";\nimport type { ResolvedInspectionAttempt } from \"./facts.ts\";\nimport { loadInspectionRuns, resolveInspectionMemberAttempt, readInspectionAssertions, attemptAttachment } from \"./facts.ts\";\nimport { openInspectionSource, operationalInspectionSource, type InspectionFactSource } from \"./source.ts\";\nimport { bindProjectInput, type CurrentResultSource } from \"./project-input.ts\";\n/** One scoped reader owns both the availability inputs and Inspection facts. */\nexport const openCurrentProjectSource = Effect.fn(\"openCurrentProjectSource\")(function* (input: {\n readonly cwd: string;\n readonly config: Config;\n readonly recordPath?: string;\n readonly freshImport?: boolean;\n}) {\n const root = resolve(input.cwd, \".niceeval\");\n let source: InspectionFactSource;\n const resources: ReadableRunResource[] = [];\n if (input.recordPath === undefined && !existsSync(resolve(root, \"record.sqlite\"))) {\n source = yield* openInspectionSource(operationalInspectionSource(input.cwd));\n }\n else {\n const session = input.recordPath === undefined\n ? yield* acquireProjectRecordReadSession(root)\n : yield* Effect.acquireRelease(Effect.try(() => openHostOwnedRecordReadSession(input.recordPath!)), (opened) => Effect.sync(() => opened.close()));\n const cutoff = session.readSealedRunSummaryPage(\"\", 1).cutoff;\n source = Object.freeze({\n kind: \"project-record\" as const,\n cutoff: () => cutoff,\n readRunResource: session.readRunResource,\n readSealedRunSummaryPage: session.readSealedRunSummaryPage,\n findAttemptLocatorCandidates: session.findAttemptLocatorCandidates,\n readSealedRunCore: session.readSealedRunCore,\n readContentPage: session.readContentChunkPage,\n readCollectionPage: session.readCollectionItemPage,\n });\n let afterRunId = \"\";\n for (;;) {\n const page = session.listRunResources({ afterRunId, pageSize: 100 });\n resources.push(...page.runs);\n if (page.nextAfterRunId === null)\n break;\n afterRunId = page.nextAfterRunId;\n }\n }\n const target = yield* prepareCurrentTarget(input);\n const runs = yield* Effect.try(() => loadInspectionRuns(source));\n type Ref = {\n readonly resolved: ResolvedInspectionAttempt | undefined;\n readonly sourceRunId: string;\n readonly publication: Extract<ReadableRunResource[\"slots\"][number][\"publication\"], {\n state: \"published\";\n }> | undefined;\n };\n const assessmentRuns: CurrentAssessmentRun<Ref>[] = runs.map((run) => ({\n createdRevision: run.physical.createdRevision,\n document: run.run,\n members: run.members.map((member) => ({\n document: member,\n bindingRevision: run.physical.members.find((row) => row.slotId === member.slotId)?.bindingRevision,\n attempt: member.attempt === null ? null : {\n resolved: resolveInspectionMemberAttempt(runs, run, member),\n sourceRunId: run.run.runId,\n publication: published(resources.find((resource) => resource.runId === run.run.runId)?.slots.find((slot) => slot.slotId === member.slotId)?.publication),\n },\n })),\n }));\n const lifecycleRuns = yield* mergeCurrentAssessmentRuns(assessmentRuns, resources);\n type Attempt = Ref & CurrentAssessmentAttempt;\n const assessments = yield* assessCurrentTarget<Ref, Attempt, CurrentResultSource, never>(target, {\n runs: lifecycleRuns,\n byRunId: new Map(lifecycleRuns.map((run) => [run.document.runId, run])),\n selectionHasProblem: false,\n coreIssues: [],\n readAttempt: (ref: Ref) => Effect.succeed(ref.resolved === undefined ? { state: \"missing\" as const } : {\n state: \"available\" as const,\n value: { ...ref, document: ref.resolved.attempt, publicationAvailable: ref.publication !== undefined || ref.resolved.origin.physical.attempts.some((attempt) => attempt.attemptId === ref.resolved!.attempt.attemptId && attempt.publicationIdentity !== undefined) },\n }),\n readAssertions: (attempt) => Effect.sync(() => {\n const read = readInspectionAssertions(attempt.resolved!);\n if (read.state === \"available\")\n return { state: \"available\" as const, value: read.value };\n if (read.state === \"not-recorded\")\n return { state: \"not-recorded\" as const };\n if (read.state === \"unsupported\")\n return { state: \"unsupported\" as const, family: NiceEvalRecordAttachments.assertions.family, revision: read.attachment!.physical.familyRevision };\n return { state: \"invalid\" as const, issues: [recordIssue(\"record-schema-invalid\", [\"assertions\", \"current-invalid\"])] as const };\n }),\n readActivities: (attempt) => Effect.sync(() => {\n const definition = NiceEvalRecordAttachments.runnerActivities.attempt;\n const attachment = attemptAttachment(attempt.resolved!, definition.family);\n if (attachment === undefined)\n return { state: \"not-recorded\" as const };\n if (attachment.physical.familyRevision !== NiceEvalCurrentRecordAttachments.runnerActivities.attempt.revision)\n return { state: \"unsupported\" as const, family: definition.family, revision: attachment.physical.familyRevision };\n const value = hydrateRecordAttachmentCurrent(definition, attachment.value, { content: () => Result.succeed(undefined), reference: () => Result.succeed(undefined) });\n return Result.isSuccess(value) ? { state: \"available\" as const, value: value.success } : { state: \"invalid\" as const, issues: [recordIssue(\"record-schema-invalid\", [definition.family, value.failure.code])] as const };\n }),\n sourceFor: (attempt, sourceBarrier): CurrentResultSource => ({\n attemptId: attempt.document.attemptId,\n origin: { runId: attempt.document.originRunId, slotId: attempt.document.slotId },\n sourceBarrier,\n sourceRunId: attempt.sourceRunId,\n locator: attempt.resolved!.locator,\n relation: attempt.sourceRunId === attempt.document.originRunId ? \"origin\" : \"reference\",\n action: attempt.publication?.action ?? (runs.find((run) => run.run.runId === attempt.sourceRunId)!.members.find((member) => member.attempt?.attemptId === attempt.document.attemptId)!.action as \"executed\" | \"carried\" | \"accepted\"),\n }),\n });\n bindProjectInput(source, { cutoffIdentity: source.cutoff().identity, target, assessments, runs, resources: Object.freeze(resources) });\n return source;\n});\nfunction published(value: ReadableRunResource[\"slots\"][number][\"publication\"] | undefined) {\n return value?.state === \"published\" ? value : undefined;\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { Effect } from "effect";
2
+ import type { Config } from "../runner/types.cjs";
3
+ import { type InspectionFactSource } from "./source.cjs";
4
+ /** One scoped reader owns both the availability inputs and Inspection facts. */
5
+ export declare const openCurrentProjectSource: (input: {
6
+ readonly cwd: string;
7
+ readonly config: Config;
8
+ readonly recordPath?: string;
9
+ readonly freshImport?: boolean;
10
+ }) => Effect.Effect<InspectionFactSource, unknown, import("effect/Scope").Scope>;
@@ -0,0 +1,10 @@
1
+ import { Effect } from "effect";
2
+ import type { Config } from "../runner/types.mjs";
3
+ import { type InspectionFactSource } from "./source.mjs";
4
+ /** One scoped reader owns both the availability inputs and Inspection facts. */
5
+ export declare const openCurrentProjectSource: (input: {
6
+ readonly cwd: string;
7
+ readonly config: Config;
8
+ readonly recordPath?: string;
9
+ readonly freshImport?: boolean;
10
+ }) => Effect.Effect<InspectionFactSource, unknown, import("effect/Scope").Scope>;
@@ -0,0 +1,10 @@
1
+ import { Effect } from "effect";
2
+ import type { Config } from "../runner/types.js";
3
+ import { type InspectionFactSource } from "./source.js";
4
+ /** One scoped reader owns both the availability inputs and Inspection facts. */
5
+ export declare const openCurrentProjectSource: (input: {
6
+ readonly cwd: string;
7
+ readonly config: Config;
8
+ readonly recordPath?: string;
9
+ readonly freshImport?: boolean;
10
+ }) => Effect.Effect<InspectionFactSource, unknown, import("effect/Scope").Scope>;
@@ -0,0 +1,6 @@
1
+ import { createRequire as __niceevalCreateRequire } from "node:module";
2
+ const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
3
+ const __niceevalCanonical = __niceevalRequire("./project-source.cjs");
4
+ const __niceevalExport0 = __niceevalCanonical["openCurrentProjectSource"];
5
+ export { __niceevalExport0 as openCurrentProjectSource };
6
+ //# sourceMappingURL=project-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-source.js","sources":[],"names":[],"mappings":""}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectInspectionProject = selectInspectionProject;
4
+ const effect_1 = require("effect");
5
+ const facts_ts_1 = require("./facts.cjs");
6
+ const overview_ts_1 = require("./overview.cjs");
7
+ const project_result_ts_1 = require("./project-result.cjs");
8
+ function selectInspectionProject(input, experimentIds) {
9
+ const selectedIds = new Set(experimentIds ?? input.target.experiments.map((experiment) => experiment.experimentId));
10
+ const assessments = input.assessments.filter((slot) => selectedIds.has(slot.experimentId));
11
+ const logicalKey = (experimentId, evalId, ordinal) => JSON.stringify([experimentId, evalId, ordinal]);
12
+ // Select historical entrances before aggregation; they never contribute quality.
13
+ const previous = new Map();
14
+ const historical = [...input.runs].sort((left, right) => (left.physical.createdRevision ?? 0) - (right.physical.createdRevision ?? 0)
15
+ || compare(left.run.runId, right.run.runId));
16
+ for (const run of historical)
17
+ for (const slot of run.run.expectedSlots) {
18
+ const member = run.members.find((member) => member.slotId === slot.slotId);
19
+ const resolved = member === undefined ? undefined : (0, facts_ts_1.resolveInspectionMemberAttempt)(input.runs, run, member);
20
+ previous.set(logicalKey(run.run.experimentId, slot.evalId, slot.attemptOrdinal), {
21
+ experimentId: run.run.experimentId, evalId: slot.evalId, attemptOrdinal: slot.attemptOrdinal,
22
+ sourceRunId: run.run.runId,
23
+ locator: resolved?.locator ?? null,
24
+ });
25
+ }
26
+ // A newer Run with no published Core is still the latest history occurrence.
27
+ const unpublished = input.resources.filter((resource) => !input.runs.some((run) => run.run.runId === resource.runId));
28
+ for (const resource of unpublished.sort((left, right) => left.createdRevision - right.createdRevision || compare(left.runId, right.runId))) {
29
+ for (const slot of resource.slots) {
30
+ const key = logicalKey(resource.experimentId, slot.evalId, slot.attemptOrdinal);
31
+ const old = previous.get(key);
32
+ const oldRevision = old === undefined ? -1 : input.resources.find((run) => run.runId === old.sourceRunId)?.createdRevision ?? 0;
33
+ if (resource.createdRevision < oldRevision || resource.createdRevision === oldRevision && old !== undefined && compare(resource.runId, old.sourceRunId) <= 0)
34
+ continue;
35
+ previous.set(key, effect_1.Schema.decodeUnknownSync(project_result_ts_1.InspectionProjectResultSchema.fields.history.value)({ experimentId: resource.experimentId, evalId: slot.evalId, attemptOrdinal: slot.attemptOrdinal, sourceRunId: resource.runId, locator: null }));
36
+ }
37
+ }
38
+ const currentPositions = new Set(input.target.slots.map((slot) => logicalKey(slot.experimentId, slot.evalId, slot.attempt)));
39
+ const slots = assessments.map((slot) => {
40
+ const position = { experimentId: slot.experimentId, evalId: slot.evalId, attemptOrdinal: slot.attempt };
41
+ if (slot.state === "reuse")
42
+ return { ...position, state: "reuse", ...{
43
+ sourceRunId: slot.source.sourceBarrier.runId, locator: slot.source.locator, relation: slot.source.relation, action: slot.source.action,
44
+ } };
45
+ const publishedPrevious = [...historical].reverse().flatMap((run) => {
46
+ if (run.run.experimentId !== slot.experimentId)
47
+ return [];
48
+ const expected = run.run.expectedSlots.find((expected) => expected.evalId === slot.evalId && expected.attemptOrdinal === slot.attempt);
49
+ const member = expected === undefined ? undefined : run.members.find((member) => member.slotId === expected.slotId);
50
+ const resolved = member === undefined ? undefined : (0, facts_ts_1.resolveInspectionMemberAttempt)(input.runs, run, member);
51
+ return resolved === undefined ? [] : [{ sourceRunId: run.run.runId, locator: resolved.locator }];
52
+ })[0] ?? null;
53
+ const resource = input.resources.find((resource) => resource.runId === slot.sourceBarrier?.runId);
54
+ const reason = slot.reason === "source-member-missing" && resource?.state === "active" ? "pending" : gapReason(slot.reason);
55
+ return { ...position, state: "gap", reason, sourceRunId: slot.sourceBarrier?.runId ?? null,
56
+ previous: publishedPrevious,
57
+ issues: [...slot.issues.map((issue) => ({ code: issue.code, path: [...issue.path] })), { reason: slot.reason, scope: slot.scope, comparisons: slot.comparisons.map((comparison) => ({ ...comparison })) }], };
58
+ });
59
+ const overview = (0, overview_ts_1.aggregateInspectionCurrentSlots)(assessments.map((slot) => {
60
+ const experiment = input.target.experiments.find((experiment) => experiment.experimentId === slot.experimentId);
61
+ const recorded = slot.state !== "reuse" ? undefined : (() => {
62
+ const target = input.runs.find((run) => run.run.runId === slot.source.sourceRunId);
63
+ const expected = target.run.expectedSlots.find((expected) => expected.evalId === slot.evalId && expected.attemptOrdinal === slot.attempt);
64
+ const member = target.members.find((member) => member.slotId === expected.slotId);
65
+ const resolved = (0, facts_ts_1.resolveInspectionMemberAttempt)(input.runs, target, member);
66
+ return { target, slot: expected, member, resolved };
67
+ })();
68
+ return { experimentId: slot.experimentId, evalId: slot.evalId, attemptOrdinal: slot.attempt,
69
+ evaluationKind: slot.evaluationKind, adapter: experiment.adapter, model: experiment.model ?? null,
70
+ labels: experiment.labels, ...(recorded === undefined ? {} : { recorded }) };
71
+ }));
72
+ const empty = (0, overview_ts_1.selectInspectionOverview)([]).totals;
73
+ const experiments = input.target.experiments.filter((experiment) => selectedIds.has(experiment.experimentId)).map((experiment) => overview.experiments.find((entry) => entry.experimentId === experiment.experimentId) ?? {
74
+ ...empty, experimentId: experiment.experimentId, adapter: { state: "available", value: experiment.adapter },
75
+ model: experiment.model === undefined ? { state: "unavailable" } : { state: "available", value: experiment.model }, labels: {}, groups: [],
76
+ });
77
+ const covered = slots.filter((slot) => slot.state === "reuse").length;
78
+ const history = [...previous.values()].filter((slot) => !currentPositions.has(logicalKey(slot.experimentId, slot.evalId, slot.attemptOrdinal)) && (experimentIds === undefined || selectedIds.has(slot.experimentId)))
79
+ .sort((left, right) => compare(left.experimentId, right.experimentId) || compare(left.evalId, right.evalId) || left.attemptOrdinal - right.attemptOrdinal);
80
+ return effect_1.Schema.decodeUnknownSync(project_result_ts_1.InspectionProjectResultSchema)({ targetIdentity: input.target.identity, coverage: { expected: slots.length, covered, gaps: slots.length - covered }, slots,
81
+ totals: overview.totals, experiments, cells: overview.cells, history });
82
+ }
83
+ function gapReason(reason) {
84
+ switch (reason) {
85
+ case "no-source-run":
86
+ case "source-slot-missing": return "no-result";
87
+ case "source-member-missing":
88
+ case "source-publication-unavailable": return "not-published";
89
+ case "identity-mismatch":
90
+ case "identity-domain-mismatch": return "identity-mismatch";
91
+ case "attempt-outcome-ineligible":
92
+ case "verdict-ineligible": return "outcome-ineligible";
93
+ case "score-incomplete": return "score-incomplete";
94
+ case "timeout-exceeded": return "timeout-exceeded";
95
+ case "adoption-unproven": return "adoption-unproven";
96
+ default: return "evidence-unavailable";
97
+ }
98
+ }
99
+ function compare(left, right) { return left < right ? -1 : left > right ? 1 : 0; }
100
+ //# sourceMappingURL=project.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["project.ts"],"names":[],"mappings":"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","sourcesContent":["import { Schema } from \"effect\";\nimport { resolveInspectionMemberAttempt } from \"./facts.ts\";\nimport { aggregateInspectionCurrentSlots, selectInspectionOverview } from \"./overview.ts\";\nimport type { FrozenProjectInput } from \"./project-input.ts\";\nimport { InspectionProjectResultSchema, type InspectionProjectResult } from \"./project-result.ts\";\nimport type { ExecutionGapReason } from \"../runner/reuse-plan.ts\";\nexport function selectInspectionProject(input: FrozenProjectInput, experimentIds?: readonly string[]): InspectionProjectResult {\n const selectedIds = new Set(experimentIds ?? input.target.experiments.map((experiment) => experiment.experimentId));\n const assessments = input.assessments.filter((slot) => selectedIds.has(slot.experimentId));\n const logicalKey = (experimentId: string, evalId: string, ordinal: number) => JSON.stringify([experimentId, evalId, ordinal]);\n // Select historical entrances before aggregation; they never contribute quality.\n const previous = new Map<string, InspectionProjectResult[\"history\"][number]>();\n const historical = [...input.runs].sort((left, right) => (left.physical.createdRevision ?? 0) - (right.physical.createdRevision ?? 0)\n || compare(left.run.runId, right.run.runId));\n for (const run of historical)\n for (const slot of run.run.expectedSlots) {\n const member = run.members.find((member) => member.slotId === slot.slotId);\n const resolved = member === undefined ? undefined : resolveInspectionMemberAttempt(input.runs, run, member);\n previous.set(logicalKey(run.run.experimentId, slot.evalId, slot.attemptOrdinal), {\n experimentId: run.run.experimentId, evalId: slot.evalId, attemptOrdinal: slot.attemptOrdinal,\n sourceRunId: run.run.runId,\n locator: resolved?.locator ?? null,\n });\n }\n // A newer Run with no published Core is still the latest history occurrence.\n const unpublished = input.resources.filter((resource) => !input.runs.some((run) => run.run.runId === resource.runId));\n for (const resource of unpublished.sort((left, right) => left.createdRevision - right.createdRevision || compare(left.runId, right.runId))) {\n for (const slot of resource.slots) {\n const key = logicalKey(resource.experimentId, slot.evalId, slot.attemptOrdinal);\n const old = previous.get(key);\n const oldRevision = old === undefined ? -1 : input.resources.find((run) => run.runId === old.sourceRunId)?.createdRevision ?? 0;\n if (resource.createdRevision < oldRevision || resource.createdRevision === oldRevision && old !== undefined && compare(resource.runId, old.sourceRunId) <= 0)\n continue;\n previous.set(key, Schema.decodeUnknownSync(InspectionProjectResultSchema.fields.history.value)({ experimentId: resource.experimentId, evalId: slot.evalId, attemptOrdinal: slot.attemptOrdinal, sourceRunId: resource.runId, locator: null }));\n }\n }\n const currentPositions = new Set(input.target.slots.map((slot) => logicalKey(slot.experimentId, slot.evalId, slot.attempt)));\n const slots: InspectionProjectResult[\"slots\"] = assessments.map((slot) => {\n const position = { experimentId: slot.experimentId as InspectionProjectResult[\"slots\"][number][\"experimentId\"], evalId: slot.evalId as InspectionProjectResult[\"slots\"][number][\"evalId\"], attemptOrdinal: slot.attempt };\n if (slot.state === \"reuse\")\n return { ...position, state: \"reuse\" as const, ...{\n sourceRunId: slot.source.sourceBarrier.runId, locator: slot.source.locator, relation: slot.source.relation, action: slot.source.action,\n } };\n const publishedPrevious = [...historical].reverse().flatMap((run) => {\n if (run.run.experimentId !== slot.experimentId)\n return [];\n const expected = run.run.expectedSlots.find((expected) => expected.evalId === slot.evalId && expected.attemptOrdinal === slot.attempt);\n const member = expected === undefined ? undefined : run.members.find((member) => member.slotId === expected.slotId);\n const resolved = member === undefined ? undefined : resolveInspectionMemberAttempt(input.runs, run, member);\n return resolved === undefined ? [] : [{ sourceRunId: run.run.runId, locator: resolved.locator }];\n })[0] ?? null;\n const resource = input.resources.find((resource) => resource.runId === slot.sourceBarrier?.runId);\n const reason = slot.reason === \"source-member-missing\" && resource?.state === \"active\" ? \"pending\" : gapReason(slot.reason);\n return { ...position, state: \"gap\" as const, reason, sourceRunId: slot.sourceBarrier?.runId ?? null,\n previous: publishedPrevious,\n issues: [...slot.issues.map((issue) => ({ code: issue.code, path: [...issue.path] })), { reason: slot.reason, scope: slot.scope, comparisons: slot.comparisons.map((comparison) => ({ ...comparison })) }],\n };\n });\n const overview = aggregateInspectionCurrentSlots(assessments.map((slot) => {\n const experiment = input.target.experiments.find((experiment) => experiment.experimentId === slot.experimentId)!;\n const recorded = slot.state !== \"reuse\" ? undefined : (() => {\n const target = input.runs.find((run) => run.run.runId === slot.source.sourceRunId)!;\n const expected = target.run.expectedSlots.find((expected) => expected.evalId === slot.evalId && expected.attemptOrdinal === slot.attempt)!;\n const member = target.members.find((member) => member.slotId === expected.slotId)!;\n const resolved = resolveInspectionMemberAttempt(input.runs, target, member)!;\n return { target, slot: expected, member, resolved };\n })();\n return { experimentId: slot.experimentId, evalId: slot.evalId, attemptOrdinal: slot.attempt,\n evaluationKind: slot.evaluationKind, adapter: experiment.adapter, model: experiment.model ?? null,\n labels: experiment.labels, ...(recorded === undefined ? {} : { recorded }) };\n }));\n const empty = selectInspectionOverview([]).totals;\n const experiments = input.target.experiments.filter((experiment) => selectedIds.has(experiment.experimentId)).map((experiment) => overview.experiments.find((entry) => entry.experimentId === experiment.experimentId) ?? {\n ...empty, experimentId: experiment.experimentId, adapter: { state: \"available\" as const, value: experiment.adapter },\n model: experiment.model === undefined ? { state: \"unavailable\" as const } : { state: \"available\" as const, value: experiment.model }, labels: {}, groups: [],\n });\n const covered = slots.filter((slot) => slot.state === \"reuse\").length;\n const history = [...previous.values()].filter((slot) => !currentPositions.has(logicalKey(slot.experimentId, slot.evalId, slot.attemptOrdinal)) && (experimentIds === undefined || selectedIds.has(slot.experimentId)))\n .sort((left, right) => compare(left.experimentId, right.experimentId) || compare(left.evalId, right.evalId) || left.attemptOrdinal - right.attemptOrdinal);\n return Schema.decodeUnknownSync(InspectionProjectResultSchema)({ targetIdentity: input.target.identity, coverage: { expected: slots.length, covered, gaps: slots.length - covered }, slots,\n totals: overview.totals, experiments, cells: overview.cells, history });\n}\nfunction gapReason(reason: ExecutionGapReason): Extract<InspectionProjectResult[\"slots\"][number], {\n state: \"gap\";\n}>[\"reason\"] {\n switch (reason) {\n case \"no-source-run\":\n case \"source-slot-missing\": return \"no-result\";\n case \"source-member-missing\":\n case \"source-publication-unavailable\": return \"not-published\";\n case \"identity-mismatch\":\n case \"identity-domain-mismatch\": return \"identity-mismatch\";\n case \"attempt-outcome-ineligible\":\n case \"verdict-ineligible\": return \"outcome-ineligible\";\n case \"score-incomplete\": return \"score-incomplete\";\n case \"timeout-exceeded\": return \"timeout-exceeded\";\n case \"adoption-unproven\": return \"adoption-unproven\";\n default: return \"evidence-unavailable\";\n }\n}\nfunction compare(left: string, right: string): number { return left < right ? -1 : left > right ? 1 : 0; }\n"]}
@@ -0,0 +1,3 @@
1
+ import type { FrozenProjectInput } from "./project-input.cjs";
2
+ import { type InspectionProjectResult } from "./project-result.cjs";
3
+ export declare function selectInspectionProject(input: FrozenProjectInput, experimentIds?: readonly string[]): InspectionProjectResult;
@@ -0,0 +1,3 @@
1
+ import type { FrozenProjectInput } from "./project-input.mjs";
2
+ import { type InspectionProjectResult } from "./project-result.mjs";
3
+ export declare function selectInspectionProject(input: FrozenProjectInput, experimentIds?: readonly string[]): InspectionProjectResult;
@@ -0,0 +1,3 @@
1
+ import type { FrozenProjectInput } from "./project-input.js";
2
+ import { type InspectionProjectResult } from "./project-result.js";
3
+ export declare function selectInspectionProject(input: FrozenProjectInput, experimentIds?: readonly string[]): InspectionProjectResult;
@@ -0,0 +1,6 @@
1
+ import { createRequire as __niceevalCreateRequire } from "node:module";
2
+ const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
3
+ const __niceevalCanonical = __niceevalRequire("./project.cjs");
4
+ const __niceevalExport0 = __niceevalCanonical["selectInspectionProject"];
5
+ export { __niceevalExport0 as selectInspectionProject };
6
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sources":[],"names":[],"mappings":""}
@@ -4,6 +4,10 @@ exports.InspectionDocumentSchema = exports.InspectionFailureDocumentSchema = exp
4
4
  exports.decodeInspectionDocument = decodeInspectionDocument;
5
5
  exports.narrowInspectionSuccess = narrowInspectionSuccess;
6
6
  exports.narrowInspectionExplanation = narrowInspectionExplanation;
7
+ // @concord-file ne-eval-inspection-protocol
8
+ // @concord-implements docs/feature/inspection/README.md
9
+ // @concord-implements docs/feature/inspection/architecture.md
10
+ // @concord-implements docs/feature/inspection/use-case/inspection-check-completeness.md
7
11
  const effect_1 = require("effect");
8
12
  const codec_ts_1 = require("../assertions/record/codec.cjs");
9
13
  const attempt_locator_ts_1 = require("../attempt-locator.cjs");
@@ -14,12 +18,14 @@ const artifact_list_ts_1 = require("./artifact-list.cjs");
14
18
  const model_ts_1 = require("../record/family/source-receipt/model.cjs");
15
19
  const protocol_values_ts_1 = require("./protocol-values.cjs");
16
20
  const assertion_projection_ts_1 = require("./assertion-projection.cjs");
21
+ const project_result_ts_1 = require("./project-result.cjs");
17
22
  const results_ts_1 = require("./results.cjs");
18
23
  const AttemptLocatorSchema = effect_1.Schema.String.pipe(effect_1.Schema.refine((value) => attempt_locator_ts_1.ATTEMPT_LOCATOR_PATTERN.test(value), { identifier: "AttemptLocator", description: "a canonical @-prefixed Attempt locator" }));
19
24
  const ItemIdSchema = effect_1.Schema.String.pipe(effect_1.Schema.check(effect_1.Schema.makeFilter(model_ts_1.isItemId)));
20
25
  const ToolOccurrenceIdSchema = effect_1.Schema.String.pipe(effect_1.Schema.check(effect_1.Schema.makeFilter(model_ts_1.isToolOccurrenceId)));
21
26
  const CommandIdSchema = effect_1.Schema.String.pipe(effect_1.Schema.check(effect_1.Schema.makeFilter(model_ts_1.isCommandId)));
22
27
  const RunIdsSchema = effect_1.Schema.Array(identifiers_ts_1.RunIdSchema);
28
+ const ProjectExperimentIdsSchema = effect_1.Schema.Array(identifiers_ts_1.ExperimentIdSchema).check(effect_1.Schema.makeFilter((ids) => ids.length > 0 && new Set(ids).size === ids.length));
23
29
  const operation = (kind, fields) => effect_1.Schema.Struct({ kind: effect_1.Schema.Literal(kind), ...fields });
24
30
  const SourceSchema = effect_1.Schema.Struct({
25
31
  kind: effect_1.Schema.Literals(["project-record", "external-record"]), sealedCutoffIdentity: effect_1.Schema.String,
@@ -79,10 +85,11 @@ const RunsCompareResultSchema = effect_1.Schema.Struct({
79
85
  pairs: effect_1.Schema.Array(effect_1.Schema.Struct({ key: effect_1.Schema.String, left: ComparisonMemberSchema, right: ComparisonMemberSchema })),
80
86
  });
81
87
  const spec = (fields) => Object.freeze(fields);
82
- /** The sole 16-operation protocol owner. Every request, result and descriptor projection is derived from this registry. */
88
+ /** The sole protocol catalog owner. Every request, result and descriptor projection is derived from this registry. */
83
89
  exports.inspectionProtocolRegistry = Object.freeze({
90
+ "project.get": spec({ request: operation("project.get", { experimentIds: effect_1.Schema.optional(ProjectExperimentIdsSchema) }), result: { project: project_result_ts_1.InspectionProjectResultSchema }, factKinds: ["current-project", "core", "assertions", "attempt-cost"] }),
84
91
  "overview.get": spec({ request: operation("overview.get", { runIds: effect_1.Schema.optional(RunIdsSchema) }), result: { overview: results_ts_1.InspectionOverviewResultSchema }, factKinds: ["core", "assertions", "attempt-cost"] }),
85
- "experiment.get": spec({ request: operation("experiment.get", { experimentId: identifiers_ts_1.ExperimentIdSchema }), result: { experiment: results_ts_1.InspectionExperimentResultSchema }, factKinds: ["core", "assertions", "attempt-cost"] }),
92
+ "experiment.get": spec({ request: operation("experiment.get", { experimentId: identifiers_ts_1.ExperimentIdSchema }), result: { experiment: results_ts_1.InspectionExperimentResultSchema }, factKinds: ["core", "assertions", "attempt-cost", "agent-turns", "adapter-usage", "judge-usage"] }),
86
93
  "runs.list": spec({ request: operation("runs.list", { continuation: effect_1.Schema.optional(effect_1.Schema.String) }), result: { runs: effect_1.Schema.Array(SealedRunSummarySchema), continuation: effect_1.Schema.optional(effect_1.Schema.String) }, factKinds: ["core"] }),
87
94
  "run.get": spec({ request: operation("run.get", { runId: identifiers_ts_1.RunIdSchema }), result: { run: results_ts_1.InspectionRunResultSchema }, factKinds: ["core"] }),
88
95
  "run.summary": spec({ request: operation("run.summary", { runId: identifiers_ts_1.RunIdSchema }), result: { summary: results_ts_1.InspectionRunSummaryResultSchema }, factKinds: ["core", "assertions", "agent-turns"] }),
@@ -102,6 +109,7 @@ exports.inspectionProtocolRegistry = Object.freeze({
102
109
  traceId: effect_1.Schema.optional(effect_1.Schema.String),
103
110
  sourceId: effect_1.Schema.optional(effect_1.Schema.String),
104
111
  actorId: effect_1.Schema.optional(effect_1.Schema.String),
112
+ eventType: effect_1.Schema.optional(effect_1.Schema.String),
105
113
  continuation: effect_1.Schema.optional(effect_1.Schema.String),
106
114
  }), result: { trace: results_ts_1.InspectionTraceResultSchema }, factKinds: ["execution-traces", "agent-turns", "turn-contexts", "sandbox-commands", "runner-activities", "runner-diagnostics"] }),
107
115
  "attempt.trace.detail": spec({ request: operation("attempt.trace.detail", { locator: AttemptLocatorSchema, selector: effect_1.Schema.Union([
@@ -116,7 +124,7 @@ exports.inspectionProtocolRegistry = Object.freeze({
116
124
  operation("command", { commandId: CommandIdSchema }),
117
125
  ]) }), result: { detail: results_ts_1.InspectionTraceDetailResultSchema }, factKinds: ["execution-traces", "agent-turns", "sandbox-commands", "artifacts"] }),
118
126
  "attempt.timing": spec({ request: operation("attempt.timing", { locator: AttemptLocatorSchema }), result: { timing: results_ts_1.InspectionAttemptTimingResultSchema }, factKinds: ["runner-activities"] }),
119
- "attempt.usage": spec({ request: operation("attempt.usage", { locator: AttemptLocatorSchema }), result: { usage: results_ts_1.InspectionAttemptUsageResultSchema }, factKinds: ["agent-turns", "adapter-usage"] }),
127
+ "attempt.usage": spec({ request: operation("attempt.usage", { locator: AttemptLocatorSchema }), result: { usage: results_ts_1.InspectionAttemptUsageResultSchema }, factKinds: ["agent-turns", "adapter-usage", "judge-usage"] }),
120
128
  "attempt.diff": spec({ request: operation("attempt.diff", { locator: AttemptLocatorSchema }), result: { diff: results_ts_1.InspectionAttemptDiffResultSchema }, factKinds: ["file-changes"] }),
121
129
  "attempt.sources": spec({ request: operation("attempt.sources", { locator: AttemptLocatorSchema }), result: { sources: results_ts_1.InspectionSourcesResultSchema }, factKinds: ["assertions", "sources"] }),
122
130
  "attempt.artifacts": spec({ request: operation("attempt.artifacts", { locator: AttemptLocatorSchema, offset: effect_1.Schema.optional(artifacts_ts_1.InspectionArtifactOffsetSchema), limit: effect_1.Schema.optional(artifact_list_ts_1.InspectionArtifactsPageLimitSchema) }), result: { artifacts: ArtifactsResultSchema }, factKinds: ["artifacts"] }),
@@ -132,11 +140,11 @@ exports.InspectionRequestSchema = effect_1.Schema.Struct({
132
140
  });
133
141
  const successSchema = (id, entry) => {
134
142
  const fields = effect_1.Schema.fieldsAssign({ operation: effect_1.Schema.Literal(id), ...entry.result });
135
- if (id === "runs.list")
136
- return RunsListSuccessMetadataSchema.pipe(fields);
137
- if (id === "runs.compare")
138
- return CompareSuccessMetadataSchema.pipe(fields);
139
- return SuccessMetadataSchema.pipe(fields);
143
+ const schema = id === "runs.list" ? RunsListSuccessMetadataSchema.pipe(fields)
144
+ : id === "runs.compare" ? CompareSuccessMetadataSchema.pipe(fields)
145
+ : SuccessMetadataSchema.pipe(fields);
146
+ // Object.entries erases the ID/result correlation established by the registry.
147
+ return schema;
140
148
  };
141
149
  exports.InspectionSuccessDocumentSchema = effect_1.Schema.Union(specs.map(([id, entry]) => successSchema(id, entry)));
142
150
  const explanationSchema = (id, entry) => {
@@ -157,7 +165,7 @@ exports.InspectionFailureDocumentSchema = effect_1.Schema.Struct({
157
165
  protocol: effect_1.Schema.Literal(protocol_values_ts_1.QUERY_PROTOCOL), outcome: effect_1.Schema.Literal("failure"),
158
166
  operation: effect_1.Schema.NullOr(exports.InspectionOperationIdSchema),
159
167
  failure: effect_1.Schema.Struct({
160
- code: effect_1.Schema.Literals(["inspection-request-invalid", "inspection-selection-missing", "inspection-source-invalid", "inspection-record-integrity-failure", "inspection-operation-failed", "inspection-result-invalid", "evidence-budget-exceeded", "restart-required"]),
168
+ code: effect_1.Schema.Literals(["inspection-request-invalid", "inspection-selection-missing", "inspection-source-invalid", "inspection-record-integrity-failure", "inspection-operation-failed", "inspection-result-invalid", "evidence-budget-exceeded", "restart-required", "current-target-unavailable"]),
161
169
  reason: effect_1.Schema.String,
162
170
  identity: effect_1.Schema.optional(effect_1.Schema.Struct({ runId: effect_1.Schema.String })),
163
171
  correction: effect_1.Schema.Literals(["fix-request", "choose-existing-selection", "fix-record-source", "retry", "upgrade-or-report", "restart"]),
@@ -167,6 +175,8 @@ exports.InspectionDocumentSchema = effect_1.Schema.Union([
167
175
  exports.InspectionDiscoveryDocumentSchema, exports.InspectionSuccessDocumentSchema,
168
176
  exports.InspectionExplanationDocumentSchema, exports.InspectionFailureDocumentSchema,
169
177
  ]);
178
+ // @concord-code ne-eval-inspection-decode-document
179
+ // @concord-implements docs/feature/inspection/architecture.md
170
180
  function decodeInspectionDocument(input) {
171
181
  const decoded = effect_1.Schema.decodeUnknownResult(exports.InspectionDocumentSchema, { errors: "all", onExcessProperty: "error" })(input);
172
182
  return effect_1.Result.isSuccess(decoded)