niceeval 0.13.2 → 0.13.3

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 (494) hide show
  1. package/dist/agents/bub.cjs +4 -4
  2. package/dist/agents/bub.cjs.map +1 -1
  3. package/dist/agents/bub.d.cts +2 -2
  4. package/dist/agents/bub.d.mts +2 -2
  5. package/dist/agents/bub.d.ts +2 -2
  6. package/dist/agents/claude-code-native.cjs +213 -0
  7. package/dist/agents/claude-code-native.cjs.map +1 -0
  8. package/dist/agents/claude-code-native.d.cts +5 -0
  9. package/dist/agents/claude-code-native.d.mts +5 -0
  10. package/dist/agents/claude-code-native.d.ts +5 -0
  11. package/dist/agents/claude-code-native.js +6 -0
  12. package/dist/agents/claude-code-native.js.map +1 -0
  13. package/dist/agents/claude-code.cjs +26 -80
  14. package/dist/agents/claude-code.cjs.map +1 -1
  15. package/dist/agents/codex-app-server.cjs +314 -0
  16. package/dist/agents/codex-app-server.cjs.map +1 -0
  17. package/dist/agents/codex-app-server.d.cts +9 -0
  18. package/dist/agents/codex-app-server.d.mts +9 -0
  19. package/dist/agents/codex-app-server.d.ts +9 -0
  20. package/dist/agents/codex-app-server.js +6 -0
  21. package/dist/agents/codex-app-server.js.map +1 -0
  22. package/dist/agents/codex.cjs +19 -68
  23. package/dist/agents/codex.cjs.map +1 -1
  24. package/dist/agents/codex.d.cts +3 -3
  25. package/dist/agents/codex.d.mts +3 -3
  26. package/dist/agents/codex.d.ts +3 -3
  27. package/dist/agents/index.cjs +3 -1
  28. package/dist/agents/index.cjs.map +1 -1
  29. package/dist/agents/index.d.cts +1 -0
  30. package/dist/agents/index.d.mts +1 -0
  31. package/dist/agents/index.d.ts +1 -0
  32. package/dist/agents/index.js +84 -82
  33. package/dist/agents/index.mjs +84 -82
  34. package/dist/agents/managed-jsonl.cjs +207 -0
  35. package/dist/agents/managed-jsonl.cjs.map +1 -0
  36. package/dist/agents/managed-jsonl.d.cts +39 -0
  37. package/dist/agents/managed-jsonl.d.mts +39 -0
  38. package/dist/agents/managed-jsonl.d.ts +39 -0
  39. package/dist/agents/managed-jsonl.js +6 -0
  40. package/dist/agents/managed-jsonl.js.map +1 -0
  41. package/dist/agents/managed-process.cjs +31 -0
  42. package/dist/agents/managed-process.cjs.map +1 -0
  43. package/dist/agents/managed-process.d.cts +3 -0
  44. package/dist/agents/managed-process.d.mts +3 -0
  45. package/dist/agents/managed-process.d.ts +3 -0
  46. package/dist/agents/managed-process.js +6 -0
  47. package/dist/agents/managed-process.js.map +1 -0
  48. package/dist/agents/omp.cjs +18 -1
  49. package/dist/agents/omp.cjs.map +1 -1
  50. package/dist/agents/sdk-streams.cjs +11 -4
  51. package/dist/agents/sdk-streams.cjs.map +1 -1
  52. package/dist/agents/types.cjs.map +1 -1
  53. package/dist/agents/types.d.cts +8 -0
  54. package/dist/agents/types.d.mts +8 -0
  55. package/dist/agents/types.d.ts +8 -0
  56. package/dist/analysis/bindings.cjs +74 -19
  57. package/dist/analysis/bindings.cjs.map +1 -1
  58. package/dist/analysis/bindings.d.cts +534 -156
  59. package/dist/analysis/bindings.d.mts +534 -156
  60. package/dist/analysis/bindings.d.ts +534 -156
  61. package/dist/analysis/domain-view.cjs.map +1 -1
  62. package/dist/analysis/domain-view.d.cts +137 -8
  63. package/dist/analysis/domain-view.d.mts +137 -8
  64. package/dist/analysis/domain-view.d.ts +137 -8
  65. package/dist/analysis/index.cjs.map +1 -1
  66. package/dist/analysis/index.d.cts +1 -1
  67. package/dist/analysis/index.d.mts +1 -1
  68. package/dist/analysis/index.d.ts +1 -1
  69. package/dist/assertions/api.cjs.map +1 -1
  70. package/dist/assertions/api.d.cts +62 -0
  71. package/dist/assertions/api.d.mts +62 -0
  72. package/dist/assertions/api.d.ts +62 -0
  73. package/dist/assertions/judge.cjs +56 -5
  74. package/dist/assertions/judge.cjs.map +1 -1
  75. package/dist/assertions/match.cjs +66 -42
  76. package/dist/assertions/match.cjs.map +1 -1
  77. package/dist/assertions/match.d.cts +13 -0
  78. package/dist/assertions/match.d.mts +13 -0
  79. package/dist/assertions/match.d.ts +13 -0
  80. package/dist/assertions/record/attachment.cjs +104 -33
  81. package/dist/assertions/record/attachment.cjs.map +1 -1
  82. package/dist/assertions/record/attachment.d.cts +294 -57
  83. package/dist/assertions/record/attachment.d.mts +294 -57
  84. package/dist/assertions/record/attachment.d.ts +294 -57
  85. package/dist/assertions/record/codec.cjs +91 -17
  86. package/dist/assertions/record/codec.cjs.map +1 -1
  87. package/dist/assertions/record/codec.d.cts +280 -52
  88. package/dist/assertions/record/codec.d.mts +280 -52
  89. package/dist/assertions/record/codec.d.ts +280 -52
  90. package/dist/assertions/record/index.js +2 -0
  91. package/dist/assertions/record/model.cjs +16 -0
  92. package/dist/assertions/record/model.cjs.map +1 -1
  93. package/dist/assertions/record/model.d.cts +120 -13
  94. package/dist/assertions/record/model.d.mts +120 -13
  95. package/dist/assertions/record/model.d.ts +120 -13
  96. package/dist/assertions/record/model.js +2 -0
  97. package/dist/assertions/record/producer.cjs +70 -50
  98. package/dist/assertions/record/producer.cjs.map +1 -1
  99. package/dist/assertions/record/producer.d.cts +8 -7
  100. package/dist/assertions/record/producer.d.mts +8 -7
  101. package/dist/assertions/record/producer.d.ts +8 -7
  102. package/dist/assertions/runtime.cjs +49 -7
  103. package/dist/assertions/runtime.cjs.map +1 -1
  104. package/dist/cli/application.cjs +40 -0
  105. package/dist/cli/application.cjs.map +1 -0
  106. package/dist/cli/application.d.cts +129 -0
  107. package/dist/cli/application.d.mts +129 -0
  108. package/dist/cli/application.d.ts +129 -0
  109. package/dist/cli/application.js +24 -0
  110. package/dist/cli/application.js.map +1 -0
  111. package/dist/cli/bootstrap.cjs +10 -4
  112. package/dist/cli/bootstrap.cjs.map +1 -1
  113. package/dist/cli/node-application.cjs +123 -0
  114. package/dist/cli/node-application.cjs.map +1 -0
  115. package/dist/cli/node-application.d.cts +14 -0
  116. package/dist/cli/node-application.d.mts +14 -0
  117. package/dist/cli/node-application.d.ts +14 -0
  118. package/dist/cli/node-application.js +26 -0
  119. package/dist/cli/node-application.js.map +1 -0
  120. package/dist/cli/program.cjs +2807 -0
  121. package/dist/cli/program.cjs.map +1 -0
  122. package/dist/cli/program.d.cts +352 -0
  123. package/dist/cli/program.d.mts +352 -0
  124. package/dist/cli/program.d.ts +352 -0
  125. package/dist/cli/program.js +36 -0
  126. package/dist/cli/program.js.map +1 -0
  127. package/dist/cli/project-configuration.cjs +134 -0
  128. package/dist/cli/project-configuration.cjs.map +1 -0
  129. package/dist/cli/project-configuration.d.cts +64 -0
  130. package/dist/cli/project-configuration.d.mts +64 -0
  131. package/dist/cli/project-configuration.d.ts +64 -0
  132. package/dist/cli/project-configuration.js +22 -0
  133. package/dist/cli/project-configuration.js.map +1 -0
  134. package/dist/cli/record.cjs +20 -4
  135. package/dist/cli/record.cjs.map +1 -1
  136. package/dist/cli/record.d.cts +3 -3
  137. package/dist/cli/record.d.mts +3 -3
  138. package/dist/cli/record.d.ts +3 -3
  139. package/dist/cli.cjs +19 -3130
  140. package/dist/cli.cjs.map +1 -1
  141. package/dist/cli.d.cts +2 -148
  142. package/dist/cli.d.mts +2 -148
  143. package/dist/cli.d.ts +2 -148
  144. package/dist/cli.js +22 -30
  145. package/dist/context/assert-first.cjs +21 -15
  146. package/dist/context/assert-first.cjs.map +1 -1
  147. package/dist/context/assert-first.d.cts +1 -0
  148. package/dist/context/assert-first.d.mts +1 -0
  149. package/dist/context/assert-first.d.ts +1 -0
  150. package/dist/context/attempt-resources.cjs +13 -0
  151. package/dist/context/attempt-resources.cjs.map +1 -0
  152. package/dist/context/attempt-resources.d.cts +3 -0
  153. package/dist/context/attempt-resources.d.mts +3 -0
  154. package/dist/context/attempt-resources.d.ts +3 -0
  155. package/dist/context/attempt-resources.js +8 -0
  156. package/dist/context/attempt-resources.js.map +1 -0
  157. package/dist/context/session.cjs +4 -3
  158. package/dist/context/session.cjs.map +1 -1
  159. package/dist/context/session.d.cts +1 -0
  160. package/dist/context/session.d.mts +1 -0
  161. package/dist/context/session.d.ts +1 -0
  162. package/dist/eval/record/verdict.cjs +3 -2
  163. package/dist/eval/record/verdict.cjs.map +1 -1
  164. package/dist/experiment/host/index.cjs +1 -6
  165. package/dist/experiment/host/index.cjs.map +1 -1
  166. package/dist/experiment/host/index.d.cts +1 -0
  167. package/dist/experiment/host/index.d.mts +1 -0
  168. package/dist/experiment/host/index.d.ts +1 -0
  169. package/dist/load-config.cjs +13 -4
  170. package/dist/load-config.cjs.map +1 -1
  171. package/dist/load-config.d.cts +4 -3
  172. package/dist/load-config.d.mts +4 -3
  173. package/dist/load-config.d.ts +4 -3
  174. package/dist/load-config.js +4 -2
  175. package/dist/o11y/parsers/codex.cjs +29 -7
  176. package/dist/o11y/parsers/codex.cjs.map +1 -1
  177. package/dist/record/codec/core.d.cts +0 -2
  178. package/dist/record/codec/core.d.mts +0 -2
  179. package/dist/record/codec/core.d.ts +0 -2
  180. package/dist/record/codec/identifiers.cjs +2 -3
  181. package/dist/record/codec/identifiers.cjs.map +1 -1
  182. package/dist/record/codec/identifiers.d.cts +1 -2
  183. package/dist/record/codec/identifiers.d.mts +1 -2
  184. package/dist/record/codec/identifiers.d.ts +1 -2
  185. package/dist/record/codec/identifiers.js +10 -12
  186. package/dist/record/codec/index.js +42 -44
  187. package/dist/record/definition/attachment.cjs +1 -0
  188. package/dist/record/definition/attachment.cjs.map +1 -1
  189. package/dist/record/definition/attachment.d.cts +14 -0
  190. package/dist/record/definition/attachment.d.mts +14 -0
  191. package/dist/record/definition/attachment.d.ts +14 -0
  192. package/dist/record/family/assertions-v1.cjs +104 -0
  193. package/dist/record/family/assertions-v1.cjs.map +1 -0
  194. package/dist/record/family/assertions-v1.d.cts +2 -0
  195. package/dist/record/family/assertions-v1.d.mts +2 -0
  196. package/dist/record/family/assertions-v1.d.ts +2 -0
  197. package/dist/record/family/assertions-v1.js +6 -0
  198. package/dist/record/family/assertions-v1.js.map +1 -0
  199. package/dist/record/family/assertions.cjs +16 -5
  200. package/dist/record/family/assertions.cjs.map +1 -1
  201. package/dist/record/family/assertions.d.cts +510 -56
  202. package/dist/record/family/assertions.d.mts +510 -56
  203. package/dist/record/family/assertions.d.ts +510 -56
  204. package/dist/record/family/assertions.js +14 -10
  205. package/dist/record/family/catalog.cjs +17 -1
  206. package/dist/record/family/catalog.cjs.map +1 -1
  207. package/dist/record/family/catalog.d.cts +1292 -104
  208. package/dist/record/family/catalog.d.mts +1292 -104
  209. package/dist/record/family/catalog.d.ts +1292 -104
  210. package/dist/record/family/catalog.js +22 -20
  211. package/dist/record/family/index.js +144 -138
  212. package/dist/record/family/observability-v1.cjs +5 -0
  213. package/dist/record/family/observability-v1.cjs.map +1 -1
  214. package/dist/record/family/observability.cjs +1 -1
  215. package/dist/record/family/observability.cjs.map +1 -1
  216. package/dist/record/host/runtime.cjs +323 -173
  217. package/dist/record/host/runtime.cjs.map +1 -1
  218. package/dist/record/host/types.cjs.map +1 -1
  219. package/dist/record/host/types.d.cts +9 -7
  220. package/dist/record/host/types.d.mts +9 -7
  221. package/dist/record/host/types.d.ts +9 -7
  222. package/dist/record/model/core.cjs.map +1 -1
  223. package/dist/record/model/core.d.cts +1 -2
  224. package/dist/record/model/core.d.mts +1 -2
  225. package/dist/record/model/core.d.ts +1 -2
  226. package/dist/record/model/definition.cjs +1 -2
  227. package/dist/record/model/definition.cjs.map +1 -1
  228. package/dist/record/model/definition.d.cts +1 -7
  229. package/dist/record/model/definition.d.mts +1 -7
  230. package/dist/record/model/definition.d.ts +1 -7
  231. package/dist/record/model/identifiers.cjs +2 -3
  232. package/dist/record/model/identifiers.cjs.map +1 -1
  233. package/dist/record/model/identifiers.d.cts +1 -3
  234. package/dist/record/model/identifiers.d.mts +1 -3
  235. package/dist/record/model/identifiers.d.ts +1 -3
  236. package/dist/record/model/identifiers.js +36 -38
  237. package/dist/record/model/index.js +60 -62
  238. package/dist/record/platform/node.cjs +17 -7
  239. package/dist/record/platform/node.cjs.map +1 -1
  240. package/dist/record/platform/services.cjs.map +1 -1
  241. package/dist/record/platform/services.d.cts +8 -3
  242. package/dist/record/platform/services.d.mts +8 -3
  243. package/dist/record/platform/services.d.ts +8 -3
  244. package/dist/record/reader/format.cjs +16 -65
  245. package/dist/record/reader/format.cjs.map +1 -1
  246. package/dist/record/reader/format.d.cts +5 -9
  247. package/dist/record/reader/format.d.mts +5 -9
  248. package/dist/record/reader/format.d.ts +5 -9
  249. package/dist/record/reader/index.js +10 -8
  250. package/dist/record/reader/runtime.cjs +63 -32
  251. package/dist/record/reader/runtime.cjs.map +1 -1
  252. package/dist/record/reader/runtime.d.cts +40 -4
  253. package/dist/record/reader/runtime.d.mts +40 -4
  254. package/dist/record/reader/runtime.d.ts +40 -4
  255. package/dist/record/reader/runtime.js +6 -4
  256. package/dist/report/assets/enhance.js +5 -5
  257. package/dist/report/assets/styles.css +190 -24
  258. package/dist/report/built-in/result-components.cjs +8 -5
  259. package/dist/report/built-in/result-components.cjs.map +1 -1
  260. package/dist/report/built-in/standard.cjs +3 -0
  261. package/dist/report/built-in/standard.cjs.map +1 -1
  262. package/dist/report/built-in/standard.d.cts +2 -0
  263. package/dist/report/built-in/standard.d.mts +2 -0
  264. package/dist/report/built-in/standard.d.ts +2 -0
  265. package/dist/report/client-dist/app.js +53 -0
  266. package/dist/report/components/attempt-detail/compute.cjs +108 -231
  267. package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
  268. package/dist/report/components/attempt-detail/compute.d.cts +11 -45
  269. package/dist/report/components/attempt-detail/compute.d.mts +11 -45
  270. package/dist/report/components/attempt-detail/compute.d.ts +11 -45
  271. package/dist/report/components/attempt-detail/compute.js +2 -4
  272. package/dist/report/components/attempt-detail/content.cjs +4 -4
  273. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  274. package/dist/report/components/attempt-detail/validate.cjs +47 -4
  275. package/dist/report/components/attempt-detail/validate.cjs.map +1 -1
  276. package/dist/report/components/entity-lists/compute.cjs +9 -15
  277. package/dist/report/components/entity-lists/compute.cjs.map +1 -1
  278. package/dist/report/components/entity-lists/content.cjs +53 -40
  279. package/dist/report/components/entity-lists/content.cjs.map +1 -1
  280. package/dist/report/components/entity-lists/index.cjs +1 -3
  281. package/dist/report/components/entity-lists/index.cjs.map +1 -1
  282. package/dist/report/components/experiment-detail/compute.cjs +4 -6
  283. package/dist/report/components/experiment-detail/compute.cjs.map +1 -1
  284. package/dist/report/components/summaries/index.cjs +5 -1
  285. package/dist/report/components/summaries/index.cjs.map +1 -1
  286. package/dist/report/definition/cell.cjs +14 -7
  287. package/dist/report/definition/cell.cjs.map +1 -1
  288. package/dist/report/definition/cell.d.cts +4 -0
  289. package/dist/report/definition/cell.d.mts +4 -0
  290. package/dist/report/definition/cell.d.ts +4 -0
  291. package/dist/report/definition/primitives/assertion-evidence.cjs +96 -0
  292. package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -0
  293. package/dist/report/definition/primitives/assertion-evidence.d.cts +11 -0
  294. package/dist/report/definition/primitives/assertion-evidence.d.mts +11 -0
  295. package/dist/report/definition/primitives/assertion-evidence.d.ts +11 -0
  296. package/dist/report/definition/primitives/assertion-evidence.js +6 -0
  297. package/dist/report/definition/primitives/assertion-evidence.js.map +1 -0
  298. package/dist/report/definition/primitives/conversation.cjs +7 -0
  299. package/dist/report/definition/primitives/conversation.cjs.map +1 -1
  300. package/dist/report/definition/primitives/conversation.d.cts +2 -0
  301. package/dist/report/definition/primitives/conversation.d.mts +2 -0
  302. package/dist/report/definition/primitives/conversation.d.ts +2 -0
  303. package/dist/report/definition/primitives/turn-trace.cjs +53 -3
  304. package/dist/report/definition/primitives/turn-trace.cjs.map +1 -1
  305. package/dist/report/definition/primitives.cjs +14 -1
  306. package/dist/report/definition/primitives.cjs.map +1 -1
  307. package/dist/report/definition/report.cjs +16 -8
  308. package/dist/report/definition/report.cjs.map +1 -1
  309. package/dist/report/definition/report.d.cts +6 -0
  310. package/dist/report/definition/report.d.mts +6 -0
  311. package/dist/report/definition/report.d.ts +6 -0
  312. package/dist/report/definition/table-text.cjs +12 -3
  313. package/dist/report/definition/table-text.cjs.map +1 -1
  314. package/dist/report/definition/table-text.d.cts +6 -1
  315. package/dist/report/definition/table-text.d.mts +6 -1
  316. package/dist/report/definition/table-text.d.ts +6 -1
  317. package/dist/report/execution/model.cjs +6 -14
  318. package/dist/report/execution/model.cjs.map +1 -1
  319. package/dist/report/execution/model.d.cts +5 -10
  320. package/dist/report/execution/model.d.mts +5 -10
  321. package/dist/report/execution/model.d.ts +5 -10
  322. package/dist/report/execution/model.js +6 -6
  323. package/dist/report/execution/paths.cjs +0 -11
  324. package/dist/report/execution/paths.cjs.map +1 -1
  325. package/dist/report/execution/paths.d.cts +0 -1
  326. package/dist/report/execution/paths.d.mts +0 -1
  327. package/dist/report/execution/paths.d.ts +0 -1
  328. package/dist/report/execution/paths.js +6 -8
  329. package/dist/report/host/execute.cjs +13 -22
  330. package/dist/report/host/execute.cjs.map +1 -1
  331. package/dist/report/host/execute.d.cts +1 -4
  332. package/dist/report/host/execute.d.mts +1 -4
  333. package/dist/report/host/execute.d.ts +1 -4
  334. package/dist/report/host/from-record.cjs +3 -0
  335. package/dist/report/host/from-record.cjs.map +1 -1
  336. package/dist/report/host/from-record.d.cts +4 -1
  337. package/dist/report/host/from-record.d.mts +4 -1
  338. package/dist/report/host/from-record.d.ts +4 -1
  339. package/dist/report/host/site-assets.cjs +1 -2
  340. package/dist/report/host/site-assets.cjs.map +1 -1
  341. package/dist/report/host/site-assets.d.cts +0 -1
  342. package/dist/report/host/site-assets.d.mts +0 -1
  343. package/dist/report/host/site-assets.d.ts +0 -1
  344. package/dist/report/host/site-assets.js +2 -4
  345. package/dist/report/host/static.cjs +71 -346
  346. package/dist/report/host/static.cjs.map +1 -1
  347. package/dist/report/host/static.d.cts +1 -3
  348. package/dist/report/host/static.d.mts +1 -3
  349. package/dist/report/host/static.d.ts +1 -3
  350. package/dist/report/host/static.js +2 -2
  351. package/dist/report/host/view-session.cjs.map +1 -1
  352. package/dist/report/host/view-session.d.cts +1 -1
  353. package/dist/report/host/view-session.d.mts +1 -1
  354. package/dist/report/host/view-session.d.ts +1 -1
  355. package/dist/report/model/locale.cjs +1 -1
  356. package/dist/report/model/locale.cjs.map +1 -1
  357. package/dist/report/model/locale.d.cts +1 -1
  358. package/dist/report/model/locale.d.mts +1 -1
  359. package/dist/report/model/locale.d.ts +1 -1
  360. package/dist/report/model/pricing.cjs +2 -2
  361. package/dist/report/model/pricing.cjs.map +1 -1
  362. package/dist/report/react/enhance.js +5 -5
  363. package/dist/report/react/styles.css +190 -24
  364. package/dist/runner/adoption.cjs +4 -7
  365. package/dist/runner/adoption.cjs.map +1 -1
  366. package/dist/runner/attempt-resources.cjs +60 -0
  367. package/dist/runner/attempt-resources.cjs.map +1 -0
  368. package/dist/runner/attempt-resources.d.cts +13 -0
  369. package/dist/runner/attempt-resources.d.mts +13 -0
  370. package/dist/runner/attempt-resources.d.ts +13 -0
  371. package/dist/runner/attempt-resources.js +6 -0
  372. package/dist/runner/attempt-resources.js.map +1 -0
  373. package/dist/runner/attempt.cjs +37 -3
  374. package/dist/runner/attempt.cjs.map +1 -1
  375. package/dist/runner/feedback/failure.cjs +77 -2
  376. package/dist/runner/feedback/failure.cjs.map +1 -1
  377. package/dist/runner/feedback/failure.d.cts +2 -1
  378. package/dist/runner/feedback/failure.d.mts +2 -1
  379. package/dist/runner/feedback/failure.d.ts +2 -1
  380. package/dist/runner/project-current.cjs +2 -13
  381. package/dist/runner/project-current.cjs.map +1 -1
  382. package/dist/runner/project-current.d.cts +4 -2
  383. package/dist/runner/project-current.d.mts +4 -2
  384. package/dist/runner/project-current.d.ts +4 -2
  385. package/dist/runner/reporters/braintrust.cjs +7 -7
  386. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  387. package/dist/runner/reuse-readback.cjs +3 -4
  388. package/dist/runner/reuse-readback.cjs.map +1 -1
  389. package/dist/runner/run.cjs +5 -2
  390. package/dist/runner/run.cjs.map +1 -1
  391. package/dist/sandbox/backend.cjs +32 -2
  392. package/dist/sandbox/backend.cjs.map +1 -1
  393. package/dist/sandbox/backend.d.cts +12 -1
  394. package/dist/sandbox/backend.d.mts +12 -1
  395. package/dist/sandbox/backend.d.ts +12 -1
  396. package/dist/sandbox/backend.js +28 -22
  397. package/dist/sandbox/docker.cjs +140 -0
  398. package/dist/sandbox/docker.cjs.map +1 -1
  399. package/dist/sandbox/docker.d.cts +3 -1
  400. package/dist/sandbox/docker.d.mts +3 -1
  401. package/dist/sandbox/docker.d.ts +3 -1
  402. package/dist/sandbox/e2b.cjs +42 -0
  403. package/dist/sandbox/e2b.cjs.map +1 -1
  404. package/dist/sandbox/e2b.d.cts +2 -0
  405. package/dist/sandbox/e2b.d.mts +2 -0
  406. package/dist/sandbox/e2b.d.ts +2 -0
  407. package/dist/sandbox/local.cjs +64 -0
  408. package/dist/sandbox/local.cjs.map +1 -1
  409. package/dist/sandbox/local.d.cts +3 -1
  410. package/dist/sandbox/local.d.mts +3 -1
  411. package/dist/sandbox/local.d.ts +3 -1
  412. package/dist/sandbox/managed-process.cjs +49 -0
  413. package/dist/sandbox/managed-process.cjs.map +1 -0
  414. package/dist/sandbox/managed-process.d.cts +11 -0
  415. package/dist/sandbox/managed-process.d.mts +11 -0
  416. package/dist/sandbox/managed-process.d.ts +11 -0
  417. package/dist/sandbox/managed-process.js +6 -0
  418. package/dist/sandbox/managed-process.js.map +1 -0
  419. package/dist/sandbox/types.cjs.map +1 -1
  420. package/dist/sandbox/types.d.cts +24 -0
  421. package/dist/sandbox/types.d.mts +24 -0
  422. package/dist/sandbox/types.d.ts +24 -0
  423. package/dist/sandbox/vercel.cjs +1 -0
  424. package/dist/sandbox/vercel.cjs.map +1 -1
  425. package/dist/sandbox/vercel.d.cts +1 -0
  426. package/dist/sandbox/vercel.d.mts +1 -0
  427. package/dist/sandbox/vercel.d.ts +1 -0
  428. package/dist/view/server.cjs +2 -37
  429. package/dist/view/server.cjs.map +1 -1
  430. package/dist/view/server.d.cts +0 -3
  431. package/dist/view/server.d.mts +0 -3
  432. package/dist/view/server.d.ts +0 -3
  433. package/docs-site/zh/reference/builtin-agents.mdx +7 -7
  434. package/docs-site/zh/reference/official-adapters.mdx +4 -4
  435. package/docs-site/zh/reference/report-components.mdx +2 -2
  436. package/docs-site/zh/tutorials/configuration.mdx +2 -2
  437. package/docs-site/zh/tutorials/deploy-report-site.mdx +24 -2
  438. package/docs-site/zh/tutorials/publish-report.mdx +4 -4
  439. package/docs-site/zh/tutorials/sandbox-agent.mdx +5 -5
  440. package/docs-site/zh/tutorials/theming.mdx +2 -2
  441. package/package.json +4 -6
  442. package/dist/record/migration/index.cjs +0 -5
  443. package/dist/record/migration/index.cjs.map +0 -1
  444. package/dist/record/migration/index.d.cts +0 -11
  445. package/dist/record/migration/index.d.mts +0 -11
  446. package/dist/record/migration/index.d.ts +0 -11
  447. package/dist/record/migration/index.js +0 -6
  448. package/dist/record/migration/index.js.map +0 -1
  449. package/dist/report/host/site-runtime.cjs +0 -92
  450. package/dist/report/host/site-runtime.cjs.map +0 -1
  451. package/dist/report/host/site-runtime.d.cts +0 -9
  452. package/dist/report/host/site-runtime.d.mts +0 -9
  453. package/dist/report/host/site-runtime.d.ts +0 -9
  454. package/dist/report/host/site-runtime.js +0 -10
  455. package/dist/report/host/site-runtime.js.map +0 -1
  456. package/dist/view/client-dist/app.css +0 -2
  457. package/dist/view/client-dist/app.js +0 -49
  458. package/dist/view/data.cjs +0 -3
  459. package/dist/view/data.cjs.map +0 -1
  460. package/dist/view/data.d.cts +0 -9
  461. package/dist/view/data.d.mts +0 -9
  462. package/dist/view/data.d.ts +0 -9
  463. package/dist/view/data.js +0 -4
  464. package/dist/view/data.js.map +0 -1
  465. package/dist/view/index.cjs +0 -24
  466. package/dist/view/index.cjs.map +0 -1
  467. package/dist/view/index.d.cts +0 -9
  468. package/dist/view/index.d.mts +0 -9
  469. package/dist/view/index.d.ts +0 -9
  470. package/dist/view/index.js +0 -28
  471. package/dist/view/index.js.map +0 -1
  472. package/dist/view/report-view-cache.cjs +0 -200
  473. package/dist/view/report-view-cache.cjs.map +0 -1
  474. package/dist/view/report-view-cache.d.cts +0 -67
  475. package/dist/view/report-view-cache.d.mts +0 -67
  476. package/dist/view/report-view-cache.d.ts +0 -67
  477. package/dist/view/report-view-cache.js +0 -8
  478. package/dist/view/report-view-cache.js.map +0 -1
  479. package/dist/view/shared/types.cjs +0 -3
  480. package/dist/view/shared/types.cjs.map +0 -1
  481. package/dist/view/shared/types.d.cts +0 -51
  482. package/dist/view/shared/types.d.mts +0 -51
  483. package/dist/view/shared/types.d.ts +0 -51
  484. package/dist/view/shared/types.js +0 -4
  485. package/dist/view/shared/types.js.map +0 -1
  486. package/dist/view/site.cjs +0 -32
  487. package/dist/view/site.cjs.map +0 -1
  488. package/dist/view/site.d.cts +0 -24
  489. package/dist/view/site.d.mts +0 -24
  490. package/dist/view/site.d.ts +0 -24
  491. package/dist/view/site.js +0 -8
  492. package/dist/view/site.js.map +0 -1
  493. package/dist/view/styles.css +0 -170
  494. package/dist/view/template.html +0 -17
