niceeval 0.17.1 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (692) hide show
  1. package/INDEX.md +5 -2
  2. package/dist/adapter-usage.cjs.map +1 -1
  3. package/dist/adapter-usage.d.cts +1 -1
  4. package/dist/adapter-usage.d.mts +1 -1
  5. package/dist/adapter-usage.d.ts +1 -1
  6. package/dist/adapter.cjs +8 -3
  7. package/dist/adapter.cjs.map +1 -1
  8. package/dist/adapter.d.cts +26 -15
  9. package/dist/adapter.d.mts +26 -15
  10. package/dist/adapter.d.ts +26 -15
  11. package/dist/agents/{effect-runtime.cjs → agent-effects.cjs} +12 -18
  12. package/dist/agents/agent-effects.cjs.map +1 -0
  13. package/dist/agents/agent-effects.d.cts +23 -0
  14. package/dist/agents/agent-effects.d.mts +23 -0
  15. package/dist/agents/agent-effects.d.ts +23 -0
  16. package/dist/agents/agent-effects.js +16 -0
  17. package/dist/agents/agent-effects.js.map +1 -0
  18. package/dist/agents/ai-sdk.cjs +1 -1
  19. package/dist/agents/ai-sdk.cjs.map +1 -1
  20. package/dist/agents/bub.cjs +31 -18
  21. package/dist/agents/bub.cjs.map +1 -1
  22. package/dist/agents/bub.d.cts +9 -12
  23. package/dist/agents/bub.d.mts +9 -12
  24. package/dist/agents/bub.d.ts +9 -12
  25. package/dist/agents/claude-code-native.cjs +2 -2
  26. package/dist/agents/claude-code-native.cjs.map +1 -1
  27. package/dist/agents/claude-code.cjs +17 -11
  28. package/dist/agents/claude-code.cjs.map +1 -1
  29. package/dist/agents/claude-code.d.cts +11 -11
  30. package/dist/agents/claude-code.d.mts +11 -11
  31. package/dist/agents/claude-code.d.ts +11 -11
  32. package/dist/agents/codex-app-server.cjs +2 -2
  33. package/dist/agents/codex-app-server.cjs.map +1 -1
  34. package/dist/agents/codex.cjs +18 -12
  35. package/dist/agents/codex.cjs.map +1 -1
  36. package/dist/agents/codex.d.cts +12 -12
  37. package/dist/agents/codex.d.mts +12 -12
  38. package/dist/agents/codex.d.ts +12 -12
  39. package/dist/agents/deepseek-harness.cjs +2 -2
  40. package/dist/agents/deepseek-harness.cjs.map +1 -1
  41. package/dist/agents/hermes.cjs +3 -3
  42. package/dist/agents/hermes.cjs.map +1 -1
  43. package/dist/agents/index.cjs +3 -3
  44. package/dist/agents/index.cjs.map +1 -1
  45. package/dist/agents/index.d.cts +3 -3
  46. package/dist/agents/index.d.mts +3 -3
  47. package/dist/agents/index.d.ts +3 -3
  48. package/dist/agents/index.js +2 -2
  49. package/dist/agents/index.mjs +2 -2
  50. package/dist/agents/mcp.cjs.map +1 -1
  51. package/dist/agents/mcp.d.cts +2 -2
  52. package/dist/agents/mcp.d.mts +2 -2
  53. package/dist/agents/mcp.d.ts +2 -2
  54. package/dist/agents/omp.cjs +2 -2
  55. package/dist/agents/omp.cjs.map +1 -1
  56. package/dist/agents/openai-compat.cjs +2 -2
  57. package/dist/agents/openai-compat.cjs.map +1 -1
  58. package/dist/agents/openclaw.cjs +3 -3
  59. package/dist/agents/openclaw.cjs.map +1 -1
  60. package/dist/agents/opencode.cjs +16 -4
  61. package/dist/agents/opencode.cjs.map +1 -1
  62. package/dist/agents/plugin-extensions.cjs +71 -0
  63. package/dist/agents/plugin-extensions.cjs.map +1 -0
  64. package/dist/agents/plugin-extensions.d.cts +26 -0
  65. package/dist/agents/plugin-extensions.d.mts +26 -0
  66. package/dist/agents/plugin-extensions.d.ts +26 -0
  67. package/dist/agents/plugin-extensions.js +8 -0
  68. package/dist/agents/plugin-extensions.js.map +1 -0
  69. package/dist/agents/post-setup.cjs +14 -3
  70. package/dist/agents/post-setup.cjs.map +1 -1
  71. package/dist/agents/post-setup.d.cts +4 -2
  72. package/dist/agents/post-setup.d.mts +4 -2
  73. package/dist/agents/post-setup.d.ts +4 -2
  74. package/dist/agents/post-setup.js +8 -6
  75. package/dist/agents/sdk-streams.cjs +3 -3
  76. package/dist/agents/sdk-streams.cjs.map +1 -1
  77. package/dist/agents/{session-slot.cjs → session-key.cjs} +4 -4
  78. package/dist/agents/session-key.cjs.map +1 -0
  79. package/dist/agents/session-key.d.cts +12 -0
  80. package/dist/agents/session-key.d.mts +12 -0
  81. package/dist/agents/session-key.d.ts +12 -0
  82. package/dist/agents/session-key.js +6 -0
  83. package/dist/agents/session-key.js.map +1 -0
  84. package/dist/agents/shared.cjs +2 -2
  85. package/dist/agents/shared.cjs.map +1 -1
  86. package/dist/agents/shared.d.cts +4 -4
  87. package/dist/agents/shared.d.mts +4 -4
  88. package/dist/agents/shared.d.ts +4 -4
  89. package/dist/agents/skills.cjs.map +1 -1
  90. package/dist/agents/skills.d.cts +3 -3
  91. package/dist/agents/skills.d.mts +3 -3
  92. package/dist/agents/skills.d.ts +3 -3
  93. package/dist/agents/types.cjs.map +1 -1
  94. package/dist/agents/types.d.cts +55 -54
  95. package/dist/agents/types.d.mts +55 -54
  96. package/dist/agents/types.d.ts +55 -54
  97. package/dist/agents/ui-message-stream.cjs +4 -4
  98. package/dist/agents/ui-message-stream.cjs.map +1 -1
  99. package/dist/agents/unrecognized-events.cjs +32 -0
  100. package/dist/agents/unrecognized-events.cjs.map +1 -0
  101. package/dist/agents/unrecognized-events.d.cts +8 -0
  102. package/dist/agents/unrecognized-events.d.mts +8 -0
  103. package/dist/agents/unrecognized-events.d.ts +8 -0
  104. package/dist/agents/unrecognized-events.js +6 -0
  105. package/dist/agents/unrecognized-events.js.map +1 -0
  106. package/dist/assertions/api.cjs.map +1 -1
  107. package/dist/assertions/api.d.cts +3 -0
  108. package/dist/assertions/api.d.mts +3 -0
  109. package/dist/assertions/api.d.ts +3 -0
  110. package/dist/assertions/collection.cjs +1 -1
  111. package/dist/assertions/collection.cjs.map +1 -1
  112. package/dist/assertions/judge.cjs +1 -1
  113. package/dist/assertions/judge.cjs.map +1 -1
  114. package/dist/assertions/match.cjs +52 -21
  115. package/dist/assertions/match.cjs.map +1 -1
  116. package/dist/assertions/match.d.cts +16 -5
  117. package/dist/assertions/match.d.mts +16 -5
  118. package/dist/assertions/match.d.ts +16 -5
  119. package/dist/assertions/match.js +96 -94
  120. package/dist/assertions/measurements.cjs +61 -0
  121. package/dist/assertions/measurements.cjs.map +1 -0
  122. package/dist/assertions/measurements.d.cts +24 -0
  123. package/dist/assertions/measurements.d.mts +24 -0
  124. package/dist/assertions/measurements.d.ts +24 -0
  125. package/dist/assertions/measurements.js +8 -0
  126. package/dist/assertions/measurements.js.map +1 -0
  127. package/dist/assertions/numeric.cjs +2 -0
  128. package/dist/assertions/numeric.cjs.map +1 -1
  129. package/dist/assertions/numeric.d.cts +1 -1
  130. package/dist/assertions/numeric.d.mts +1 -1
  131. package/dist/assertions/numeric.d.ts +1 -1
  132. package/dist/assertions/quantity.cjs +42 -0
  133. package/dist/assertions/quantity.cjs.map +1 -0
  134. package/dist/assertions/quantity.d.cts +18 -0
  135. package/dist/assertions/quantity.d.mts +18 -0
  136. package/dist/assertions/quantity.d.ts +18 -0
  137. package/dist/assertions/quantity.js +22 -0
  138. package/dist/assertions/quantity.js.map +1 -0
  139. package/dist/assertions/record/attachment.cjs +2 -0
  140. package/dist/assertions/record/attachment.cjs.map +1 -1
  141. package/dist/assertions/record/codec.cjs +5 -1
  142. package/dist/assertions/record/codec.cjs.map +1 -1
  143. package/dist/assertions/record/model.cjs.map +1 -1
  144. package/dist/assertions/record/model.d.cts +3 -1
  145. package/dist/assertions/record/model.d.mts +3 -1
  146. package/dist/assertions/record/model.d.ts +3 -1
  147. package/dist/assertions/runtime.cjs +11 -6
  148. package/dist/assertions/runtime.cjs.map +1 -1
  149. package/dist/cli/program.cjs +3 -0
  150. package/dist/cli/program.cjs.map +1 -1
  151. package/dist/context/assert-first.cjs +6 -4
  152. package/dist/context/assert-first.cjs.map +1 -1
  153. package/dist/context/assert-first.d.cts +9 -3
  154. package/dist/context/assert-first.d.mts +9 -3
  155. package/dist/context/assert-first.d.ts +9 -3
  156. package/dist/context/notes.cjs +47 -0
  157. package/dist/context/notes.cjs.map +1 -0
  158. package/dist/context/notes.d.cts +10 -0
  159. package/dist/context/notes.d.mts +10 -0
  160. package/dist/context/notes.d.ts +10 -0
  161. package/dist/context/notes.js +6 -0
  162. package/dist/context/notes.js.map +1 -0
  163. package/dist/context/send-failures.cjs +1 -7
  164. package/dist/context/send-failures.cjs.map +1 -1
  165. package/dist/context/send-failures.d.cts +2 -3
  166. package/dist/context/send-failures.d.mts +2 -3
  167. package/dist/context/send-failures.d.ts +2 -3
  168. package/dist/context/send-retry.cjs +0 -1
  169. package/dist/context/send-retry.cjs.map +1 -1
  170. package/dist/context/send-retry.d.cts +1 -2
  171. package/dist/context/send-retry.d.mts +1 -2
  172. package/dist/context/send-retry.d.ts +1 -2
  173. package/dist/context/session.cjs +10 -17
  174. package/dist/context/session.cjs.map +1 -1
  175. package/dist/context/session.d.cts +4 -10
  176. package/dist/context/session.d.mts +4 -10
  177. package/dist/context/session.d.ts +4 -10
  178. package/dist/define.cjs +89 -64
  179. package/dist/define.cjs.map +1 -1
  180. package/dist/define.d.cts +3 -3
  181. package/dist/define.d.mts +3 -3
  182. package/dist/define.d.ts +3 -3
  183. package/dist/eval/cli/contribution.cjs +1 -1
  184. package/dist/eval/cli/contribution.cjs.map +1 -1
  185. package/dist/eval/host/index.cjs +1 -1
  186. package/dist/eval/host/index.cjs.map +1 -1
  187. package/dist/eval/record/evaluation.cjs +1 -1
  188. package/dist/eval/record/evaluation.cjs.map +1 -1
  189. package/dist/eval/record/membership-provenance.d.cts +3 -3
  190. package/dist/eval/record/membership-provenance.d.mts +3 -3
  191. package/dist/eval/record/membership-provenance.d.ts +3 -3
  192. package/dist/eval/record/score.cjs +2 -2
  193. package/dist/eval/record/score.cjs.map +1 -1
  194. package/dist/eval/record/sealed-assertion.cjs +1 -1
  195. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  196. package/dist/eval/record/verdict.cjs +2 -2
  197. package/dist/eval/record/verdict.cjs.map +1 -1
  198. package/dist/expect/index.cjs +13 -1
  199. package/dist/expect/index.cjs.map +1 -1
  200. package/dist/expect/index.d.cts +5 -1
  201. package/dist/expect/index.d.mts +5 -1
  202. package/dist/expect/index.d.ts +5 -1
  203. package/dist/expect/index.js +92 -72
  204. package/dist/expect/index.mjs +92 -72
  205. package/dist/experiment/host/cli/contribution.cjs +52 -39
  206. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  207. package/dist/experiment/host/cli/contribution.d.cts +18 -4
  208. package/dist/experiment/host/cli/contribution.d.mts +18 -4
  209. package/dist/experiment/host/cli/contribution.d.ts +18 -4
  210. package/dist/experiment/host/cli/contribution.js +2 -2
  211. package/dist/experiment/host/cli/debug-protocol.cjs +2 -2
  212. package/dist/experiment/host/cli/debug-protocol.cjs.map +1 -1
  213. package/dist/experiment/host/cli/debug-protocol.d.cts +2 -2
  214. package/dist/experiment/host/cli/debug-protocol.d.mts +2 -2
  215. package/dist/experiment/host/cli/debug-protocol.d.ts +2 -2
  216. package/dist/experiment/host/cli/output-protocol.cjs +1 -1
  217. package/dist/experiment/host/cli/output-protocol.cjs.map +1 -1
  218. package/dist/experiment/host/cli/output-protocol.d.cts +2 -2
  219. package/dist/experiment/host/cli/output-protocol.d.mts +2 -2
  220. package/dist/experiment/host/cli/output-protocol.d.ts +2 -2
  221. package/dist/experiment/host/current.cjs +2 -2
  222. package/dist/experiment/host/current.cjs.map +1 -1
  223. package/dist/experiment/host/index.cjs +1 -1
  224. package/dist/experiment/host/index.cjs.map +1 -1
  225. package/dist/experiment/host/operations.cjs +24 -23
  226. package/dist/experiment/host/operations.cjs.map +1 -1
  227. package/dist/experiment/host/runtime.cjs +11 -10
  228. package/dist/experiment/host/runtime.cjs.map +1 -1
  229. package/dist/experiment/host/runtime.d.cts +3 -3
  230. package/dist/experiment/host/runtime.d.mts +3 -3
  231. package/dist/experiment/host/runtime.d.ts +3 -3
  232. package/dist/experiment/host/teardown.cjs +4 -3
  233. package/dist/experiment/host/teardown.cjs.map +1 -1
  234. package/dist/experiment/host/teardown.d.cts +3 -3
  235. package/dist/experiment/host/teardown.d.mts +3 -3
  236. package/dist/experiment/host/teardown.d.ts +3 -3
  237. package/dist/experiment/host/types.cjs.map +1 -1
  238. package/dist/experiment/host/types.d.cts +19 -19
  239. package/dist/experiment/host/types.d.mts +19 -19
  240. package/dist/experiment/host/types.d.ts +19 -19
  241. package/dist/index.cjs +3 -19
  242. package/dist/index.cjs.map +1 -1
  243. package/dist/index.d.cts +4 -8
  244. package/dist/index.d.mts +4 -8
  245. package/dist/index.d.ts +4 -8
  246. package/dist/index.js +12 -34
  247. package/dist/index.mjs +12 -34
  248. package/dist/inspection/assertions.cjs +1 -1
  249. package/dist/inspection/assertions.cjs.map +1 -1
  250. package/dist/inspection/cli/contribution.cjs +8 -7
  251. package/dist/inspection/cli/contribution.cjs.map +1 -1
  252. package/dist/inspection/facts.cjs +4 -4
  253. package/dist/inspection/facts.cjs.map +1 -1
  254. package/dist/inspection/index.cjs +1 -5
  255. package/dist/inspection/index.cjs.map +1 -1
  256. package/dist/inspection/index.d.cts +1 -2
  257. package/dist/inspection/index.d.mts +1 -2
  258. package/dist/inspection/index.d.ts +1 -2
  259. package/dist/inspection/index.js +20 -26
  260. package/dist/inspection/lifecycle.cjs +7 -0
  261. package/dist/inspection/lifecycle.cjs.map +1 -0
  262. package/dist/inspection/lifecycle.d.cts +4 -0
  263. package/dist/inspection/lifecycle.d.mts +4 -0
  264. package/dist/inspection/lifecycle.d.ts +4 -0
  265. package/dist/inspection/lifecycle.js +6 -0
  266. package/dist/inspection/lifecycle.js.map +1 -0
  267. package/dist/inspection/notes.cjs +40 -0
  268. package/dist/inspection/notes.cjs.map +1 -0
  269. package/dist/inspection/notes.d.cts +12 -0
  270. package/dist/inspection/notes.d.mts +12 -0
  271. package/dist/inspection/notes.d.ts +12 -0
  272. package/dist/inspection/notes.js +8 -0
  273. package/dist/inspection/notes.js.map +1 -0
  274. package/dist/inspection/overview.cjs +12 -15
  275. package/dist/inspection/overview.cjs.map +1 -1
  276. package/dist/inspection/overview.d.cts +8 -6
  277. package/dist/inspection/overview.d.mts +8 -6
  278. package/dist/inspection/overview.d.ts +8 -6
  279. package/dist/inspection/planned-attempt.cjs +45 -0
  280. package/dist/inspection/planned-attempt.cjs.map +1 -0
  281. package/dist/inspection/planned-attempt.d.cts +109 -0
  282. package/dist/inspection/planned-attempt.d.mts +109 -0
  283. package/dist/inspection/planned-attempt.d.ts +109 -0
  284. package/dist/inspection/planned-attempt.js +24 -0
  285. package/dist/inspection/planned-attempt.js.map +1 -0
  286. package/dist/inspection/project-result.cjs +5 -5
  287. package/dist/inspection/project-result.cjs.map +1 -1
  288. package/dist/inspection/project-result.d.cts +58 -57
  289. package/dist/inspection/project-result.d.mts +58 -57
  290. package/dist/inspection/project-result.d.ts +58 -57
  291. package/dist/inspection/project-result.js +4 -4
  292. package/dist/inspection/project.cjs +3 -3
  293. package/dist/inspection/project.cjs.map +1 -1
  294. package/dist/inspection/protocol-values.cjs +1 -1
  295. package/dist/inspection/protocol-values.cjs.map +1 -1
  296. package/dist/inspection/protocol-values.d.cts +1 -1
  297. package/dist/inspection/protocol-values.d.mts +1 -1
  298. package/dist/inspection/protocol-values.d.ts +1 -1
  299. package/dist/inspection/protocol.cjs +8 -8
  300. package/dist/inspection/protocol.cjs.map +1 -1
  301. package/dist/inspection/protocol.d.cts +237 -219
  302. package/dist/inspection/protocol.d.mts +237 -219
  303. package/dist/inspection/protocol.d.ts +237 -219
  304. package/dist/inspection/public.cjs +1 -5
  305. package/dist/inspection/public.cjs.map +1 -1
  306. package/dist/inspection/public.d.cts +1 -2
  307. package/dist/inspection/public.d.mts +1 -2
  308. package/dist/inspection/public.d.ts +1 -2
  309. package/dist/inspection/public.js +14 -20
  310. package/dist/inspection/public.mjs +166 -129
  311. package/dist/inspection/query.cjs +1 -1
  312. package/dist/inspection/query.cjs.map +1 -1
  313. package/dist/inspection/results.cjs +61 -52
  314. package/dist/inspection/results.cjs.map +1 -1
  315. package/dist/inspection/results.d.cts +157 -140
  316. package/dist/inspection/results.d.mts +157 -140
  317. package/dist/inspection/results.d.ts +157 -140
  318. package/dist/inspection/select.cjs +33 -28
  319. package/dist/inspection/select.cjs.map +1 -1
  320. package/dist/inspection/source.cjs +1 -1
  321. package/dist/inspection/source.cjs.map +1 -1
  322. package/dist/inspection/sources.cjs +2 -2
  323. package/dist/inspection/sources.cjs.map +1 -1
  324. package/dist/inspection/trace.cjs +9 -8
  325. package/dist/inspection/trace.cjs.map +1 -1
  326. package/dist/inspection/trace.d.cts +4 -4
  327. package/dist/inspection/trace.d.mts +4 -4
  328. package/dist/inspection/trace.d.ts +4 -4
  329. package/dist/loaders/index.cjs +7 -279
  330. package/dist/loaders/index.cjs.map +1 -1
  331. package/dist/loaders/index.d.cts +2 -95
  332. package/dist/loaders/index.d.mts +2 -95
  333. package/dist/loaders/index.d.ts +2 -95
  334. package/dist/loaders/index.js +10 -12
  335. package/dist/loaders/index.mjs +10 -12
  336. package/dist/loaders/runtime.cjs +283 -0
  337. package/dist/loaders/runtime.cjs.map +1 -0
  338. package/dist/loaders/runtime.d.cts +95 -0
  339. package/dist/loaders/runtime.d.mts +95 -0
  340. package/dist/loaders/runtime.d.ts +95 -0
  341. package/dist/loaders/runtime.js +16 -0
  342. package/dist/loaders/runtime.js.map +1 -0
  343. package/dist/migrations/judge-provider.md +6 -6
  344. package/dist/{model-slots.cjs → model-roles.cjs} +26 -7
  345. package/dist/model-roles.cjs.map +1 -0
  346. package/dist/model-roles.d.cts +26 -0
  347. package/dist/model-roles.d.mts +26 -0
  348. package/dist/model-roles.d.ts +26 -0
  349. package/dist/model-roles.js +14 -0
  350. package/dist/model-roles.js.map +1 -0
  351. package/dist/o11y/adapter-usage-projection.cjs +9 -8
  352. package/dist/o11y/adapter-usage-projection.cjs.map +1 -1
  353. package/dist/o11y/adapter-usage-projection.d.cts +23 -15
  354. package/dist/o11y/adapter-usage-projection.d.mts +23 -15
  355. package/dist/o11y/adapter-usage-projection.d.ts +23 -15
  356. package/dist/o11y/cache-read.cjs +14 -14
  357. package/dist/o11y/cache-read.cjs.map +1 -1
  358. package/dist/o11y/cache-read.d.cts +5 -5
  359. package/dist/o11y/cache-read.d.mts +5 -5
  360. package/dist/o11y/cache-read.d.ts +5 -5
  361. package/dist/o11y/derive.cjs.map +1 -1
  362. package/dist/o11y/derive.d.cts +2 -2
  363. package/dist/o11y/derive.d.mts +2 -2
  364. package/dist/o11y/derive.d.ts +2 -2
  365. package/dist/o11y/eval-usage.cjs +9 -9
  366. package/dist/o11y/eval-usage.cjs.map +1 -1
  367. package/dist/o11y/eval-usage.d.cts +7 -7
  368. package/dist/o11y/eval-usage.d.mts +7 -7
  369. package/dist/o11y/eval-usage.d.ts +7 -7
  370. package/dist/o11y/parsers/bub.cjs +57 -81
  371. package/dist/o11y/parsers/bub.cjs.map +1 -1
  372. package/dist/o11y/parsers/index.cjs.map +1 -1
  373. package/dist/o11y/parsers/index.d.cts +2 -0
  374. package/dist/o11y/parsers/index.d.mts +2 -0
  375. package/dist/o11y/parsers/index.d.ts +2 -0
  376. package/dist/o11y/parsers/opencode.cjs +129 -217
  377. package/dist/o11y/parsers/opencode.cjs.map +1 -1
  378. package/dist/o11y/parsers/opencode.d.cts +2 -5
  379. package/dist/o11y/parsers/opencode.d.mts +2 -5
  380. package/dist/o11y/parsers/opencode.d.ts +2 -5
  381. package/dist/o11y/types.cjs.map +1 -1
  382. package/dist/o11y/types.d.cts +1 -1
  383. package/dist/o11y/types.d.mts +1 -1
  384. package/dist/o11y/types.d.ts +1 -1
  385. package/dist/plugin/contracts.cjs +170 -120
  386. package/dist/plugin/contracts.cjs.map +1 -1
  387. package/dist/plugin/contracts.d.cts +102 -90
  388. package/dist/plugin/contracts.d.mts +102 -90
  389. package/dist/plugin/contracts.d.ts +102 -90
  390. package/dist/plugin/contracts.js +16 -12
  391. package/dist/plugin/index.cjs.map +1 -1
  392. package/dist/plugin/index.d.cts +1 -1
  393. package/dist/plugin/index.d.mts +1 -1
  394. package/dist/plugin/index.d.ts +1 -1
  395. package/dist/plugin/link.cjs +69 -64
  396. package/dist/plugin/link.cjs.map +1 -1
  397. package/dist/plugin/link.d.cts +5 -3
  398. package/dist/plugin/link.d.mts +5 -3
  399. package/dist/plugin/link.d.ts +5 -3
  400. package/dist/plugin/link.js +12 -8
  401. package/dist/record/codec/seal-manifest.d.cts +3 -3
  402. package/dist/record/codec/seal-manifest.d.mts +3 -3
  403. package/dist/record/codec/seal-manifest.d.ts +3 -3
  404. package/dist/record/family/attempt-note/definition.cjs +12 -0
  405. package/dist/record/family/attempt-note/definition.cjs.map +1 -0
  406. package/dist/record/family/attempt-note/definition.d.cts +6 -0
  407. package/dist/record/family/attempt-note/definition.d.mts +6 -0
  408. package/dist/record/family/attempt-note/definition.d.ts +6 -0
  409. package/dist/record/family/attempt-note/definition.js +6 -0
  410. package/dist/record/family/attempt-note/definition.js.map +1 -0
  411. package/dist/record/family/attempt-note/persistence.cjs +10 -0
  412. package/dist/record/family/attempt-note/persistence.cjs.map +1 -0
  413. package/dist/record/family/attempt-note/persistence.d.cts +6 -0
  414. package/dist/record/family/attempt-note/persistence.d.mts +6 -0
  415. package/dist/record/family/attempt-note/persistence.d.ts +6 -0
  416. package/dist/record/family/attempt-note/persistence.js +6 -0
  417. package/dist/record/family/attempt-note/persistence.js.map +1 -0
  418. package/dist/record/family/attempt-note/schema.cjs +20 -0
  419. package/dist/record/family/attempt-note/schema.cjs.map +1 -0
  420. package/dist/record/family/attempt-note/schema.d.cts +21 -0
  421. package/dist/record/family/attempt-note/schema.d.mts +21 -0
  422. package/dist/record/family/attempt-note/schema.d.ts +21 -0
  423. package/dist/record/family/attempt-note/schema.js +10 -0
  424. package/dist/record/family/attempt-note/schema.js.map +1 -0
  425. package/dist/record/family/catalog.cjs +32 -29
  426. package/dist/record/family/catalog.cjs.map +1 -1
  427. package/dist/record/family/catalog.d.cts +7 -2
  428. package/dist/record/family/catalog.d.mts +7 -2
  429. package/dist/record/family/catalog.d.ts +7 -2
  430. package/dist/record/family/current.cjs +48 -45
  431. package/dist/record/family/current.cjs.map +1 -1
  432. package/dist/record/family/current.d.cts +15 -0
  433. package/dist/record/family/current.d.mts +15 -0
  434. package/dist/record/family/current.d.ts +15 -0
  435. package/dist/record/model/index.js +66 -64
  436. package/dist/record/model/run-context.cjs +9 -3
  437. package/dist/record/model/run-context.cjs.map +1 -1
  438. package/dist/record/model/run-context.d.cts +9 -2
  439. package/dist/record/model/run-context.d.mts +9 -2
  440. package/dist/record/model/run-context.d.ts +9 -2
  441. package/dist/record/model/run-context.js +8 -6
  442. package/dist/record/model/seal-manifest.d.cts +1 -1
  443. package/dist/record/model/seal-manifest.d.mts +1 -1
  444. package/dist/record/model/seal-manifest.d.ts +1 -1
  445. package/dist/run/cli/contribution.cjs +6 -32
  446. package/dist/run/cli/contribution.cjs.map +1 -1
  447. package/dist/run/host/runtime.cjs +1 -1
  448. package/dist/run/host/runtime.cjs.map +1 -1
  449. package/dist/run/storage/sqlite.cjs +7 -7
  450. package/dist/run/storage/sqlite.cjs.map +1 -1
  451. package/dist/runner/adapter-usage.cjs +5 -3
  452. package/dist/runner/adapter-usage.cjs.map +1 -1
  453. package/dist/runner/adapter-usage.d.cts +2 -2
  454. package/dist/runner/adapter-usage.d.mts +2 -2
  455. package/dist/runner/adapter-usage.d.ts +2 -2
  456. package/dist/runner/adoption.cjs +10 -12
  457. package/dist/runner/adoption.cjs.map +1 -1
  458. package/dist/runner/attempt-notes.cjs +8 -0
  459. package/dist/runner/attempt-notes.cjs.map +1 -0
  460. package/dist/runner/attempt-notes.d.cts +4 -0
  461. package/dist/runner/attempt-notes.d.mts +4 -0
  462. package/dist/runner/attempt-notes.d.ts +4 -0
  463. package/dist/runner/attempt-notes.js +8 -0
  464. package/dist/runner/attempt-notes.js.map +1 -0
  465. package/dist/runner/attempt.cjs +61 -73
  466. package/dist/runner/attempt.cjs.map +1 -1
  467. package/dist/runner/attempt.d.cts +3 -3
  468. package/dist/runner/attempt.d.mts +3 -3
  469. package/dist/runner/attempt.d.ts +3 -3
  470. package/dist/runner/command-plan.cjs +21 -26
  471. package/dist/runner/command-plan.cjs.map +1 -1
  472. package/dist/runner/command-plan.d.cts +4 -4
  473. package/dist/runner/command-plan.d.mts +4 -4
  474. package/dist/runner/command-plan.d.ts +4 -4
  475. package/dist/runner/command-plan.js +4 -4
  476. package/dist/runner/config-identity.cjs.map +1 -1
  477. package/dist/runner/config-identity.d.cts +2 -2
  478. package/dist/runner/config-identity.d.mts +2 -2
  479. package/dist/runner/config-identity.d.ts +2 -2
  480. package/dist/runner/discover.cjs +6 -6
  481. package/dist/runner/discover.cjs.map +1 -1
  482. package/dist/runner/eval-selection.cjs +15 -1
  483. package/dist/runner/eval-selection.cjs.map +1 -1
  484. package/dist/runner/eval-selection.d.cts +4 -0
  485. package/dist/runner/eval-selection.d.mts +4 -0
  486. package/dist/runner/eval-selection.d.ts +4 -0
  487. package/dist/runner/feedback/human.cjs +1 -1
  488. package/dist/runner/feedback/human.cjs.map +1 -1
  489. package/dist/runner/feedback/json.cjs +4 -2
  490. package/dist/runner/feedback/json.cjs.map +1 -1
  491. package/dist/runner/feedback/json.d.cts +1 -1
  492. package/dist/runner/feedback/json.d.mts +1 -1
  493. package/dist/runner/feedback/json.d.ts +1 -1
  494. package/dist/runner/feedback/sink.cjs +1 -1
  495. package/dist/runner/feedback/sink.cjs.map +1 -1
  496. package/dist/runner/feedback/sink.d.cts +1 -1
  497. package/dist/runner/feedback/sink.d.mts +1 -1
  498. package/dist/runner/feedback/sink.d.ts +1 -1
  499. package/dist/runner/fingerprint.cjs +1 -1
  500. package/dist/runner/fingerprint.cjs.map +1 -1
  501. package/dist/runner/lock.cjs +1 -3
  502. package/dist/runner/lock.cjs.map +1 -1
  503. package/dist/runner/lock.d.cts +0 -2
  504. package/dist/runner/lock.d.mts +0 -2
  505. package/dist/runner/lock.d.ts +0 -2
  506. package/dist/runner/lock.js +14 -16
  507. package/dist/runner/project-target.cjs.map +1 -1
  508. package/dist/runner/project-target.d.cts +2 -2
  509. package/dist/runner/project-target.d.mts +2 -2
  510. package/dist/runner/project-target.d.ts +2 -2
  511. package/dist/runner/record/attachments.cjs +2 -2
  512. package/dist/runner/record/attachments.cjs.map +1 -1
  513. package/dist/runner/record/planning.cjs +8 -2
  514. package/dist/runner/record/planning.cjs.map +1 -1
  515. package/dist/runner/record.cjs +2 -0
  516. package/dist/runner/record.cjs.map +1 -1
  517. package/dist/runner/report.cjs +3 -3
  518. package/dist/runner/report.cjs.map +1 -1
  519. package/dist/runner/report.d.cts +1 -1
  520. package/dist/runner/report.d.mts +1 -1
  521. package/dist/runner/report.d.ts +1 -1
  522. package/dist/runner/reuse-plan.cjs +2 -2
  523. package/dist/runner/reuse-plan.cjs.map +1 -1
  524. package/dist/runner/run.cjs +10 -45
  525. package/dist/runner/run.cjs.map +1 -1
  526. package/dist/runner/sandbox-pool.cjs +1 -2
  527. package/dist/runner/sandbox-pool.cjs.map +1 -1
  528. package/dist/runner/setup-prefix-preparation.cjs +1 -1
  529. package/dist/runner/setup-prefix-preparation.cjs.map +1 -1
  530. package/dist/runner/teardown-registry.cjs +2 -2
  531. package/dist/runner/teardown-registry.cjs.map +1 -1
  532. package/dist/runner/teardown-registry.d.cts +1 -1
  533. package/dist/runner/teardown-registry.d.mts +1 -1
  534. package/dist/runner/teardown-registry.d.ts +1 -1
  535. package/dist/runner/types.cjs +4 -4
  536. package/dist/runner/types.cjs.map +1 -1
  537. package/dist/runner/types.d.cts +64 -92
  538. package/dist/runner/types.d.mts +64 -92
  539. package/dist/runner/types.d.ts +64 -92
  540. package/dist/runner/types.js +2 -2
  541. package/dist/sandbox/action.cjs +1 -1
  542. package/dist/sandbox/action.cjs.map +1 -1
  543. package/dist/sandbox/cli/contribution.cjs +17 -14
  544. package/dist/sandbox/cli/contribution.cjs.map +1 -1
  545. package/dist/sandbox/cli/contribution.d.cts +1 -1
  546. package/dist/sandbox/cli/contribution.d.mts +1 -1
  547. package/dist/sandbox/cli/contribution.d.ts +1 -1
  548. package/dist/sandbox/commands.cjs +1 -1
  549. package/dist/sandbox/commands.cjs.map +1 -1
  550. package/dist/sandbox/commands.d.cts +1 -1
  551. package/dist/sandbox/commands.d.mts +1 -1
  552. package/dist/sandbox/commands.d.ts +1 -1
  553. package/dist/sandbox/compose.cjs +2 -2
  554. package/dist/sandbox/compose.cjs.map +1 -1
  555. package/dist/sandbox/docker-profile/registry.cjs +5 -10
  556. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  557. package/dist/sandbox/docker-profile/registry.d.cts +0 -4
  558. package/dist/sandbox/docker-profile/registry.d.mts +0 -4
  559. package/dist/sandbox/docker-profile/registry.d.ts +0 -4
  560. package/dist/sandbox/docker-profile/registry.js +6 -14
  561. package/dist/sandbox/docker-profile/runtime.cjs +1 -1
  562. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  563. package/dist/sandbox/docker-profile/schema.cjs +12 -16
  564. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  565. package/dist/sandbox/docker-profile/schema.d.cts +2 -6
  566. package/dist/sandbox/docker-profile/schema.d.mts +2 -6
  567. package/dist/sandbox/docker-profile/schema.d.ts +2 -6
  568. package/dist/sandbox/docker-profile/schema.js +24 -32
  569. package/dist/sandbox/incus.cjs +2 -2
  570. package/dist/sandbox/incus.cjs.map +1 -1
  571. package/dist/sandbox/index.cjs +4 -36
  572. package/dist/sandbox/index.cjs.map +1 -1
  573. package/dist/sandbox/index.d.cts +4 -8
  574. package/dist/sandbox/index.d.mts +4 -8
  575. package/dist/sandbox/index.d.ts +4 -8
  576. package/dist/sandbox/index.js +116 -174
  577. package/dist/sandbox/index.mjs +116 -174
  578. package/dist/sandbox/layer.cjs +3 -3
  579. package/dist/sandbox/layer.cjs.map +1 -1
  580. package/dist/sandbox/link.cjs +5 -0
  581. package/dist/sandbox/link.cjs.map +1 -1
  582. package/dist/sandbox/link.d.cts +3 -0
  583. package/dist/sandbox/link.d.mts +3 -0
  584. package/dist/sandbox/link.d.ts +3 -0
  585. package/dist/sandbox/runtime.cjs +9 -4
  586. package/dist/sandbox/runtime.cjs.map +1 -1
  587. package/dist/shared/failure-class.cjs +5 -5
  588. package/dist/shared/failure-class.cjs.map +1 -1
  589. package/dist/shared/failure-class.d.cts +4 -10
  590. package/dist/shared/failure-class.d.mts +4 -10
  591. package/dist/shared/failure-class.d.ts +4 -10
  592. package/dist/shared/types.cjs.map +1 -1
  593. package/dist/shared/types.d.cts +1 -1
  594. package/dist/shared/types.d.mts +1 -1
  595. package/dist/shared/types.d.ts +1 -1
  596. package/dist/show/contribution.cjs +17 -2
  597. package/dist/show/contribution.cjs.map +1 -1
  598. package/dist/show/contribution.d.cts +14 -0
  599. package/dist/show/contribution.d.mts +14 -0
  600. package/dist/show/contribution.d.ts +14 -0
  601. package/dist/show/model.cjs +8 -5
  602. package/dist/show/model.cjs.map +1 -1
  603. package/dist/show/model.d.cts +11 -8
  604. package/dist/show/model.d.mts +11 -8
  605. package/dist/show/model.d.ts +11 -8
  606. package/dist/show/render.cjs +34 -22
  607. package/dist/show/render.cjs.map +1 -1
  608. package/dist/sources/projector.cjs +1 -1
  609. package/dist/sources/projector.cjs.map +1 -1
  610. package/dist/types.cjs +1 -1
  611. package/dist/types.cjs.map +1 -1
  612. package/dist/types.d.cts +1 -1
  613. package/dist/types.d.mts +1 -1
  614. package/dist/types.d.ts +1 -1
  615. package/dist/types.js +2 -2
  616. package/dist/view/app-dist/.vite/manifest.json +2 -2
  617. package/dist/view/app-dist/assets/{index-B3ijZRph.js → index-CxrOUvHC.js} +17 -17
  618. package/dist/view/app-dist/assets/{quality-cost-scatter-B--DfJ9s.js → quality-cost-scatter-B6Aiss7x.js} +1 -1
  619. package/dist/view/app-dist/index.html +1 -1
  620. package/dist/view/cli/contribution.cjs +1 -1
  621. package/dist/view/cli/contribution.cjs.map +1 -1
  622. package/dist/view/function-runtime.mjs +318 -121
  623. package/dist/view/http-protocol.d.cts +1 -1
  624. package/dist/view/http-protocol.d.mts +1 -1
  625. package/dist/view/http-protocol.d.ts +1 -1
  626. package/dist/view/inspection-host.cjs +2 -2
  627. package/dist/view/inspection-host.cjs.map +1 -1
  628. package/dist/view/inspection-host.d.cts +349 -331
  629. package/dist/view/inspection-host.d.mts +349 -331
  630. package/dist/view/inspection-host.d.ts +349 -331
  631. package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +9 -9
  632. package/docs-site/zh/examples/integrations/claude-sdk.mdx +8 -8
  633. package/docs-site/zh/examples/integrations/codex-sdk.mdx +4 -4
  634. package/docs-site/zh/examples/integrations/langgraph.mdx +6 -6
  635. package/docs-site/zh/examples/integrations/pi-sdk.mdx +8 -8
  636. package/docs-site/zh/explanation/adapter.mdx +6 -6
  637. package/docs-site/zh/explanation/assert.mdx +7 -7
  638. package/docs-site/zh/explanation/drive.mdx +4 -4
  639. package/docs-site/zh/explanation/hitl.mdx +2 -2
  640. package/docs-site/zh/explanation/judge.mdx +3 -3
  641. package/docs-site/zh/index.mdx +18 -0
  642. package/docs-site/zh/introduction.mdx +4 -3
  643. package/docs-site/zh/reference/builtin-agents.mdx +46 -49
  644. package/docs-site/zh/reference/cli.mdx +16 -14
  645. package/docs-site/zh/reference/define-agent.mdx +19 -19
  646. package/docs-site/zh/reference/define-config.mdx +7 -15
  647. package/docs-site/zh/reference/define-eval.mdx +20 -14
  648. package/docs-site/zh/reference/define-experiment.mdx +18 -39
  649. package/docs-site/zh/reference/events.mdx +1 -1
  650. package/docs-site/zh/reference/expect.mdx +21 -0
  651. package/docs-site/zh/reference/official-adapters.mdx +12 -5
  652. package/docs-site/zh/troubleshooting/debugging.mdx +2 -2
  653. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +1 -1
  654. package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
  655. package/docs-site/zh/tutorials/authoring.mdx +4 -3
  656. package/docs-site/zh/tutorials/compare-runs.mdx +1 -1
  657. package/docs-site/zh/tutorials/concurrency.mdx +8 -8
  658. package/docs-site/zh/tutorials/configuration.mdx +5 -5
  659. package/docs-site/zh/tutorials/control-run-cost.mdx +49 -9
  660. package/docs-site/zh/tutorials/eval-groups.mdx +1 -1
  661. package/docs-site/zh/tutorials/evaluation-kinds.mdx +5 -5
  662. package/docs-site/zh/tutorials/experiment-services.mdx +32 -32
  663. package/docs-site/zh/tutorials/handle-execution-failures.mdx +2 -28
  664. package/docs-site/zh/tutorials/plugins.mdx +49 -143
  665. package/docs-site/zh/tutorials/sandbox-agent.mdx +1 -1
  666. package/docs-site/zh/tutorials/sandbox-reuse.mdx +7 -7
  667. package/docs-site/zh/tutorials/upgrade-0-18.mdx +64 -0
  668. package/docs-site/zh/tutorials/upgrade-0-19.mdx +121 -0
  669. package/docs-site/zh/tutorials/upgrade-0-20.mdx +12 -0
  670. package/docs-site/zh/tutorials/verify-judge.mdx +4 -3
  671. package/docs-site/zh/tutorials/viewing-results.mdx +2 -2
  672. package/docs-site/zh/tutorials/write-experiment.mdx +1 -1
  673. package/docs-site/zh/tutorials/write-send.mdx +13 -13
  674. package/package.json +1 -1
  675. package/dist/agents/effect-runtime.cjs.map +0 -1
  676. package/dist/agents/effect-runtime.d.cts +0 -29
  677. package/dist/agents/effect-runtime.d.mts +0 -29
  678. package/dist/agents/effect-runtime.d.ts +0 -29
  679. package/dist/agents/effect-runtime.js +0 -16
  680. package/dist/agents/effect-runtime.js.map +0 -1
  681. package/dist/agents/session-slot.cjs.map +0 -1
  682. package/dist/agents/session-slot.d.cts +0 -12
  683. package/dist/agents/session-slot.d.mts +0 -12
  684. package/dist/agents/session-slot.d.ts +0 -12
  685. package/dist/agents/session-slot.js +0 -6
  686. package/dist/agents/session-slot.js.map +0 -1
  687. package/dist/model-slots.cjs.map +0 -1
  688. package/dist/model-slots.d.cts +0 -19
  689. package/dist/model-slots.d.mts +0 -19
  690. package/dist/model-slots.d.ts +0 -19
  691. package/dist/model-slots.js +0 -8
  692. package/dist/model-slots.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["render.ts"],"names":[],"mappings":"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","sourcesContent":["// @concord-file ne-surface-show-render\n// @concord-implements docs/feature/inspection/cli.md\n// @concord-implements docs/feature/run-inspection/README.md\nimport { renderTerminal, type TerminalBlock, type TerminalPanelContentBlock, charDisplayWidth, stringWidth, padDisplay, wrapDisplay, panelContentWidth, } from \"../terminal/index.ts\";\nimport type { Aggregate, AttemptView, DiffView, ExperimentView, ExecutionValue, ExecutionDisplayPreviewBlock, ExecutionDisplayDetailBlock, Metric, OverviewView, RunView, ScoredValue, SourcesView, TimingView, TraceDetailView, TraceItem, TraceView, UsageView, } from \"./model.ts\";\nimport { decodeBase64Bytes } from \"../inspection/bytes.ts\";\nimport { displayTextHasForbiddenCharacter } from \"../record/family/execution-traces/schema.ts\";\nimport type { InspectionProjectResult } from \"../inspection/project-result.ts\";\nconst TERMINAL_OPTIONS = Object.freeze({ width: 80, mode: \"plain\" as const });\nconst terminal = (blocks: readonly TerminalBlock[]): string => renderTerminal(blocks, TERMINAL_OPTIONS);\nconst fmt = (value: number): string => Number.isInteger(value)\n ? String(value)\n : value.toFixed(2).replace(/0+$/u, \"\").replace(/\\.$/u, \"\");\nconst metric = (value: Metric, formatValue: (value: number) => string = fmt): string => {\n if (value.value === null)\n return value.state;\n const rendered = formatValue(value.value);\n return value.state === \"available\"\n ? rendered\n : `${rendered} (${value.state})`;\n};\nconst passRate = (value: Metric): string => metric(value, (rate) => `${fmt(rate * 100)}%`);\nconst duration = (value: Metric): string => metric(value, (milliseconds) => {\n if (milliseconds < 1000)\n return `${fmt(milliseconds)} ms`;\n if (milliseconds < 60000)\n return `${fmt(milliseconds / 1000)} s`;\n if (milliseconds < 3600000)\n return `${fmt(milliseconds / 60000)} min`;\n return `${fmt(milliseconds / 3600000)} h`;\n});\nconst score = (value: ScoredValue, verdict: AttemptView[\"verdict\"]): string => value.state === \"not-scored\"\n ? value.state\n : `${fmt(value.earned)}/${fmt(value.possible)} (${value.state}${value.state === \"unavailable\"\n ? `; ${value.unavailable} unavailable`\n : \"\"}${value.state === \"complete\" && verdict === \"passed\" ? \"; scored\" : \"\"})`;\nconst aggregateEntries = (value: Aggregate): TerminalPanelContentBlock & {\n readonly kind: \"keyValue\";\n} => ({\n kind: \"keyValue\",\n entries: [\n { key: \"Observed\", value: `${value.observed}/${value.expected}` },\n {\n key: \"Verdicts\",\n value: value.failed === 0 && value.errored === 0 && value.skipped === 0\n ? `${value.passed} passed`\n : `${value.passed} passed; ${value.failed} failed; ${value.errored} errored; ${value.skipped} skipped`,\n },\n ...(value.evaluationKind === \"points\" ? [] : [{ key: \"Pass rate\", value: passRate(value.passRate) }]),\n ...(value.evaluationKind === \"pass\"\n ? []\n : [{ key: \"Score\", value: metric(value.score) }]),\n { key: \"Duration\", value: duration(value.durationMs) },\n { key: \"Tokens\", value: metric(value.tokens) },\n ],\n});\ninterface ExperimentGroup {\n readonly name: string | null;\n readonly experiments: OverviewView[\"experiments\"];\n}\nfunction experimentGroup(experimentId: string): string | null {\n const separator = experimentId.indexOf(\"/\");\n return separator <= 0 ? null : experimentId.slice(0, separator);\n}\nfunction relativeToGroup(id: string, group: string | null): string {\n const prefix = group === null ? \"\" : `${group}/`;\n return prefix !== \"\" && id.startsWith(prefix) ? id.slice(prefix.length) : id;\n}\nfunction groupExperiments(value: OverviewView): readonly ExperimentGroup[] {\n const groups = new Map<string | null, OverviewView[\"experiments\"][number][]>();\n for (const experiment of value.experiments) {\n const group = experimentGroup(experiment.experimentId);\n const members = groups.get(group) ?? [];\n members.push(experiment);\n groups.set(group, members);\n }\n return [...groups].map(([name, experiments]) => ({ name, experiments }));\n}\nconst attemptBlocks = (cells: OverviewView[\"cells\"], group: string | null, all: boolean, showFailed = false): readonly TerminalPanelContentBlock[] => {\n let shownErrors = 0;\n return cells.flatMap((cell) => {\n const showScore = cell.aggregate.evaluationKind !== \"pass\";\n const members = all\n ? cell.members\n : cell.members.filter((member) => {\n if (member.publication.state !== \"published\")\n return true;\n if (member.publication.verdict === \"passed\" ||\n (member.publication.verdict === \"failed\" && !showFailed))\n return false;\n if (member.publication.verdict !== \"errored\")\n return true;\n shownErrors += 1;\n return shownErrors <= 5;\n });\n if (cell.members.length > 0 && members.length === 0)\n return [];\n return [\n {\n kind: \"divider\" as const,\n title: `Eval ${relativeToGroup(cell.evalId, group)}`,\n attachNext: true,\n },\n {\n kind: \"table\" as const,\n columns: [\n { header: \"Attempt\", maxWidth: 14 },\n { header: \"Verdict\" },\n { header: \"Duration\" },\n ...(showScore ? [{ header: \"Score\" }] : []),\n ],\n overflow: \"wrap\" as const,\n rows: members.length === 0\n ? [[\n \"not-recorded\",\n \"not-recorded\",\n duration(cell.aggregate.durationMs),\n ...(showScore ? [metric(cell.aggregate.score)] : []),\n ]]\n : members.map((member) => [\n member.publication.state === \"published\"\n ? member.publication.attemptLocator\n : member.publication.state === \"absent\"\n ? `absent (${member.publication.reason})`\n : \"pending\",\n member.publication.state === \"published\"\n ? member.publication.verdict ?? \"not-recorded\"\n : member.publication.state,\n member.publication.state === \"published\"\n ? duration(member.publication.durationMs)\n : member.publication.state,\n ...(showScore\n ? [member.publication.state === \"published\"\n ? `${metric(member.publication.score)}${member.publication.verdict === \"passed\" && member.publication.score.state === \"available\" && member.publication.score.value !== null ? \" (scored)\" : \"\"}`\n : member.publication.state]\n : []),\n ]),\n },\n ];\n });\n};\nconst hiddenAttemptSummary = (cells: OverviewView[\"cells\"], showFailed = false): string | null => {\n const counts = { passed: 0, scored: 0, failed: 0, errored: 0 };\n for (const cell of cells) {\n for (const member of cell.members) {\n if (member.publication.state !== \"published\")\n continue;\n const verdict = member.publication.verdict;\n if (verdict === \"passed\") {\n if (cell.aggregate.evaluationKind === \"points\" && member.publication.score.state === \"available\" && member.publication.score.value !== null) {\n counts.scored += 1;\n }\n else {\n counts.passed += 1;\n }\n }\n else if (verdict === \"failed\" || verdict === \"errored\") {\n counts[verdict] += 1;\n }\n }\n }\n const hidden = [\n ...(counts.passed > 0 ? [`${counts.passed} passed`] : []),\n ...(counts.scored > 0 ? [`${counts.scored} scored`] : []),\n ...(!showFailed && counts.failed > 0 ? [`${counts.failed} failed`] : []),\n ...(counts.errored > 5 ? [`${counts.errored - 5} errored`] : []),\n ];\n return hidden.length === 0 ? null : `${hidden.join(\"; \")} Attempts hidden`;\n};\nconst compactContinuation = (cells: OverviewView[\"cells\"], experimentId: string, all: boolean, showFailed = false): readonly TerminalPanelContentBlock[] => {\n if (all)\n return [];\n const hidden = hiddenAttemptSummary(cells, showFailed);\n return hidden === null\n ? []\n : [\n {\n kind: \"divider\",\n title: hidden,\n attachNext: true,\n },\n {\n kind: \"keyValue\",\n entries: [{\n key: \"See more\",\n value: `niceeval show --experiment ${experimentId}`,\n }],\n },\n ];\n};\nconst stateCount = (state: string, count: number, noun: string): string => `${state}; ${count} ${noun}s`;\nconst textOrNotRecorded = (value: string | null | undefined): string => value ?? \"not-recorded\";\nexport function renderOverview(value: OverviewView, options: {\n readonly all?: boolean;\n readonly recorded?: boolean;\n readonly current?: InspectionProjectResult;\n} = {}): string {\n const all = options.all === true;\n const current = options.current;\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: current === undefined ? options.recorded === true ? \"Recorded results\" : \"NiceEval results\" : \"Current results\",\n blocks: [\n { kind: \"divider\", title: \"Totals\" },\n current === undefined ? aggregateEntries(value.totals) : {\n kind: \"keyValue\",\n entries: [\n { key: \"Covered\", value: `${current.coverage.covered}/${current.coverage.expected}` },\n { key: \"Gaps\", value: String(current.coverage.gaps) },\n { key: \"Verdicts\", value: `${value.totals.passed} passed; ${value.totals.failed} failed; ${value.totals.errored} errored; ${value.totals.skipped} skipped` },\n ...(value.totals.evaluationKind === \"points\" ? [] : [{ key: \"Pass rate\", value: passRate(value.totals.passRate) }]),\n ...(value.totals.evaluationKind === \"pass\" ? [] : [{ key: \"Score\", value: metric(value.totals.score) }]),\n ],\n },\n ],\n },\n ];\n if (value.experiments.length > 0) {\n const groups = groupExperiments(value);\n blocks.push({\n kind: \"panel\",\n title: \"Experiments\",\n blocks: groups.flatMap((group) => {\n const showPassRate = group.experiments.some(({ aggregate }) => aggregate.evaluationKind !== \"points\");\n const showScore = group.experiments.some(({ aggregate }) => aggregate.evaluationKind !== \"pass\");\n return [\n ...(group.name === null\n ? []\n : [{ kind: \"divider\" as const, title: group.name }]),\n {\n kind: \"table\" as const,\n columns: [\n { header: \"Experiment\" },\n { header: current === undefined ? \"Observed\" : \"Covered\" },\n ...(current === undefined ? [{ header: \"Adapter\" }, { header: \"Model\" }] : [{ header: \"Gaps\" }]),\n ...(showPassRate ? [{ header: \"Pass rate\" }] : []),\n ...(showScore ? [{ header: \"Score\" }] : []),\n ],\n rows: group.experiments.map((experiment) => [\n relativeToGroup(experiment.experimentId, group.name),\n `${experiment.aggregate.observed}/${experiment.aggregate.expected}`,\n ...(current === undefined ? [adapterValue(experiment.adapter), executionValue(experiment.model)] : [String(current.experiments.find(({ experimentId }) => experimentId === experiment.experimentId)!.denominator.missing)]),\n ...(showPassRate ? [passRate(experiment.aggregate.passRate)] : []),\n ...(showScore ? [metric(experiment.aggregate.score)] : []),\n ]),\n },\n ];\n }),\n });\n }\n if (current !== undefined) {\n const currentGroups = groupExperiments(value).flatMap((group) => group.name === null\n ? group.experiments.map((experiment) => ({ name: null, experiments: [experiment] }))\n : [group]);\n for (const group of currentGroups) {\n blocks.push({\n kind: \"panel\",\n title: `Attempts · ${group.name ?? group.experiments[0]!.experimentId}`,\n blocks: group.experiments.flatMap((experiment) => {\n const experimentCells = value.cells.filter((cell) => cell.experimentId === experiment.experimentId && cell.members.length > 0);\n const gaps = current.slots.filter((slot) => slot.experimentId === experiment.experimentId && slot.state === \"gap\");\n return [\n ...(group.name === null ? [] : [{ kind: \"divider\" as const, title: `Experiment ${experiment.experimentId}`, attachNext: true }]),\n ...gaps.flatMap((slot): TerminalPanelContentBlock[] => slot.state !== \"gap\" ? [] : [\n { kind: \"divider\", title: `Eval ${relativeToGroup(slot.evalId, group.name)}`, attachNext: true },\n { kind: \"divider\", title: `Gap ${slot.reason}`, attachNext: slot.previous !== null },\n ...(slot.previous === null ? [] : [{ kind: \"divider\" as const, title: `Previous result ${slot.previous.locator}` }]),\n ]),\n ...attemptBlocks(experimentCells, group.name, all, true),\n ...compactContinuation(experimentCells, experiment.experimentId, all, true),\n ];\n }),\n });\n }\n if (current.history.length > 0)\n blocks.push({\n kind: \"panel\",\n title: \"History\",\n blocks: [{\n kind: \"table\",\n columns: [{ header: \"Experiment\" }, { header: \"Eval\" }, { header: \"Attempt\" }, { header: \"Previous result\" }],\n rows: current.history.map((slot) => [slot.experimentId, slot.evalId, String(slot.attemptOrdinal), slot.locator ?? slot.sourceRunId]),\n }],\n });\n const next = current.experiments.filter((experiment) => experiment.denominator.missing > 0);\n return terminal(blocks) + next.map((experiment) => `\\nNext: niceeval exp ${experiment.experimentId} --dry\\n`).join(\"\");\n }\n if (value.cells.length > 0) {\n for (const group of groupExperiments(value)) {\n const experimentIds = new Set(group.experiments.map(({ experimentId }) => experimentId));\n const cells = value.cells.filter(({ experimentId }) => experimentIds.has(experimentId));\n blocks.push({\n kind: \"panel\",\n title: group.name === null ? \"Attempts\" : `Attempts · ${group.name}`,\n blocks: group.experiments.flatMap((experiment) => {\n const experimentCells = cells.filter(({ experimentId }) => experimentId === experiment.experimentId);\n return [\n {\n kind: \"divider\" as const,\n title: `Experiment ${experiment.experimentId}`,\n attachNext: true,\n },\n ...attemptBlocks(experimentCells, group.name, all),\n ...compactContinuation(experimentCells, experiment.experimentId, all),\n ];\n }),\n });\n }\n }\n return terminal(blocks);\n}\nfunction adapterValue(value: import(\"./model.ts\").AdapterValue): string {\n if (value.state === \"mixed\")\n return \"mixed\";\n const identity = value.value;\n return identity.behaviorRevision === null\n ? `${identity.name} (${identity.contract}; revision not declared)`\n : `${identity.name} (${identity.contract}; revision ${identity.behaviorRevision})`;\n}\nexport function renderExperiment(value: ExperimentView): string {\n const { totalCosts, coverage } = value.costSummary;\n return terminal([\n {\n kind: \"panel\",\n title: `Experiment ${value.experimentId}`,\n blocks: [\n { kind: \"divider\", title: totalCosts.state === \"complete\" ? \"Experiment total costs\" : \"Experiment known subtotal\" },\n ...totalCostBlocks(totalCosts).slice(1),\n { kind: \"keyValue\", entries: [\n { key: \"Scope\", value: \"Latest recorded slots; replaced executions excluded\" },\n { key: \"Selected slots\", value: String(coverage.selectedSlotCount) },\n { key: \"Resolved slots\", value: String(coverage.resolvedSlotCount) },\n { key: \"Unique origin Attempts\", value: String(coverage.originAttemptCount) },\n { key: \"Attempts with complete costs\", value: String(coverage.completeAttemptCount) },\n { key: \"Attempts with partial costs\", value: String(coverage.partialAttemptCount) },\n { key: \"Attempts with unavailable costs\", value: String(coverage.unavailableAttemptCount) },\n { key: \"Unresolved slots\", value: String(coverage.unresolvedSlotCount) },\n ] },\n { kind: \"divider\", title: \"Summary\" },\n aggregateEntries(value.aggregate),\n { kind: \"divider\", title: \"Attempts\" },\n ...attemptBlocks(value.cells, null, true),\n { kind: \"divider\", title: \"Models and usage\" },\n { kind: \"keyValue\", entries: [\n { key: \"Origin Attempts\", value: `${value.modelUsage.attempts.length} shown; ${value.modelUsage.totalAttemptCount} selected; ${value.modelUsage.omittedAttemptCount} omitted; ${value.modelUsage.unresolvedAttemptCount} unresolved` },\n { key: \"Scope\", value: \"Per origin Attempt; recorded calls only\" },\n ] },\n ...value.modelUsage.attempts.flatMap<TerminalPanelContentBlock>((attempt) => [\n { kind: \"divider\", title: `Usage ${attempt.locator}` },\n { kind: \"keyValue\", entries: [\n { key: \"Attempt\", value: attempt.locator },\n { key: \"Origin Run\", value: attempt.originRunId },\n ] },\n ...totalCostBlocks(attempt.usage.totalCosts),\n ...modelUsageBlocks(attempt.usage),\n { kind: \"divider\", title: \"Application totals\" },\n { kind: \"keyValue\", entries: usageTotalEntries(attempt.usage.totals) },\n ]),\n ],\n },\n ]);\n}\nfunction executionValue(value: ExecutionValue): string {\n return value.state === \"available\" ? value.value : value.state;\n}\n// @concord-code ne-surface-render-run\n// @concord-implements docs/feature/inspection/use-case/inspection-check-completeness.md\nexport function renderRun(value: RunView): string {\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: `Run ${value.runId}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Experiment\", value: value.experimentId },\n { key: \"Adapter\", value: value.adapter === null\n ? \"not-recorded\"\n : adapterValue({ state: \"available\", value: value.adapter }) },\n { key: \"State\", value: value.state },\n { key: \"Started\", value: new Date(value.startedAt).toISOString() },\n ...(value.completedAt === undefined\n ? []\n : [{\n key: \"Completed\",\n value: new Date(value.completedAt).toISOString(),\n }]),\n {\n key: \"Summary\",\n value: `${value.observed}/${value.expected} attempts observed`,\n },\n ],\n },\n { kind: \"divider\", title: \"Coverage\" },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.coverage.state },\n {\n key: \"Members\",\n value: `${value.coverage.observedMemberCount}/${value.coverage.expectedMemberCount} observed; ${value.coverage.completeMemberCount} complete`,\n },\n { key: \"Facts\", value: String(value.coverage.factCount) },\n {\n key: \"Limitations\",\n value: String(value.coverage.limitations.length),\n },\n ],\n },\n { kind: \"divider\", title: \"Usage\" },\n runUsageBlocks(value.usage),\n { kind: \"divider\", title: \"Limitations\" },\n runLocatedLimitationTable(value.limitations),\n ],\n },\n ];\n for (const member of value.members) {\n blocks.push({\n kind: \"panel\",\n title: `Member ${member.slotId}`,\n meta: member.state,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Eval\", value: member.evalId },\n { key: \"Attempt ordinal\", value: String(member.attemptOrdinal) },\n { key: \"Attempt\", value: member.locator ?? \"not-recorded\" },\n { key: \"Relation\", value: member.relation ?? \"not-recorded\" },\n { key: \"Outcome\", value: member.outcome ?? \"not-recorded\" },\n { key: \"Verdict\", value: member.verdict ?? \"not-recorded\" },\n {\n key: \"Score\",\n value: member.score === null ? \"not-recorded\" : score(member.score, member.verdict),\n },\n ],\n },\n { kind: \"divider\", title: \"Coverage\" },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: member.coverage.state },\n { key: \"Facts\", value: String(member.coverage.facts.length) },\n {\n key: \"Limitations\",\n value: String(member.coverage.limitations.length),\n },\n ],\n },\n { kind: \"divider\", title: \"Usage\" },\n memberUsageBlocks(member.usage),\n { kind: \"divider\", title: \"Limitations\" },\n runMemberLimitationTable(member.limitations),\n ],\n });\n }\n return terminal(blocks);\n}\nfunction runUsageBlocks(value: RunView[\"usage\"]): TerminalPanelContentBlock & {\n readonly kind: \"keyValue\";\n} {\n return {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n {\n key: \"Members\",\n value: `${value.observedMemberCount}/${value.expectedMemberCount} observed; ${value.recordedAttemptCount} recorded attempts`,\n },\n ...usageTotalEntries(value.totals),\n { key: \"Limitations\", value: String(value.limitations.length) },\n ],\n };\n}\nfunction memberUsageBlocks(value: RunView[\"members\"][number][\"usage\"]): TerminalPanelContentBlock & {\n readonly kind: \"keyValue\";\n} {\n return {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n {\n key: \"Summary\",\n value: value.summary === null\n ? \"not-recorded\"\n : `${value.summary.turnCount} turns; ${value.summary.observationCount} observations`,\n },\n ...usageTotalEntries(value.totals),\n {\n key: \"Limitations\",\n value: boundedPreview(value.limitations.length, value.limitationsTruncated, value.omittedLimitationCount),\n },\n ],\n };\n}\ntype RunMemberLimitation = RunView[\"members\"][number][\"limitations\"][number];\nfunction runMemberLimitationTable(values: readonly RunMemberLimitation[]): TerminalPanelContentBlock & {\n readonly kind: \"table\";\n} {\n return {\n kind: \"table\",\n columns: [{ header: \"Limitation\" }],\n rows: values.map((value) => [formatRunMemberLimitation(value)]),\n overflow: \"wrap\",\n };\n}\nfunction runLocatedLimitationTable(values: RunView[\"limitations\"]): TerminalPanelContentBlock & {\n readonly kind: \"table\";\n} {\n return {\n kind: \"table\",\n columns: [\n { header: \"Slot\" },\n { header: \"Attempt\" },\n { header: \"Limitation\" },\n ],\n rows: values.map((value) => [\n value.slotId,\n value.locator ?? \"not-recorded\",\n formatRunMemberLimitation(value.limitation),\n ]),\n overflow: \"wrap\",\n };\n}\nfunction formatRunMemberLimitation(value: RunMemberLimitation): string {\n switch (value.kind) {\n case \"member-not-observed\":\n return `${value.kind}; ${value.state}`;\n case \"attempt-unresolved\":\n return `${value.kind}; run ${value.originRunId}; attempt ${value.attemptId}`;\n case \"coverage\":\n return `${value.kind}; ${formatAttemptLimitation(value.detail)}`;\n case \"usage\":\n return `${value.kind}; ${formatUsageLimitation(value.detail)}`;\n }\n}\ntype AttemptLimitation = RunView[\"members\"][number][\"coverage\"][\"limitations\"][number];\nfunction formatAttemptLimitation(value: AttemptLimitation): string {\n if (\"channel\" in value) {\n return `${value.channel}; ${value.status}${value.reason === undefined ? \"\" : `; ${value.reason}`}`;\n }\n return `assertion-material; ${value.state}; ${value.reason}; ${value.limitations.length} material limitations`;\n}\n// @concord-code ne-surface-render-attempt\n// @concord-implements docs/feature/inspection/cli.md\n// @concord-implements docs/feature/error-classification/use-case/reading-errored.md\nexport function renderAttempt(value: AttemptView): string {\n return terminal([\n {\n kind: \"panel\",\n title: `Attempt ${value.locator}`,\n meta: value.verdict === \"passed\" && value.score.state === \"complete\"\n ? \"scored\"\n : value.verdict ?? value.outcome,\n blocks: [\n ...(value.totalCosts === undefined ? [] : totalCostBlocks(value.totalCosts)),\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Experiment\", value: value.experimentId },\n { key: \"Eval\", value: value.evalId },\n { key: \"Run\", value: value.originRunId },\n { key: \"Attempt\", value: value.attemptId },\n { key: \"Slot\", value: value.slotId },\n { key: \"Outcome\", value: value.outcome },\n { key: \"Verdict\", value: value.verdict ?? \"not-available\" },\n { key: \"Score\", value: score(value.score, value.verdict) },\n ],\n },\n {\n kind: \"divider\",\n title: `assertions ${value.sections.assertions} · ${value.assertions.entries.length} entries`,\n },\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Summary\",\n value: stateCount(value.sections.assertions, value.assertions.entries.length, \"entry\"),\n },\n ],\n },\n {\n kind: \"table\",\n columns: [\n { header: \"Assertion\" },\n { header: \"Entry ID\" },\n { header: \"Group\" },\n ],\n rows: value.assertions.entries.map((entry) => [\n entry.label ?? entry.key ?? entry.entryId,\n entry.entryId,\n entry.groupPath.length === 0 ? \"root\" : entry.groupPath.join(\" / \"),\n ]),\n },\n { kind: \"divider\", title: \"Evidence\" },\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"coverage\",\n value: value.evidenceCoverage.length === 0\n ? \"none\"\n : value.evidenceCoverage.join(\"; \"),\n },\n {\n key: \"limitations\",\n value: value.limitations.length === 0\n ? \"none\"\n : value.limitations.join(\"; \"),\n },\n ],\n },\n { kind: \"divider\", title: \"Sections\" },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Source\", value: value.sections.sources },\n { key: \"Execution\", value: value.sections.trace },\n { key: \"Timing\", value: value.sections.timing },\n { key: \"Usage\", value: value.sections.usage },\n { key: \"Diff\", value: value.sections.diff },\n ],\n },\n { kind: \"divider\", title: \"Next\" },\n { kind: \"command\", command: `niceeval show ${value.locator} --source` },\n {\n kind: \"command\",\n command: `niceeval show ${value.locator} --execution`,\n },\n { kind: \"command\", command: `niceeval show ${value.locator} --timing` },\n { kind: \"command\", command: `niceeval show ${value.locator} --usage` },\n { kind: \"command\", command: `niceeval show ${value.locator} --diff` },\n ],\n },\n ]);\n}\nexport function renderSources(value: SourcesView): string {\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: `Captured source ${value.locator}`,\n meta: value.state,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n { key: \"Captured items\", value: String(value.items.length) },\n {\n key: \"Omitted items\",\n value: value.hasMore ? String(value.omittedItemCount) : \"0\",\n },\n ],\n },\n ],\n },\n ];\n for (const item of value.items) {\n blocks.push({\n kind: \"panel\",\n title: `${item.path} · ${item.sourceItemId} · ${item.byteLength} bytes`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Bytes\", value: String(item.byteLength) },\n { key: \"Content\", value: item.content.state },\n ...(item.content.state === \"omitted\"\n ? [\n { key: \"Reason\", value: item.content.reason },\n {\n key: \"Byte limit\",\n value: `${item.content.byteLimit}/${item.content.byteLength} retained`,\n },\n ]\n : []),\n ],\n },\n ],\n });\n if (item.content.state === \"available\") {\n blocks.push({ kind: \"code\", text: item.content.text });\n }\n }\n blocks.push({\n kind: \"panel\",\n title: \"Assertion source facts\",\n meta: value.assertions.state,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Source sites\",\n value: String(value.assertions.sites.length),\n },\n {\n key: \"Omitted source sites\",\n value: value.assertions.hasMoreSourceSites === true\n ? String(value.assertions.omittedSourceSiteCount ?? 0)\n : \"0\",\n },\n ],\n },\n ],\n }, {\n kind: \"raw\",\n text: value.assertions.sites.map((site) => `${site.entryId} · ${site.role} · ${sourceRange(site.start, site.end)} · ${site.source.state === \"mapped\"\n ? `mapped · ${site.source.sourceItemId} · ${site.source.sha256}`\n : `unmapped · ${site.source.reason}`}`).join(\"\\n\"),\n });\n return terminal(blocks);\n}\nfunction sourceRange(start: SourcesView[\"assertions\"][\"sites\"][number][\"start\"], end: SourcesView[\"assertions\"][\"sites\"][number][\"end\"]): string {\n return `start ${start.line}:${start.column} · end ${end.line}:${end.column}`;\n}\nfunction safeEventText(text: string): string {\n return Array.from(text).filter((character) => !displayTextHasForbiddenCharacter(character)).join(\"\");\n}\nfunction safeEventJson(value: unknown, space?: number): string {\n return JSON.stringify(value, (_key, item: unknown) => typeof item === \"string\" ? safeEventText(item) : item, space);\n}\nfunction displayPreview(text: {\n readonly preview: string;\n readonly omittedBytes: number;\n}, eventId: string): string {\n return safeEventText(text.preview) + (text.omittedBytes === 0 ? \"\" : `\\n… (${text.omittedBytes} more bytes, --expand ${eventId})`);\n}\nfunction truncateCodeLine(line: string, width: number): string {\n if (stringWidth(line) <= width)\n return line;\n let text = \"\";\n let used = 0;\n for (const character of line) {\n const size = charDisplayWidth(character.codePointAt(0)!);\n if (used + size > width - 1)\n break;\n text += character;\n used += size;\n }\n return `${text}…`;\n}\nfunction displayLines(block: ExecutionDisplayPreviewBlock | ExecutionDisplayDetailBlock, eventId: string, width: number): string[] {\n const textValue = (text: string | {\n readonly preview: string;\n readonly omittedBytes: number;\n }): string => typeof text === \"string\" ? safeEventText(text) : displayPreview(text, eventId);\n switch (block.kind) {\n case \"text\": return wrapDisplay(textValue(block.text), width);\n case \"message\": {\n const label = safeEventText(block.speaker ?? block.role);\n const prefix = `${label}: `;\n return wrapDisplay(textValue(block.text), Math.max(4, width - stringWidth(prefix)))\n .map((line, index) => `${index === 0 ? prefix : \" \".repeat(stringWidth(prefix))}${line}`);\n }\n case \"fields\": {\n const labelWidth = Math.max(0, ...block.fields.map((field) => stringWidth(safeEventText(field.label))));\n return block.fields.flatMap((field) => {\n const value = typeof field.value === \"object\" && field.value !== null\n ? textValue(field.value)\n : typeof field.value === \"string\" ? safeEventText(field.value) : JSON.stringify(field.value);\n return wrapDisplay(value, Math.max(4, width - labelWidth - 2)).map((line, index) => `${index === 0 ? padDisplay(safeEventText(field.label), labelWidth) : \" \".repeat(labelWidth)} ${line}`);\n });\n }\n case \"code\": {\n if (typeof block.text === \"string\")\n return safeEventText(block.text).split(\"\\n\");\n return [\n ...safeEventText(block.text.preview).split(\"\\n\").map((line) => truncateCodeLine(line, width)),\n ...(block.text.omittedBytes === 0 ? [] : [`… (${block.text.omittedBytes} more bytes, --expand ${eventId})`]),\n ];\n }\n case \"image\": return [\n ...wrapDisplay(`[image] ${safeEventText(block.alt)}`, width),\n ...wrapDisplay(`${block.mediaType} · ${block.byteLength} bytes · artifact ${block.artifactId}`, width),\n ];\n }\n}\nfunction displayDetailBlocks(block: ExecutionDisplayDetailBlock, locator: string, eventId: string): TerminalBlock[] {\n const lines = displayLines(block, eventId, TERMINAL_OPTIONS.width);\n const blocks: TerminalBlock[] = [{ kind: \"code\", text: lines.join(\"\\n\") }];\n if (block.kind === \"image\") {\n const request = JSON.stringify({ protocol: \"niceeval.query/v1\", operation: { kind: \"attempt.artifact\", locator, artifactId: block.artifactId } });\n blocks.push({ kind: \"code\", text: `niceeval query run --request - <<'NICEEVAL_REQUEST'\\n${request}\\nNICEEVAL_REQUEST` });\n }\n return blocks;\n}\nexport function renderTrace(value: TraceView): string {\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: `Execution ${value.locator}`,\n blocks: [],\n },\n {\n kind: \"panel\",\n title: \"Generic execution traces\",\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Capture\", value: value.execution.state },\n { key: \"Traces\", value: String(value.execution.traces.length) },\n {\n key: \"Events\",\n value: `${value.execution.events.length} shown; ${value.execution.omittedEventCount} remaining in this selection`,\n },\n { key: \"Page\", value: value.execution.hasMore ? \"more events available\" : \"end of selected events\" },\n ...(value.execution.continuation === undefined ? [] : [{ key: \"Continuation\", value: value.execution.continuation }]),\n ],\n },\n {\n kind: \"table\",\n columns: [{ header: \"Capture limitation\" }],\n rows: value.execution.limitations.map((limitation) => [safeEventJson(limitation)]),\n overflow: \"wrap\",\n },\n ...value.execution.traces.flatMap<TerminalPanelContentBlock>((trace) => [\n { kind: \"divider\", title: `Trace ${safeEventText(trace.sourceTraceId)}` },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Trace ID\", value: trace.traceId },\n { key: \"Producer collection\", value: trace.collection.state },\n { key: \"Recorded events\", value: String(trace.eventCount) },\n ],\n },\n {\n kind: \"table\",\n columns: [{ header: \"Producer limitation\" }, { header: \"Reason\" }],\n rows: trace.collection.limitations.map((limitation) => [safeEventText(limitation.code), safeEventText(limitation.message)]),\n overflow: \"wrap\",\n },\n ]),\n { kind: \"divider\", title: \"Event page\" },\n ...value.execution.events.flatMap<TerminalPanelContentBlock>((event) => [\n { kind: \"divider\", title: safeEventText(event.type) },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Event ID\", value: event.eventId },\n { key: \"Actor\", value: safeEventText(event.actor?.label ?? event.actor?.id ?? \"not-recorded\") },\n { key: \"Source\", value: safeEventText(event.source.id) },\n ...(event.time === undefined ? [] : [{ key: \"Time\", value: safeEventText(`${event.time.clockId}: ${event.time.value} ${event.time.unit}`) }]),\n { key: \"Summary\", value: safeEventText(event.summary) },\n ],\n },\n ...(event.display.state === \"absent\" ? [] : event.display.blocks.map((block): TerminalPanelContentBlock => ({\n kind: \"command\",\n command: displayLines(block, event.eventId, panelContentWidth(TERMINAL_OPTIONS.width, TERMINAL_OPTIONS.mode)).join(\"\\n\"),\n }))),\n ]),\n ],\n },\n {\n kind: \"panel\",\n title: `Conversation · ${value.conversation.state}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Turns\",\n value: boundedPreview(value.conversation.turns.length, value.conversation.turnsTruncated, value.conversation.omittedTurnCount),\n },\n {\n key: \"Items\",\n value: boundedPreview(value.conversation.itemCount, value.conversation.itemsTruncated, value.conversation.omittedItemCount),\n },\n {\n key: \"Limitations\",\n value: boundedPreview(value.conversation.limitations.length, value.conversation.limitationsTruncated, value.conversation.omittedLimitationCount),\n },\n ],\n },\n { kind: \"divider\", title: \"Limitations\" },\n limitationTable(value.conversation.limitations),\n ],\n },\n ];\n for (const turn of value.conversation.turns) {\n blocks.push({\n kind: \"panel\",\n title: `Turn ${turn.turnId}`,\n meta: turn.outcome,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Sequence\", value: String(turn.sequence) },\n { key: \"Items\", value: String(turn.items.length) },\n ],\n },\n ],\n });\n for (const item of turn.items)\n blocks.push(...traceItemBlocks(item));\n }\n blocks.push({\n kind: \"panel\",\n title: `Commands · ${value.commands.state}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Items\",\n value: boundedPreview(value.commands.items.length, value.commands.hasMore, value.commands.omittedCommandCount),\n },\n {\n key: \"Limitations\",\n value: boundedPreview(value.commands.limitations.length, value.commands.limitationsTruncated, value.commands.omittedLimitationCount),\n },\n ],\n },\n { kind: \"divider\", title: \"Limitations\" },\n limitationTable(value.commands.limitations),\n { kind: \"divider\", title: \"Command outline\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Command ID\" },\n { header: \"Phase\" },\n { header: \"Outcome\" },\n ],\n rows: value.commands.items.map((command) => [\n command.commandId,\n command.phase,\n command.outcome,\n ]),\n },\n ],\n });\n blocks.push({\n kind: \"panel\",\n title: `Diagnostics · ${value.diagnostics.state}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Items\",\n value: boundedPreview(value.diagnostics.items.length, value.diagnostics.hasMore, value.diagnostics.omittedDiagnosticCount),\n },\n {\n key: \"Limitations\",\n value: boundedPreview(value.diagnostics.limitations.length, value.diagnostics.limitationsTruncated, value.diagnostics.omittedLimitationCount),\n },\n ],\n },\n { kind: \"divider\", title: \"Limitations\" },\n limitationTable(value.diagnostics.limitations),\n { kind: \"divider\", title: \"Diagnostic outline\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Diagnostic ID\" },\n { header: \"Phase\" },\n { header: \"Kind\" },\n { header: \"Code\" },\n { header: \"Summary\" },\n ],\n rows: value.diagnostics.items.map((diagnostic) => [\n diagnostic.diagnosticId,\n diagnostic.phase,\n diagnostic.kind,\n diagnostic.code,\n diagnostic.summary,\n ]),\n overflow: \"wrap\",\n },\n ],\n });\n blocks.push({ kind: \"panel\", title: \"Stable identities\", blocks: [] }, {\n kind: \"raw\",\n text: [\n ...value.execution.events.flatMap((event) => [\n `event ${event.eventId}`,\n ...event.evidence.map((evidence) => ` evidence ${evidence.evidenceId}`),\n ]),\n ...value.identities.itemIds.map((id) => `item ${id}`),\n ...value.identities.toolOccurrenceIds.map((id) => `tool occurrence ${id}`),\n ...value.identities.commandIds.map((id) => `command ${id}`),\n ].join(\"\\n\"),\n });\n return terminal(blocks);\n}\nfunction boundedPreview(shown: number, truncated: boolean, omitted: number): string {\n return `${shown} shown; ${truncated ? `bounded preview, ${omitted} omitted` : \"complete preview, 0 omitted\"}`;\n}\ntype ProjectionLimitation = TimingView[\"limitations\"][number] | TraceView[\"conversation\"][\"limitations\"][number] | TraceView[\"diagnostics\"][\"limitations\"][number];\nfunction limitationTable(limitations: readonly ProjectionLimitation[]): TerminalPanelContentBlock & {\n readonly kind: \"table\";\n} {\n return {\n kind: \"table\",\n columns: [{ header: \"Limitation\" }],\n rows: limitations.map((limitation) => [formatProjectionLimitation(limitation)]),\n overflow: \"wrap\",\n };\n}\nfunction projectionLimitationTable(limitations: readonly ProjectionLimitation[]): TerminalPanelContentBlock & {\n readonly kind: \"table\";\n} {\n return limitationTable(limitations);\n}\nfunction formatProjectionLimitation(value: ProjectionLimitation): string {\n if (\"issue\" in value)\n return `invalid projection; ${value.issue}`;\n if (\"source\" in value) {\n if (value.source === \"agent-turns\") {\n return `${value.source}; turn ${value.turnId}; ${value.channel}; ${value.state}; ${value.reason}`;\n }\n const details = value.limitations.map(formatProjectionLimitation).join(\"; \");\n return `${value.source}; ${value.state}${details.length === 0 ? \"\" : `; ${details}`}`;\n }\n switch (value.code) {\n case \"capture-failed\":\n case \"capture-interrupted\":\n return `${value.code}; stage ${value.stage}; target ${value.target}`;\n case \"collection-cap-reached\":\n case \"unsupported-input\":\n return `${value.code}; target ${value.target}; omitted at least ${value.omittedAtLeast}`;\n case \"text-truncated\":\n case \"redacted\":\n case \"invalid-utf8-replaced\":\n case \"unsafe-control-stripped\":\n return `${value.code}; target ${value.target}; replaced or omitted ${value.replacementOrOmittedCount}`;\n }\n}\ntype UsageLimitation = UsageView[\"limitations\"][number];\nfunction formatUsageLimitation(value: UsageLimitation): string {\n if (\"issue\" in value)\n return value.issue;\n if (\"source\" in value) {\n return `${value.source}; turn ${value.turnId}; ${value.channel}; ${value.state}; ${value.reason}`;\n }\n return formatProjectionLimitation(value);\n}\nfunction traceItemBlocks(item: TraceItem): readonly TerminalBlock[] {\n const entries: {\n key: string;\n value: string;\n }[] = [\n { key: \"Kind\", value: item.kind },\n { key: \"Sequence\", value: String(item.sequence) },\n ];\n let content: string | null = null;\n switch (item.kind) {\n case \"message\":\n entries.push({ key: \"Role\", value: item.role });\n content = item.text;\n break;\n case \"tool-call\":\n entries.push({ key: \"Tool\", value: item.tool }, {\n key: \"Tool occurrence\",\n value: item.toolOccurrenceId ?? \"not-recorded\",\n });\n content = item.input;\n break;\n case \"tool-result\":\n entries.push({ key: \"Outcome\", value: item.outcome }, {\n key: \"Tool occurrence\",\n value: item.toolOccurrenceId ?? \"not-recorded\",\n });\n content = item.output;\n break;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\":\n content = item.summary;\n break;\n case \"subagent\":\n entries.push({ key: \"State\", value: item.state }, { key: \"Label\", value: item.label });\n content = item.summary;\n break;\n case \"input-request\":\n entries.push({ key: \"State\", value: item.state });\n content = `Prompt: ${item.prompt}\\nResponse: ${textOrNotRecorded(item.response)}`;\n break;\n case \"skill-load\":\n case \"conversation-error\":\n entries.push({ key: \"Code\", value: item.code });\n content = item.summary;\n break;\n }\n return [\n {\n kind: \"panel\",\n title: `Item ${item.itemId}`,\n blocks: [{ kind: \"keyValue\", entries }],\n },\n ...(content === null ? [] : [{ kind: \"code\" as const, text: content }]),\n ];\n}\nexport function renderTraceDetail(value: TraceDetailView): string {\n const body = value.body;\n const heading: TerminalBlock = {\n kind: \"panel\",\n title: `Execution detail ${value.locator}`,\n meta: `${value.kind} ${value.stableId}`,\n blocks: [],\n };\n if (body.kind === \"execution-event\") {\n const eventJson = safeEventJson({\n key: body.event.key,\n type: body.event.type,\n source: body.event.source,\n actor: body.event.actor ?? null,\n time: body.event.time ?? null,\n summary: body.event.summary,\n payload: body.event.payload ?? null,\n links: body.event.links,\n scopeMemberships: body.event.scopeMemberships,\n }, 2);\n return terminal([\n heading,\n {\n kind: \"panel\",\n title: `${safeEventText(body.event.type)} · ${body.event.eventId}`,\n blocks: [{\n kind: \"keyValue\",\n entries: [\n { key: \"Trace\", value: body.event.traceId },\n { key: \"Source\", value: safeEventText(body.event.source.id) },\n { key: \"Native event ID\", value: safeEventText(body.event.source.eventId ?? \"not-recorded\") },\n { key: \"Client sequence\", value: body.event.source.sequence === undefined ? \"not-recorded\" : String(body.event.source.sequence) },\n { key: \"Actor\", value: safeEventText(body.event.actor?.id ?? \"not-recorded\") },\n { key: \"Time\", value: body.event.time === undefined ? \"not-recorded\" : safeEventText(`${body.event.time.value} ${body.event.time.unit} (${body.event.time.clockId})`) },\n { key: \"Summary\", value: safeEventText(body.event.summary) },\n { key: \"Evidence\", value: String(body.evidence.length) },\n ],\n }],\n },\n ...(body.event.display ?? []).flatMap((block) => displayDetailBlocks(block, value.locator, body.event.eventId)),\n { kind: \"divider\", title: \"Event\" },\n { kind: \"code\", text: eventJson },\n ...body.evidence.flatMap((evidence): readonly TerminalBlock[] => ([\n {\n kind: \"panel\",\n title: `${safeEventText(evidence.label)} · ${evidence.evidenceId}`,\n meta: evidence.truncated ? \"preview\" : \"complete\",\n blocks: [{\n kind: \"keyValue\",\n entries: [\n { key: \"Artifact\", value: evidence.artifactId },\n { key: \"Pointer\", value: safeEventText(evidence.pointer) },\n { key: \"Bytes\", value: String(evidence.targetByteLength) },\n { key: \"Target SHA-256\", value: evidence.targetSha256 },\n { key: \"Next offset\", value: evidence.nextOffset === null ? \"complete\" : String(evidence.nextOffset) },\n ],\n }],\n },\n { kind: \"code\", text: safeEventText(executionEvidenceText(evidence.base64)) },\n ...(evidence.nextOffset === null ? [] : [{\n kind: \"command\" as const,\n command: `Query attempt.trace.detail for ${evidence.evidenceId} with offset ${evidence.nextOffset}`,\n }]),\n ])),\n ]);\n }\n if (body.kind === \"execution-evidence\") {\n return terminal([\n heading,\n {\n kind: \"panel\",\n title: `${safeEventText(body.label)} · ${body.evidenceId}`,\n blocks: [{\n kind: \"keyValue\",\n entries: [\n { key: \"Trace\", value: body.traceId },\n { key: \"Event\", value: body.eventId },\n { key: \"Artifact\", value: body.artifactId },\n { key: \"Pointer\", value: safeEventText(body.pointer) },\n { key: \"Range\", value: `${body.offset}..${body.nextOffset ?? body.targetByteLength}` },\n { key: \"Target SHA-256\", value: body.targetSha256 },\n ],\n }],\n },\n { kind: \"code\", text: safeEventText(executionEvidenceText(body.base64)) },\n ...(body.nextOffset === null ? [] : [{\n kind: \"command\" as const,\n command: `Query attempt.trace.detail for ${body.evidenceId} with offset ${body.nextOffset}`,\n }]),\n ]);\n }\n if (body.kind === \"item\") {\n return terminal([heading, ...traceDetailItemBlocks(body.item)]);\n }\n if (body.kind === \"tool-occurrence\") {\n return terminal([\n heading,\n {\n kind: \"panel\",\n title: \"Occurrence turns\",\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Call\",\n value: body.turn.call === null\n ? \"not-recorded\"\n : `${body.turn.call.turnId}; sequence ${body.turn.call.sequence}; ${body.turn.call.outcome}`,\n },\n {\n key: \"Result\",\n value: body.turn.result === null\n ? \"not-recorded\"\n : `${body.turn.result.turnId}; sequence ${body.turn.result.sequence}; ${body.turn.result.outcome}`,\n },\n ],\n },\n ],\n },\n ...(body.call === null\n ? [{\n kind: \"panel\" as const,\n title: \"Call\",\n meta: \"not-recorded\",\n blocks: [],\n }]\n : traceDetailItemBlocks(body.call, \"Call\")),\n ...(body.result === null\n ? [{\n kind: \"panel\" as const,\n title: \"Result\",\n meta: \"not-recorded\",\n blocks: [],\n }]\n : traceDetailItemBlocks(body.result, \"Result\")),\n ]);\n }\n return terminal([\n heading,\n {\n kind: \"panel\",\n title: `Command ${body.commandId}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Invocation\", value: commandInvocation(body.invocation) },\n {\n key: \"Working directory\",\n value: workingDirectory(body.workingDirectory),\n },\n { key: \"Outcome\", value: commandOutcome(body.outcome) },\n { key: \"Turn\", value: body.turnId ?? \"not-recorded\" },\n { key: \"Phase\", value: body.phase },\n { key: \"Sequence\", value: String(body.sequence) },\n ],\n },\n { kind: \"divider\", title: \"stdout\" },\n streamMetadata(body.stdout),\n { kind: \"divider\", title: \"stderr\" },\n streamMetadata(body.stderr),\n ],\n },\n { kind: \"code\", text: body.stdout.text },\n { kind: \"code\", text: body.stderr.text },\n ]);\n}\nfunction executionEvidenceText(base64: string): string {\n return new TextDecoder(\"utf-8\").decode(decodeBase64Bytes(base64));\n}\ntype TraceDetailItem = Extract<TraceDetailView[\"body\"], {\n readonly kind: \"item\";\n}>[\"item\"];\nfunction traceDetailItemBlocks(item: TraceDetailItem, title = `Item ${item.itemId}`): readonly TerminalBlock[] {\n const entries: {\n key: string;\n value: string;\n }[] = [\n { key: \"Item ID\", value: item.itemId },\n { key: \"Kind\", value: item.kind },\n { key: \"Turn\", value: item.turnId },\n { key: \"Turn sequence\", value: String(item.turnSequence) },\n { key: \"Turn outcome\", value: item.turnOutcome },\n { key: \"Session\", value: item.sessionId ?? \"not-recorded\" },\n { key: \"Event\", value: item.eventId ?? \"not-recorded\" },\n {\n key: \"Sequence\",\n value: item.sequence === undefined ? \"not-recorded\" : String(item.sequence),\n },\n ];\n let content: string | null = null;\n switch (item.kind) {\n case \"message\":\n entries.push({ key: \"Role\", value: item.role });\n content = item.text;\n break;\n case \"tool-call\":\n entries.push({ key: \"Tool\", value: item.tool }, {\n key: \"Tool occurrence\",\n value: item.toolOccurrenceId ?? \"not-recorded\",\n });\n content = item.input;\n break;\n case \"tool-result\":\n entries.push({ key: \"Outcome\", value: item.outcome }, {\n key: \"Tool occurrence\",\n value: item.toolOccurrenceId ?? \"not-recorded\",\n });\n content = item.output;\n break;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\":\n content = item.summary;\n break;\n case \"subagent\":\n entries.push({ key: \"State\", value: item.state }, { key: \"Label\", value: item.label });\n content = item.summary;\n break;\n case \"input-request\":\n entries.push({ key: \"State\", value: item.state });\n content = `Prompt: ${item.prompt}\\nResponse: ${textOrNotRecorded(item.response)}`;\n break;\n case \"skill-load\":\n case \"conversation-error\":\n entries.push({ key: \"Code\", value: item.code });\n content = item.summary;\n break;\n }\n return [\n {\n kind: \"panel\",\n title,\n blocks: [{ kind: \"keyValue\", entries }],\n },\n ...(content === null ? [] : [{ kind: \"code\" as const, text: content }]),\n ];\n}\ntype CommandDetail = Extract<TraceDetailView[\"body\"], {\n readonly kind: \"command\";\n}>;\nfunction streamMetadata(stream: CommandDetail[\"stdout\"]): TerminalPanelContentBlock & {\n readonly kind: \"keyValue\";\n} {\n return {\n kind: \"keyValue\",\n entries: [\n { key: \"Retained bytes\", value: String(stream.retainedBytes) },\n { key: \"Total safe UTF-8 bytes\", value: String(stream.totalSafeUtf8Bytes) },\n { key: \"SHA-256\", value: stream.sha256 },\n { key: \"Truncation\", value: stream.truncation.state },\n {\n key: \"Omitted safe UTF-8 bytes\",\n value: String(stream.truncation.omittedSafeUtf8Bytes),\n },\n ],\n };\n}\nfunction commandInvocation(value: CommandDetail[\"invocation\"]): string {\n return value.kind === \"shell\"\n ? value.command\n : [value.executable, ...value.arguments].join(\" \");\n}\nfunction workingDirectory(value: CommandDetail[\"workingDirectory\"]): string {\n return value.kind === \"project-relative\" ? value.path : value.kind;\n}\nfunction commandOutcome(value: CommandDetail[\"outcome\"]): string {\n if (value.kind === \"exited\")\n return `exited; code ${value.exitCode}`;\n return `${value.kind}; ${value.reason}`;\n}\nexport function renderTiming(value: TimingView): string {\n return terminal([\n {\n kind: \"panel\",\n title: `Timing ${value.locator}`,\n meta: value.state,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n { key: \"Activities\", value: String(value.activities.length) },\n {\n key: \"Omitted activities\",\n value: value.hasMore ? String(value.omittedActivityCount) : \"0\",\n },\n { key: \"Limitations\", value: String(value.limitations.length) },\n ],\n },\n { kind: \"divider\", title: \"Limitations\" },\n projectionLimitationTable(value.limitations),\n { kind: \"divider\", title: \"Activities\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Activity ID\" },\n { header: \"Parent\" },\n { header: \"Turn\" },\n { header: \"Phase\" },\n { header: \"Label\" },\n { header: \"Start\" },\n { header: \"Duration\" },\n { header: \"Outcome\" },\n ],\n rows: value.activities.map((activity) => [\n activity.activityId,\n activity.parentActivityId ?? \"none\",\n activity.turnId ?? \"none\",\n activity.phase,\n activity.label,\n `${fmt(activity.startOffsetMs)} ms`,\n `${fmt(activity.durationMs)} ms`,\n activity.outcome,\n ]),\n },\n ],\n },\n ]);\n}\ntype UsageTotals = UsageView[\"totals\"];\nfunction numericUsageTotal(total: UsageTotals[\"inputTokens\"]): string {\n return `${total.value === null ? \"not-recorded\" : fmt(total.value)} (${total.state}; ${total.observationCount} observations)`;\n}\nfunction usageTotalEntries(totals: UsageTotals): readonly {\n readonly key: string;\n readonly value: string;\n}[] {\n return [\n { key: \"Input tokens\", value: numericUsageTotal(totals.inputTokens) },\n ...(totals.inputTotalTokens === undefined ? [] : [{ key: \"Input including cache\", value: numericUsageTotal(totals.inputTotalTokens) }]),\n { key: \"Output tokens\", value: numericUsageTotal(totals.outputTokens) },\n { key: \"Requests\", value: numericUsageTotal(totals.requests) },\n totals.costs === undefined\n ? {\n key: \"Provider costs\",\n value: `${totals.providerCosts?.state ?? \"unavailable\"}; ${totals.providerCosts?.observationCount ?? 0} observations${(totals.providerCosts?.values.length ?? 0) === 0\n ? \"; no recorded values\"\n : `; ${totals.providerCosts!.values.map((cost) => `${cost.value} ${cost.currency} (${cost.observationCount} observations)`).join(\"; \")}`}`,\n }\n : {\n key: \"Application cost\",\n value: `${totals.costs.state}${totals.costs.state === \"partial\" ? \"; known subtotal\" : \"\"}; ${totals.costs.source ?? \"unknown\"}; ${totals.costs.values.length === 0\n ? `0/${totals.costs.totalCalls} covered calls; no recorded values`\n : totals.costs.values.map((cost) => `${cost.value} ${cost.currency} (${cost.coveredCalls}/${totals.costs!.totalCalls} covered calls; ${cost.source}; ${cost.estimatedCalls} estimated)`).join(\"; \")}`,\n },\n ];\n}\nfunction totalCostBlocks(costs: UsageView[\"totalCosts\"]): readonly TerminalPanelContentBlock[] {\n const complete = costs.state === \"complete\";\n return [\n { kind: \"divider\", title: complete ? \"Total costs\" : \"Known subtotal\" },\n { kind: \"keyValue\", entries: [\n { key: \"Cost coverage\", value: complete ? \"Complete\" : \"Incomplete\" },\n ...(costs.missingSources.length === 0 ? [] : [{ key: \"Missing sources\", value: costs.missingSources.join(\", \") }]),\n ...(costs.values.length === 0 ? [{ key: \"Amount\", value: complete ? \"No recorded charges\" : \"Unavailable\" }] : []),\n ] },\n ...(costs.values.length === 0 ? [] : [{ kind: \"table\" as const,\n columns: [{ header: \"Currency\" }, { header: complete ? \"Total\" : \"Known subtotal\" }, { header: \"Source\" }],\n rows: costs.values.map((cost) => [cost.currency, cost.value, cost.source]), overflow: \"wrap\" as const }]),\n ];\n}\nfunction cacheReadBlocks(report: import(\"../o11y/cache-read.ts\").CacheReadReport | undefined): readonly TerminalPanelContentBlock[] {\n if (report === undefined)\n return [];\n const row = (label: string, summary: import(\"../o11y/cache-read.ts\").CacheReadSummary) => [\n label, summary.rate.state === \"exact\" ? `${(summary.rate.value * 100).toFixed(2)}%` : \"Unavailable\",\n `${summary.coveredCalls}/${summary.recordedCalls}`, summary.collectionComplete ? \"Complete\" : \"Incomplete\",\n summary.reasons.join(\", \") || \"—\",\n ];\n return [{ kind: \"divider\", title: \"Cache read rate\" }, { kind: \"table\",\n columns: [{ header: \"Scope\" }, { header: \"Rate\" }, { header: \"Covered calls\" }, { header: \"Collection\" }, { header: \"Reasons\" }],\n rows: [row(\"Total\", report.total), ...report.modelSlots.map((group) => row(`Slot: ${group.modelSlot ?? \"not-recorded\"}`, group)),\n ...report.models.map((group) => row(`${group.modelSlot ?? \"not-recorded\"} / ${group.provider ?? \"not-recorded\"} / ${group.model ?? \"not-recorded\"}`, group))], overflow: \"wrap\" }];\n}\nfunction modelUsageBlocks(value: Pick<UsageView, \"configuredModels\" | \"modelGroups\" | \"totalCosts\"> & {\n readonly judgeUsage: import(\"../inspection/results.ts\").JudgeUsageSummary;\n readonly cacheRead?: import(\"../o11y/cache-read.ts\").CacheReadReport;\n}): readonly TerminalPanelContentBlock[] {\n const configured = value.configuredModels;\n const groups = value.modelGroups;\n const recordedCalls = (count: number | null): string => count === null ? \"—\" : count === 0 ? \"0 (no recorded calls)\" : String(count);\n const defaultBinding = configured.state === \"available\" && configured.bindings.length === 1 && configured.bindings[0].modelSlot === \"default\" ? configured.bindings[0] : null;\n const configurationBlocks: readonly TerminalPanelContentBlock[] = configured.state !== \"available\"\n ? [{ kind: \"keyValue\", entries: [{ key: \"Configuration\", value: configured.state }] }]\n : defaultBinding !== null\n ? [{ kind: \"keyValue\", entries: [\n { key: \"Configured model (default)\", value: defaultBinding.model ?? \"—\" },\n ...(defaultBinding.reasoningEffort === null ? [] : [{ key: \"Effort\", value: defaultBinding.reasoningEffort }]),\n { key: \"Recorded calls\", value: recordedCalls(defaultBinding.recordedCalls) },\n ] }]\n : configured.bindings.length === 0\n ? [{ kind: \"keyValue\", entries: [{ key: \"Configured slots\", value: \"0\" }] }]\n : [{ kind: \"table\", columns: [{ header: \"Slot\" }, { header: \"Configured model\" }, { header: \"Effort\" }, { header: \"Recorded calls\" }],\n rows: configured.bindings.map((binding) => [binding.modelSlot, binding.model ?? \"—\", binding.reasoningEffort ?? \"—\", recordedCalls(binding.recordedCalls)]), overflow: \"wrap\" }];\n return [\n ...cacheReadBlocks(value.cacheRead),\n { kind: \"divider\", title: \"Configured model slots\" },\n ...configurationBlocks,\n { kind: \"divider\", title: \"Actual model usage\" },\n { kind: \"keyValue\", entries: [\n { key: \"State\", value: groups.state },\n { key: \"Basis\", value: groups.basis },\n { key: \"Groups\", value: `${groups.groups.length} shown; ${groups.totalGroupCount ?? \"unknown\"} total; ${groups.omittedGroupCount} omitted${groups.groupsTruncated ? \" (truncated)\" : \"\"}` },\n ...(\"reason\" in groups && groups.reason !== undefined ? [{ key: \"Reason\", value: groups.reason }] : []),\n ] },\n { kind: \"table\", columns: [\n { header: \"Slot / provider / actual model\", maxWidth: 30 },\n { header: \"Calls / tokens\", maxWidth: 18 }, { header: \"Application cost\", maxWidth: 24 },\n ], rows: groups.groups.map((group) => [\n `Slot: ${group.modelSlot ?? \"not-recorded\"}\\nProvider: ${group.provider ?? \"not-recorded\"}\\n${group.model ?? \"not-recorded\"}`,\n `${group.recordedCalls} calls\\nInput incl. cache: ${metric(group.tokens.inputTotalTokens)}\\nOutput: ${metric(group.tokens.outputTokens)}\\nTotal: ${metric(group.tokens.totalTokens)}`,\n group.costs.values.length === 0 ? group.costs.state : group.costs.values.map((cost) => `${cost.value} ${cost.currency} (${group.costs.state}${group.costs.state === \"partial\" ? \"; known subtotal\" : \"\"}; ${cost.coveredCalls}/${group.costs.totalCalls} covered; ${cost.source})`).join(\"; \"),\n ]), overflow: \"wrap\" },\n { kind: \"divider\", title: \"Judge usage\" },\n { kind: \"keyValue\", entries: \"totals\" in value.judgeUsage ? [\n { key: \"Physical calls\", value: value.judgeUsage.totals.requests.value === 0 && value.judgeUsage.totals.requests.state === \"available\" ? \"No Judge calls\" : metric(value.judgeUsage.totals.requests) },\n { key: \"Input tokens\", value: metric(value.judgeUsage.totals.inputTotalTokens) },\n { key: \"Output tokens\", value: metric(value.judgeUsage.totals.outputTokens) },\n { key: \"Total tokens\", value: metric(value.judgeUsage.totals.totalTokens) },\n { key: \"Cost\", value: value.judgeUsage.totals.costs.state },\n ...value.judgeUsage.totals.costs.values.map((cost) => ({ key: cost.currency,\n value: `${cost.value} (${cost.coveredCalls}/${value.judgeUsage.state === \"complete\" || value.judgeUsage.state === \"partial\" ? value.judgeUsage.totals.costs.totalCalls : \"unknown\"} covered; ${cost.source})` })),\n ] : [{ key: \"State\", value: `${value.judgeUsage.state}; ${value.judgeUsage.reason}` }] },\n ];\n}\nexport function renderUsage(value: UsageView): string {\n return terminal([\n {\n kind: \"panel\",\n title: `Usage ${value.locator}`,\n meta: value.state,\n blocks: [\n ...totalCostBlocks(value.totalCosts),\n { kind: \"divider\", title: \"Application usage\" },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n ...(value.source === \"adapter\" ? [\n { key: \"Coverage\", value: \"Recorded calls only\" },\n { key: \"Calls\", value: boundedPreview(value.calls?.length ?? 0, value.callsTruncated ?? false, value.omittedCallCount ?? 0) },\n ] : []),\n ...usageTotalEntries(value.totals),\n {\n key: \"Limitations\",\n value: boundedPreview(value.limitations.length, value.limitationsTruncated, value.omittedLimitationCount),\n },\n {\n key: \"Turns\",\n value: boundedPreview(value.turns.length, value.turnsTruncated, value.omittedTurnCount),\n },\n {\n key: \"Omitted observations\",\n value: value.hasMore ? String(value.omittedObservationCount) : \"0\",\n },\n ],\n },\n ...modelUsageBlocks(value),\n { kind: \"divider\", title: \"Limitations\" },\n {\n kind: \"table\",\n columns: [{ header: \"Limitation\" }],\n rows: value.limitations.map((limitation) => [\n formatUsageLimitation(limitation),\n ]),\n overflow: \"wrap\",\n },\n { kind: \"divider\", title: value.totals.costs === undefined ? \"Provider costs\" : \"Application costs\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Currency\" },\n { header: \"Value\" },\n { header: \"State\" },\n { header: \"Observations\" },\n ],\n rows: value.totals.costs === undefined\n ? (value.totals.providerCosts?.values ?? []).map((cost) => [\n cost.currency,\n cost.value,\n value.totals.providerCosts!.state,\n String(cost.observationCount),\n ])\n : value.totals.costs.values.map((cost) => [\n cost.currency,\n cost.value,\n value.totals.costs!.state,\n `${cost.coveredCalls}/${value.totals.costs!.totalCalls}`,\n ]),\n },\n { kind: \"divider\", title: \"Turn coverage\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Turn\" },\n { header: \"Coverage\" },\n { header: \"Reason\" },\n ],\n rows: value.turns.map((turn) => [\n turn.turnId,\n turn.coverage.state,\n turn.coverage.state === \"complete\" ? \"none\" : turn.coverage.reason,\n ]),\n },\n { kind: \"divider\", title: \"Observation provenance\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Turn\" },\n { header: \"Observation ID\" },\n { header: \"Kind\" },\n { header: \"Provider\" },\n { header: \"Recorded value\" },\n ],\n rows: value.observations.map((observation) => [\n observation.turnId,\n observation.usageObservationId,\n observation.kind,\n observation.provider,\n usageObservationValue(observation),\n ]),\n overflow: \"wrap\",\n },\n ],\n },\n ]);\n}\nfunction usageObservationValue(value: UsageView[\"observations\"][number]): string {\n switch (value.kind) {\n case \"token-bucket\":\n return `${value.bucket}; ${value.tokens} tokens`;\n case \"request\":\n return value.requestKind;\n case \"provider-cost\":\n return `${value.amount} ${value.currency}`;\n }\n}\nexport function renderDiff(value: DiffView): string {\n const statusBlocks: TerminalPanelContentBlock[] = [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n { key: \"Windows\", value: String(value.windows.length) },\n ],\n },\n ];\n if (value.state === \"invalid\") {\n statusBlocks.push({ kind: \"divider\", title: \"Issues\" }, {\n kind: \"table\",\n columns: [{ header: \"Issue\" }],\n rows: value.issues.map((issue) => [issue]),\n overflow: \"wrap\",\n });\n }\n if (value.state === \"complete\" || value.state === \"partial\") {\n statusBlocks.push({ kind: \"divider\", title: \"Limitations\" }, {\n kind: \"table\",\n columns: [{ header: \"Limitation\" }],\n rows: value.limitations.map((limitation) => [\n formatDiffLimitation(limitation),\n ]),\n overflow: \"wrap\",\n });\n }\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: `Diff ${value.locator}`,\n meta: value.state,\n blocks: statusBlocks,\n },\n ];\n for (const window of value.windows) {\n blocks.push({\n kind: \"panel\",\n title: `Window ${window.windowId}`,\n meta: `sequence ${window.sequence}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [{ key: \"Changes\", value: String(window.changes.length) }],\n },\n ],\n });\n for (const change of window.changes) {\n blocks.push({\n kind: \"panel\",\n title: `Change ${change.changeId}`,\n meta: change.kind,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Path\", value: change.path },\n { key: \"Before\", value: fileEndpoint(change.before) },\n { key: \"After\", value: fileEndpoint(change.after) },\n ],\n },\n ],\n });\n }\n }\n return terminal(blocks);\n}\ntype DiffLimitation = Extract<DiffView, {\n readonly state: \"complete\" | \"partial\";\n}>[\"limitations\"][number];\nfunction formatDiffLimitation(value: DiffLimitation): string {\n switch (value.code) {\n case \"capture-failed\":\n case \"capture-interrupted\":\n return `${value.code}; stage ${value.stage}; window ${value.atWindowId ?? \"not-recorded\"}`;\n case \"collection-cap-reached\":\n return `${value.code}; target ${value.target}; omitted at least ${value.omittedAtLeast}; window ${value.atWindowId ?? \"not-recorded\"}`;\n case \"unsupported-input\":\n return `${value.code}; target ${value.target}; omitted at least ${value.omittedAtLeast}`;\n }\n}\ntype DiffEndpoint = Extract<DiffView[\"windows\"][number][\"changes\"][number][\"before\"], {\n readonly state: \"absent\" | \"present\";\n}>;\nfunction fileEndpoint(value: DiffEndpoint): string {\n if (value.state === \"absent\")\n return \"absent\";\n const revision = value.revision;\n if (revision.kind === \"text\") {\n return `text; ${revision.content}; ${revision.byteLength} bytes; ${revision.sha256}`;\n }\n if (revision.kind === \"elided\") {\n return `elided; ${revision.reason}; ${revision.byteLength} bytes`;\n }\n return `unavailable; ${revision.reason}`;\n}\nexport function traceSelector(value: TraceView, id: string) {\n if (value.execution.identityIndex.eventIds.includes(id)) {\n return { kind: \"execution-event\" as const, eventId: id };\n }\n if (value.execution.identityIndex.evidenceIds.includes(id)) {\n return { kind: \"execution-evidence\" as const, evidenceId: id };\n }\n if (value.identities.itemIds.includes(id)) {\n return { kind: \"item\" as const, itemId: id };\n }\n if (value.identities.toolOccurrenceIds.includes(id)) {\n return { kind: \"tool-occurrence\" as const, toolOccurrenceId: id };\n }\n if (value.identities.commandIds.includes(id)) {\n return { kind: \"command\" as const, commandId: id };\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["render.ts"],"names":[],"mappings":"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","sourcesContent":["// @concord-file\n// @concord-implements docs/feature/inspection/cli.md\n// @concord-implements docs/feature/run-inspection/README.md\nimport { formatNumericUnit } from \"../assertions/quantity.ts\";\nimport { renderTerminal, type TerminalBlock, type TerminalPanelContentBlock, charDisplayWidth, stringWidth, padDisplay, wrapDisplay, panelContentWidth, } from \"../terminal/index.ts\";\nimport type { Aggregate, AttemptView, DiffView, ExperimentView, ExecutionValue, ExecutionDisplayPreviewBlock, ExecutionDisplayDetailBlock, Metric, OverviewView, RunView, ScoredValue, SourcesView, TimingView, TraceDetailView, TraceItem, TraceView, UsageView, } from \"./model.ts\";\nimport { decodeBase64Bytes } from \"../inspection/bytes.ts\";\nimport { displayTextHasForbiddenCharacter } from \"../record/family/execution-traces/schema.ts\";\nimport type { InspectionProjectResult } from \"../inspection/project-result.ts\";\nconst TERMINAL_OPTIONS = Object.freeze({ width: 80, mode: \"plain\" as const });\nconst terminal = (blocks: readonly TerminalBlock[]): string => renderTerminal(blocks, TERMINAL_OPTIONS);\nconst fmt = (value: number): string => Number.isInteger(value)\n ? String(value)\n : value.toFixed(2).replace(/0+$/u, \"\").replace(/\\.$/u, \"\");\nconst metric = (value: Metric, formatValue: (value: number) => string = fmt): string => {\n if (value.value === null)\n return value.state;\n const rendered = formatValue(value.value);\n return value.state === \"available\"\n ? rendered\n : `${rendered} (${value.state})`;\n};\nconst passRate = (value: Metric): string => metric(value, (rate) => `${fmt(rate * 100)}%`);\nconst duration = (value: Metric): string => metric(value, (milliseconds) => {\n if (milliseconds < 1000)\n return `${fmt(milliseconds)} ms`;\n if (milliseconds < 60000)\n return `${fmt(milliseconds / 1000)} s`;\n if (milliseconds < 3600000)\n return `${fmt(milliseconds / 60000)} min`;\n return `${fmt(milliseconds / 3600000)} h`;\n});\nconst score = (value: ScoredValue, verdict: AttemptView[\"verdict\"]): string => value.state === \"not-scored\"\n ? value.state\n : `${fmt(value.earned)}/${fmt(value.possible)} (${value.state}${value.state === \"unavailable\"\n ? `; ${value.unavailable} unavailable`\n : \"\"}${value.state === \"complete\" && verdict === \"passed\" ? \"; scored\" : \"\"})`;\nconst aggregateEntries = (value: Aggregate): TerminalPanelContentBlock & {\n readonly kind: \"keyValue\";\n} => ({\n kind: \"keyValue\",\n entries: [\n { key: \"Observed\", value: `${value.observed}/${value.expected}` },\n {\n key: \"Verdicts\",\n value: value.failed === 0 && value.errored === 0 && value.skipped === 0\n ? `${value.passed} passed`\n : `${value.passed} passed; ${value.failed} failed; ${value.errored} errored; ${value.skipped} skipped`,\n },\n ...(value.evaluationKind === \"points\" ? [] : [{ key: \"Pass rate\", value: passRate(value.passRate) }]),\n ...(value.evaluationKind === \"pass\"\n ? []\n : [{ key: \"Score\", value: metric(value.score) }]),\n { key: \"Duration\", value: duration(value.durationMs) },\n { key: \"Tokens\", value: metric(value.tokens) },\n ],\n});\ninterface ExperimentGroup {\n readonly name: string | null;\n readonly experiments: OverviewView[\"experiments\"];\n}\nfunction experimentGroup(experimentId: string): string | null {\n const separator = experimentId.indexOf(\"/\");\n return separator <= 0 ? null : experimentId.slice(0, separator);\n}\nfunction relativeToGroup(id: string, group: string | null): string {\n const prefix = group === null ? \"\" : `${group}/`;\n return prefix !== \"\" && id.startsWith(prefix) ? id.slice(prefix.length) : id;\n}\nfunction groupExperiments(value: OverviewView): readonly ExperimentGroup[] {\n const groups = new Map<string | null, OverviewView[\"experiments\"][number][]>();\n for (const experiment of value.experiments) {\n const group = experimentGroup(experiment.experimentId);\n const members = groups.get(group) ?? [];\n members.push(experiment);\n groups.set(group, members);\n }\n return [...groups].map(([name, experiments]) => ({ name, experiments }));\n}\nconst attemptBlocks = (cells: OverviewView[\"cells\"], group: string | null, all: boolean, showFailed = false): readonly TerminalPanelContentBlock[] => {\n let shownErrors = 0;\n return cells.flatMap((cell) => {\n const showScore = cell.aggregate.evaluationKind !== \"pass\";\n const members = all\n ? cell.members\n : cell.members.filter((member) => {\n if (member.publication.state !== \"published\")\n return true;\n if (member.publication.verdict === \"passed\" ||\n (member.publication.verdict === \"failed\" && !showFailed))\n return false;\n if (member.publication.verdict !== \"errored\")\n return true;\n shownErrors += 1;\n return shownErrors <= 5;\n });\n if (cell.members.length > 0 && members.length === 0)\n return [];\n return [\n {\n kind: \"divider\" as const,\n title: `Eval ${relativeToGroup(cell.evalId, group)}`,\n attachNext: true,\n },\n {\n kind: \"table\" as const,\n columns: [\n { header: \"Attempt\", maxWidth: 14 },\n { header: \"Verdict\" },\n { header: \"Duration\" },\n ...(showScore ? [{ header: \"Score\" }] : []),\n ],\n overflow: \"wrap\" as const,\n rows: members.length === 0\n ? [[\n \"not-recorded\",\n \"not-recorded\",\n duration(cell.aggregate.durationMs),\n ...(showScore ? [metric(cell.aggregate.score)] : []),\n ]]\n : members.map((member) => [\n member.publication.state === \"published\"\n ? member.publication.attemptLocator\n : member.publication.state === \"absent\"\n ? `absent (${member.publication.reason})`\n : \"pending\",\n member.publication.state === \"published\"\n ? member.publication.verdict ?? \"not-recorded\"\n : member.publication.state,\n member.publication.state === \"published\"\n ? duration(member.publication.durationMs)\n : member.publication.state,\n ...(showScore\n ? [member.publication.state === \"published\"\n ? `${metric(member.publication.score)}${member.publication.verdict === \"passed\" && member.publication.score.state === \"available\" && member.publication.score.value !== null ? \" (scored)\" : \"\"}`\n : member.publication.state]\n : []),\n ]),\n },\n ];\n });\n};\nconst hiddenAttemptSummary = (cells: OverviewView[\"cells\"], showFailed = false): string | null => {\n const counts = { passed: 0, scored: 0, failed: 0, errored: 0 };\n for (const cell of cells) {\n for (const member of cell.members) {\n if (member.publication.state !== \"published\")\n continue;\n const verdict = member.publication.verdict;\n if (verdict === \"passed\") {\n if (cell.aggregate.evaluationKind === \"points\" && member.publication.score.state === \"available\" && member.publication.score.value !== null) {\n counts.scored += 1;\n }\n else {\n counts.passed += 1;\n }\n }\n else if (verdict === \"failed\" || verdict === \"errored\") {\n counts[verdict] += 1;\n }\n }\n }\n const hidden = [\n ...(counts.passed > 0 ? [`${counts.passed} passed`] : []),\n ...(counts.scored > 0 ? [`${counts.scored} scored`] : []),\n ...(!showFailed && counts.failed > 0 ? [`${counts.failed} failed`] : []),\n ...(counts.errored > 5 ? [`${counts.errored - 5} errored`] : []),\n ];\n return hidden.length === 0 ? null : `${hidden.join(\"; \")} Attempts hidden`;\n};\nconst compactContinuation = (cells: OverviewView[\"cells\"], experimentId: string, all: boolean, showFailed = false): readonly TerminalPanelContentBlock[] => {\n if (all)\n return [];\n const hidden = hiddenAttemptSummary(cells, showFailed);\n return hidden === null\n ? []\n : [\n {\n kind: \"divider\",\n title: hidden,\n attachNext: true,\n },\n {\n kind: \"keyValue\",\n entries: [{\n key: \"See more\",\n value: `niceeval show --experiment ${experimentId}`,\n }],\n },\n ];\n};\nconst stateCount = (state: string, count: number, noun: string): string => `${state}; ${count} ${noun}s`;\nconst textOrNotRecorded = (value: string | null | undefined): string => value ?? \"not-recorded\";\nexport function renderOverview(value: OverviewView, options: {\n readonly all?: boolean;\n readonly recorded?: boolean;\n readonly current?: InspectionProjectResult;\n} = {}): string {\n const all = options.all === true;\n const current = options.current;\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: current === undefined ? options.recorded === true ? \"Recorded results\" : \"NiceEval results\" : \"Current results\",\n blocks: [\n { kind: \"divider\", title: \"Totals\" },\n current === undefined ? aggregateEntries(value.totals) : {\n kind: \"keyValue\",\n entries: [\n { key: \"Covered\", value: `${current.coverage.covered}/${current.coverage.expected}` },\n { key: \"Gaps\", value: String(current.coverage.gaps) },\n { key: \"Verdicts\", value: `${value.totals.passed} passed; ${value.totals.failed} failed; ${value.totals.errored} errored; ${value.totals.skipped} skipped` },\n ...(value.totals.evaluationKind === \"points\" ? [] : [{ key: \"Pass rate\", value: passRate(value.totals.passRate) }]),\n ...(value.totals.evaluationKind === \"pass\" ? [] : [{ key: \"Score\", value: metric(value.totals.score) }]),\n ],\n },\n ],\n },\n ];\n if (value.experiments.length > 0) {\n const groups = groupExperiments(value);\n blocks.push({\n kind: \"panel\",\n title: \"Experiments\",\n blocks: groups.flatMap((group) => {\n const showPassRate = group.experiments.some(({ aggregate }) => aggregate.evaluationKind !== \"points\");\n const showScore = group.experiments.some(({ aggregate }) => aggregate.evaluationKind !== \"pass\");\n return [\n ...(group.name === null\n ? []\n : [{ kind: \"divider\" as const, title: group.name }]),\n {\n kind: \"table\" as const,\n columns: [\n { header: \"Experiment\" },\n { header: current === undefined ? \"Observed\" : \"Covered\" },\n ...(current === undefined ? [{ header: \"Adapter\" }, { header: \"Model\" }] : [{ header: \"Gaps\" }]),\n ...(showPassRate ? [{ header: \"Pass rate\" }] : []),\n ...(showScore ? [{ header: \"Score\" }] : []),\n ],\n rows: group.experiments.map((experiment) => [\n relativeToGroup(experiment.experimentId, group.name),\n `${experiment.aggregate.observed}/${experiment.aggregate.expected}`,\n ...(current === undefined ? [adapterValue(experiment.adapter), executionValue(experiment.model)] : [String(current.experiments.find(({ experimentId }) => experimentId === experiment.experimentId)!.denominator.missing)]),\n ...(showPassRate ? [passRate(experiment.aggregate.passRate)] : []),\n ...(showScore ? [metric(experiment.aggregate.score)] : []),\n ]),\n },\n ];\n }),\n });\n }\n if (current !== undefined) {\n const currentGroups = groupExperiments(value).flatMap((group) => group.name === null\n ? group.experiments.map((experiment) => ({ name: null, experiments: [experiment] }))\n : [group]);\n for (const group of currentGroups) {\n blocks.push({\n kind: \"panel\",\n title: `Attempts · ${group.name ?? group.experiments[0]!.experimentId}`,\n blocks: group.experiments.flatMap((experiment) => {\n const experimentCells = value.cells.filter((cell) => cell.experimentId === experiment.experimentId && cell.members.length > 0);\n const gaps = current.plannedAttempts.filter((slot) => slot.experimentId === experiment.experimentId && slot.state === \"gap\");\n return [\n ...(group.name === null ? [] : [{ kind: \"divider\" as const, title: `Experiment ${experiment.experimentId}`, attachNext: true }]),\n ...gaps.flatMap((slot): TerminalPanelContentBlock[] => slot.state !== \"gap\" ? [] : [\n { kind: \"divider\", title: `Eval ${relativeToGroup(slot.evalId, group.name)}`, attachNext: true },\n { kind: \"divider\", title: `Gap ${slot.reason}`, attachNext: slot.previous !== null },\n ...(slot.previous === null ? [] : [{ kind: \"divider\" as const, title: `Previous result ${slot.previous.locator}` }]),\n ]),\n ...attemptBlocks(experimentCells, group.name, all, true),\n ...compactContinuation(experimentCells, experiment.experimentId, all, true),\n ];\n }),\n });\n }\n if (current.history.length > 0)\n blocks.push({\n kind: \"panel\",\n title: \"History\",\n blocks: [{\n kind: \"table\",\n columns: [{ header: \"Experiment\" }, { header: \"Eval\" }, { header: \"Attempt\" }, { header: \"Previous result\" }],\n rows: current.history.map((slot) => [slot.experimentId, slot.evalId, String(slot.attemptOrdinal), slot.locator ?? slot.sourceRunId]),\n }],\n });\n const next = current.experiments.filter((experiment) => experiment.denominator.missing > 0);\n return terminal(blocks) + next.map((experiment) => `\\nNext: niceeval exp ${experiment.experimentId} --dry\\n`).join(\"\");\n }\n if (value.cells.length > 0) {\n for (const group of groupExperiments(value)) {\n const experimentIds = new Set(group.experiments.map(({ experimentId }) => experimentId));\n const cells = value.cells.filter(({ experimentId }) => experimentIds.has(experimentId));\n blocks.push({\n kind: \"panel\",\n title: group.name === null ? \"Attempts\" : `Attempts · ${group.name}`,\n blocks: group.experiments.flatMap((experiment) => {\n const experimentCells = cells.filter(({ experimentId }) => experimentId === experiment.experimentId);\n return [\n {\n kind: \"divider\" as const,\n title: `Experiment ${experiment.experimentId}`,\n attachNext: true,\n },\n ...attemptBlocks(experimentCells, group.name, all),\n ...compactContinuation(experimentCells, experiment.experimentId, all),\n ];\n }),\n });\n }\n }\n return terminal(blocks);\n}\nfunction adapterValue(value: import(\"./model.ts\").AdapterValue): string {\n if (value.state === \"mixed\")\n return \"mixed\";\n const identity = value.value;\n return identity.behaviorRevision === null\n ? `${identity.name} (${identity.contract}; revision not declared)`\n : `${identity.name} (${identity.contract}; revision ${identity.behaviorRevision})`;\n}\nexport function renderExperiment(value: ExperimentView): string {\n const { totalCosts, coverage } = value.costSummary;\n return terminal([\n {\n kind: \"panel\",\n title: `Experiment ${value.experimentId}`,\n blocks: [\n { kind: \"divider\", title: \"Plugins\" },\n { kind: \"table\", columns: [\"Name\", \"Key\", \"Identity\"].map((header) => ({ header })),\n rows: value.plugins.map((plugin) => [plugin.name, plugin.key, JSON.stringify(plugin.identity)]) },\n { kind: \"divider\", title: \"Notes\" },\n { kind: \"table\", columns: [\"Label\", \"Count\", \"Min\", \"Median\", \"P90\", \"Max\"].map((header) => ({ header })),\n rows: value.notes.map((note) => [note.label, String(note.count), ...[note.min, note.median, note.p90, note.max].map((n) => formatNumericUnit(n, note.unit))]) },\n { kind: \"divider\", title: totalCosts.state === \"complete\" ? \"Experiment total costs\" : \"Experiment known subtotal\" },\n ...totalCostBlocks(totalCosts).slice(1),\n { kind: \"keyValue\", entries: [\n { key: \"Scope\", value: \"Latest recorded attempts; replaced executions excluded\" },\n { key: \"Planned attempts\", value: String(coverage.plannedAttemptCount) },\n { key: \"Recorded attempts\", value: String(coverage.recordedAttemptCount) },\n { key: \"Unique origin Attempts\", value: String(coverage.originAttemptCount) },\n { key: \"Attempts with complete costs\", value: String(coverage.completeAttemptCount) },\n { key: \"Attempts with partial costs\", value: String(coverage.partialAttemptCount) },\n { key: \"Attempts with unavailable costs\", value: String(coverage.unavailableAttemptCount) },\n { key: \"Missing attempts\", value: String(coverage.missingAttemptCount) },\n ] },\n { kind: \"divider\", title: \"Summary\" },\n aggregateEntries(value.aggregate),\n { kind: \"divider\", title: \"Attempts\" },\n ...attemptBlocks(value.cells, null, true),\n { kind: \"divider\", title: \"Models and usage\" },\n { kind: \"keyValue\", entries: [\n { key: \"Origin Attempts\", value: `${value.modelUsage.attempts.length} shown; ${value.modelUsage.totalAttemptCount} selected; ${value.modelUsage.omittedAttemptCount} omitted; ${value.modelUsage.unresolvedAttemptCount} unresolved` },\n { key: \"Scope\", value: \"Per origin Attempt; recorded calls only\" },\n ] },\n ...value.modelUsage.attempts.flatMap<TerminalPanelContentBlock>((attempt) => [\n { kind: \"divider\", title: `Usage ${attempt.locator}` },\n { kind: \"keyValue\", entries: [\n { key: \"Attempt\", value: attempt.locator },\n { key: \"Origin Run\", value: attempt.originRunId },\n ] },\n ...totalCostBlocks(attempt.usage.totalCosts),\n ...modelUsageBlocks(attempt.usage),\n { kind: \"divider\", title: \"Application totals\" },\n { kind: \"keyValue\", entries: usageTotalEntries(attempt.usage.totals) },\n ]),\n ],\n },\n ]);\n}\nfunction executionValue(value: ExecutionValue): string {\n return value.state === \"available\" ? value.value : value.state;\n}\n// @concord-code\n// @concord-implements docs/feature/inspection/use-case/inspection-check-completeness.md\nexport function renderRun(value: RunView): string {\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: `Run ${value.runId}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Experiment\", value: value.experimentId },\n { key: \"Adapter\", value: value.adapter === null\n ? \"not-recorded\"\n : adapterValue({ state: \"available\", value: value.adapter }) },\n { key: \"State\", value: value.state },\n { key: \"Started\", value: new Date(value.startedAt).toISOString() },\n ...(value.completedAt === undefined\n ? []\n : [{\n key: \"Completed\",\n value: new Date(value.completedAt).toISOString(),\n }]),\n {\n key: \"Summary\",\n value: `${value.observed}/${value.expected} attempts observed`,\n },\n ],\n },\n { kind: \"divider\", title: \"Coverage\" },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.coverage.state },\n {\n key: \"Members\",\n value: `${value.coverage.observedMemberCount}/${value.coverage.expectedMemberCount} observed; ${value.coverage.completeMemberCount} complete`,\n },\n { key: \"Facts\", value: String(value.coverage.factCount) },\n {\n key: \"Limitations\",\n value: String(value.coverage.limitations.length),\n },\n ],\n },\n { kind: \"divider\", title: \"Usage\" },\n runUsageBlocks(value.usage),\n { kind: \"divider\", title: \"Limitations\" },\n runLocatedLimitationTable(value.limitations),\n ],\n },\n ];\n for (const member of value.members) {\n blocks.push({\n kind: \"panel\",\n title: `Member ${member.plannedAttemptId}`,\n meta: member.state,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Eval\", value: member.evalId },\n { key: \"Attempt ordinal\", value: String(member.attemptOrdinal) },\n { key: \"Attempt\", value: member.locator ?? \"not-recorded\" },\n { key: \"Relation\", value: member.relation ?? \"not-recorded\" },\n { key: \"Outcome\", value: member.outcome ?? \"not-recorded\" },\n { key: \"Verdict\", value: member.verdict ?? \"not-recorded\" },\n {\n key: \"Score\",\n value: member.score === null ? \"not-recorded\" : score(member.score, member.verdict),\n },\n ],\n },\n { kind: \"divider\", title: \"Coverage\" },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: member.coverage.state },\n { key: \"Facts\", value: String(member.coverage.facts.length) },\n {\n key: \"Limitations\",\n value: String(member.coverage.limitations.length),\n },\n ],\n },\n { kind: \"divider\", title: \"Usage\" },\n memberUsageBlocks(member.usage),\n { kind: \"divider\", title: \"Limitations\" },\n runMemberLimitationTable(member.limitations),\n ],\n });\n }\n return terminal(blocks);\n}\nfunction runUsageBlocks(value: RunView[\"usage\"]): TerminalPanelContentBlock & {\n readonly kind: \"keyValue\";\n} {\n return {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n {\n key: \"Members\",\n value: `${value.observedMemberCount}/${value.expectedMemberCount} observed; ${value.recordedAttemptCount} recorded attempts`,\n },\n ...usageTotalEntries(value.totals),\n { key: \"Limitations\", value: String(value.limitations.length) },\n ],\n };\n}\nfunction memberUsageBlocks(value: RunView[\"members\"][number][\"usage\"]): TerminalPanelContentBlock & {\n readonly kind: \"keyValue\";\n} {\n return {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n {\n key: \"Summary\",\n value: value.summary === null\n ? \"not-recorded\"\n : `${value.summary.turnCount} turns; ${value.summary.observationCount} observations`,\n },\n ...usageTotalEntries(value.totals),\n {\n key: \"Limitations\",\n value: boundedPreview(value.limitations.length, value.limitationsTruncated, value.omittedLimitationCount),\n },\n ],\n };\n}\ntype RunMemberLimitation = RunView[\"members\"][number][\"limitations\"][number];\nfunction runMemberLimitationTable(values: readonly RunMemberLimitation[]): TerminalPanelContentBlock & {\n readonly kind: \"table\";\n} {\n return {\n kind: \"table\",\n columns: [{ header: \"Limitation\" }],\n rows: values.map((value) => [formatRunMemberLimitation(value)]),\n overflow: \"wrap\",\n };\n}\nfunction runLocatedLimitationTable(values: RunView[\"limitations\"]): TerminalPanelContentBlock & {\n readonly kind: \"table\";\n} {\n return {\n kind: \"table\",\n columns: [\n { header: \"Planned attempt\" },\n { header: \"Attempt\" },\n { header: \"Limitation\" },\n ],\n rows: values.map((value) => [\n value.plannedAttemptId,\n value.locator ?? \"not-recorded\",\n formatRunMemberLimitation(value.limitation),\n ]),\n overflow: \"wrap\",\n };\n}\nfunction formatRunMemberLimitation(value: RunMemberLimitation): string {\n switch (value.kind) {\n case \"member-not-observed\":\n return `${value.kind}; ${value.state}`;\n case \"attempt-unresolved\":\n return `${value.kind}; run ${value.originRunId}; attempt ${value.attemptId}`;\n case \"coverage\":\n return `${value.kind}; ${formatAttemptLimitation(value.detail)}`;\n case \"usage\":\n return `${value.kind}; ${formatUsageLimitation(value.detail)}`;\n }\n}\ntype AttemptLimitation = RunView[\"members\"][number][\"coverage\"][\"limitations\"][number];\nfunction formatAttemptLimitation(value: AttemptLimitation): string {\n if (\"channel\" in value) {\n return `${value.channel}; ${value.status}${value.reason === undefined ? \"\" : `; ${value.reason}`}`;\n }\n return `assertion-material; ${value.state}; ${value.reason}; ${value.limitations.length} material limitations`;\n}\n// @concord-code\n// @concord-implements docs/feature/inspection/cli.md\n// @concord-implements docs/feature/error-classification/use-case/reading-errored.md\nexport function renderAttempt(value: AttemptView): string {\n return terminal([\n {\n kind: \"panel\",\n title: `Attempt ${value.locator}`,\n meta: value.verdict === \"passed\" && value.score.state === \"complete\"\n ? \"scored\"\n : value.verdict ?? value.outcome,\n blocks: [\n ...(value.totalCosts === undefined ? [] : totalCostBlocks(value.totalCosts)),\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Experiment\", value: value.experimentId },\n { key: \"Eval\", value: value.evalId },\n { key: \"Run\", value: value.originRunId },\n { key: \"Attempt\", value: value.attemptId },\n { key: \"Planned attempt\", value: value.plannedAttemptId },\n { key: \"Outcome\", value: value.outcome },\n { key: \"Verdict\", value: value.verdict ?? \"not-available\" },\n { key: \"Score\", value: score(value.score, value.verdict) },\n ],\n },\n {\n kind: \"divider\",\n title: `assertions ${value.sections.assertions} · ${value.assertions.entries.length} entries`,\n },\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Summary\",\n value: stateCount(value.sections.assertions, value.assertions.entries.length, \"entry\"),\n },\n ],\n },\n {\n kind: \"table\",\n columns: [\n { header: \"Assertion\" },\n { header: \"Entry ID\" },\n { header: \"Group\" },\n ],\n rows: value.assertions.entries.map((entry) => [\n entry.label ?? entry.key ?? entry.entryId,\n entry.entryId,\n entry.groupPath.length === 0 ? \"root\" : entry.groupPath.join(\" / \"),\n ]),\n },\n { kind: \"divider\", title: \"Notes\" },\n { kind: \"keyValue\", entries: value.notes.map((note) => ({\n key: note.label,\n value: note.value === null ? \"unavailable\" : typeof note.value === \"number\" ? formatNumericUnit(note.value, note.unit) : JSON.stringify(note.value),\n })) },\n { kind: \"divider\", title: \"Evidence\" },\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"coverage\",\n value: value.evidenceCoverage.length === 0\n ? \"none\"\n : value.evidenceCoverage.join(\"; \"),\n },\n {\n key: \"limitations\",\n value: value.limitations.length === 0\n ? \"none\"\n : value.limitations.join(\"; \"),\n },\n ],\n },\n { kind: \"divider\", title: \"Sections\" },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Source\", value: value.sections.sources },\n { key: \"Execution\", value: value.sections.trace },\n { key: \"Timing\", value: value.sections.timing },\n { key: \"Usage\", value: value.sections.usage },\n { key: \"Diff\", value: value.sections.diff },\n ],\n },\n { kind: \"divider\", title: \"Next\" },\n { kind: \"command\", command: `niceeval show ${value.locator} --source` },\n {\n kind: \"command\",\n command: `niceeval show ${value.locator} --execution`,\n },\n { kind: \"command\", command: `niceeval show ${value.locator} --timing` },\n { kind: \"command\", command: `niceeval show ${value.locator} --usage` },\n { kind: \"command\", command: `niceeval show ${value.locator} --diff` },\n ],\n },\n ]);\n}\nexport function renderSources(value: SourcesView): string {\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: `Captured source ${value.locator}`,\n meta: value.state,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n { key: \"Captured items\", value: String(value.items.length) },\n {\n key: \"Omitted items\",\n value: value.hasMore ? String(value.omittedItemCount) : \"0\",\n },\n ],\n },\n ],\n },\n ];\n for (const item of value.items) {\n blocks.push({\n kind: \"panel\",\n title: `${item.path} · ${item.sourceItemId} · ${item.byteLength} bytes`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Bytes\", value: String(item.byteLength) },\n { key: \"Content\", value: item.content.state },\n ...(item.content.state === \"omitted\"\n ? [\n { key: \"Reason\", value: item.content.reason },\n {\n key: \"Byte limit\",\n value: `${item.content.byteLimit}/${item.content.byteLength} retained`,\n },\n ]\n : []),\n ],\n },\n ],\n });\n if (item.content.state === \"available\") {\n blocks.push({ kind: \"code\", text: item.content.text });\n }\n }\n blocks.push({\n kind: \"panel\",\n title: \"Assertion source facts\",\n meta: value.assertions.state,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Source sites\",\n value: String(value.assertions.sites.length),\n },\n {\n key: \"Omitted source sites\",\n value: value.assertions.hasMoreSourceSites === true\n ? String(value.assertions.omittedSourceSiteCount ?? 0)\n : \"0\",\n },\n ],\n },\n ],\n }, {\n kind: \"raw\",\n text: value.assertions.sites.map((site) => `${site.entryId} · ${site.role} · ${sourceRange(site.start, site.end)} · ${site.source.state === \"mapped\"\n ? `mapped · ${site.source.sourceItemId} · ${site.source.sha256}`\n : `unmapped · ${site.source.reason}`}`).join(\"\\n\"),\n });\n return terminal(blocks);\n}\nfunction sourceRange(start: SourcesView[\"assertions\"][\"sites\"][number][\"start\"], end: SourcesView[\"assertions\"][\"sites\"][number][\"end\"]): string {\n return `start ${start.line}:${start.column} · end ${end.line}:${end.column}`;\n}\nfunction safeEventText(text: string): string {\n return Array.from(text).filter((character) => !displayTextHasForbiddenCharacter(character)).join(\"\");\n}\nfunction safeEventJson(value: unknown, space?: number): string {\n return JSON.stringify(value, (_key, item: unknown) => typeof item === \"string\" ? safeEventText(item) : item, space);\n}\nfunction displayPreview(text: {\n readonly preview: string;\n readonly omittedBytes: number;\n}, eventId: string): string {\n return safeEventText(text.preview) + (text.omittedBytes === 0 ? \"\" : `\\n… (${text.omittedBytes} more bytes, --expand ${eventId})`);\n}\nfunction truncateCodeLine(line: string, width: number): string {\n if (stringWidth(line) <= width)\n return line;\n let text = \"\";\n let used = 0;\n for (const character of line) {\n const size = charDisplayWidth(character.codePointAt(0)!);\n if (used + size > width - 1)\n break;\n text += character;\n used += size;\n }\n return `${text}…`;\n}\nfunction displayLines(block: ExecutionDisplayPreviewBlock | ExecutionDisplayDetailBlock, eventId: string, width: number): string[] {\n const textValue = (text: string | {\n readonly preview: string;\n readonly omittedBytes: number;\n }): string => typeof text === \"string\" ? safeEventText(text) : displayPreview(text, eventId);\n switch (block.kind) {\n case \"text\": return wrapDisplay(textValue(block.text), width);\n case \"message\": {\n const label = safeEventText(block.speaker ?? block.role);\n const prefix = `${label}: `;\n return wrapDisplay(textValue(block.text), Math.max(4, width - stringWidth(prefix)))\n .map((line, index) => `${index === 0 ? prefix : \" \".repeat(stringWidth(prefix))}${line}`);\n }\n case \"fields\": {\n const labelWidth = Math.max(0, ...block.fields.map((field) => stringWidth(safeEventText(field.label))));\n return block.fields.flatMap((field) => {\n const value = typeof field.value === \"object\" && field.value !== null\n ? textValue(field.value)\n : typeof field.value === \"string\" ? safeEventText(field.value) : JSON.stringify(field.value);\n return wrapDisplay(value, Math.max(4, width - labelWidth - 2)).map((line, index) => `${index === 0 ? padDisplay(safeEventText(field.label), labelWidth) : \" \".repeat(labelWidth)} ${line}`);\n });\n }\n case \"code\": {\n if (typeof block.text === \"string\")\n return safeEventText(block.text).split(\"\\n\");\n return [\n ...safeEventText(block.text.preview).split(\"\\n\").map((line) => truncateCodeLine(line, width)),\n ...(block.text.omittedBytes === 0 ? [] : [`… (${block.text.omittedBytes} more bytes, --expand ${eventId})`]),\n ];\n }\n case \"image\": return [\n ...wrapDisplay(`[image] ${safeEventText(block.alt)}`, width),\n ...wrapDisplay(`${block.mediaType} · ${block.byteLength} bytes · artifact ${block.artifactId}`, width),\n ];\n }\n}\nfunction displayDetailBlocks(block: ExecutionDisplayDetailBlock, locator: string, eventId: string): TerminalBlock[] {\n const lines = displayLines(block, eventId, TERMINAL_OPTIONS.width);\n const blocks: TerminalBlock[] = [{ kind: \"code\", text: lines.join(\"\\n\") }];\n if (block.kind === \"image\") {\n const request = JSON.stringify({ protocol: \"niceeval.query/v2\", operation: { kind: \"attempt.artifact\", locator, artifactId: block.artifactId } });\n blocks.push({ kind: \"code\", text: `niceeval query run --request - <<'NICEEVAL_REQUEST'\\n${request}\\nNICEEVAL_REQUEST` });\n }\n return blocks;\n}\nexport function renderTrace(value: TraceView): string {\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: `Execution ${value.locator}`,\n blocks: [],\n },\n {\n kind: \"panel\",\n title: \"Generic execution traces\",\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Capture\", value: value.execution.state },\n { key: \"Traces\", value: String(value.execution.traces.length) },\n {\n key: \"Events\",\n value: `${value.execution.events.length} shown; ${value.execution.omittedEventCount} remaining in this selection`,\n },\n { key: \"Page\", value: value.execution.hasMore ? \"more events available\" : \"end of selected events\" },\n ...(value.execution.continuation === undefined ? [] : [{ key: \"Continuation\", value: value.execution.continuation }]),\n ],\n },\n {\n kind: \"table\",\n columns: [{ header: \"Capture limitation\" }],\n rows: value.execution.limitations.map((limitation) => [safeEventJson(limitation)]),\n overflow: \"wrap\",\n },\n ...value.execution.traces.flatMap<TerminalPanelContentBlock>((trace) => [\n { kind: \"divider\", title: `Trace ${safeEventText(trace.sourceTraceId)}` },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Trace ID\", value: trace.traceId },\n { key: \"Producer collection\", value: trace.collection.state },\n { key: \"Recorded events\", value: String(trace.eventCount) },\n ],\n },\n {\n kind: \"table\",\n columns: [{ header: \"Producer limitation\" }, { header: \"Reason\" }],\n rows: trace.collection.limitations.map((limitation) => [safeEventText(limitation.code), safeEventText(limitation.message)]),\n overflow: \"wrap\",\n },\n ]),\n { kind: \"divider\", title: \"Event page\" },\n ...value.execution.events.flatMap<TerminalPanelContentBlock>((event) => [\n { kind: \"divider\", title: safeEventText(event.type) },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Event ID\", value: event.eventId },\n { key: \"Actor\", value: safeEventText(event.actor?.label ?? event.actor?.id ?? \"not-recorded\") },\n { key: \"Source\", value: safeEventText(event.source.id) },\n ...(event.time === undefined ? [] : [{ key: \"Time\", value: safeEventText(`${event.time.clockId}: ${event.time.value} ${event.time.unit}`) }]),\n { key: \"Summary\", value: safeEventText(event.summary) },\n ],\n },\n ...(event.display.state === \"absent\" ? [] : event.display.blocks.map((block): TerminalPanelContentBlock => ({\n kind: \"command\",\n command: displayLines(block, event.eventId, panelContentWidth(TERMINAL_OPTIONS.width, TERMINAL_OPTIONS.mode)).join(\"\\n\"),\n }))),\n ]),\n ],\n },\n {\n kind: \"panel\",\n title: `Conversation · ${value.conversation.state}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Turns\",\n value: boundedPreview(value.conversation.turns.length, value.conversation.turnsTruncated, value.conversation.omittedTurnCount),\n },\n {\n key: \"Items\",\n value: boundedPreview(value.conversation.itemCount, value.conversation.itemsTruncated, value.conversation.omittedItemCount),\n },\n {\n key: \"Limitations\",\n value: boundedPreview(value.conversation.limitations.length, value.conversation.limitationsTruncated, value.conversation.omittedLimitationCount),\n },\n ],\n },\n { kind: \"divider\", title: \"Limitations\" },\n limitationTable(value.conversation.limitations),\n ],\n },\n ];\n for (const turn of value.conversation.turns) {\n blocks.push({\n kind: \"panel\",\n title: `Turn ${turn.turnId}`,\n meta: turn.outcome,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Sequence\", value: String(turn.sequence) },\n { key: \"Items\", value: String(turn.items.length) },\n ],\n },\n ],\n });\n for (const item of turn.items)\n blocks.push(...traceItemBlocks(item));\n }\n blocks.push({\n kind: \"panel\",\n title: `Commands · ${value.commands.state}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Items\",\n value: boundedPreview(value.commands.items.length, value.commands.hasMore, value.commands.omittedCommandCount),\n },\n {\n key: \"Limitations\",\n value: boundedPreview(value.commands.limitations.length, value.commands.limitationsTruncated, value.commands.omittedLimitationCount),\n },\n ],\n },\n { kind: \"divider\", title: \"Limitations\" },\n limitationTable(value.commands.limitations),\n { kind: \"divider\", title: \"Command outline\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Command ID\" },\n { header: \"Phase\" },\n { header: \"Outcome\" },\n ],\n rows: value.commands.items.map((command) => [\n command.commandId,\n command.phase,\n command.outcome,\n ]),\n },\n ],\n });\n blocks.push({\n kind: \"panel\",\n title: `Diagnostics · ${value.diagnostics.state}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Items\",\n value: boundedPreview(value.diagnostics.items.length, value.diagnostics.hasMore, value.diagnostics.omittedDiagnosticCount),\n },\n {\n key: \"Limitations\",\n value: boundedPreview(value.diagnostics.limitations.length, value.diagnostics.limitationsTruncated, value.diagnostics.omittedLimitationCount),\n },\n ],\n },\n { kind: \"divider\", title: \"Limitations\" },\n limitationTable(value.diagnostics.limitations),\n { kind: \"divider\", title: \"Diagnostic outline\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Diagnostic ID\" },\n { header: \"Phase\" },\n { header: \"Kind\" },\n { header: \"Code\" },\n { header: \"Summary\" },\n ],\n rows: value.diagnostics.items.map((diagnostic) => [\n diagnostic.diagnosticId,\n diagnostic.phase,\n diagnostic.kind,\n diagnostic.code,\n diagnostic.summary,\n ]),\n overflow: \"wrap\",\n },\n ],\n });\n blocks.push({ kind: \"panel\", title: \"Stable identities\", blocks: [] }, {\n kind: \"raw\",\n text: [\n ...value.execution.events.flatMap((event) => [\n `event ${event.eventId}`,\n ...event.evidence.map((evidence) => ` evidence ${evidence.evidenceId}`),\n ]),\n ...value.identities.itemIds.map((id) => `item ${id}`),\n ...value.identities.toolOccurrenceIds.map((id) => `tool occurrence ${id}`),\n ...value.identities.commandIds.map((id) => `command ${id}`),\n ].join(\"\\n\"),\n });\n return terminal(blocks);\n}\nfunction boundedPreview(shown: number, truncated: boolean, omitted: number): string {\n return `${shown} shown; ${truncated ? `bounded preview, ${omitted} omitted` : \"complete preview, 0 omitted\"}`;\n}\ntype ProjectionLimitation = TimingView[\"limitations\"][number] | TraceView[\"conversation\"][\"limitations\"][number] | TraceView[\"diagnostics\"][\"limitations\"][number];\nfunction limitationTable(limitations: readonly ProjectionLimitation[]): TerminalPanelContentBlock & {\n readonly kind: \"table\";\n} {\n return {\n kind: \"table\",\n columns: [{ header: \"Limitation\" }],\n rows: limitations.map((limitation) => [formatProjectionLimitation(limitation)]),\n overflow: \"wrap\",\n };\n}\nfunction projectionLimitationTable(limitations: readonly ProjectionLimitation[]): TerminalPanelContentBlock & {\n readonly kind: \"table\";\n} {\n return limitationTable(limitations);\n}\nfunction formatProjectionLimitation(value: ProjectionLimitation): string {\n if (\"issue\" in value)\n return `invalid projection; ${value.issue}`;\n if (\"source\" in value) {\n if (value.source === \"agent-turns\") {\n return `${value.source}; turn ${value.turnId}; ${value.channel}; ${value.state}; ${value.reason}`;\n }\n const details = value.limitations.map(formatProjectionLimitation).join(\"; \");\n return `${value.source}; ${value.state}${details.length === 0 ? \"\" : `; ${details}`}`;\n }\n switch (value.code) {\n case \"capture-failed\":\n case \"capture-interrupted\":\n return `${value.code}; stage ${value.stage}; target ${value.target}`;\n case \"collection-cap-reached\":\n case \"unsupported-input\":\n return `${value.code}; target ${value.target}; omitted at least ${value.omittedAtLeast}`;\n case \"text-truncated\":\n case \"redacted\":\n case \"invalid-utf8-replaced\":\n case \"unsafe-control-stripped\":\n return `${value.code}; target ${value.target}; replaced or omitted ${value.replacementOrOmittedCount}`;\n }\n}\ntype UsageLimitation = UsageView[\"limitations\"][number];\nfunction formatUsageLimitation(value: UsageLimitation): string {\n if (\"issue\" in value)\n return value.issue;\n if (\"source\" in value) {\n return `${value.source}; turn ${value.turnId}; ${value.channel}; ${value.state}; ${value.reason}`;\n }\n return formatProjectionLimitation(value);\n}\nfunction traceItemBlocks(item: TraceItem): readonly TerminalBlock[] {\n const entries: {\n key: string;\n value: string;\n }[] = [\n { key: \"Kind\", value: item.kind },\n { key: \"Sequence\", value: String(item.sequence) },\n ];\n let content: string | null = null;\n switch (item.kind) {\n case \"message\":\n entries.push({ key: \"Role\", value: item.role });\n content = item.text;\n break;\n case \"tool-call\":\n entries.push({ key: \"Tool\", value: item.tool }, {\n key: \"Tool occurrence\",\n value: item.toolOccurrenceId ?? \"not-recorded\",\n });\n content = item.input;\n break;\n case \"tool-result\":\n entries.push({ key: \"Outcome\", value: item.outcome }, {\n key: \"Tool occurrence\",\n value: item.toolOccurrenceId ?? \"not-recorded\",\n });\n content = item.output;\n break;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\":\n content = item.summary;\n break;\n case \"subagent\":\n entries.push({ key: \"State\", value: item.state }, { key: \"Label\", value: item.label });\n content = item.summary;\n break;\n case \"input-request\":\n entries.push({ key: \"State\", value: item.state });\n content = `Prompt: ${item.prompt}\\nResponse: ${textOrNotRecorded(item.response)}`;\n break;\n case \"skill-load\":\n case \"conversation-error\":\n entries.push({ key: \"Code\", value: item.code });\n content = item.summary;\n break;\n }\n return [\n {\n kind: \"panel\",\n title: `Item ${item.itemId}`,\n blocks: [{ kind: \"keyValue\", entries }],\n },\n ...(content === null ? [] : [{ kind: \"code\" as const, text: content }]),\n ];\n}\nexport function renderTraceDetail(value: TraceDetailView): string {\n const body = value.body;\n const heading: TerminalBlock = {\n kind: \"panel\",\n title: `Execution detail ${value.locator}`,\n meta: `${value.kind} ${value.stableId}`,\n blocks: [],\n };\n if (body.kind === \"execution-event\") {\n const eventJson = safeEventJson({\n key: body.event.key,\n type: body.event.type,\n source: body.event.source,\n actor: body.event.actor ?? null,\n time: body.event.time ?? null,\n summary: body.event.summary,\n payload: body.event.payload ?? null,\n links: body.event.links,\n scopeMemberships: body.event.scopeMemberships,\n }, 2);\n return terminal([\n heading,\n {\n kind: \"panel\",\n title: `${safeEventText(body.event.type)} · ${body.event.eventId}`,\n blocks: [{\n kind: \"keyValue\",\n entries: [\n { key: \"Trace\", value: body.event.traceId },\n { key: \"Source\", value: safeEventText(body.event.source.id) },\n { key: \"Native event ID\", value: safeEventText(body.event.source.eventId ?? \"not-recorded\") },\n { key: \"Client sequence\", value: body.event.source.sequence === undefined ? \"not-recorded\" : String(body.event.source.sequence) },\n { key: \"Actor\", value: safeEventText(body.event.actor?.id ?? \"not-recorded\") },\n { key: \"Time\", value: body.event.time === undefined ? \"not-recorded\" : safeEventText(`${body.event.time.value} ${body.event.time.unit} (${body.event.time.clockId})`) },\n { key: \"Summary\", value: safeEventText(body.event.summary) },\n { key: \"Evidence\", value: String(body.evidence.length) },\n ],\n }],\n },\n ...(body.event.display ?? []).flatMap((block) => displayDetailBlocks(block, value.locator, body.event.eventId)),\n { kind: \"divider\", title: \"Event\" },\n { kind: \"code\", text: eventJson },\n ...body.evidence.flatMap((evidence): readonly TerminalBlock[] => ([\n {\n kind: \"panel\",\n title: `${safeEventText(evidence.label)} · ${evidence.evidenceId}`,\n meta: evidence.truncated ? \"preview\" : \"complete\",\n blocks: [{\n kind: \"keyValue\",\n entries: [\n { key: \"Artifact\", value: evidence.artifactId },\n { key: \"Pointer\", value: safeEventText(evidence.pointer) },\n { key: \"Bytes\", value: String(evidence.targetByteLength) },\n { key: \"Target SHA-256\", value: evidence.targetSha256 },\n { key: \"Next offset\", value: evidence.nextOffset === null ? \"complete\" : String(evidence.nextOffset) },\n ],\n }],\n },\n { kind: \"code\", text: safeEventText(executionEvidenceText(evidence.base64)) },\n ...(evidence.nextOffset === null ? [] : [{\n kind: \"command\" as const,\n command: `Query attempt.trace.detail for ${evidence.evidenceId} with offset ${evidence.nextOffset}`,\n }]),\n ])),\n ]);\n }\n if (body.kind === \"execution-evidence\") {\n return terminal([\n heading,\n {\n kind: \"panel\",\n title: `${safeEventText(body.label)} · ${body.evidenceId}`,\n blocks: [{\n kind: \"keyValue\",\n entries: [\n { key: \"Trace\", value: body.traceId },\n { key: \"Event\", value: body.eventId },\n { key: \"Artifact\", value: body.artifactId },\n { key: \"Pointer\", value: safeEventText(body.pointer) },\n { key: \"Range\", value: `${body.offset}..${body.nextOffset ?? body.targetByteLength}` },\n { key: \"Target SHA-256\", value: body.targetSha256 },\n ],\n }],\n },\n { kind: \"code\", text: safeEventText(executionEvidenceText(body.base64)) },\n ...(body.nextOffset === null ? [] : [{\n kind: \"command\" as const,\n command: `Query attempt.trace.detail for ${body.evidenceId} with offset ${body.nextOffset}`,\n }]),\n ]);\n }\n if (body.kind === \"item\") {\n return terminal([heading, ...traceDetailItemBlocks(body.item)]);\n }\n if (body.kind === \"tool-occurrence\") {\n return terminal([\n heading,\n {\n kind: \"panel\",\n title: \"Occurrence turns\",\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n {\n key: \"Call\",\n value: body.turn.call === null\n ? \"not-recorded\"\n : `${body.turn.call.turnId}; sequence ${body.turn.call.sequence}; ${body.turn.call.outcome}`,\n },\n {\n key: \"Result\",\n value: body.turn.result === null\n ? \"not-recorded\"\n : `${body.turn.result.turnId}; sequence ${body.turn.result.sequence}; ${body.turn.result.outcome}`,\n },\n ],\n },\n ],\n },\n ...(body.call === null\n ? [{\n kind: \"panel\" as const,\n title: \"Call\",\n meta: \"not-recorded\",\n blocks: [],\n }]\n : traceDetailItemBlocks(body.call, \"Call\")),\n ...(body.result === null\n ? [{\n kind: \"panel\" as const,\n title: \"Result\",\n meta: \"not-recorded\",\n blocks: [],\n }]\n : traceDetailItemBlocks(body.result, \"Result\")),\n ]);\n }\n return terminal([\n heading,\n {\n kind: \"panel\",\n title: `Command ${body.commandId}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Invocation\", value: commandInvocation(body.invocation) },\n {\n key: \"Working directory\",\n value: workingDirectory(body.workingDirectory),\n },\n { key: \"Outcome\", value: commandOutcome(body.outcome) },\n { key: \"Turn\", value: body.turnId ?? \"not-recorded\" },\n { key: \"Phase\", value: body.phase },\n { key: \"Sequence\", value: String(body.sequence) },\n ],\n },\n { kind: \"divider\", title: \"stdout\" },\n streamMetadata(body.stdout),\n { kind: \"divider\", title: \"stderr\" },\n streamMetadata(body.stderr),\n ],\n },\n { kind: \"code\", text: body.stdout.text },\n { kind: \"code\", text: body.stderr.text },\n ]);\n}\nfunction executionEvidenceText(base64: string): string {\n return new TextDecoder(\"utf-8\").decode(decodeBase64Bytes(base64));\n}\ntype TraceDetailItem = Extract<TraceDetailView[\"body\"], {\n readonly kind: \"item\";\n}>[\"item\"];\nfunction traceDetailItemBlocks(item: TraceDetailItem, title = `Item ${item.itemId}`): readonly TerminalBlock[] {\n const entries: {\n key: string;\n value: string;\n }[] = [\n { key: \"Item ID\", value: item.itemId },\n { key: \"Kind\", value: item.kind },\n { key: \"Turn\", value: item.turnId },\n { key: \"Turn sequence\", value: String(item.turnSequence) },\n { key: \"Turn outcome\", value: item.turnOutcome },\n { key: \"Session\", value: item.sessionId ?? \"not-recorded\" },\n { key: \"Event\", value: item.eventId ?? \"not-recorded\" },\n {\n key: \"Sequence\",\n value: item.sequence === undefined ? \"not-recorded\" : String(item.sequence),\n },\n ];\n let content: string | null = null;\n switch (item.kind) {\n case \"message\":\n entries.push({ key: \"Role\", value: item.role });\n content = item.text;\n break;\n case \"tool-call\":\n entries.push({ key: \"Tool\", value: item.tool }, {\n key: \"Tool occurrence\",\n value: item.toolOccurrenceId ?? \"not-recorded\",\n });\n content = item.input;\n break;\n case \"tool-result\":\n entries.push({ key: \"Outcome\", value: item.outcome }, {\n key: \"Tool occurrence\",\n value: item.toolOccurrenceId ?? \"not-recorded\",\n });\n content = item.output;\n break;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\":\n content = item.summary;\n break;\n case \"subagent\":\n entries.push({ key: \"State\", value: item.state }, { key: \"Label\", value: item.label });\n content = item.summary;\n break;\n case \"input-request\":\n entries.push({ key: \"State\", value: item.state });\n content = `Prompt: ${item.prompt}\\nResponse: ${textOrNotRecorded(item.response)}`;\n break;\n case \"skill-load\":\n case \"conversation-error\":\n entries.push({ key: \"Code\", value: item.code });\n content = item.summary;\n break;\n }\n return [\n {\n kind: \"panel\",\n title,\n blocks: [{ kind: \"keyValue\", entries }],\n },\n ...(content === null ? [] : [{ kind: \"code\" as const, text: content }]),\n ];\n}\ntype CommandDetail = Extract<TraceDetailView[\"body\"], {\n readonly kind: \"command\";\n}>;\nfunction streamMetadata(stream: CommandDetail[\"stdout\"]): TerminalPanelContentBlock & {\n readonly kind: \"keyValue\";\n} {\n return {\n kind: \"keyValue\",\n entries: [\n { key: \"Retained bytes\", value: String(stream.retainedBytes) },\n { key: \"Total safe UTF-8 bytes\", value: String(stream.totalSafeUtf8Bytes) },\n { key: \"SHA-256\", value: stream.sha256 },\n { key: \"Truncation\", value: stream.truncation.state },\n {\n key: \"Omitted safe UTF-8 bytes\",\n value: String(stream.truncation.omittedSafeUtf8Bytes),\n },\n ],\n };\n}\nfunction commandInvocation(value: CommandDetail[\"invocation\"]): string {\n return value.kind === \"shell\"\n ? value.command\n : [value.executable, ...value.arguments].join(\" \");\n}\nfunction workingDirectory(value: CommandDetail[\"workingDirectory\"]): string {\n return value.kind === \"project-relative\" ? value.path : value.kind;\n}\nfunction commandOutcome(value: CommandDetail[\"outcome\"]): string {\n if (value.kind === \"exited\")\n return `exited; code ${value.exitCode}`;\n return `${value.kind}; ${value.reason}`;\n}\nexport function renderTiming(value: TimingView): string {\n return terminal([\n {\n kind: \"panel\",\n title: `Timing ${value.locator}`,\n meta: value.state,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n { key: \"Activities\", value: String(value.activities.length) },\n {\n key: \"Omitted activities\",\n value: value.hasMore ? String(value.omittedActivityCount) : \"0\",\n },\n { key: \"Limitations\", value: String(value.limitations.length) },\n ],\n },\n { kind: \"divider\", title: \"Limitations\" },\n projectionLimitationTable(value.limitations),\n { kind: \"divider\", title: \"Activities\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Activity ID\" },\n { header: \"Parent\" },\n { header: \"Turn\" },\n { header: \"Phase\" },\n { header: \"Label\" },\n { header: \"Start\" },\n { header: \"Duration\" },\n { header: \"Outcome\" },\n ],\n rows: value.activities.map((activity) => [\n activity.activityId,\n activity.parentActivityId ?? \"none\",\n activity.turnId ?? \"none\",\n activity.phase,\n activity.label,\n `${fmt(activity.startOffsetMs)} ms`,\n `${fmt(activity.durationMs)} ms`,\n activity.outcome,\n ]),\n },\n ],\n },\n ]);\n}\ntype UsageTotals = UsageView[\"totals\"];\nfunction numericUsageTotal(total: UsageTotals[\"inputTokens\"]): string {\n return `${total.value === null ? \"not-recorded\" : fmt(total.value)} (${total.state}; ${total.observationCount} observations)`;\n}\nfunction usageTotalEntries(totals: UsageTotals): readonly {\n readonly key: string;\n readonly value: string;\n}[] {\n return [\n { key: \"Input tokens\", value: numericUsageTotal(totals.inputTokens) },\n ...(totals.inputTotalTokens === undefined ? [] : [{ key: \"Input including cache\", value: numericUsageTotal(totals.inputTotalTokens) }]),\n { key: \"Output tokens\", value: numericUsageTotal(totals.outputTokens) },\n { key: \"Requests\", value: numericUsageTotal(totals.requests) },\n totals.costs === undefined\n ? {\n key: \"Provider costs\",\n value: `${totals.providerCosts?.state ?? \"unavailable\"}; ${totals.providerCosts?.observationCount ?? 0} observations${(totals.providerCosts?.values.length ?? 0) === 0\n ? \"; no recorded values\"\n : `; ${totals.providerCosts!.values.map((cost) => `${cost.value} ${cost.currency} (${cost.observationCount} observations)`).join(\"; \")}`}`,\n }\n : {\n key: \"Application cost\",\n value: `${totals.costs.state}${totals.costs.state === \"partial\" ? \"; known subtotal\" : \"\"}; ${totals.costs.source ?? \"unknown\"}; ${totals.costs.values.length === 0\n ? `0/${totals.costs.totalCalls} covered calls; no recorded values`\n : totals.costs.values.map((cost) => `${cost.value} ${cost.currency} (${cost.coveredCalls}/${totals.costs!.totalCalls} covered calls; ${cost.source}; ${cost.estimatedCalls} estimated)`).join(\"; \")}`,\n },\n ];\n}\nfunction totalCostBlocks(costs: UsageView[\"totalCosts\"]): readonly TerminalPanelContentBlock[] {\n const complete = costs.state === \"complete\";\n return [\n { kind: \"divider\", title: complete ? \"Total costs\" : \"Known subtotal\" },\n { kind: \"keyValue\", entries: [\n { key: \"Cost coverage\", value: complete ? \"Complete\" : \"Incomplete\" },\n ...(costs.missingSources.length === 0 ? [] : [{ key: \"Missing sources\", value: costs.missingSources.join(\", \") }]),\n ...(costs.values.length === 0 ? [{ key: \"Amount\", value: complete ? \"No recorded charges\" : \"Unavailable\" }] : []),\n ] },\n ...(costs.values.length === 0 ? [] : [{ kind: \"table\" as const,\n columns: [{ header: \"Currency\" }, { header: complete ? \"Total\" : \"Known subtotal\" }, { header: \"Source\" }],\n rows: costs.values.map((cost) => [cost.currency, cost.value, cost.source]), overflow: \"wrap\" as const }]),\n ];\n}\nfunction cacheReadBlocks(report: import(\"../o11y/cache-read.ts\").CacheReadReport | undefined): readonly TerminalPanelContentBlock[] {\n if (report === undefined)\n return [];\n const row = (label: string, summary: import(\"../o11y/cache-read.ts\").CacheReadSummary) => [\n label, summary.rate.state === \"exact\" ? `${(summary.rate.value * 100).toFixed(2)}%` : \"Unavailable\",\n `${summary.coveredCalls}/${summary.recordedCalls}`, summary.collectionComplete ? \"Complete\" : \"Incomplete\",\n summary.reasons.join(\", \") || \"—\",\n ];\n return [{ kind: \"divider\", title: \"Cache read rate\" }, { kind: \"table\",\n columns: [{ header: \"Scope\" }, { header: \"Rate\" }, { header: \"Covered calls\" }, { header: \"Collection\" }, { header: \"Reasons\" }],\n rows: [row(\"Total\", report.total), ...report.roles.map((group) => row(`Role: ${group.modelRole ?? \"not-recorded\"}`, group)),\n ...report.models.map((group) => row(`${group.modelRole ?? \"not-recorded\"} / ${group.provider ?? \"not-recorded\"} / ${group.model ?? \"not-recorded\"}`, group))], overflow: \"wrap\" }];\n}\nfunction modelUsageBlocks(value: Pick<UsageView, \"configuredModels\" | \"modelGroups\" | \"totalCosts\"> & {\n readonly judgeUsage: import(\"../inspection/results.ts\").JudgeUsageSummary;\n readonly cacheRead?: import(\"../o11y/cache-read.ts\").CacheReadReport;\n}): readonly TerminalPanelContentBlock[] {\n const configured = value.configuredModels;\n const groups = value.modelGroups;\n const recordedCalls = (count: number | null): string => count === null ? \"—\" : count === 0 ? \"0 (no recorded calls)\" : String(count);\n const defaultBinding = configured.state === \"available\" && configured.bindings.length === 1 && configured.bindings[0].modelRole === \"default\" ? configured.bindings[0] : null;\n const configurationBlocks: readonly TerminalPanelContentBlock[] = configured.state !== \"available\"\n ? [{ kind: \"keyValue\", entries: [{ key: \"Configuration\", value: configured.state }] }]\n : defaultBinding !== null\n ? [{ kind: \"keyValue\", entries: [\n { key: \"Configured model (default)\", value: defaultBinding.model ?? \"—\" },\n ...(defaultBinding.reasoningEffort === null ? [] : [{ key: \"Effort\", value: defaultBinding.reasoningEffort }]),\n { key: \"Recorded calls\", value: recordedCalls(defaultBinding.recordedCalls) },\n ] }]\n : configured.bindings.length === 0\n ? [{ kind: \"keyValue\", entries: [{ key: \"Configured roles\", value: \"0\" }] }]\n : [{ kind: \"table\", columns: [{ header: \"Role\" }, { header: \"Configured model\" }, { header: \"Effort\" }, { header: \"Recorded calls\" }],\n rows: configured.bindings.map((binding) => [binding.modelRole, binding.model ?? \"—\", binding.reasoningEffort ?? \"—\", recordedCalls(binding.recordedCalls)]), overflow: \"wrap\" }];\n return [\n ...cacheReadBlocks(value.cacheRead),\n { kind: \"divider\", title: \"Configured model roles\" },\n ...configurationBlocks,\n { kind: \"divider\", title: \"Actual model usage\" },\n { kind: \"keyValue\", entries: [\n { key: \"State\", value: groups.state },\n { key: \"Basis\", value: groups.basis },\n { key: \"Groups\", value: `${groups.groups.length} shown; ${groups.totalGroupCount ?? \"unknown\"} total; ${groups.omittedGroupCount} omitted${groups.groupsTruncated ? \" (truncated)\" : \"\"}` },\n ...(\"reason\" in groups && groups.reason !== undefined ? [{ key: \"Reason\", value: groups.reason }] : []),\n ] },\n { kind: \"table\", columns: [\n { header: \"Role / provider / actual model\", maxWidth: 30 },\n { header: \"Calls / tokens\", maxWidth: 18 }, { header: \"Application cost\", maxWidth: 24 },\n ], rows: groups.groups.map((group) => [\n `Role: ${group.modelRole ?? \"not-recorded\"}\\nProvider: ${group.provider ?? \"not-recorded\"}\\n${group.model ?? \"not-recorded\"}`,\n `${group.recordedCalls} calls\\nInput incl. cache: ${metric(group.tokens.inputTotalTokens)}\\nOutput: ${metric(group.tokens.outputTokens)}\\nTotal: ${metric(group.tokens.totalTokens)}`,\n group.costs.values.length === 0 ? group.costs.state : group.costs.values.map((cost) => `${cost.value} ${cost.currency} (${group.costs.state}${group.costs.state === \"partial\" ? \"; known subtotal\" : \"\"}; ${cost.coveredCalls}/${group.costs.totalCalls} covered; ${cost.source})`).join(\"; \"),\n ]), overflow: \"wrap\" },\n { kind: \"divider\", title: \"Judge usage\" },\n { kind: \"keyValue\", entries: \"totals\" in value.judgeUsage ? [\n { key: \"Physical calls\", value: value.judgeUsage.totals.requests.value === 0 && value.judgeUsage.totals.requests.state === \"available\" ? \"No Judge calls\" : metric(value.judgeUsage.totals.requests) },\n { key: \"Input tokens\", value: metric(value.judgeUsage.totals.inputTotalTokens) },\n { key: \"Output tokens\", value: metric(value.judgeUsage.totals.outputTokens) },\n { key: \"Total tokens\", value: metric(value.judgeUsage.totals.totalTokens) },\n { key: \"Cost\", value: value.judgeUsage.totals.costs.state },\n ...value.judgeUsage.totals.costs.values.map((cost) => ({ key: cost.currency,\n value: `${cost.value} (${cost.coveredCalls}/${value.judgeUsage.state === \"complete\" || value.judgeUsage.state === \"partial\" ? value.judgeUsage.totals.costs.totalCalls : \"unknown\"} covered; ${cost.source})` })),\n ] : [{ key: \"State\", value: `${value.judgeUsage.state}; ${value.judgeUsage.reason}` }] },\n ];\n}\nexport function renderUsage(value: UsageView): string {\n return terminal([\n {\n kind: \"panel\",\n title: `Usage ${value.locator}`,\n meta: value.state,\n blocks: [\n ...totalCostBlocks(value.totalCosts),\n { kind: \"divider\", title: \"Application usage\" },\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n ...(value.source === \"adapter\" ? [\n { key: \"Coverage\", value: \"Recorded calls only\" },\n { key: \"Calls\", value: boundedPreview(value.calls?.length ?? 0, value.callsTruncated ?? false, value.omittedCallCount ?? 0) },\n ] : []),\n ...usageTotalEntries(value.totals),\n {\n key: \"Limitations\",\n value: boundedPreview(value.limitations.length, value.limitationsTruncated, value.omittedLimitationCount),\n },\n {\n key: \"Turns\",\n value: boundedPreview(value.turns.length, value.turnsTruncated, value.omittedTurnCount),\n },\n {\n key: \"Omitted observations\",\n value: value.hasMore ? String(value.omittedObservationCount) : \"0\",\n },\n ],\n },\n ...modelUsageBlocks(value),\n { kind: \"divider\", title: \"Limitations\" },\n {\n kind: \"table\",\n columns: [{ header: \"Limitation\" }],\n rows: value.limitations.map((limitation) => [\n formatUsageLimitation(limitation),\n ]),\n overflow: \"wrap\",\n },\n { kind: \"divider\", title: value.totals.costs === undefined ? \"Provider costs\" : \"Application costs\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Currency\" },\n { header: \"Value\" },\n { header: \"State\" },\n { header: \"Observations\" },\n ],\n rows: value.totals.costs === undefined\n ? (value.totals.providerCosts?.values ?? []).map((cost) => [\n cost.currency,\n cost.value,\n value.totals.providerCosts!.state,\n String(cost.observationCount),\n ])\n : value.totals.costs.values.map((cost) => [\n cost.currency,\n cost.value,\n value.totals.costs!.state,\n `${cost.coveredCalls}/${value.totals.costs!.totalCalls}`,\n ]),\n },\n { kind: \"divider\", title: \"Turn coverage\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Turn\" },\n { header: \"Coverage\" },\n { header: \"Reason\" },\n ],\n rows: value.turns.map((turn) => [\n turn.turnId,\n turn.coverage.state,\n turn.coverage.state === \"complete\" ? \"none\" : turn.coverage.reason,\n ]),\n },\n { kind: \"divider\", title: \"Observation provenance\" },\n {\n kind: \"table\",\n columns: [\n { header: \"Turn\" },\n { header: \"Observation ID\" },\n { header: \"Kind\" },\n { header: \"Provider\" },\n { header: \"Recorded value\" },\n ],\n rows: value.observations.map((observation) => [\n observation.turnId,\n observation.usageObservationId,\n observation.kind,\n observation.provider,\n usageObservationValue(observation),\n ]),\n overflow: \"wrap\",\n },\n ],\n },\n ]);\n}\nfunction usageObservationValue(value: UsageView[\"observations\"][number]): string {\n switch (value.kind) {\n case \"token-bucket\":\n return `${value.bucket}; ${value.tokens} tokens`;\n case \"request\":\n return value.requestKind;\n case \"provider-cost\":\n return `${value.amount} ${value.currency}`;\n }\n}\nexport function renderDiff(value: DiffView): string {\n const statusBlocks: TerminalPanelContentBlock[] = [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"State\", value: value.state },\n { key: \"Windows\", value: String(value.windows.length) },\n ],\n },\n ];\n if (value.state === \"invalid\") {\n statusBlocks.push({ kind: \"divider\", title: \"Issues\" }, {\n kind: \"table\",\n columns: [{ header: \"Issue\" }],\n rows: value.issues.map((issue) => [issue]),\n overflow: \"wrap\",\n });\n }\n if (value.state === \"complete\" || value.state === \"partial\") {\n statusBlocks.push({ kind: \"divider\", title: \"Limitations\" }, {\n kind: \"table\",\n columns: [{ header: \"Limitation\" }],\n rows: value.limitations.map((limitation) => [\n formatDiffLimitation(limitation),\n ]),\n overflow: \"wrap\",\n });\n }\n const blocks: TerminalBlock[] = [\n {\n kind: \"panel\",\n title: `Diff ${value.locator}`,\n meta: value.state,\n blocks: statusBlocks,\n },\n ];\n for (const window of value.windows) {\n blocks.push({\n kind: \"panel\",\n title: `Window ${window.windowId}`,\n meta: `sequence ${window.sequence}`,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [{ key: \"Changes\", value: String(window.changes.length) }],\n },\n ],\n });\n for (const change of window.changes) {\n blocks.push({\n kind: \"panel\",\n title: `Change ${change.changeId}`,\n meta: change.kind,\n blocks: [\n {\n kind: \"keyValue\",\n entries: [\n { key: \"Path\", value: change.path },\n { key: \"Before\", value: fileEndpoint(change.before) },\n { key: \"After\", value: fileEndpoint(change.after) },\n ],\n },\n ],\n });\n }\n }\n return terminal(blocks);\n}\ntype DiffLimitation = Extract<DiffView, {\n readonly state: \"complete\" | \"partial\";\n}>[\"limitations\"][number];\nfunction formatDiffLimitation(value: DiffLimitation): string {\n switch (value.code) {\n case \"capture-failed\":\n case \"capture-interrupted\":\n return `${value.code}; stage ${value.stage}; window ${value.atWindowId ?? \"not-recorded\"}`;\n case \"collection-cap-reached\":\n return `${value.code}; target ${value.target}; omitted at least ${value.omittedAtLeast}; window ${value.atWindowId ?? \"not-recorded\"}`;\n case \"unsupported-input\":\n return `${value.code}; target ${value.target}; omitted at least ${value.omittedAtLeast}`;\n }\n}\ntype DiffEndpoint = Extract<DiffView[\"windows\"][number][\"changes\"][number][\"before\"], {\n readonly state: \"absent\" | \"present\";\n}>;\nfunction fileEndpoint(value: DiffEndpoint): string {\n if (value.state === \"absent\")\n return \"absent\";\n const revision = value.revision;\n if (revision.kind === \"text\") {\n return `text; ${revision.content}; ${revision.byteLength} bytes; ${revision.sha256}`;\n }\n if (revision.kind === \"elided\") {\n return `elided; ${revision.reason}; ${revision.byteLength} bytes`;\n }\n return `unavailable; ${revision.reason}`;\n}\nexport function traceSelector(value: TraceView, id: string) {\n if (value.execution.identityIndex.eventIds.includes(id)) {\n return { kind: \"execution-event\" as const, eventId: id };\n }\n if (value.execution.identityIndex.evidenceIds.includes(id)) {\n return { kind: \"execution-evidence\" as const, evidenceId: id };\n }\n if (value.identities.itemIds.includes(id)) {\n return { kind: \"item\" as const, itemId: id };\n }\n if (value.identities.toolOccurrenceIds.includes(id)) {\n return { kind: \"tool-occurrence\" as const, toolOccurrenceId: id };\n }\n if (value.identities.commandIds.includes(id)) {\n return { kind: \"command\" as const, commandId: id };\n }\n return undefined;\n}\n"]}