@@ -20,7 +20,6 @@ exports.observedCostUSD = observedCostUSD;
20
20
  exports.usageTableData = usageTableData;
21
21
  exports.attemptDiffData = attemptDiffData;
22
22
  exports.attemptSourceData = attemptSourceData;
23
- exports.stableJson = stableJson;
24
23
  // ───────────────────────── AttemptSummary ─────────────────────────
25
24
  function attemptSummaryData(input) {
26
25
  return {
@@ -73,95 +72,12 @@ function attemptErrorData(input) {
73
72
  ...(hint ? { commandEvidenceHint: true } : {}),
74
73
  };
75
74
  }
76
- function jsonRecordOf(value) {
77
- if (value === undefined || typeof value !== "object" || value === null || Array.isArray(value))
78
- return undefined;
79
- return value;
80
- }
81
- function jsonStringOf(record, key) {
82
- const value = record[key];
83
- return typeof value === "string" ? value : undefined;
84
- }
85
- function jsonNumberOf(record, key) {
86
- const value = record[key];
87
- return typeof value === "number" && Number.isFinite(value) ? value : undefined;
88
- }
89
- function jsonStringArrayOf(record, key) {
90
- const value = record[key];
91
- if (!Array.isArray(value))
92
- return undefined;
93
- const items = [];
94
- for (const item of value) {
95
- if (typeof item !== "string")
96
- return undefined;
97
- items.push(item);
98
- }
99
- return items;
100
- }
101
- /** 整条 sealed assertion entry 的结构读取;读不懂(形状不符)返回 undefined,调用方跳过。 */
75
+ /** Typed Analysis entry → report view. No Record or matcher shape is parsed here. */
102
76
  function assertionEntryViewOf(value) {
103
- const record = jsonRecordOf(value);
104
- if (record === undefined)
105
- return undefined;
106
- const entryId = jsonStringOf(record, "entryId");
107
- const display = jsonRecordOf(record["display"]);
108
- const result = jsonRecordOf(record["result"]);
109
- const coverage = jsonRecordOf(record["coverage"]);
110
- if (entryId === undefined || display === undefined || result === undefined || coverage === undefined)
111
- return undefined;
112
- const state = jsonStringOf(result, "state");
113
- const gate = jsonStringOf(result, "gate");
114
- const score = jsonRecordOf(result["score"]);
115
- if (state === undefined || gate === undefined || score === undefined)
116
- return undefined;
117
- if (state !== "matched" && state !== "mismatched" && state !== "unavailable" && state !== "errored")
118
- return undefined;
119
- if (gate !== "not-gate" && gate !== "satisfied" && gate !== "failed" && gate !== "unavailable")
120
- return undefined;
121
- const scoreState = jsonStringOf(score, "state");
122
- if (scoreState !== "not-scored" && scoreState !== "earned" && scoreState !== "unavailable")
123
- return undefined;
124
- const coverageState = jsonStringOf(coverage, "state");
125
- if (coverageState !== "complete" && coverageState !== "partial" &&
126
- coverageState !== "unavailable" && coverageState !== "not-applicable")
127
- return undefined;
128
- const limitations = [];
129
- const rawLimitations = Array.isArray(record["limitations"]) ? record["limitations"] : [];
130
- for (const item of rawLimitations) {
131
- const kind = jsonStringOf(jsonRecordOf(item) ?? {}, "kind");
132
- if (kind !== undefined)
133
- limitations.push({ kind });
134
- }
135
- const earned = jsonNumberOf(score, "earned");
136
- const points = jsonNumberOf(score, "points");
137
- return {
138
- entryId,
139
- display: {
140
- ...(jsonStringOf(display, "label") === undefined ? {} : { label: jsonStringOf(display, "label") }),
141
- ...(jsonStringOf(display, "key") === undefined ? {} : { key: jsonStringOf(display, "key") }),
142
- groupPath: jsonStringArrayOf(display, "groupPath") ?? [],
143
- },
144
- result: {
145
- state,
146
- ...(jsonStringOf(result, "reason") === undefined ? {} : { reason: jsonStringOf(result, "reason") }),
147
- gate,
148
- score: {
149
- state: scoreState,
150
- ...(earned === undefined ? {} : { earned }),
151
- ...(points === undefined ? {} : { points }),
152
- },
153
- ...(result["diagnostic"] === undefined ? {} : { diagnostic: result["diagnostic"] }),
154
- },
155
- coverage: {
156
- state: coverageState,
157
- ...(jsonStringOf(coverage, "reason") === undefined ? {} : { reason: jsonStringOf(coverage, "reason") }),
158
- },
159
- limitations,
160
- };
77
+ return value;
161
78
  }
162
- /** sealed result → 展示 outcome;errored 归 failed,理由留在 detail。 */
163
79
  function assertionOutcomeOf(entry) {
164
- const state = entry.result.state;
80
+ const state = entry.decision.result;
165
81
  if (state === "matched")
166
82
  return "passed";
167
83
  if (state === "mismatched" || state === "errored")
@@ -169,111 +85,26 @@ function assertionOutcomeOf(entry) {
169
85
  return "unavailable";
170
86
  }
171
87
  function assertionSeverityOf(entry) {
172
- return entry.result.gate === "failed" || entry.result.gate === "unavailable" ? "gate" : "soft";
88
+ if (entry.decision.gate === "failed" || entry.decision.gate === "unavailable")
89
+ return "gate";
90
+ return entry.decision.contribution.state === "not-scored" ? "recorded" : "soft";
173
91
  }
174
92
  function scoreOf(entry) {
175
- const score = entry.result.score;
93
+ const score = entry.decision.contribution;
176
94
  if (score.state === "not-scored")
177
95
  return undefined;
178
96
  return {
179
97
  state: score.state,
180
- points: score.points ?? 0,
181
- ...(score.state === "earned" ? { earned: score.earned ?? 0 } : {}),
98
+ points: score.points,
99
+ ...(score.state === "earned" ? { earned: score.earned } : {}),
182
100
  };
183
101
  }
184
- function diagnosticLocatorText(record) {
185
- const locator = jsonRecordOf(record["locator"]);
186
- if (locator === undefined)
187
- return undefined;
188
- const kind = jsonStringOf(locator, "kind");
189
- if (kind === "json-pointer") {
190
- const pointer = jsonStringOf(locator, "pointer");
191
- return pointer === undefined ? undefined : `location: ${pointer}`;
192
- }
193
- if (kind === "tool-occurrence") {
194
- const id = jsonStringOf(locator, "id");
195
- return id === undefined ? undefined : `location: tool occurrence ${id}`;
196
- }
197
- return undefined;
198
- }
199
- function childDiagnostics(record) {
200
- const children = record["children"];
201
- if (!Array.isArray(children))
202
- return [];
203
- return children.flatMap((child) => {
204
- const childRecord = jsonRecordOf(child);
205
- const diagnostic = childRecord === undefined ? undefined : jsonRecordOf(childRecord["diagnostic"]);
206
- return diagnostic === undefined ? [] : [diagnostic];
207
- });
208
- }
209
- function pathWitnessOf(record) {
210
- for (const child of childDiagnostics(record)) {
211
- if (jsonStringOf(child, "code") === "path-reference-match")
212
- return child;
213
- const nested = pathWitnessOf(child);
214
- if (nested !== undefined)
215
- return nested;
216
- }
217
- return undefined;
218
- }
219
- function diagnosticWasTruncated(record) {
220
- if (jsonStringOf(record, "code") === "diagnostic-truncated" || record["truncation"] !== undefined)
221
- return true;
222
- return childDiagnostics(record).some(diagnosticWasTruncated);
223
- }
224
- function diagnosticSummary(value) {
225
- const record = jsonRecordOf(value);
226
- if (record === undefined)
227
- return stableJson(value);
228
- const message = jsonStringOf(record, "message");
229
- if (message === undefined)
230
- return stableJson(value);
231
- const parts = [message];
232
- const expected = jsonStringOf(record, "expected");
233
- const received = jsonStringOf(record, "received");
234
- const reason = jsonStringOf(record, "reason");
235
- if (expected !== undefined)
236
- parts.push(`expected: ${expected}`);
237
- if (received !== undefined)
238
- parts.push(`received: ${received}`);
239
- if (reason !== undefined)
240
- parts.push(`diagnostic reason: ${reason}`);
241
- const locator = diagnosticLocatorText(record);
242
- if (locator !== undefined)
243
- parts.push(locator);
244
- const witness = pathWitnessOf(record);
245
- if (witness !== undefined) {
246
- const witnessMessage = jsonStringOf(witness, "message");
247
- const witnessExpected = jsonStringOf(witness, "expected");
248
- const witnessLocator = diagnosticLocatorText(witness);
249
- if (witnessMessage !== undefined)
250
- parts.push(witnessMessage);
251
- if (witnessExpected !== undefined)
252
- parts.push(`expected: ${witnessExpected}`);
253
- if (witnessLocator !== undefined)
254
- parts.push(witnessLocator);
255
- }
256
- if (diagnosticWasTruncated(record))
257
- parts.push("diagnostic details truncated");
258
- return parts.join(" · ");
259
- }
260
- /** 展示层预拼的判定详情;字段全闭合,不把 matcher diagnostic tree 当作文案。 */
261
102
  function assertionDetailOf(entry) {
262
103
  const parts = [];
263
- if (entry.result.state === "mismatched")
264
- parts.push(`reason: ${entry.result.reason}`);
265
- if (entry.result.state === "unavailable")
266
- parts.push(`reason: ${entry.result.reason}`);
267
- if (entry.result.state === "errored")
268
- parts.push(`reason: ${entry.result.reason}`);
269
- if (entry.coverage.state !== "complete") {
270
- parts.push(`coverage: ${entry.coverage.state}${entry.coverage.reason === undefined ? "" : ` (${entry.coverage.reason})`}`);
271
- }
272
- for (const limitation of entry.limitations) {
273
- parts.push(`limitations: ${limitation.kind}`);
274
- }
275
- if (entry.result.diagnostic !== undefined) {
276
- parts.push(`diagnostic: ${diagnosticSummary(entry.result.diagnostic)}`);
104
+ if (entry.decision.reason !== null)
105
+ parts.push(`reason: ${entry.decision.reason}`);
106
+ if (entry.source.coverage.state !== "complete") {
107
+ parts.push(`coverage: ${entry.source.coverage.state} (${entry.source.coverage.reason})`);
277
108
  }
278
109
  return parts.join(" · ");
279
110
  }
@@ -285,6 +116,88 @@ function assertionNameOf(entry) {
285
116
  return display.key;
286
117
  return entry.entryId;
287
118
  }
119
+ function factValue(value) {
120
+ return { kind: "value", value };
121
+ }
122
+ function limitationFact(limitation) {
123
+ switch (limitation.kind) {
124
+ case "redacted":
125
+ return { kind: "fields", fields: [
126
+ { label: "kind", value: factValue(limitation.kind) },
127
+ { label: "fieldCount", value: factValue(limitation.fieldCount) },
128
+ ] };
129
+ case "sampled":
130
+ return { kind: "fields", fields: [
131
+ { label: "kind", value: factValue(limitation.kind) },
132
+ { label: "captured", value: factValue(limitation.captured) },
133
+ ...(limitation.knownTotal === undefined
134
+ ? []
135
+ : [{ label: "knownTotal", value: factValue(limitation.knownTotal) }]),
136
+ ] };
137
+ case "truncated":
138
+ return { kind: "fields", fields: [
139
+ { label: "kind", value: factValue(limitation.kind) },
140
+ { label: "omittedBytes", value: factValue(limitation.omittedBytes) },
141
+ ] };
142
+ case "provider-limited":
143
+ return { kind: "fields", fields: [
144
+ { label: "kind", value: factValue(limitation.kind) },
145
+ ] };
146
+ }
147
+ }
148
+ function assertionEvidenceOf(entry) {
149
+ const coverageFields = [
150
+ { label: "state", value: factValue(entry.source.coverage.state) },
151
+ ];
152
+ if ("reason" in entry.source.coverage) {
153
+ coverageFields.push({ label: "reason", value: factValue(entry.source.coverage.reason) });
154
+ }
155
+ const source = {
156
+ kind: "fields",
157
+ fields: [
158
+ ...entry.source.fields,
159
+ { label: "coverage", value: { kind: "fields", fields: coverageFields } },
160
+ ...(entry.source.limitations.length === 0
161
+ ? []
162
+ : [{
163
+ label: "limitations",
164
+ value: { kind: "list", items: entry.source.limitations.map(limitationFact) },
165
+ }]),
166
+ ],
167
+ };
168
+ const receipt = entry.observed.receipt;
169
+ const observed = receipt === undefined
170
+ ? entry.observed
171
+ : {
172
+ kind: "fields",
173
+ fields: [
174
+ ...entry.observed.fields,
175
+ {
176
+ label: "receipt",
177
+ value: {
178
+ kind: "fields",
179
+ fields: [
180
+ { label: "examined", value: factValue(receipt.examined) },
181
+ { label: "matched", value: factValue(receipt.matched) },
182
+ { label: "mismatched", value: factValue(receipt.mismatched) },
183
+ { label: "unavailable", value: factValue(receipt.unavailable) },
184
+ { label: "knownTotal", value: factValue(receipt.knownTotal) },
185
+ { label: "complete", value: factValue(receipt.complete) },
186
+ { label: "exhaustive", value: factValue(receipt.exhaustive) },
187
+ { label: "decisive", value: factValue(receipt.decisive) },
188
+ ],
189
+ },
190
+ },
191
+ ],
192
+ };
193
+ return {
194
+ source,
195
+ check: entry.check,
196
+ observed: { kind: "fields", fields: observed.kind === "fields" ? observed.fields : [] },
197
+ expected: entry.expected,
198
+ explanation: entry.explanation,
199
+ };
200
+ }
288
201
  function assertionViewOf(entry) {
289
202
  const score = scoreOf(entry);
290
203
  return {
@@ -294,6 +207,7 @@ function assertionViewOf(entry) {
294
207
  outcome: assertionOutcomeOf(entry),
295
208
  groupPath: entry.display.groupPath,
296
209
  detail: assertionDetailOf(entry),
210
+ evidence: assertionEvidenceOf(entry),
297
211
  ...(score === undefined ? {} : { score }),
298
212
  };
299
213
  }
@@ -325,9 +239,7 @@ function scorePointsEarnedOf(assertions) {
325
239
  function attemptAssertionsData(detail) {
326
240
  if (detail === undefined)
327
241
  return null;
328
- const entries = detail.entries
329
- .map(assertionEntryViewOf)
330
- .filter((entry) => entry !== undefined);
242
+ const entries = detail.entries.map(assertionEntryViewOf);
331
243
  if (entries.length === 0)
332
244
  return null;
333
245
  const assertions = entries.map(assertionViewOf);
@@ -431,7 +343,7 @@ function conversationReplyOf(item, callsById) {
431
343
  inputSummary: call?.inputSummary ?? "",
432
344
  outputSummary: item.outputSummary,
433
345
  outcome: item.outcome,
434
- failed: item.outcome === "failed" || item.outcome === "rejected",
346
+ failed: item.outcome === "failed",
435
347
  };
436
348
  }
437
349
  case "thinking-summary":
@@ -742,37 +654,16 @@ function attemptDiffData(detail, locator) {
742
654
  return { locator, collection: detail.collection, files };
743
655
  }
744
656
  // ───────────────────────── AttemptSource ─────────────────────────
745
- /** sourceSites 在 DomainView 边界是 JsonValue;这里做最小结构读取,读不到即跳过。 */
746
657
  function siteViewOf(value) {
747
- if (typeof value !== "object" || value === null || Array.isArray(value))
748
- return undefined;
749
- const record = value;
750
- const entryId = record["entryId"];
751
- const role = record["role"];
752
- const sourceOrder = record["sourceOrder"];
753
- const sourceItemId = record["sourceItemId"];
754
- const sha256 = record["sha256"];
755
- const start = record["start"];
756
- const end = record["end"];
757
- if (typeof entryId !== "string" ||
758
- typeof sourceOrder !== "number" ||
759
- !Number.isSafeInteger(sourceOrder) ||
760
- sourceOrder < 1 ||
761
- typeof role !== "string" ||
762
- typeof sourceItemId !== "string" ||
763
- typeof sha256 !== "string")
764
- return undefined;
765
- if (typeof start !== "object" || start === null || Array.isArray(start))
766
- return undefined;
767
- if (typeof end !== "object" || end === null || Array.isArray(end))
768
- return undefined;
769
- const startLine = start["line"];
770
- const endLine = end["line"];
771
- if (typeof startLine !== "number" || typeof endLine !== "number")
772
- return undefined;
773
- if (startLine < 1 || endLine < startLine)
774
- return undefined;
775
- return { entryId, sourceOrder, role, sourceItemId, sha256, startLine, endLine };
658
+ return {
659
+ entryId: value.entryId,
660
+ sourceOrder: value.sourceOrder,
661
+ role: value.role,
662
+ sourceItemId: value.sourceItemId,
663
+ sha256: value.sha256,
664
+ startLine: value.start.line,
665
+ endLine: value.end.line,
666
+ };
776
667
  }
777
668
  function attemptSourceData(input) {
778
669
  const { locator, items, sourceSites, entries, navigation } = input;
@@ -781,7 +672,7 @@ function attemptSourceData(input) {
781
672
  const knownEntryIds = new Set(entries.map((entry) => entry.entryId));
782
673
  const sites = sourceSites
783
674
  .map(siteViewOf)
784
- .filter((site) => site !== undefined && knownEntryIds.has(site.entryId));
675
+ .filter((site) => knownEntryIds.has(site.entryId));
785
676
  const firstOrderByItem = new Map();
786
677
  for (const site of sites) {
787
678
  const key = `${site.sourceItemId}:${site.sha256}`;
@@ -819,20 +710,6 @@ function attemptSourceData(input) {
819
710
  ...(navigation === undefined ? {} : { navigation }),
820
711
  };
821
712
  }
822
- // ───────────────────────── helpers ─────────────────────────
823
- function stableJson(value) {
824
- if (value === null || typeof value === "string" || typeof value === "boolean") {
825
- return typeof value === "string" ? value : String(value);
826
- }
827
- if (typeof value === "number")
828
- return String(value);
829
- if (Array.isArray(value))
830
- return JSON.stringify(value);
831
- const keys = Object.keys(value).sort(compareText);
832
- if (keys.length === 0)
833
- return "{}";
834
- return `{${keys.map((key) => `${JSON.stringify(key)}:${stableJson(value[key])}`).join(",")}}`;
835
- }
836
713
  function compareText(left, right) {
837
714
  return left < right ? -1 : left > right ? 1 : 0;
838
715
  }