niceeval 0.13.1 → 0.13.2

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 (548) hide show
  1. package/INDEX.md +25 -2
  2. package/README.md +9 -10
  3. package/README.zh.md +9 -10
  4. package/dist/agents/ai-sdk.cjs.map +1 -1
  5. package/dist/agents/ai-sdk.d.cts +1 -1
  6. package/dist/agents/ai-sdk.d.mts +1 -1
  7. package/dist/agents/ai-sdk.d.ts +1 -1
  8. package/dist/agents/bub-install-spec.cjs +19 -5
  9. package/dist/agents/bub-install-spec.cjs.map +1 -1
  10. package/dist/agents/bub-install-spec.d.cts +9 -2
  11. package/dist/agents/bub-install-spec.d.mts +9 -2
  12. package/dist/agents/bub-install-spec.d.ts +9 -2
  13. package/dist/agents/bub-install-spec.js +14 -12
  14. package/dist/agents/bub.cjs +10 -6
  15. package/dist/agents/bub.cjs.map +1 -1
  16. package/dist/agents/bub.d.cts +2 -2
  17. package/dist/agents/bub.d.mts +2 -2
  18. package/dist/agents/bub.d.ts +2 -2
  19. package/dist/agents/claude-code.cjs.map +1 -1
  20. package/dist/agents/claude-code.d.cts +2 -2
  21. package/dist/agents/claude-code.d.mts +2 -2
  22. package/dist/agents/claude-code.d.ts +2 -2
  23. package/dist/agents/codex.cjs +4 -4
  24. package/dist/agents/codex.cjs.map +1 -1
  25. package/dist/agents/codex.d.cts +3 -3
  26. package/dist/agents/codex.d.mts +3 -3
  27. package/dist/agents/codex.d.ts +3 -3
  28. package/dist/agents/coding-cli-versions.cjs +10 -1
  29. package/dist/agents/coding-cli-versions.cjs.map +1 -1
  30. package/dist/agents/coding-cli-versions.d.cts +8 -3
  31. package/dist/agents/coding-cli-versions.d.mts +8 -3
  32. package/dist/agents/coding-cli-versions.d.ts +8 -3
  33. package/dist/agents/coding-cli-versions.js +18 -12
  34. package/dist/agents/deepseek-harness.cjs +151 -0
  35. package/dist/agents/deepseek-harness.cjs.map +1 -0
  36. package/dist/agents/deepseek-harness.d.cts +14 -0
  37. package/dist/agents/deepseek-harness.d.mts +14 -0
  38. package/dist/agents/deepseek-harness.d.ts +14 -0
  39. package/dist/agents/deepseek-harness.js +7 -0
  40. package/dist/agents/deepseek-harness.js.map +1 -0
  41. package/dist/agents/exact-npm-plugins.cjs +28 -0
  42. package/dist/agents/exact-npm-plugins.cjs.map +1 -0
  43. package/dist/agents/exact-npm-plugins.d.cts +10 -0
  44. package/dist/agents/exact-npm-plugins.d.mts +10 -0
  45. package/dist/agents/exact-npm-plugins.d.ts +10 -0
  46. package/dist/agents/exact-npm-plugins.js +8 -0
  47. package/dist/agents/exact-npm-plugins.js.map +1 -0
  48. package/dist/agents/index.cjs +5 -1
  49. package/dist/agents/index.cjs.map +1 -1
  50. package/dist/agents/index.d.cts +4 -0
  51. package/dist/agents/index.d.mts +4 -0
  52. package/dist/agents/index.d.ts +4 -0
  53. package/dist/agents/index.js +54 -50
  54. package/dist/agents/index.mjs +54 -50
  55. package/dist/agents/omp.cjs +170 -0
  56. package/dist/agents/omp.cjs.map +1 -0
  57. package/dist/agents/omp.d.cts +14 -0
  58. package/dist/agents/omp.d.mts +14 -0
  59. package/dist/agents/omp.d.ts +14 -0
  60. package/dist/agents/omp.js +7 -0
  61. package/dist/agents/omp.js.map +1 -0
  62. package/dist/agents/openclaw.cjs +51 -2
  63. package/dist/agents/openclaw.cjs.map +1 -1
  64. package/dist/agents/openclaw.d.cts +2 -0
  65. package/dist/agents/openclaw.d.mts +2 -0
  66. package/dist/agents/openclaw.d.ts +2 -0
  67. package/dist/agents/types.cjs.map +1 -1
  68. package/dist/agents/types.d.cts +4 -4
  69. package/dist/agents/types.d.mts +4 -4
  70. package/dist/agents/types.d.ts +4 -4
  71. package/dist/agents/ui-message-stream.cjs +24 -7
  72. package/dist/agents/ui-message-stream.cjs.map +1 -1
  73. package/dist/analysis/api.cjs +28 -2
  74. package/dist/analysis/api.cjs.map +1 -1
  75. package/dist/analysis/api.d.cts +22 -1
  76. package/dist/analysis/api.d.mts +22 -1
  77. package/dist/analysis/api.d.ts +22 -1
  78. package/dist/analysis/api.js +8 -6
  79. package/dist/analysis/bindings.cjs +11 -18
  80. package/dist/analysis/bindings.cjs.map +1 -1
  81. package/dist/analysis/bindings.d.cts +177 -49
  82. package/dist/analysis/bindings.d.mts +177 -49
  83. package/dist/analysis/bindings.d.ts +177 -49
  84. package/dist/analysis/contracts.cjs +1 -0
  85. package/dist/analysis/contracts.cjs.map +1 -1
  86. package/dist/analysis/contracts.d.cts +43 -3
  87. package/dist/analysis/contracts.d.mts +43 -3
  88. package/dist/analysis/contracts.d.ts +43 -3
  89. package/dist/analysis/cost-projection.cjs +2 -1
  90. package/dist/analysis/cost-projection.cjs.map +1 -1
  91. package/dist/analysis/cost-projection.d.cts +1 -1
  92. package/dist/analysis/cost-projection.d.mts +1 -1
  93. package/dist/analysis/cost-projection.d.ts +1 -1
  94. package/dist/analysis/cost.cjs +13 -3
  95. package/dist/analysis/cost.cjs.map +1 -1
  96. package/dist/analysis/cost.d.cts +10 -3
  97. package/dist/analysis/cost.d.mts +10 -3
  98. package/dist/analysis/cost.d.ts +10 -3
  99. package/dist/analysis/experiment-groups.cjs +96 -0
  100. package/dist/analysis/experiment-groups.cjs.map +1 -0
  101. package/dist/analysis/experiment-groups.d.cts +9 -0
  102. package/dist/analysis/experiment-groups.d.mts +9 -0
  103. package/dist/analysis/experiment-groups.d.ts +9 -0
  104. package/dist/analysis/experiment-groups.js +10 -0
  105. package/dist/analysis/experiment-groups.js.map +1 -0
  106. package/dist/analysis/index.cjs +4 -1
  107. package/dist/analysis/index.cjs.map +1 -1
  108. package/dist/analysis/index.d.cts +4 -2
  109. package/dist/analysis/index.d.mts +4 -2
  110. package/dist/analysis/index.d.ts +4 -2
  111. package/dist/analysis/index.js +40 -36
  112. package/dist/analysis/index.mjs +40 -36
  113. package/dist/assertions/limits.cjs +4 -0
  114. package/dist/assertions/limits.cjs.map +1 -1
  115. package/dist/assertions/limits.d.cts +4 -0
  116. package/dist/assertions/limits.d.mts +4 -0
  117. package/dist/assertions/limits.d.ts +4 -0
  118. package/dist/assertions/match.cjs +63 -25
  119. package/dist/assertions/match.cjs.map +1 -1
  120. package/dist/assertions/match.d.cts +7 -0
  121. package/dist/assertions/match.d.mts +7 -0
  122. package/dist/assertions/match.d.ts +7 -0
  123. package/dist/assertions/record/attachment.cjs +32 -4
  124. package/dist/assertions/record/attachment.cjs.map +1 -1
  125. package/dist/assertions/record/diff.cjs +10 -4
  126. package/dist/assertions/record/diff.cjs.map +1 -1
  127. package/dist/assertions/record/producer.cjs +101 -4
  128. package/dist/assertions/record/producer.cjs.map +1 -1
  129. package/dist/assertions/record/producer.d.cts +4 -1
  130. package/dist/assertions/record/producer.d.mts +4 -1
  131. package/dist/assertions/record/producer.d.ts +4 -1
  132. package/dist/assertions/runtime.cjs +45 -5
  133. package/dist/assertions/runtime.cjs.map +1 -1
  134. package/dist/cli/record.cjs +113 -8
  135. package/dist/cli/record.cjs.map +1 -1
  136. package/dist/cli/record.d.cts +20 -1
  137. package/dist/cli/record.d.mts +20 -1
  138. package/dist/cli/record.d.ts +20 -1
  139. package/dist/cli/record.js +4 -2
  140. package/dist/cli.cjs +386 -31
  141. package/dist/cli.cjs.map +1 -1
  142. package/dist/cli.d.cts +10 -2
  143. package/dist/cli.d.mts +10 -2
  144. package/dist/cli.d.ts +10 -2
  145. package/dist/context/send-retry.cjs +4 -4
  146. package/dist/context/send-retry.cjs.map +1 -1
  147. package/dist/coordination/host/runtime.cjs +8 -30
  148. package/dist/coordination/host/runtime.cjs.map +1 -1
  149. package/dist/coordination/host/runtime.d.cts +3 -3
  150. package/dist/coordination/host/runtime.d.mts +3 -3
  151. package/dist/coordination/host/runtime.d.ts +3 -3
  152. package/dist/coordination/host/types.cjs.map +1 -1
  153. package/dist/coordination/host/types.d.cts +0 -5
  154. package/dist/coordination/host/types.d.mts +0 -5
  155. package/dist/coordination/host/types.d.ts +0 -5
  156. package/dist/coordination/platform/node.cjs +90 -9
  157. package/dist/coordination/platform/node.cjs.map +1 -1
  158. package/dist/define.cjs +25 -1
  159. package/dist/define.cjs.map +1 -1
  160. package/dist/experiment/host/index.cjs +1 -0
  161. package/dist/experiment/host/index.cjs.map +1 -1
  162. package/dist/i18n/en.cjs +26 -8
  163. package/dist/i18n/en.cjs.map +1 -1
  164. package/dist/i18n/en.d.cts +19 -6
  165. package/dist/i18n/en.d.mts +19 -6
  166. package/dist/i18n/en.d.ts +19 -6
  167. package/dist/index.cjs.map +1 -1
  168. package/dist/index.d.cts +1 -1
  169. package/dist/index.d.mts +1 -1
  170. package/dist/index.d.ts +1 -1
  171. package/dist/o11y/parsers/hermes.cjs +1 -1
  172. package/dist/o11y/parsers/hermes.cjs.map +1 -1
  173. package/dist/o11y/prices.json +1 -1
  174. package/dist/o11y/record/families.cjs +12 -3
  175. package/dist/o11y/record/families.cjs.map +1 -1
  176. package/dist/o11y/record/families.d.cts +8 -8
  177. package/dist/o11y/record/families.d.mts +8 -8
  178. package/dist/o11y/record/families.d.ts +8 -8
  179. package/dist/o11y/record/family-projectors.d.cts +66 -18
  180. package/dist/o11y/record/family-projectors.d.mts +66 -18
  181. package/dist/o11y/record/family-projectors.d.ts +66 -18
  182. package/dist/o11y/record/family-writers.d.cts +11 -3
  183. package/dist/o11y/record/family-writers.d.mts +11 -3
  184. package/dist/o11y/record/family-writers.d.ts +11 -3
  185. package/dist/o11y/record/runner-producer.cjs +14 -4
  186. package/dist/o11y/record/runner-producer.cjs.map +1 -1
  187. package/dist/record/codec/core.d.cts +2 -2
  188. package/dist/record/codec/core.d.mts +2 -2
  189. package/dist/record/codec/core.d.ts +2 -2
  190. package/dist/record/family/catalog.d.cts +44 -12
  191. package/dist/record/family/catalog.d.mts +44 -12
  192. package/dist/record/family/catalog.d.ts +44 -12
  193. package/dist/record/family/index.js +128 -124
  194. package/dist/record/family/observability-v1.cjs +35 -0
  195. package/dist/record/family/observability-v1.cjs.map +1 -0
  196. package/dist/record/family/observability-v1.d.cts +3 -0
  197. package/dist/record/family/observability-v1.d.mts +3 -0
  198. package/dist/record/family/observability-v1.d.ts +3 -0
  199. package/dist/record/family/observability-v1.js +6 -0
  200. package/dist/record/family/observability-v1.js.map +1 -0
  201. package/dist/record/family/observability.cjs +58 -9
  202. package/dist/record/family/observability.cjs.map +1 -1
  203. package/dist/record/family/observability.d.cts +1014 -15
  204. package/dist/record/family/observability.d.mts +1014 -15
  205. package/dist/record/family/observability.d.ts +1014 -15
  206. package/dist/record/family/observability.js +22 -18
  207. package/dist/record/host/runtime.cjs +600 -31
  208. package/dist/record/host/runtime.cjs.map +1 -1
  209. package/dist/record/host/types.cjs.map +1 -1
  210. package/dist/record/host/types.d.cts +33 -9
  211. package/dist/record/host/types.d.mts +33 -9
  212. package/dist/record/host/types.d.ts +33 -9
  213. package/dist/record/maintenance/runtime.cjs +1 -2
  214. package/dist/record/maintenance/runtime.cjs.map +1 -1
  215. package/dist/record/model/core.cjs.map +1 -1
  216. package/dist/record/model/core.d.cts +1 -1
  217. package/dist/record/model/core.d.mts +1 -1
  218. package/dist/record/model/core.d.ts +1 -1
  219. package/dist/record/model/definition.d.cts +6 -6
  220. package/dist/record/model/definition.d.mts +6 -6
  221. package/dist/record/model/definition.d.ts +6 -6
  222. package/dist/record/model/identifiers.cjs +1 -1
  223. package/dist/record/model/identifiers.cjs.map +1 -1
  224. package/dist/record/model/identifiers.d.cts +1 -1
  225. package/dist/record/model/identifiers.d.mts +1 -1
  226. package/dist/record/model/identifiers.d.ts +1 -1
  227. package/dist/record/platform/node.cjs +159 -23
  228. package/dist/record/platform/node.cjs.map +1 -1
  229. package/dist/record/platform/services.cjs.map +1 -1
  230. package/dist/record/platform/services.d.cts +15 -2
  231. package/dist/record/platform/services.d.mts +15 -2
  232. package/dist/record/platform/services.d.ts +15 -2
  233. package/dist/record/reader/errors.cjs +37 -1
  234. package/dist/record/reader/errors.cjs.map +1 -1
  235. package/dist/record/reader/errors.d.cts +49 -1
  236. package/dist/record/reader/errors.d.mts +49 -1
  237. package/dist/record/reader/errors.d.ts +49 -1
  238. package/dist/record/reader/errors.js +22 -12
  239. package/dist/record/reader/format.cjs +76 -17
  240. package/dist/record/reader/format.cjs.map +1 -1
  241. package/dist/record/reader/format.d.cts +11 -4
  242. package/dist/record/reader/format.d.mts +11 -4
  243. package/dist/record/reader/format.d.ts +11 -4
  244. package/dist/record/reader/format.js +2 -0
  245. package/dist/record/reader/index.js +32 -18
  246. package/dist/record/reader/runtime.cjs +64 -0
  247. package/dist/record/reader/runtime.cjs.map +1 -1
  248. package/dist/record/reader/runtime.d.cts +15 -0
  249. package/dist/record/reader/runtime.d.mts +15 -0
  250. package/dist/record/reader/runtime.d.ts +15 -0
  251. package/dist/record/reader/runtime.js +2 -0
  252. package/dist/report/assets/styles.css +53 -29
  253. package/dist/report/built-in/analysis-values.cjs +21 -13
  254. package/dist/report/built-in/analysis-values.cjs.map +1 -1
  255. package/dist/report/built-in/analysis-values.d.cts +11 -22
  256. package/dist/report/built-in/analysis-values.d.mts +11 -22
  257. package/dist/report/built-in/analysis-values.d.ts +11 -22
  258. package/dist/report/built-in/analysis-values.js +4 -6
  259. package/dist/report/built-in/index.cjs +1 -3
  260. package/dist/report/built-in/index.cjs.map +1 -1
  261. package/dist/report/built-in/index.d.cts +1 -1
  262. package/dist/report/built-in/index.d.mts +1 -1
  263. package/dist/report/built-in/index.d.ts +1 -1
  264. package/dist/report/built-in/index.js +4 -8
  265. package/dist/report/built-in/index.mjs +4 -8
  266. package/dist/report/built-in/machine.cjs +0 -2
  267. package/dist/report/built-in/machine.cjs.map +1 -1
  268. package/dist/report/built-in/machine.d.cts +0 -2
  269. package/dist/report/built-in/machine.d.mts +0 -2
  270. package/dist/report/built-in/machine.d.ts +0 -2
  271. package/dist/report/built-in/result-components.cjs +49 -51
  272. package/dist/report/built-in/result-components.cjs.map +1 -1
  273. package/dist/report/built-in/result-components.d.cts +16 -17
  274. package/dist/report/built-in/result-components.d.mts +16 -17
  275. package/dist/report/built-in/result-components.d.ts +16 -17
  276. package/dist/report/built-in/result-components.js +0 -4
  277. package/dist/report/built-in/run-membership-overview.cjs +126 -17
  278. package/dist/report/built-in/run-membership-overview.cjs.map +1 -1
  279. package/dist/report/built-in/run-membership-overview.d.cts +14 -0
  280. package/dist/report/built-in/run-membership-overview.d.mts +14 -0
  281. package/dist/report/built-in/run-membership-overview.d.ts +14 -0
  282. package/dist/report/built-in/run-membership-overview.js +4 -2
  283. package/dist/report/built-in/standard.cjs +80 -45
  284. package/dist/report/built-in/standard.cjs.map +1 -1
  285. package/dist/report/built-in/standard.d.cts +19 -41
  286. package/dist/report/built-in/standard.d.mts +19 -41
  287. package/dist/report/built-in/standard.d.ts +19 -41
  288. package/dist/report/built-in/standard.js +6 -6
  289. package/dist/report/components/attempt-detail/compute.cjs +78 -2
  290. package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
  291. package/dist/report/components/attempt-detail/compute.d.cts +1 -1
  292. package/dist/report/components/attempt-detail/compute.d.mts +1 -1
  293. package/dist/report/components/attempt-detail/compute.d.ts +1 -1
  294. package/dist/report/components/attempt-detail/content.cjs +1 -1
  295. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  296. package/dist/report/components/entity-lists/compute.cjs +42 -5
  297. package/dist/report/components/entity-lists/compute.cjs.map +1 -1
  298. package/dist/report/components/entity-lists/compute.d.cts +10 -8
  299. package/dist/report/components/entity-lists/compute.d.mts +10 -8
  300. package/dist/report/components/entity-lists/compute.d.ts +10 -8
  301. package/dist/report/components/entity-lists/content.cjs +31 -6
  302. package/dist/report/components/entity-lists/content.cjs.map +1 -1
  303. package/dist/report/components/entity-lists/index.cjs +9 -4
  304. package/dist/report/components/entity-lists/index.cjs.map +1 -1
  305. package/dist/report/components/entity-lists/index.d.cts +4 -7
  306. package/dist/report/components/entity-lists/index.d.mts +4 -7
  307. package/dist/report/components/entity-lists/index.d.ts +4 -7
  308. package/dist/report/components/summaries/compute.cjs +8 -1
  309. package/dist/report/components/summaries/compute.cjs.map +1 -1
  310. package/dist/report/components/summaries/compute.d.cts +9 -1
  311. package/dist/report/components/summaries/compute.d.mts +9 -1
  312. package/dist/report/components/summaries/compute.d.ts +9 -1
  313. package/dist/report/components/summaries/index.cjs +48 -4
  314. package/dist/report/components/summaries/index.cjs.map +1 -1
  315. package/dist/report/components/summaries/index.d.cts +7 -4
  316. package/dist/report/components/summaries/index.d.mts +7 -4
  317. package/dist/report/components/summaries/index.d.ts +7 -4
  318. package/dist/report/definition/cell.cjs +3 -0
  319. package/dist/report/definition/cell.cjs.map +1 -1
  320. package/dist/report/definition/cell.d.cts +2 -0
  321. package/dist/report/definition/cell.d.mts +2 -0
  322. package/dist/report/definition/cell.d.ts +2 -0
  323. package/dist/report/definition/primitives/chart.cjs +8 -5
  324. package/dist/report/definition/primitives/chart.cjs.map +1 -1
  325. package/dist/report/definition/primitives/points-dataset.cjs +1 -0
  326. package/dist/report/definition/primitives/points-dataset.cjs.map +1 -1
  327. package/dist/report/definition/primitives.cjs +15 -2
  328. package/dist/report/definition/primitives.cjs.map +1 -1
  329. package/dist/report/definition/report.cjs +27 -3
  330. package/dist/report/definition/report.cjs.map +1 -1
  331. package/dist/report/definition/report.d.cts +8 -0
  332. package/dist/report/definition/report.d.mts +8 -0
  333. package/dist/report/definition/report.d.ts +8 -0
  334. package/dist/report/execution/machine.cjs +30 -14
  335. package/dist/report/execution/machine.cjs.map +1 -1
  336. package/dist/report/execution/machine.d.cts +20 -10
  337. package/dist/report/execution/machine.d.mts +20 -10
  338. package/dist/report/execution/machine.d.ts +20 -10
  339. package/dist/report/execution/machine.js +6 -6
  340. package/dist/report/host/execute.cjs +25 -16
  341. package/dist/report/host/execute.cjs.map +1 -1
  342. package/dist/report/host/execute.d.cts +4 -0
  343. package/dist/report/host/execute.d.mts +4 -0
  344. package/dist/report/host/execute.d.ts +4 -0
  345. package/dist/report/host/from-record.cjs +22 -5
  346. package/dist/report/host/from-record.cjs.map +1 -1
  347. package/dist/report/host/machine.cjs +53 -11
  348. package/dist/report/host/machine.cjs.map +1 -1
  349. package/dist/report/host/site-runtime.cjs +9 -8
  350. package/dist/report/host/site-runtime.cjs.map +1 -1
  351. package/dist/report/host/site-runtime.d.cts +1 -1
  352. package/dist/report/host/site-runtime.d.mts +1 -1
  353. package/dist/report/host/site-runtime.d.ts +1 -1
  354. package/dist/report/host/static.cjs +56 -9
  355. package/dist/report/host/static.cjs.map +1 -1
  356. package/dist/report/index.cjs.map +1 -1
  357. package/dist/report/index.d.cts +1 -1
  358. package/dist/report/index.d.mts +1 -1
  359. package/dist/report/index.d.ts +1 -1
  360. package/dist/report/model/dataset.cjs +7 -2
  361. package/dist/report/model/dataset.cjs.map +1 -1
  362. package/dist/report/model/locale.cjs +2 -0
  363. package/dist/report/model/locale.cjs.map +1 -1
  364. package/dist/report/model/locale.d.cts +1 -0
  365. package/dist/report/model/locale.d.mts +1 -0
  366. package/dist/report/model/locale.d.ts +1 -0
  367. package/dist/report/model/metrics.cjs +3 -1
  368. package/dist/report/model/metrics.cjs.map +1 -1
  369. package/dist/report/model/pricing.cjs +16 -11
  370. package/dist/report/model/pricing.cjs.map +1 -1
  371. package/dist/report/react/styles.css +53 -29
  372. package/dist/runner/adoption.cjs +1 -0
  373. package/dist/runner/adoption.cjs.map +1 -1
  374. package/dist/runner/attempt.cjs +44 -5
  375. package/dist/runner/attempt.cjs.map +1 -1
  376. package/dist/runner/attempt.d.cts +13 -1
  377. package/dist/runner/attempt.d.mts +13 -1
  378. package/dist/runner/attempt.d.ts +13 -1
  379. package/dist/runner/config-identity.cjs +10 -2
  380. package/dist/runner/config-identity.cjs.map +1 -1
  381. package/dist/runner/config-identity.d.cts +4 -2
  382. package/dist/runner/config-identity.d.mts +4 -2
  383. package/dist/runner/config-identity.d.ts +4 -2
  384. package/dist/runner/feedback/human.cjs +298 -59
  385. package/dist/runner/feedback/human.cjs.map +1 -1
  386. package/dist/runner/feedback/json.cjs +14 -6
  387. package/dist/runner/feedback/json.cjs.map +1 -1
  388. package/dist/runner/feedback/json.d.cts +3 -2
  389. package/dist/runner/feedback/json.d.mts +3 -2
  390. package/dist/runner/feedback/json.d.ts +3 -2
  391. package/dist/runner/feedback/reducer.cjs +2 -0
  392. package/dist/runner/feedback/reducer.cjs.map +1 -1
  393. package/dist/runner/judge-config.cjs +1 -1
  394. package/dist/runner/judge-config.cjs.map +1 -1
  395. package/dist/runner/ledger.cjs +124 -12
  396. package/dist/runner/ledger.cjs.map +1 -1
  397. package/dist/runner/project-current.cjs +13 -5
  398. package/dist/runner/project-current.cjs.map +1 -1
  399. package/dist/runner/run.cjs +564 -256
  400. package/dist/runner/run.cjs.map +1 -1
  401. package/dist/runner/sandbox-pool.cjs +161 -30
  402. package/dist/runner/sandbox-pool.cjs.map +1 -1
  403. package/dist/runner/sandbox-pool.d.cts +34 -2
  404. package/dist/runner/sandbox-pool.d.mts +34 -2
  405. package/dist/runner/sandbox-pool.d.ts +34 -2
  406. package/dist/runner/shared-state-lease.cjs +803 -0
  407. package/dist/runner/shared-state-lease.cjs.map +1 -0
  408. package/dist/runner/shared-state-lease.d.cts +121 -0
  409. package/dist/runner/shared-state-lease.d.mts +121 -0
  410. package/dist/runner/shared-state-lease.d.ts +121 -0
  411. package/dist/runner/shared-state-lease.js +24 -0
  412. package/dist/runner/shared-state-lease.js.map +1 -0
  413. package/dist/runner/teardown-registry.cjs +97 -34
  414. package/dist/runner/teardown-registry.cjs.map +1 -1
  415. package/dist/runner/teardown-registry.d.cts +27 -1
  416. package/dist/runner/teardown-registry.d.mts +27 -1
  417. package/dist/runner/teardown-registry.d.ts +27 -1
  418. package/dist/runner/teardown-registry.js +20 -16
  419. package/dist/runner/types.cjs.map +1 -1
  420. package/dist/runner/types.d.cts +31 -5
  421. package/dist/runner/types.d.mts +31 -5
  422. package/dist/runner/types.d.ts +31 -5
  423. package/dist/sample/analysis.cjs +249 -459
  424. package/dist/sample/analysis.cjs.map +1 -1
  425. package/dist/sample/capability.cjs +138 -7
  426. package/dist/sample/capability.cjs.map +1 -1
  427. package/dist/sample/capability.d.cts +3 -1
  428. package/dist/sample/capability.d.mts +3 -1
  429. package/dist/sample/capability.d.ts +3 -1
  430. package/dist/sample/capability.js +8 -6
  431. package/dist/sandbox/docker-agent-image.cjs +5 -1
  432. package/dist/sandbox/docker-agent-image.cjs.map +1 -1
  433. package/dist/sandbox/docker-agent-image.d.cts +2 -0
  434. package/dist/sandbox/docker-agent-image.d.mts +2 -0
  435. package/dist/sandbox/docker-agent-image.d.ts +2 -0
  436. package/dist/sandbox/docker-agent-image.js +14 -10
  437. package/dist/sandbox/docker-profile/schema.cjs +283 -534
  438. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  439. package/dist/sandbox/docker-profile/schema.d.cts +10 -27
  440. package/dist/sandbox/docker-profile/schema.d.mts +10 -27
  441. package/dist/sandbox/docker-profile/schema.d.ts +10 -27
  442. package/dist/sandbox/e2b-agent-template.cjs +5 -2
  443. package/dist/sandbox/e2b-agent-template.cjs.map +1 -1
  444. package/dist/sandbox/index.cjs +4 -2
  445. package/dist/sandbox/index.cjs.map +1 -1
  446. package/dist/sandbox/index.d.cts +1 -1
  447. package/dist/sandbox/index.d.mts +1 -1
  448. package/dist/sandbox/index.d.ts +1 -1
  449. package/dist/sandbox/index.js +120 -116
  450. package/dist/sandbox/index.mjs +120 -116
  451. package/dist/sandbox/keep-registry.cjs +28 -66
  452. package/dist/sandbox/keep-registry.cjs.map +1 -1
  453. package/dist/sandbox/types.cjs.map +1 -1
  454. package/dist/sandbox/types.d.cts +1 -1
  455. package/dist/sandbox/types.d.mts +1 -1
  456. package/dist/sandbox/types.d.ts +1 -1
  457. package/dist/shared/aggregate.cjs +16 -6
  458. package/dist/shared/aggregate.cjs.map +1 -1
  459. package/dist/shared/aggregate.d.cts +12 -4
  460. package/dist/shared/aggregate.d.mts +12 -4
  461. package/dist/shared/aggregate.d.ts +12 -4
  462. package/dist/shared/turn-label.cjs +20 -2
  463. package/dist/shared/turn-label.cjs.map +1 -1
  464. package/dist/shared/turn-label.d.cts +2 -0
  465. package/dist/shared/turn-label.d.mts +2 -0
  466. package/dist/shared/turn-label.d.ts +2 -0
  467. package/dist/shared/turn-label.js +4 -2
  468. package/dist/vendor/remark/remark-gfm.cjs +7 -7
  469. package/dist/vendor/remark/remark-gfm.cjs.map +1 -1
  470. package/dist/vendor/remark/remark-parse.cjs +12 -12
  471. package/dist/vendor/remark/remark-parse.cjs.map +1 -1
  472. package/dist/vendor/remark/remark.cjs +13 -13
  473. package/dist/vendor/remark/remark.cjs.map +1 -1
  474. package/dist/view/server.cjs +6 -0
  475. package/dist/view/server.cjs.map +1 -1
  476. package/docs-site/images/hitl-handshake-zh.svg +3 -3
  477. package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
  478. package/docs-site/zh/examples/coding-agent-extensions.mdx +1 -1
  479. package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +4 -3
  480. package/docs-site/zh/examples/integrations/claude-sdk.mdx +3 -3
  481. package/docs-site/zh/examples/integrations/codex-sdk.mdx +5 -5
  482. package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
  483. package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
  484. package/docs-site/zh/explanation/adapter.mdx +5 -5
  485. package/docs-site/zh/explanation/assert.mdx +7 -7
  486. package/docs-site/zh/explanation/drive.mdx +4 -2
  487. package/docs-site/zh/explanation/evals.mdx +10 -8
  488. package/docs-site/zh/explanation/experiment.mdx +2 -2
  489. package/docs-site/zh/explanation/hitl.mdx +9 -9
  490. package/docs-site/zh/explanation/judge.mdx +5 -5
  491. package/docs-site/zh/explanation/overview.mdx +3 -3
  492. package/docs-site/zh/explanation/runner.mdx +1 -1
  493. package/docs-site/zh/index.mdx +3 -3
  494. package/docs-site/zh/reference/builtin-agents.mdx +13 -13
  495. package/docs-site/zh/reference/capabilities.mdx +1 -1
  496. package/docs-site/zh/reference/cli.mdx +18 -12
  497. package/docs-site/zh/reference/define-agent.mdx +130 -5
  498. package/docs-site/zh/reference/define-config.mdx +2 -2
  499. package/docs-site/zh/reference/define-eval.mdx +4 -4
  500. package/docs-site/zh/reference/events.mdx +11 -11
  501. package/docs-site/zh/reference/official-adapters.mdx +6 -6
  502. package/docs-site/zh/reference/results-data.mdx +6 -0
  503. package/docs-site/zh/troubleshooting/debugging.mdx +1 -1
  504. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +37 -5
  505. package/docs-site/zh/tutorials/accept-results.mdx +72 -0
  506. package/docs-site/zh/tutorials/agent-onboarding.mdx +6 -6
  507. package/docs-site/zh/tutorials/authoring.mdx +9 -13
  508. package/docs-site/zh/tutorials/ci-integration.mdx +6 -6
  509. package/docs-site/zh/tutorials/compare-runs.mdx +61 -0
  510. package/docs-site/zh/tutorials/concurrency.mdx +13 -12
  511. package/docs-site/zh/tutorials/configuration.mdx +4 -6
  512. package/docs-site/zh/tutorials/connect-your-agent.mdx +1 -1
  513. package/docs-site/zh/tutorials/control-run-cost.mdx +58 -0
  514. package/docs-site/zh/tutorials/criteria-files.mdx +2 -2
  515. package/docs-site/zh/tutorials/custom-reports.mdx +2 -2
  516. package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +46 -0
  517. package/docs-site/zh/tutorials/docker-in-docker.mdx +52 -43
  518. package/docs-site/zh/tutorials/eval-groups.mdx +6 -6
  519. package/docs-site/zh/tutorials/evaluation-kinds.mdx +3 -3
  520. package/docs-site/zh/tutorials/experiments.mdx +2 -3
  521. package/docs-site/zh/tutorials/handle-execution-failures.mdx +18 -10
  522. package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +16 -8
  523. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +160 -0
  524. package/docs-site/zh/tutorials/plugins.mdx +14 -0
  525. package/docs-site/zh/tutorials/rerun-and-cache.mdx +4 -2
  526. package/docs-site/zh/tutorials/sandbox-agent.mdx +17 -11
  527. package/docs-site/zh/tutorials/sandbox-providers.mdx +17 -13
  528. package/docs-site/zh/tutorials/sandbox-reuse.mdx +12 -19
  529. package/docs-site/zh/tutorials/select-and-preview.mdx +65 -0
  530. package/docs-site/zh/tutorials/verify-judge.mdx +78 -0
  531. package/docs-site/zh/tutorials/viewing-results.mdx +38 -1
  532. package/docs-site/zh/tutorials/write-experiment.mdx +7 -5
  533. package/docs-site/zh/tutorials/write-send.mdx +9 -8
  534. package/package.json +9 -5
  535. package/dist/report/built-in/overview.cjs +0 -44
  536. package/dist/report/built-in/overview.cjs.map +0 -1
  537. package/dist/report/built-in/overview.d.cts +0 -6
  538. package/dist/report/built-in/overview.d.mts +0 -6
  539. package/dist/report/built-in/overview.d.ts +0 -6
  540. package/dist/report/built-in/overview.js +0 -9
  541. package/dist/report/built-in/overview.js.map +0 -1
  542. package/dist/runner/gate-lease.cjs +0 -283
  543. package/dist/runner/gate-lease.cjs.map +0 -1
  544. package/dist/runner/gate-lease.d.cts +0 -62
  545. package/dist/runner/gate-lease.d.mts +0 -62
  546. package/dist/runner/gate-lease.d.ts +0 -62
  547. package/dist/runner/gate-lease.js +0 -22
  548. package/dist/runner/gate-lease.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,uEAAuE;AACvE,yCAA2G;AAAlG,uGAAA,UAAU,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAIrF,qCAA8D;AAArD,qGAAA,UAAU,OAAA;AAAE,iGAAA,MAAM,OAAA;AAAE,wGAAA,aAAa,OAAA;AAC1C,6CAA6C;AAC7C,6EAA6E;AAC7E,8DAAiG;AAAxF,wHAAA,oBAAoB,OAAA;AAAE,kHAAA,cAAc,OAAA;AAAE,kHAAA,cAAc,OAAA","sourcesContent":["// niceeval 公开导出(import { … } from \"niceeval\")。\n// Agent/Adapter 相关见 \"niceeval/adapter\";Sandbox 相关见 \"niceeval/sandbox\"。\nexport { defineEval, defineScoreEval, defineEvalGroup, defineConfig, defineExperiment } from \"./define.ts\";\nexport type { AssertionEntryId } from \"./assertions/identity.ts\";\nexport type { AgentSendWindowIdentity, AgentWorkspaceDiffEndpoint, AgentWorkspaceDiffHunks, AgentWorkspaceDiffPolicy, AgentWorkspaceDiff, AgentWorkspaceDiffWindow, AgentWorkspaceDiffWindowChange, } from \"./assertions/workspace-diff.ts\";\nexport type { PostRunBooleanAssertionHandle } from \"./assertions/api.ts\";\nexport { requireEnv, getEnv, stripComments } from \"./util.ts\";\n// 执行失败分类:抛出点糖衣类(声明死因波及多远)+ 结构守卫。判据、分类链与止损语义见\n// docs/feature/error-classification/README.md;`niceeval/adapter` 复导出同一份词表类型。\nexport { ExperimentFatalError, EvalFatalError, failureClassOf } from \"./shared/failure-class.ts\";\n// 类型(eval 作者会用到;跑哪个 agent / 用哪个 sandbox 见对应子路径)\nexport type { StreamEvent, ToolName, JsonValue, JsonMatch, Usage, Turn, EvidenceCoverageStatus, EvidenceCoverageEntry, EvidenceCoverage, TurnEvidenceCoverage, TurnInput, InputFile, AnswerValue, InputResponse, RespondAnswer, TurnHandle, SessionHandle, TestContext, ScoreTestContext, Verdict, EvalAuthorFields, EvalInput, ScoreEvalInput, EvalDefinition, AnyEvalDefinition, EvalGroupMember, EvalGroupInput, EvalGroupDefinition, EvaluationKind, EvalDescriptor, ExperimentAuthorFields, ExperimentInput, ExperimentDefinition, ExperimentHook, ExperimentHookContext, Config, LocalizedText, JudgeConfig, JudgeDeclaration, JudgeMaterial, Reporter, ReporterEvent, EvalResult, AcceptedDifference, AcceptedResult, RetryAttemptRecord, InvocationSummary, InvocationShape, DiagnosticRecord, ExperimentRunInfo, SandboxRunInfo, ScriptResult, CommandResult, CalledToolAtLeast, CalledToolCount, CalledToolOptions, InputRequest, InputRequestFilter, O11ySummary, TraceSpan, SpanKind, DerivedFacts, FailureClass, FailureScope, AttemptFailureInfo, AttemptFailureClassifier, ExternalCause, ExternalCauseFact, ExternalCauseLink, ExternalCauseScalar, } from \"./types.ts\";\nexport type { ParsedTranscript } from \"./o11y/parsers/index.ts\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,uEAAuE;AACvE,yCAA2G;AAAlG,uGAAA,UAAU,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAIrF,qCAA8D;AAArD,qGAAA,UAAU,OAAA;AAAE,iGAAA,MAAM,OAAA;AAAE,wGAAA,aAAa,OAAA;AAC1C,6CAA6C;AAC7C,6EAA6E;AAC7E,8DAAiG;AAAxF,wHAAA,oBAAoB,OAAA;AAAE,kHAAA,cAAc,OAAA;AAAE,kHAAA,cAAc,OAAA","sourcesContent":["// niceeval 公开导出(import { … } from \"niceeval\")。\n// Agent/Adapter 相关见 \"niceeval/adapter\";Sandbox 相关见 \"niceeval/sandbox\"。\nexport { defineEval, defineScoreEval, defineEvalGroup, defineConfig, defineExperiment } from \"./define.ts\";\nexport type { AssertionEntryId } from \"./assertions/identity.ts\";\nexport type { AgentSendWindowIdentity, AgentWorkspaceDiffEndpoint, AgentWorkspaceDiffHunks, AgentWorkspaceDiffPolicy, AgentWorkspaceDiff, AgentWorkspaceDiffWindow, AgentWorkspaceDiffWindowChange, } from \"./assertions/workspace-diff.ts\";\nexport type { PostRunBooleanAssertionHandle } from \"./assertions/api.ts\";\nexport { requireEnv, getEnv, stripComments } from \"./util.ts\";\n// 执行失败分类:抛出点糖衣类(声明死因波及多远)+ 结构守卫。判据、分类链与止损语义见\n// docs/feature/error-classification/README.md;`niceeval/adapter` 复导出同一份词表类型。\nexport { ExperimentFatalError, EvalFatalError, failureClassOf } from \"./shared/failure-class.ts\";\n// 类型(eval 作者会用到;跑哪个 agent / 用哪个 sandbox 见对应子路径)\nexport type { StreamEvent, ToolName, JsonValue, JsonMatch, Usage, Turn, EvidenceCoverageStatus, EvidenceCoverageEntry, EvidenceCoverage, TurnEvidenceCoverage, TurnInput, InputFile, AnswerValue, InputResponse, RespondAnswer, TurnHandle, SessionHandle, TestContext, ScoreTestContext, Verdict, EvalAuthorFields, EvalInput, ScoreEvalInput, EvalDefinition, AnyEvalDefinition, EvalGroupMember, EvalGroupInput, EvalGroupDefinition, EvaluationKind, EvalDescriptor, ExperimentAuthorFields, SharedStateConfig, ExperimentInput, ExperimentDefinition, ExperimentHook, ExperimentHookContext, Config, LocalizedText, JudgeConfig, JudgeDeclaration, JudgeMaterial, Reporter, ReporterEvent, EvalResult, AcceptedDifference, AcceptedResult, RetryAttemptRecord, InvocationSummary, InvocationShape, DiagnosticRecord, ExperimentRunInfo, SandboxRunInfo, ScriptResult, CommandResult, CalledToolAtLeast, CalledToolCount, CalledToolOptions, InputRequest, InputRequestFilter, O11ySummary, TraceSpan, SpanKind, DerivedFacts, FailureClass, FailureScope, AttemptFailureInfo, AttemptFailureClassifier, ExternalCause, ExternalCauseFact, ExternalCauseLink, ExternalCauseScalar, } from \"./types.ts\";\nexport type { ParsedTranscript } from \"./o11y/parsers/index.ts\";\n"]}
package/dist/index.d.cts CHANGED
@@ -4,5 +4,5 @@ export type { AgentSendWindowIdentity, AgentWorkspaceDiffEndpoint, AgentWorkspac
4
4
  export type { PostRunBooleanAssertionHandle } from "./assertions/api.cjs";
5
5
  export { requireEnv, getEnv, stripComments } from "./util.cjs";
6
6
  export { ExperimentFatalError, EvalFatalError, failureClassOf } from "./shared/failure-class.cjs";
7
- export type { StreamEvent, ToolName, JsonValue, JsonMatch, Usage, Turn, EvidenceCoverageStatus, EvidenceCoverageEntry, EvidenceCoverage, TurnEvidenceCoverage, TurnInput, InputFile, AnswerValue, InputResponse, RespondAnswer, TurnHandle, SessionHandle, TestContext, ScoreTestContext, Verdict, EvalAuthorFields, EvalInput, ScoreEvalInput, EvalDefinition, AnyEvalDefinition, EvalGroupMember, EvalGroupInput, EvalGroupDefinition, EvaluationKind, EvalDescriptor, ExperimentAuthorFields, ExperimentInput, ExperimentDefinition, ExperimentHook, ExperimentHookContext, Config, LocalizedText, JudgeConfig, JudgeDeclaration, JudgeMaterial, Reporter, ReporterEvent, EvalResult, AcceptedDifference, AcceptedResult, RetryAttemptRecord, InvocationSummary, InvocationShape, DiagnosticRecord, ExperimentRunInfo, SandboxRunInfo, ScriptResult, CommandResult, CalledToolAtLeast, CalledToolCount, CalledToolOptions, InputRequest, InputRequestFilter, O11ySummary, TraceSpan, SpanKind, DerivedFacts, FailureClass, FailureScope, AttemptFailureInfo, AttemptFailureClassifier, ExternalCause, ExternalCauseFact, ExternalCauseLink, ExternalCauseScalar, } from "./types.cjs";
7
+ export type { StreamEvent, ToolName, JsonValue, JsonMatch, Usage, Turn, EvidenceCoverageStatus, EvidenceCoverageEntry, EvidenceCoverage, TurnEvidenceCoverage, TurnInput, InputFile, AnswerValue, InputResponse, RespondAnswer, TurnHandle, SessionHandle, TestContext, ScoreTestContext, Verdict, EvalAuthorFields, EvalInput, ScoreEvalInput, EvalDefinition, AnyEvalDefinition, EvalGroupMember, EvalGroupInput, EvalGroupDefinition, EvaluationKind, EvalDescriptor, ExperimentAuthorFields, SharedStateConfig, ExperimentInput, ExperimentDefinition, ExperimentHook, ExperimentHookContext, Config, LocalizedText, JudgeConfig, JudgeDeclaration, JudgeMaterial, Reporter, ReporterEvent, EvalResult, AcceptedDifference, AcceptedResult, RetryAttemptRecord, InvocationSummary, InvocationShape, DiagnosticRecord, ExperimentRunInfo, SandboxRunInfo, ScriptResult, CommandResult, CalledToolAtLeast, CalledToolCount, CalledToolOptions, InputRequest, InputRequestFilter, O11ySummary, TraceSpan, SpanKind, DerivedFacts, FailureClass, FailureScope, AttemptFailureInfo, AttemptFailureClassifier, ExternalCause, ExternalCauseFact, ExternalCauseLink, ExternalCauseScalar, } from "./types.cjs";
8
8
  export type { ParsedTranscript } from "./o11y/parsers/index.cjs";
package/dist/index.d.mts CHANGED
@@ -4,5 +4,5 @@ export type { AgentSendWindowIdentity, AgentWorkspaceDiffEndpoint, AgentWorkspac
4
4
  export type { PostRunBooleanAssertionHandle } from "./assertions/api.mjs";
5
5
  export { requireEnv, getEnv, stripComments } from "./util.mjs";
6
6
  export { ExperimentFatalError, EvalFatalError, failureClassOf } from "./shared/failure-class.mjs";
7
- export type { StreamEvent, ToolName, JsonValue, JsonMatch, Usage, Turn, EvidenceCoverageStatus, EvidenceCoverageEntry, EvidenceCoverage, TurnEvidenceCoverage, TurnInput, InputFile, AnswerValue, InputResponse, RespondAnswer, TurnHandle, SessionHandle, TestContext, ScoreTestContext, Verdict, EvalAuthorFields, EvalInput, ScoreEvalInput, EvalDefinition, AnyEvalDefinition, EvalGroupMember, EvalGroupInput, EvalGroupDefinition, EvaluationKind, EvalDescriptor, ExperimentAuthorFields, ExperimentInput, ExperimentDefinition, ExperimentHook, ExperimentHookContext, Config, LocalizedText, JudgeConfig, JudgeDeclaration, JudgeMaterial, Reporter, ReporterEvent, EvalResult, AcceptedDifference, AcceptedResult, RetryAttemptRecord, InvocationSummary, InvocationShape, DiagnosticRecord, ExperimentRunInfo, SandboxRunInfo, ScriptResult, CommandResult, CalledToolAtLeast, CalledToolCount, CalledToolOptions, InputRequest, InputRequestFilter, O11ySummary, TraceSpan, SpanKind, DerivedFacts, FailureClass, FailureScope, AttemptFailureInfo, AttemptFailureClassifier, ExternalCause, ExternalCauseFact, ExternalCauseLink, ExternalCauseScalar, } from "./types.mjs";
7
+ export type { StreamEvent, ToolName, JsonValue, JsonMatch, Usage, Turn, EvidenceCoverageStatus, EvidenceCoverageEntry, EvidenceCoverage, TurnEvidenceCoverage, TurnInput, InputFile, AnswerValue, InputResponse, RespondAnswer, TurnHandle, SessionHandle, TestContext, ScoreTestContext, Verdict, EvalAuthorFields, EvalInput, ScoreEvalInput, EvalDefinition, AnyEvalDefinition, EvalGroupMember, EvalGroupInput, EvalGroupDefinition, EvaluationKind, EvalDescriptor, ExperimentAuthorFields, SharedStateConfig, ExperimentInput, ExperimentDefinition, ExperimentHook, ExperimentHookContext, Config, LocalizedText, JudgeConfig, JudgeDeclaration, JudgeMaterial, Reporter, ReporterEvent, EvalResult, AcceptedDifference, AcceptedResult, RetryAttemptRecord, InvocationSummary, InvocationShape, DiagnosticRecord, ExperimentRunInfo, SandboxRunInfo, ScriptResult, CommandResult, CalledToolAtLeast, CalledToolCount, CalledToolOptions, InputRequest, InputRequestFilter, O11ySummary, TraceSpan, SpanKind, DerivedFacts, FailureClass, FailureScope, AttemptFailureInfo, AttemptFailureClassifier, ExternalCause, ExternalCauseFact, ExternalCauseLink, ExternalCauseScalar, } from "./types.mjs";
8
8
  export type { ParsedTranscript } from "./o11y/parsers/index.mjs";
package/dist/index.d.ts CHANGED
@@ -4,5 +4,5 @@ export type { AgentSendWindowIdentity, AgentWorkspaceDiffEndpoint, AgentWorkspac
4
4
  export type { PostRunBooleanAssertionHandle } from "./assertions/api.js";
5
5
  export { requireEnv, getEnv, stripComments } from "./util.js";
6
6
  export { ExperimentFatalError, EvalFatalError, failureClassOf } from "./shared/failure-class.js";
7
- export type { StreamEvent, ToolName, JsonValue, JsonMatch, Usage, Turn, EvidenceCoverageStatus, EvidenceCoverageEntry, EvidenceCoverage, TurnEvidenceCoverage, TurnInput, InputFile, AnswerValue, InputResponse, RespondAnswer, TurnHandle, SessionHandle, TestContext, ScoreTestContext, Verdict, EvalAuthorFields, EvalInput, ScoreEvalInput, EvalDefinition, AnyEvalDefinition, EvalGroupMember, EvalGroupInput, EvalGroupDefinition, EvaluationKind, EvalDescriptor, ExperimentAuthorFields, ExperimentInput, ExperimentDefinition, ExperimentHook, ExperimentHookContext, Config, LocalizedText, JudgeConfig, JudgeDeclaration, JudgeMaterial, Reporter, ReporterEvent, EvalResult, AcceptedDifference, AcceptedResult, RetryAttemptRecord, InvocationSummary, InvocationShape, DiagnosticRecord, ExperimentRunInfo, SandboxRunInfo, ScriptResult, CommandResult, CalledToolAtLeast, CalledToolCount, CalledToolOptions, InputRequest, InputRequestFilter, O11ySummary, TraceSpan, SpanKind, DerivedFacts, FailureClass, FailureScope, AttemptFailureInfo, AttemptFailureClassifier, ExternalCause, ExternalCauseFact, ExternalCauseLink, ExternalCauseScalar, } from "./types.js";
7
+ export type { StreamEvent, ToolName, JsonValue, JsonMatch, Usage, Turn, EvidenceCoverageStatus, EvidenceCoverageEntry, EvidenceCoverage, TurnEvidenceCoverage, TurnInput, InputFile, AnswerValue, InputResponse, RespondAnswer, TurnHandle, SessionHandle, TestContext, ScoreTestContext, Verdict, EvalAuthorFields, EvalInput, ScoreEvalInput, EvalDefinition, AnyEvalDefinition, EvalGroupMember, EvalGroupInput, EvalGroupDefinition, EvaluationKind, EvalDescriptor, ExperimentAuthorFields, SharedStateConfig, ExperimentInput, ExperimentDefinition, ExperimentHook, ExperimentHookContext, Config, LocalizedText, JudgeConfig, JudgeDeclaration, JudgeMaterial, Reporter, ReporterEvent, EvalResult, AcceptedDifference, AcceptedResult, RetryAttemptRecord, InvocationSummary, InvocationShape, DiagnosticRecord, ExperimentRunInfo, SandboxRunInfo, ScriptResult, CommandResult, CalledToolAtLeast, CalledToolCount, CalledToolOptions, InputRequest, InputRequestFilter, O11ySummary, TraceSpan, SpanKind, DerivedFacts, FailureClass, FailureScope, AttemptFailureInfo, AttemptFailureClassifier, ExternalCause, ExternalCauseFact, ExternalCauseLink, ExternalCauseScalar, } from "./types.js";
8
8
  export type { ParsedTranscript } from "./o11y/parsers/index.js";
@@ -159,7 +159,7 @@ function parseHermesTranscript(raw) {
159
159
  events.push({ type: "message", role: "assistant", text: content });
160
160
  }
161
161
  else if (content?.trim() && role === "user" && !Array.isArray(toolCallsRaw)) {
162
- // 用户消息不进行为断言主路径;保留会污染 messageIncludes。跳过。
162
+ // 用户消息不进行为断言主路径;保留会污染显式 message 值断言。跳过。
163
163
  }
164
164
  const reasoning = str(msg.reasoning) ?? str(msg.reasoning_content);
165
165
  if (reasoning?.trim())
@@ -1 +1 @@
1
- {"version":3,"file":"hermes.js","sourceRoot":"","sources":["hermes.ts"],"names":[],"mappings":"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","sourcesContent":["// Hermes sessions export / state.db 消息行解析器。方言只住这里,不进 core\n// (契约见 docs/feature/adapters/sdk/hermes/README.md)。\nimport type { StreamEvent, Usage, ToolName, JsonValue } from \"../../types.ts\";\nimport type { ParsedTranscript } from \"./index.ts\";\nimport { GENERIC_VERB_ALIASES, normalizeToolName as normalizeShared } from \"../tool-names.ts\";\nimport { normalizeJsonValue } from \"../../shared/json-value.ts\";\nimport { notCommandProjection, opaqueCommandProjection } from \"../command-projection.ts\";\nexport const HERMES_TOOL_ALIASES: globalThis.Record<string, ToolName> = {\n ...GENERIC_VERB_ALIASES,\n terminal: \"shell\",\n read_file: \"file_read\",\n write_file: \"file_write\",\n edit_file: \"file_edit\",\n web_extract: \"web_fetch\",\n};\nfunction normalizeToolName(name: string): ToolName {\n return normalizeShared(name, HERMES_TOOL_ALIASES);\n}\n/** Hermes 的 terminal tool 给的是工具 arguments,不是可验证的 native argv。 */\nfunction commandProjectionForHermesTool(name: string) {\n return name.toLowerCase() === \"terminal\"\n ? opaqueCommandProjection(\"unsupported-protocol\")\n : notCommandProjection();\n}\nfunction get(obj: unknown, key: string): unknown {\n return obj && typeof obj === \"object\" ? (obj as globalThis.Record<string, unknown>)[key] : undefined;\n}\nfunction str(v: unknown): string | undefined {\n return typeof v === \"string\" && v ? v : undefined;\n}\n/**\n * Hermes 以 `skill_view({ name })` 表示实际加载了一个已安装 Skill。它不是普通\n * 文件读取:对应的标准事件是 `skill.loaded`,这样判分和 execution 读面都无需猜工具文本。\n */\nfunction skillNameFromToolCall(name: string, input: JsonValue): string | undefined {\n if (name.toLowerCase() !== \"skill_view\")\n return undefined;\n return str(get(input, \"name\"));\n}\nfunction num(obj: unknown, ...keys: string[]): number {\n for (const k of keys) {\n const v = get(obj, k);\n if (typeof v === \"number\" && Number.isFinite(v))\n return v;\n }\n return 0;\n}\nfunction optionalNum(obj: unknown, ...keys: string[]): number | undefined {\n for (const key of keys) {\n const value = get(obj, key);\n if (typeof value === \"number\" && Number.isFinite(value))\n return value;\n }\n return undefined;\n}\nfunction coerceArgs(value: unknown): JsonValue {\n if (typeof value === \"string\") {\n try {\n const parsed: unknown = JSON.parse(value);\n return normalizeJsonValue(parsed, value);\n }\n catch {\n return value;\n }\n }\n return normalizeJsonValue(value, {});\n}\nfunction parseJsonField(value: unknown): unknown {\n if (typeof value !== \"string\")\n return value;\n try {\n return JSON.parse(value);\n }\n catch {\n return value;\n }\n}\n/**\n * Hermes sessions export JSONL(一行一 session,或一行一 message)→ 标准事件 + usage。\n */\nexport function parseHermesTranscript(raw: string | undefined): ParsedTranscript {\n const events: StreamEvent[] = [];\n let inputTokens = 0;\n let outputTokens = 0;\n let cacheReadTokens = 0;\n let cacheCreationTokens = 0;\n let observedCostUSD = 0;\n let hasObservedCostUSD = false;\n let requests = 0;\n let parseSuccess = true;\n let synth = 0;\n // `skill_view` 已转成 skill.loaded 后,其 tool result 不再重发成孤立 action 节点。\n const skillCallIds = new Set<string>();\n const nextSynthId = (): string => `hm_${++synth}`;\n if (!raw?.trim()) {\n return { events, usage: {}, compactions: 0, parseSuccess: true };\n }\n const ingestSessionMeta = (obj: globalThis.Record<string, unknown>): void => {\n inputTokens += num(obj, \"input_tokens\", \"inputTokens\");\n outputTokens += num(obj, \"output_tokens\", \"outputTokens\");\n cacheReadTokens += num(obj, \"cache_read_tokens\", \"cacheReadTokens\");\n cacheCreationTokens += num(obj, \"cache_write_tokens\", \"cacheWriteTokens\", \"cacheCreationTokens\");\n // estimated_cost_usd is an estimate owned by Hermes and is deliberately\n // not relabeled as provider-observed Usage.costUSD.\n const actual = optionalNum(obj, \"actual_cost_usd\", \"actualCostUsd\");\n if (actual !== undefined) {\n observedCostUSD += actual;\n hasObservedCostUSD = true;\n }\n const apiCalls = num(obj, \"api_call_count\", \"apiCallCount\");\n if (apiCalls)\n requests += apiCalls;\n };\n const ingestMessage = (msg: globalThis.Record<string, unknown>): void => {\n const role = str(msg.role) ?? \"assistant\";\n const content = str(msg.content);\n if (role === \"tool\" || str(msg.tool_call_id) || str(msg.toolCallId)) {\n const callId = str(msg.tool_call_id) ?? str(msg.toolCallId) ?? nextSynthId();\n if (skillCallIds.has(callId))\n return;\n const success = msg.is_error !== true && msg.isError !== true;\n events.push({\n type: \"operation.finished\",\n operationId: callId,\n kind: \"tool\",\n output: (content ?? get(msg, \"output\") ?? null) as JsonValue,\n status: success ? \"completed\" : \"failed\",\n });\n return;\n }\n const toolCallsRaw = parseJsonField(msg.tool_calls ?? msg.toolCalls);\n if (Array.isArray(toolCallsRaw)) {\n for (const call of toolCallsRaw) {\n const fn = get(call, \"function\") as globalThis.Record<string, unknown> | undefined;\n const name = str(get(fn, \"name\")) ?? str(get(call, \"name\")) ?? str(msg.tool_name) ?? \"unknown\";\n const callId = str(get(call, \"id\")) ?? nextSynthId();\n const args = coerceArgs(get(fn, \"arguments\") ?? get(call, \"arguments\") ?? get(call, \"input\"));\n const skill = skillNameFromToolCall(name, args);\n if (skill !== undefined) {\n events.push({ type: \"skill.loaded\", skill, operationId: callId });\n skillCallIds.add(callId);\n continue;\n }\n events.push({\n type: \"operation.started\",\n operationId: callId,\n operation: {\n kind: \"tool\",\n name,\n input: args,\n tool: normalizeToolName(name),\n command: commandProjectionForHermesTool(name),\n },\n });\n }\n }\n if (content?.trim() && role !== \"user\" && role !== \"system\") {\n events.push({ type: \"message\", role: \"assistant\", text: content });\n }\n else if (content?.trim() && role === \"user\" && !Array.isArray(toolCallsRaw)) {\n // 用户消息不进行为断言主路径;保留会污染 messageIncludes。跳过。\n }\n const reasoning = str(msg.reasoning) ?? str(msg.reasoning_content);\n if (reasoning?.trim())\n events.push({ type: \"thinking\", text: reasoning });\n };\n for (const line of raw.split(\"\\n\")) {\n const trimmed = line.trim();\n if (!trimmed)\n continue;\n let obj: globalThis.Record<string, unknown>;\n try {\n obj = JSON.parse(trimmed) as globalThis.Record<string, unknown>;\n }\n catch {\n parseSuccess = false;\n continue;\n }\n try {\n // 整 session 导出:带 messages[]\n if (Array.isArray(obj.messages)) {\n ingestSessionMeta(obj);\n for (const m of obj.messages) {\n if (m && typeof m === \"object\")\n ingestMessage(m as globalThis.Record<string, unknown>);\n }\n continue;\n }\n // 单行 message\n if (str(obj.role)) {\n ingestMessage(obj);\n continue;\n }\n // sqlite dump 行:{session_id, role, content, tool_calls, ...}\n if (str(obj.session_id) || str(obj.sessionId)) {\n ingestMessage(obj);\n continue;\n }\n ingestSessionMeta(obj);\n }\n catch {\n parseSuccess = false;\n }\n }\n const usage: Usage = {};\n if (inputTokens)\n usage.inputTokens = inputTokens;\n if (outputTokens)\n usage.outputTokens = outputTokens;\n if (cacheReadTokens)\n usage.cacheReadTokens = cacheReadTokens;\n if (cacheCreationTokens)\n usage.cacheCreationTokens = cacheCreationTokens;\n if (hasObservedCostUSD)\n usage.costUSD = observedCostUSD;\n if (requests)\n usage.requests = requests;\n return { events, usage, compactions: 0, parseSuccess };\n}\n/** 从 export / stdout 文本里抠 session id。 */\nexport function sessionIdFromHermesOutput(raw: string | undefined): string | undefined {\n if (!raw)\n return undefined;\n for (const line of raw.split(\"\\n\")) {\n const resume = line.match(/hermes\\s+(?:chat\\s+)?(?:--resume|-r)\\s+(\\S+)/i);\n if (resume?.[1])\n return resume[1].replace(/[\"'`]/g, \"\");\n const labeled = line.match(/Session:\\s*([A-Za-z0-9_-]+)/i);\n if (labeled?.[1])\n return labeled[1];\n const trimmed = line.trim();\n if (!trimmed.startsWith(\"{\"))\n continue;\n try {\n const obj = JSON.parse(trimmed) as globalThis.Record<string, unknown>;\n const id = str(obj.id) ?? str(obj.session_id) ?? str(obj.sessionId);\n if (id && (Array.isArray(obj.messages) || str(obj.source)))\n return id;\n }\n catch {\n // skip\n }\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"hermes.js","sourceRoot":"","sources":["hermes.ts"],"names":[],"mappings":"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","sourcesContent":["// Hermes sessions export / state.db 消息行解析器。方言只住这里,不进 core\n// (契约见 docs/feature/adapters/sdk/hermes/README.md)。\nimport type { StreamEvent, Usage, ToolName, JsonValue } from \"../../types.ts\";\nimport type { ParsedTranscript } from \"./index.ts\";\nimport { GENERIC_VERB_ALIASES, normalizeToolName as normalizeShared } from \"../tool-names.ts\";\nimport { normalizeJsonValue } from \"../../shared/json-value.ts\";\nimport { notCommandProjection, opaqueCommandProjection } from \"../command-projection.ts\";\nexport const HERMES_TOOL_ALIASES: globalThis.Record<string, ToolName> = {\n ...GENERIC_VERB_ALIASES,\n terminal: \"shell\",\n read_file: \"file_read\",\n write_file: \"file_write\",\n edit_file: \"file_edit\",\n web_extract: \"web_fetch\",\n};\nfunction normalizeToolName(name: string): ToolName {\n return normalizeShared(name, HERMES_TOOL_ALIASES);\n}\n/** Hermes 的 terminal tool 给的是工具 arguments,不是可验证的 native argv。 */\nfunction commandProjectionForHermesTool(name: string) {\n return name.toLowerCase() === \"terminal\"\n ? opaqueCommandProjection(\"unsupported-protocol\")\n : notCommandProjection();\n}\nfunction get(obj: unknown, key: string): unknown {\n return obj && typeof obj === \"object\" ? (obj as globalThis.Record<string, unknown>)[key] : undefined;\n}\nfunction str(v: unknown): string | undefined {\n return typeof v === \"string\" && v ? v : undefined;\n}\n/**\n * Hermes 以 `skill_view({ name })` 表示实际加载了一个已安装 Skill。它不是普通\n * 文件读取:对应的标准事件是 `skill.loaded`,这样判分和 execution 读面都无需猜工具文本。\n */\nfunction skillNameFromToolCall(name: string, input: JsonValue): string | undefined {\n if (name.toLowerCase() !== \"skill_view\")\n return undefined;\n return str(get(input, \"name\"));\n}\nfunction num(obj: unknown, ...keys: string[]): number {\n for (const k of keys) {\n const v = get(obj, k);\n if (typeof v === \"number\" && Number.isFinite(v))\n return v;\n }\n return 0;\n}\nfunction optionalNum(obj: unknown, ...keys: string[]): number | undefined {\n for (const key of keys) {\n const value = get(obj, key);\n if (typeof value === \"number\" && Number.isFinite(value))\n return value;\n }\n return undefined;\n}\nfunction coerceArgs(value: unknown): JsonValue {\n if (typeof value === \"string\") {\n try {\n const parsed: unknown = JSON.parse(value);\n return normalizeJsonValue(parsed, value);\n }\n catch {\n return value;\n }\n }\n return normalizeJsonValue(value, {});\n}\nfunction parseJsonField(value: unknown): unknown {\n if (typeof value !== \"string\")\n return value;\n try {\n return JSON.parse(value);\n }\n catch {\n return value;\n }\n}\n/**\n * Hermes sessions export JSONL(一行一 session,或一行一 message)→ 标准事件 + usage。\n */\nexport function parseHermesTranscript(raw: string | undefined): ParsedTranscript {\n const events: StreamEvent[] = [];\n let inputTokens = 0;\n let outputTokens = 0;\n let cacheReadTokens = 0;\n let cacheCreationTokens = 0;\n let observedCostUSD = 0;\n let hasObservedCostUSD = false;\n let requests = 0;\n let parseSuccess = true;\n let synth = 0;\n // `skill_view` 已转成 skill.loaded 后,其 tool result 不再重发成孤立 action 节点。\n const skillCallIds = new Set<string>();\n const nextSynthId = (): string => `hm_${++synth}`;\n if (!raw?.trim()) {\n return { events, usage: {}, compactions: 0, parseSuccess: true };\n }\n const ingestSessionMeta = (obj: globalThis.Record<string, unknown>): void => {\n inputTokens += num(obj, \"input_tokens\", \"inputTokens\");\n outputTokens += num(obj, \"output_tokens\", \"outputTokens\");\n cacheReadTokens += num(obj, \"cache_read_tokens\", \"cacheReadTokens\");\n cacheCreationTokens += num(obj, \"cache_write_tokens\", \"cacheWriteTokens\", \"cacheCreationTokens\");\n // estimated_cost_usd is an estimate owned by Hermes and is deliberately\n // not relabeled as provider-observed Usage.costUSD.\n const actual = optionalNum(obj, \"actual_cost_usd\", \"actualCostUsd\");\n if (actual !== undefined) {\n observedCostUSD += actual;\n hasObservedCostUSD = true;\n }\n const apiCalls = num(obj, \"api_call_count\", \"apiCallCount\");\n if (apiCalls)\n requests += apiCalls;\n };\n const ingestMessage = (msg: globalThis.Record<string, unknown>): void => {\n const role = str(msg.role) ?? \"assistant\";\n const content = str(msg.content);\n if (role === \"tool\" || str(msg.tool_call_id) || str(msg.toolCallId)) {\n const callId = str(msg.tool_call_id) ?? str(msg.toolCallId) ?? nextSynthId();\n if (skillCallIds.has(callId))\n return;\n const success = msg.is_error !== true && msg.isError !== true;\n events.push({\n type: \"operation.finished\",\n operationId: callId,\n kind: \"tool\",\n output: (content ?? get(msg, \"output\") ?? null) as JsonValue,\n status: success ? \"completed\" : \"failed\",\n });\n return;\n }\n const toolCallsRaw = parseJsonField(msg.tool_calls ?? msg.toolCalls);\n if (Array.isArray(toolCallsRaw)) {\n for (const call of toolCallsRaw) {\n const fn = get(call, \"function\") as globalThis.Record<string, unknown> | undefined;\n const name = str(get(fn, \"name\")) ?? str(get(call, \"name\")) ?? str(msg.tool_name) ?? \"unknown\";\n const callId = str(get(call, \"id\")) ?? nextSynthId();\n const args = coerceArgs(get(fn, \"arguments\") ?? get(call, \"arguments\") ?? get(call, \"input\"));\n const skill = skillNameFromToolCall(name, args);\n if (skill !== undefined) {\n events.push({ type: \"skill.loaded\", skill, operationId: callId });\n skillCallIds.add(callId);\n continue;\n }\n events.push({\n type: \"operation.started\",\n operationId: callId,\n operation: {\n kind: \"tool\",\n name,\n input: args,\n tool: normalizeToolName(name),\n command: commandProjectionForHermesTool(name),\n },\n });\n }\n }\n if (content?.trim() && role !== \"user\" && role !== \"system\") {\n events.push({ type: \"message\", role: \"assistant\", text: content });\n }\n else if (content?.trim() && role === \"user\" && !Array.isArray(toolCallsRaw)) {\n // 用户消息不进行为断言主路径;保留会污染显式 message 值断言。跳过。\n }\n const reasoning = str(msg.reasoning) ?? str(msg.reasoning_content);\n if (reasoning?.trim())\n events.push({ type: \"thinking\", text: reasoning });\n };\n for (const line of raw.split(\"\\n\")) {\n const trimmed = line.trim();\n if (!trimmed)\n continue;\n let obj: globalThis.Record<string, unknown>;\n try {\n obj = JSON.parse(trimmed) as globalThis.Record<string, unknown>;\n }\n catch {\n parseSuccess = false;\n continue;\n }\n try {\n // 整 session 导出:带 messages[]\n if (Array.isArray(obj.messages)) {\n ingestSessionMeta(obj);\n for (const m of obj.messages) {\n if (m && typeof m === \"object\")\n ingestMessage(m as globalThis.Record<string, unknown>);\n }\n continue;\n }\n // 单行 message\n if (str(obj.role)) {\n ingestMessage(obj);\n continue;\n }\n // sqlite dump 行:{session_id, role, content, tool_calls, ...}\n if (str(obj.session_id) || str(obj.sessionId)) {\n ingestMessage(obj);\n continue;\n }\n ingestSessionMeta(obj);\n }\n catch {\n parseSuccess = false;\n }\n }\n const usage: Usage = {};\n if (inputTokens)\n usage.inputTokens = inputTokens;\n if (outputTokens)\n usage.outputTokens = outputTokens;\n if (cacheReadTokens)\n usage.cacheReadTokens = cacheReadTokens;\n if (cacheCreationTokens)\n usage.cacheCreationTokens = cacheCreationTokens;\n if (hasObservedCostUSD)\n usage.costUSD = observedCostUSD;\n if (requests)\n usage.requests = requests;\n return { events, usage, compactions: 0, parseSuccess };\n}\n/** 从 export / stdout 文本里抠 session id。 */\nexport function sessionIdFromHermesOutput(raw: string | undefined): string | undefined {\n if (!raw)\n return undefined;\n for (const line of raw.split(\"\\n\")) {\n const resume = line.match(/hermes\\s+(?:chat\\s+)?(?:--resume|-r)\\s+(\\S+)/i);\n if (resume?.[1])\n return resume[1].replace(/[\"'`]/g, \"\");\n const labeled = line.match(/Session:\\s*([A-Za-z0-9_-]+)/i);\n if (labeled?.[1])\n return labeled[1];\n const trimmed = line.trim();\n if (!trimmed.startsWith(\"{\"))\n continue;\n try {\n const obj = JSON.parse(trimmed) as globalThis.Record<string, unknown>;\n const id = str(obj.id) ?? str(obj.session_id) ?? str(obj.sessionId);\n if (id && (Array.isArray(obj.messages) || str(obj.source)))\n return id;\n }\n catch {\n // skip\n }\n }\n return undefined;\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  "$source": "models.dev",
3
3
  "$asOf": 1786948001963,
4
4
  "$modelRequest": 0,
5
- "$note": "per-1M-token USD prices; regenerated in CI (.github/workflows/prices.yml)",
5
+ "$note": "per-1M-token USD prices; vendored snapshot from models.dev",
6
6
  "prices": {
7
7
  "@cf/aisingapore/gemma-sea-lion-v4-27b-it": {
8
8
  "in": 0.351,
@@ -9,6 +9,7 @@ exports.makeAttemptDiagnosticsAttachmentFamilyValidation = makeAttemptDiagnostic
9
9
  exports.makeRunTimingAttachmentFamilyValidation = makeRunTimingAttachmentFamilyValidation;
10
10
  exports.makeRunDiagnosticsAttachmentFamilyValidation = makeRunDiagnosticsAttachmentFamilyValidation;
11
11
  const effect_1 = require("effect");
12
+ const turn_label_ts_1 = require("../../shared/turn-label.cjs");
12
13
  const codec_ts_1 = require("../../sources/codec.cjs");
13
14
  const codec_ts_2 = require("./codec.cjs");
14
15
  const limits_ts_1 = require("./limits.cjs");
@@ -390,16 +391,24 @@ exports.UsageAttachmentSchema = UsageAttachmentStructuralSchema.pipe(effect_1.Sc
390
391
  exports.AttemptTimingPhaseSchema = effect_1.Schema.Literal("attempt.setup", "sandbox.prepare", "agent.ensure", "eval.run", "agent.send", "sandbox.command", "assertion.evaluate", "verdict.fold", "attempt.teardown");
391
392
  exports.RunTimingPhaseSchema = effect_1.Schema.Literal("run.setup", "run.discovery", "run.plan", "run.dispatch", "run.teardown");
392
393
  const TimingOutcomeSchema = effect_1.Schema.Literal("completed", "failed", "cancelled", "interrupted", "unknown");
393
- exports.AttemptTimingIntervalSchema = effect_1.Schema.Struct({
394
+ const CanonicalTurnLabelSchema = effect_1.Schema.String.pipe(effect_1.Schema.filter((value) => (0, turn_label_ts_1.isCanonicalTurnLabel)(value), { identifier: "CanonicalTurnLabel" }));
395
+ const AttemptTimingIntervalBase = {
394
396
  intervalId: codec_ts_2.IntervalIdSchema,
395
- phase: exports.AttemptTimingPhaseSchema,
396
- label: codec_ts_2.StableLabelSchema,
397
397
  startOffsetMs: codec_ts_2.NonNegativeSafeIntegerSchema,
398
398
  durationMs: codec_ts_2.NonNegativeSafeIntegerSchema,
399
399
  parentIntervalId: effect_1.Schema.NullOr(codec_ts_2.IntervalIdSchema),
400
400
  outcome: TimingOutcomeSchema,
401
401
  refs: codec_ts_2.AttemptTimingReferencesSchema,
402
+ };
403
+ const AttemptTimingIntervalStructuralSchema = effect_1.Schema.Struct({
404
+ ...AttemptTimingIntervalBase,
405
+ phase: exports.AttemptTimingPhaseSchema,
406
+ label: effect_1.Schema.Union(codec_ts_2.StableLabelSchema, CanonicalTurnLabelSchema),
402
407
  });
408
+ exports.AttemptTimingIntervalSchema = AttemptTimingIntervalStructuralSchema.pipe(effect_1.Schema.filter((interval) => interval.phase === "agent.send" || (0, model_ts_1.isStableLabel)(interval.label), {
409
+ identifier: "AttemptTimingInterval",
410
+ description: "canonical turn labels are reserved for agent.send intervals",
411
+ }));
403
412
  exports.RunTimingIntervalSchema = effect_1.Schema.Struct({
404
413
  intervalId: codec_ts_2.IntervalIdSchema,
405
414
  phase: exports.RunTimingPhaseSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"families.js","sourceRoot":"","sources":["families.ts"],"names":[],"mappings":"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","sourcesContent":["import { Schema } from \"effect\";\nimport type { RecordBlobRef } from \"../../record/attachment/index.ts\";\nimport { Sha256DigestSchema, SourceFileItemIdSchema, } from \"../../sources/codec.ts\";\nimport { AttemptDiagnosticsReferencesSchema, AttemptReferenceTargetSchema, AttemptTimingReferencesSchema, CollectionSchema, CommandsReferencesSchema, ConversationReferencesSchema, CurrencyCodeSchema, NonNegativeSafeIntegerSchema, PositiveSafeIntegerSchema, RunDiagnosticsReferencesSchema, RunReferenceTargetSchema, RunTimingReferencesSchema, SafeIdentifierSchema, SafeTextSchema, SourceNativeToolNameSchema, StableLabelSchema, UsageObservationIdSchema, UsageReferencesSchema, boundedSafeTextSchema, CallIdSchema, CommandIdSchema, DiagnosticIdSchema, IntervalIdSchema, ItemIdSchema, TurnIdSchema, } from \"./codec.ts\";\nimport { MAX_COMMAND_ARGUMENT_BYTES, MAX_COMMAND_ARGUMENTS, MAX_COMMAND_EXECUTABLE_BYTES, MAX_COMMAND_INLINE_STREAM_BYTES, MAX_COMMAND_PROJECT_RELATIVE_PATH_BYTES, MAX_COMMAND_SHELL_BYTES, MAX_COMMAND_STREAM_BYTES, MAX_COMMANDS_ATTACHMENT_BYTES, MAX_COMMANDS_CLOSURE_BYTES, MAX_COMMANDS, MAX_CONVERSATION_ATTACHMENT_BYTES, MAX_CONVERSATION_ITEMS, MAX_CONVERSATION_TEXT_BYTES, MAX_CONVERSATION_TURNS, MAX_DIAGNOSTIC_CAUSES, MAX_DIAGNOSTIC_CAUSE_SUMMARY_BYTES, MAX_DIAGNOSTIC_CONTEXT_ITEMS, MAX_DIAGNOSTIC_SUMMARY_BYTES, MAX_DIAGNOSTICS_ATTACHMENT_BYTES, MAX_DIAGNOSTICS, MAX_TIMING_ATTACHMENT_BYTES, MAX_TIMING_INTERVALS, MAX_USAGE_ATTACHMENT_BYTES, MAX_USAGE_OBSERVATIONS, } from \"./limits.ts\";\nimport { ATTEMPT_OBSERVABILITY_FAMILY_SCHEMA_IDS, RUN_OBSERVABILITY_FAMILY_SCHEMA_IDS, compareObservabilityText, isSafeText, jsonUtf8ByteLength, limitationTarget, type AttemptDiagnosticsReferences, type AttemptReferenceTarget, type Collection, type CommandId, type CommandsReferences, type RunDiagnosticsReferences, } from \"./model.ts\";\nimport { makeAttemptObservabilityFamilyValidation, makeRunObservabilityFamilyValidation, type ObservabilityFamilyValidation, } from \"./validation.ts\";\nfunction freezeArray<Value>(values: readonly Value[]): readonly Value[] {\n return Object.freeze([...values]);\n}\nfunction payloadFits(value: object, maximumBytes: number): boolean {\n const length = jsonUtf8ByteLength(value);\n return length !== undefined && length <= maximumBytes;\n}\nfunction isStrictlyOrderedById<Item>(values: readonly Item[], idOf: (value: Item) => string): boolean {\n let previous: string | undefined;\n const seen = new Set<string>();\n for (const value of values) {\n const id = idOf(value);\n if (seen.has(id) || (previous !== undefined && compareObservabilityText(previous, id) >= 0)) {\n return false;\n }\n seen.add(id);\n previous = id;\n }\n return true;\n}\nfunction isAllowedCollection(collection: Collection, targets: readonly string[]): boolean {\n return collection.limitations.every((limitation) => targets.some((target) => limitationTarget(limitation) === target));\n}\nfunction hasExactStreamTruncation(collection: Collection, commandId: string, stream: \"stdout\" | \"stderr\", retainedBytes: number, totalSafeUtf8Bytes: number): boolean {\n const omittedBytes = totalSafeUtf8Bytes - retainedBytes;\n return collection.limitations.some((limitation) => limitation.code === \"stream-truncated\" &&\n limitation.commandId === commandId &&\n limitation.stream === stream &&\n limitation.retainedBytes === retainedBytes &&\n limitation.omittedBytes === omittedBytes);\n}\nfunction isProjectRelativePath(value: string): boolean {\n return (isSafeText(value) &&\n value.length > 0 &&\n !value.startsWith(\"/\") &&\n value.split(\"/\").every((segment) => segment.length > 0 && segment !== \".\" && segment !== \"..\") &&\n new TextEncoder().encode(value).byteLength <= MAX_COMMAND_PROJECT_RELATIVE_PATH_BYTES);\n}\nconst ProjectRelativePathSchema = Schema.String.pipe(Schema.filter(isProjectRelativePath, {\n identifier: \"ObservabilityProjectRelativePath\",\n description: \"a portable project-relative path without dot segments\",\n}));\nconst ExitCodeSchema = Schema.JsonNumber.pipe(Schema.filter((value) => Number.isSafeInteger(value) &&\n value >= -2147483648 &&\n value <= 2147483647, {\n identifier: \"ObservabilityCommandExitCode\",\n description: \"a signed 32-bit command exit code\",\n}));\n/** Record's opaque ref position is the only non-JSON value in a durable command payload. */\nconst RecordBlobRefPositionSchema: Schema.Schema<RecordBlobRef, RecordBlobRef, never> = Schema.declare<RecordBlobRef>((value): value is RecordBlobRef => typeof value === \"object\" && value !== null);\nconst ConversationItemBaseFields = {\n itemId: ItemIdSchema,\n turnId: TurnIdSchema,\n sequence: PositiveSafeIntegerSchema,\n refs: ConversationReferencesSchema,\n} as const;\nexport const ConversationTurnSchema = Schema.Struct({\n turnId: TurnIdSchema,\n sequence: PositiveSafeIntegerSchema,\n outcome: Schema.Literal(\"completed\", \"failed\", \"cancelled\", \"interrupted\"),\n refs: ConversationReferencesSchema,\n});\nexport const ConversationItemSchema = Schema.Union(Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"message\"),\n role: Schema.Literal(\"user\", \"assistant\"),\n text: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"tool-call\"),\n callId: CallIdSchema,\n tool: SourceNativeToolNameSchema,\n inputSummary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"tool-result\"),\n callId: CallIdSchema,\n outcome: Schema.Literal(\"completed\", \"rejected\", \"failed\", \"cancelled\"),\n outputSummary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"thinking-summary\"),\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"subagent\"),\n state: Schema.Literal(\"started\", \"completed\", \"failed\"),\n label: SafeIdentifierSchema,\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"input-request\"),\n state: Schema.Literal(\"requested\", \"answered\", \"cancelled\"),\n promptSummary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n responseSummary: Schema.NullOr(boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES)),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"skill-load\"),\n skill: SafeIdentifierSchema,\n outcome: Schema.Literal(\"loaded\", \"failed\"),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"context-injection\"),\n source: Schema.Literal(\"system\", \"memory\", \"skill\", \"user\"),\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"compaction\"),\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n compactedItemCount: NonNegativeSafeIntegerSchema,\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"conversation-error\"),\n code: SafeIdentifierSchema,\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}));\nexport type ConversationTurn = Schema.Schema.Type<typeof ConversationTurnSchema>;\nexport type ConversationItem = Schema.Schema.Type<typeof ConversationItemSchema>;\nfunction conversationTextLengths(item: ConversationItem): readonly number[] {\n switch (item.kind) {\n case \"message\":\n return freezeArray([new TextEncoder().encode(item.text).byteLength]);\n case \"tool-call\":\n return freezeArray([new TextEncoder().encode(item.inputSummary).byteLength]);\n case \"tool-result\":\n return freezeArray([new TextEncoder().encode(item.outputSummary).byteLength]);\n case \"thinking-summary\":\n case \"subagent\":\n case \"context-injection\":\n case \"compaction\":\n case \"conversation-error\":\n return freezeArray([new TextEncoder().encode(item.summary).byteLength]);\n case \"input-request\":\n return freezeArray([\n new TextEncoder().encode(item.promptSummary).byteLength,\n ...(item.responseSummary === null\n ? []\n : [new TextEncoder().encode(item.responseSummary).byteLength]),\n ]);\n case \"skill-load\":\n return freezeArray([]);\n }\n}\nfunction isCanonicalConversationAttachment(value: Schema.Schema.Type<typeof ConversationAttachmentStructuralSchema>): boolean {\n if (value.turns.length > MAX_CONVERSATION_TURNS ||\n value.items.length > MAX_CONVERSATION_ITEMS ||\n !payloadFits(value, MAX_CONVERSATION_ATTACHMENT_BYTES) ||\n !isAllowedCollection(value.collection, [\"conversation-item\", \"conversation-text\"])) {\n return false;\n }\n if (!isStrictlyOrderedById(value.turns, (turn) => turn.turnId))\n return false;\n const turnIds = new Set<string>();\n const turnSequences = new Set<number>();\n for (const turn of value.turns) {\n turnIds.add(turn.turnId);\n if (turnSequences.has(turn.sequence))\n return false;\n turnSequences.add(turn.sequence);\n }\n const itemIds = new Set<string>();\n const itemSequences = new Set<number>();\n const callIds = new Set<string>();\n const resultCallIds = new Set<string>();\n let previous: ConversationItem | undefined;\n for (const item of value.items) {\n if (itemIds.has(item.itemId) ||\n itemSequences.has(item.sequence) ||\n !turnIds.has(item.turnId)) {\n return false;\n }\n if (previous !== undefined &&\n (previous.sequence > item.sequence ||\n (previous.sequence === item.sequence &&\n compareObservabilityText(previous.itemId, item.itemId) >= 0))) {\n return false;\n }\n itemIds.add(item.itemId);\n itemSequences.add(item.sequence);\n if (item.kind === \"tool-call\") {\n if (callIds.has(item.callId))\n return false;\n callIds.add(item.callId);\n }\n if (item.kind === \"tool-result\") {\n if (!callIds.has(item.callId) || resultCallIds.has(item.callId))\n return false;\n resultCallIds.add(item.callId);\n }\n previous = item;\n }\n if (value.collection.state === \"complete\" &&\n [...callIds].some((callId) => !resultCallIds.has(callId))) {\n return false;\n }\n return value.collection.limitations.every((limitation) => {\n if (limitation.code !== \"text-truncated\" || limitation.target !== \"conversation-text\") {\n return true;\n }\n const item = value.items.find((candidate) => candidate.itemId === limitation.itemId);\n return item !== undefined && conversationTextLengths(item).some((length) => length === limitation.retainedBytes);\n });\n}\nconst ConversationAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n turns: Schema.Array(ConversationTurnSchema),\n items: Schema.Array(ConversationItemSchema),\n});\nexport const ConversationAttachmentSchema = ConversationAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalConversationAttachment, {\n identifier: \"ObservabilityConversationAttachment\",\n description: \"a canonical, bounded conversation attachment\",\n}));\nexport type ConversationAttachment = Schema.Schema.Type<typeof ConversationAttachmentSchema>;\nconst CommandInvocationSchema = Schema.Union(Schema.Struct({\n kind: Schema.Literal(\"argv\"),\n executable: boundedSafeTextSchema(MAX_COMMAND_EXECUTABLE_BYTES),\n arguments: Schema.Array(boundedSafeTextSchema(MAX_COMMAND_ARGUMENT_BYTES)).pipe(Schema.filter((arguments_) => arguments_.length <= MAX_COMMAND_ARGUMENTS, {\n identifier: \"ObservabilityCommandArguments\",\n description: \"at most 64 safe command arguments\",\n })),\n}), Schema.Struct({\n kind: Schema.Literal(\"shell\"),\n command: boundedSafeTextSchema(MAX_COMMAND_SHELL_BYTES),\n}));\nconst CommandWorkingDirectorySchema = Schema.Union(Schema.Struct({ kind: Schema.Literal(\"sandbox-default\") }), Schema.Struct({\n kind: Schema.Literal(\"project-relative\"),\n path: ProjectRelativePathSchema,\n}), Schema.Struct({ kind: Schema.Literal(\"redacted\") }));\nexport const CommandManifestSchema = Schema.Struct({\n phase: Schema.Literal(\"attempt.setup\", \"sandbox.prepare\", \"agent.ensure\", \"eval.run\", \"sandbox.command\", \"attempt.teardown\"),\n invocation: CommandInvocationSchema,\n workingDirectory: CommandWorkingDirectorySchema,\n});\nexport const CommandStreamSchema = Schema.Struct({\n storage: Schema.Union(Schema.Struct({\n kind: Schema.Literal(\"inline\"),\n text: SafeTextSchema,\n }), Schema.Struct({\n kind: Schema.Literal(\"blob\"),\n ref: RecordBlobRefPositionSchema,\n })),\n retainedBytes: NonNegativeSafeIntegerSchema,\n totalSafeUtf8Bytes: NonNegativeSafeIntegerSchema,\n});\nexport const CommandOutcomeSchema = Schema.Union(Schema.Struct({\n kind: Schema.Literal(\"exited\"),\n exitCode: ExitCodeSchema,\n}), Schema.Struct({\n kind: Schema.Literal(\"terminated\"),\n reason: Schema.Literal(\"timeout\", \"cancelled\", \"transport-lost\"),\n}), Schema.Struct({\n kind: Schema.Literal(\"not-started\"),\n reason: Schema.Literal(\"spawn-failed\", \"cancelled-before-start\"),\n}));\nexport const CommandResultSchema = Schema.Struct({\n outcome: CommandOutcomeSchema,\n stdout: CommandStreamSchema,\n stderr: CommandStreamSchema,\n});\nexport const CommandObservationSchema = Schema.Struct({\n commandId: CommandIdSchema,\n manifest: CommandManifestSchema,\n result: CommandResultSchema,\n refs: CommandsReferencesSchema,\n});\nconst CommandsAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n commands: Schema.Array(CommandObservationSchema),\n});\nexport type CommandManifest = Schema.Schema.Type<typeof CommandManifestSchema>;\nexport type CommandStream = Schema.Schema.Type<typeof CommandStreamSchema>;\nexport type CommandResult = Schema.Schema.Type<typeof CommandResultSchema>;\nexport type CommandObservation = Schema.Schema.Type<typeof CommandObservationSchema>;\nfunction isCanonicalCommandStream(stream: CommandStream, collection: Collection, commandId: string, streamName: \"stdout\" | \"stderr\"): boolean {\n if (stream.retainedBytes > MAX_COMMAND_STREAM_BYTES ||\n stream.totalSafeUtf8Bytes < stream.retainedBytes) {\n return false;\n }\n if (stream.storage.kind === \"inline\") {\n const bytes = new TextEncoder().encode(stream.storage.text).byteLength;\n if (bytes !== stream.retainedBytes ||\n stream.retainedBytes > MAX_COMMAND_INLINE_STREAM_BYTES) {\n return false;\n }\n }\n if (stream.totalSafeUtf8Bytes === stream.retainedBytes) {\n return stream.storage.kind === \"inline\"\n ? stream.retainedBytes <= MAX_COMMAND_INLINE_STREAM_BYTES\n : stream.retainedBytes > MAX_COMMAND_INLINE_STREAM_BYTES;\n }\n return hasExactStreamTruncation(collection, commandId, streamName, stream.retainedBytes, stream.totalSafeUtf8Bytes);\n}\nfunction commandManifestTextLengths(manifest: CommandManifest): readonly number[] {\n const encoder = new TextEncoder();\n const invocation = manifest.invocation.kind === \"argv\"\n ? [manifest.invocation.executable, ...manifest.invocation.arguments]\n : [manifest.invocation.command];\n const directory = manifest.workingDirectory.kind === \"project-relative\"\n ? [manifest.workingDirectory.path]\n : [];\n return freezeArray([...invocation, ...directory].map((value) => encoder.encode(value).byteLength));\n}\nfunction isCanonicalCommandsAttachment(value: Schema.Schema.Type<typeof CommandsAttachmentStructuralSchema>): boolean {\n if (value.commands.length > MAX_COMMANDS ||\n !payloadFits(value, MAX_COMMANDS_ATTACHMENT_BYTES) ||\n !isAllowedCollection(value.collection, [\n \"command-manifest\",\n \"command-stdout\",\n \"command-stderr\",\n ]) ||\n !isStrictlyOrderedById(value.commands, (command) => command.commandId)) {\n return false;\n }\n let closureBytes = 0;\n for (const command of value.commands) {\n for (const [name, stream] of [\n [\"stdout\", command.result.stdout],\n [\"stderr\", command.result.stderr],\n ] as const) {\n if (!isCanonicalCommandStream(stream, value.collection, command.commandId, name)) {\n return false;\n }\n if (stream.storage.kind === \"blob\") {\n closureBytes += stream.retainedBytes;\n }\n }\n }\n if (closureBytes > MAX_COMMANDS_CLOSURE_BYTES)\n return false;\n return value.collection.limitations.every((limitation) => {\n if (limitation.code !== \"text-truncated\" || limitation.target !== \"command-manifest\") {\n return true;\n }\n const command = value.commands.find((candidate) => candidate.commandId === limitation.commandId);\n return command !== undefined && commandManifestTextLengths(command.manifest).some((length) => length === limitation.retainedBytes);\n });\n}\nexport const CommandsAttachmentSchema = CommandsAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalCommandsAttachment, {\n identifier: \"ObservabilityCommandsAttachment\",\n description: \"a canonical, bounded commands attachment\",\n}));\nexport type CommandsAttachment = Schema.Schema.Type<typeof CommandsAttachmentSchema>;\nexport const UsageObservationSchema = Schema.Union(Schema.Struct({\n usageObservationId: UsageObservationIdSchema,\n provider: SafeIdentifierSchema,\n refs: UsageReferencesSchema,\n kind: Schema.Literal(\"token-bucket\"),\n bucket: Schema.Literal(\"input\", \"output\", \"cache-read\", \"cache-write\", \"reasoning\", \"other\"),\n tokens: NonNegativeSafeIntegerSchema,\n}), Schema.Struct({\n usageObservationId: UsageObservationIdSchema,\n provider: SafeIdentifierSchema,\n refs: UsageReferencesSchema,\n kind: Schema.Literal(\"request\"),\n requestKind: Schema.Literal(\"model\", \"tool\"),\n}), Schema.Struct({\n usageObservationId: UsageObservationIdSchema,\n provider: SafeIdentifierSchema,\n refs: UsageReferencesSchema,\n kind: Schema.Literal(\"provider-cost\"),\n amount: Schema.String.pipe(Schema.filter((value) => /^(?:0|[1-9][0-9]*)(?:\\.[0-9]*[1-9])?$/u.test(value) &&\n new TextEncoder().encode(value).byteLength <= 64, {\n identifier: \"ObservabilityCanonicalDecimal\",\n description: \"a non-negative canonical decimal string\",\n })),\n currency: CurrencyCodeSchema,\n}));\nconst UsageAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n observations: Schema.Array(UsageObservationSchema),\n});\nexport type UsageObservation = Schema.Schema.Type<typeof UsageObservationSchema>;\nfunction isCanonicalUsageAttachment(value: Schema.Schema.Type<typeof UsageAttachmentStructuralSchema>): boolean {\n return (value.observations.length <= MAX_USAGE_OBSERVATIONS &&\n payloadFits(value, MAX_USAGE_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"usage-observation\"]) &&\n isStrictlyOrderedById(value.observations, (observation) => observation.usageObservationId));\n}\nexport const UsageAttachmentSchema = UsageAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalUsageAttachment, {\n identifier: \"ObservabilityUsageAttachment\",\n description: \"a canonical, bounded usage attachment\",\n}));\nexport type UsageAttachment = Schema.Schema.Type<typeof UsageAttachmentSchema>;\nexport const AttemptTimingPhaseSchema = Schema.Literal(\"attempt.setup\", \"sandbox.prepare\", \"agent.ensure\", \"eval.run\", \"agent.send\", \"sandbox.command\", \"assertion.evaluate\", \"verdict.fold\", \"attempt.teardown\");\nexport const RunTimingPhaseSchema = Schema.Literal(\"run.setup\", \"run.discovery\", \"run.plan\", \"run.dispatch\", \"run.teardown\");\nconst TimingOutcomeSchema = Schema.Literal(\"completed\", \"failed\", \"cancelled\", \"interrupted\", \"unknown\");\nexport const AttemptTimingIntervalSchema = Schema.Struct({\n intervalId: IntervalIdSchema,\n phase: AttemptTimingPhaseSchema,\n label: StableLabelSchema,\n startOffsetMs: NonNegativeSafeIntegerSchema,\n durationMs: NonNegativeSafeIntegerSchema,\n parentIntervalId: Schema.NullOr(IntervalIdSchema),\n outcome: TimingOutcomeSchema,\n refs: AttemptTimingReferencesSchema,\n});\nexport const RunTimingIntervalSchema = Schema.Struct({\n intervalId: IntervalIdSchema,\n phase: RunTimingPhaseSchema,\n label: StableLabelSchema,\n startOffsetMs: NonNegativeSafeIntegerSchema,\n durationMs: NonNegativeSafeIntegerSchema,\n parentIntervalId: Schema.NullOr(IntervalIdSchema),\n outcome: TimingOutcomeSchema,\n refs: RunTimingReferencesSchema,\n});\nexport type AttemptTimingInterval = Schema.Schema.Type<typeof AttemptTimingIntervalSchema>;\nexport type RunTimingInterval = Schema.Schema.Type<typeof RunTimingIntervalSchema>;\nfunction timingEnd(start: number, duration: number): number | undefined {\n const end = start + duration;\n return Number.isSafeInteger(end) ? end : undefined;\n}\nfunction isCanonicalTimingTree<Interval extends {\n readonly intervalId: string;\n readonly startOffsetMs: number;\n readonly durationMs: number;\n readonly parentIntervalId: string | null;\n}>(intervals: readonly Interval[]): boolean {\n if (!isStrictlyOrderedById(intervals, (interval) => interval.intervalId))\n return false;\n const byId = new Map(intervals.map((interval) => [interval.intervalId, interval] as const));\n for (const interval of intervals) {\n const end = timingEnd(interval.startOffsetMs, interval.durationMs);\n if (end === undefined)\n return false;\n const ancestors = new Set<string>([interval.intervalId]);\n let child: Interval = interval;\n while (child.parentIntervalId !== null) {\n const parent = byId.get(child.parentIntervalId);\n if (parent === undefined || ancestors.has(parent.intervalId)) {\n return false;\n }\n const parentEnd = timingEnd(parent.startOffsetMs, parent.durationMs);\n const childEnd = timingEnd(child.startOffsetMs, child.durationMs);\n if (parentEnd === undefined ||\n childEnd === undefined ||\n parent.startOffsetMs > child.startOffsetMs ||\n childEnd > parentEnd) {\n return false;\n }\n ancestors.add(parent.intervalId);\n child = parent;\n }\n }\n return true;\n}\nconst AttemptTimingAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n intervals: Schema.Array(AttemptTimingIntervalSchema),\n});\nfunction isCanonicalAttemptTimingAttachment(value: Schema.Schema.Type<typeof AttemptTimingAttachmentStructuralSchema>): boolean {\n return (value.intervals.length <= MAX_TIMING_INTERVALS &&\n payloadFits(value, MAX_TIMING_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"timing-interval\"]) &&\n isCanonicalTimingTree(value.intervals) &&\n (!value.intervals.some((interval) => interval.outcome === \"unknown\") ||\n value.collection.state === \"partial\"));\n}\nexport const AttemptTimingAttachmentSchema = AttemptTimingAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalAttemptTimingAttachment, {\n identifier: \"ObservabilityAttemptTimingAttachment\",\n description: \"a canonical, bounded attempt timing tree\",\n}));\nexport type AttemptTimingAttachment = Schema.Schema.Type<typeof AttemptTimingAttachmentSchema>;\nconst RunTimingAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n intervals: Schema.Array(RunTimingIntervalSchema),\n});\nfunction isCanonicalRunTimingAttachment(value: Schema.Schema.Type<typeof RunTimingAttachmentStructuralSchema>): boolean {\n return (value.intervals.length <= MAX_TIMING_INTERVALS &&\n payloadFits(value, MAX_TIMING_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"timing-interval\"]) &&\n isCanonicalTimingTree(value.intervals) &&\n (!value.intervals.some((interval) => interval.outcome === \"unknown\") ||\n value.collection.state === \"partial\"));\n}\nexport const RunTimingAttachmentSchema = RunTimingAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalRunTimingAttachment, {\n identifier: \"ObservabilityRunTimingAttachment\",\n description: \"a canonical, bounded run timing tree\",\n}));\nexport type RunTimingAttachment = Schema.Schema.Type<typeof RunTimingAttachmentSchema>;\nexport const AttemptDiagnosticPhaseSchema = Schema.Literal(\"attempt.setup\", \"sandbox.prepare\", \"agent.ensure\", \"eval.run\", \"agent.send\", \"sandbox.command\", \"assertion.evaluate\", \"verdict.fold\", \"attempt.teardown\", \"collection\");\nexport const RunDiagnosticPhaseSchema = Schema.Literal(\"run.setup\", \"run.discovery\", \"run.plan\", \"run.dispatch\", \"run.teardown\", \"collection\");\nexport const SourcePositionSchema = Schema.Struct({\n line: PositiveSafeIntegerSchema,\n column: PositiveSafeIntegerSchema,\n});\nexport const SourceFrameSchema = Schema.Struct({\n sourceItemId: SourceFileItemIdSchema,\n sha256: Sha256DigestSchema,\n start: SourcePositionSchema,\n end: SourcePositionSchema,\n});\nconst SafeDiagnosticCauseSchema = Schema.Struct({\n code: SafeIdentifierSchema,\n summary: boundedSafeTextSchema(MAX_DIAGNOSTIC_CAUSE_SUMMARY_BYTES),\n});\nconst DiagnosticRedactionSchema = Schema.Union(Schema.Struct({ state: Schema.Literal(\"none\") }), Schema.Struct({\n state: Schema.Literal(\"applied\"),\n summaryReplacements: NonNegativeSafeIntegerSchema,\n causeReplacements: NonNegativeSafeIntegerSchema,\n contextReplacements: NonNegativeSafeIntegerSchema,\n}));\nconst DiagnosticLimitContextSchema = Schema.Struct({\n kind: Schema.Literal(\"limit\"),\n limit: Schema.Literal(\"conversation-items\", \"commands\", \"usage-observations\", \"timing-intervals\", \"diagnostics\", \"command-stream-bytes\"),\n maximum: NonNegativeSafeIntegerSchema,\n observedAtLeast: NonNegativeSafeIntegerSchema,\n});\nconst DiagnosticProviderContextSchema = Schema.Struct({\n kind: Schema.Literal(\"provider\"),\n provider: SafeIdentifierSchema,\n});\n/**\n * The entity context is a single target rather than an array. Schema's generic\n * ref-array constructors cannot express the exclusion while preserving the\n * direct triple, so these declarations keep the exact input check local.\n */\nconst AttemptDiagnosticEntityContextSchema = Schema.Struct({\n kind: Schema.Literal(\"entity\"),\n target: AttemptReferenceTargetSchema.pipe(Schema.filter((target): target is AttemptDiagnosticsReferences => target.kind !== \"diagnostic\")),\n});\nconst RunDiagnosticEntityContextSchema = Schema.Struct({\n kind: Schema.Literal(\"entity\"),\n target: RunReferenceTargetSchema.pipe(Schema.filter((target): target is RunDiagnosticsReferences => target.kind !== \"diagnostic\")),\n});\nconst AttemptDiagnosticContextExactSchema = Schema.Union(AttemptDiagnosticEntityContextSchema, DiagnosticLimitContextSchema, DiagnosticProviderContextSchema);\nconst RunDiagnosticContextExactSchema = Schema.Union(RunDiagnosticEntityContextSchema, DiagnosticLimitContextSchema, DiagnosticProviderContextSchema);\nexport const AttemptDiagnosticSchema = Schema.Struct({\n diagnosticId: DiagnosticIdSchema,\n kind: Schema.Literal(\"advisory\", \"execution-error\"),\n code: SafeIdentifierSchema,\n phase: AttemptDiagnosticPhaseSchema,\n summary: boundedSafeTextSchema(MAX_DIAGNOSTIC_SUMMARY_BYTES),\n causes: Schema.Array(SafeDiagnosticCauseSchema),\n context: Schema.Array(AttemptDiagnosticContextExactSchema),\n redaction: DiagnosticRedactionSchema,\n sourceFrame: Schema.NullOr(SourceFrameSchema),\n refs: AttemptDiagnosticsReferencesSchema,\n});\nexport const RunDiagnosticSchema = Schema.Struct({\n diagnosticId: DiagnosticIdSchema,\n kind: Schema.Literal(\"advisory\", \"execution-error\"),\n code: SafeIdentifierSchema,\n phase: RunDiagnosticPhaseSchema,\n summary: boundedSafeTextSchema(MAX_DIAGNOSTIC_SUMMARY_BYTES),\n causes: Schema.Array(SafeDiagnosticCauseSchema),\n context: Schema.Array(RunDiagnosticContextExactSchema),\n redaction: DiagnosticRedactionSchema,\n sourceFrame: Schema.NullOr(SourceFrameSchema),\n refs: RunDiagnosticsReferencesSchema,\n});\nexport type SourcePosition = Schema.Schema.Type<typeof SourcePositionSchema>;\nexport type SourceFrame = Schema.Schema.Type<typeof SourceFrameSchema>;\nexport type SafeDiagnosticCause = Schema.Schema.Type<typeof SafeDiagnosticCauseSchema>;\nexport type DiagnosticRedaction = Schema.Schema.Type<typeof DiagnosticRedactionSchema>;\nexport type AttemptDiagnostic = Schema.Schema.Type<typeof AttemptDiagnosticSchema>;\nexport type RunDiagnostic = Schema.Schema.Type<typeof RunDiagnosticSchema>;\nfunction sourcePositionBeforeOrEqual(left: SourcePosition, right: SourcePosition): boolean {\n return left.line < right.line || (left.line === right.line && left.column <= right.column);\n}\nfunction hasValidDiagnosticShape(diagnostic: {\n readonly causes: readonly SafeDiagnosticCause[];\n readonly context: readonly unknown[];\n readonly redaction: DiagnosticRedaction;\n readonly sourceFrame: SourceFrame | null;\n}): boolean {\n if (diagnostic.causes.length > MAX_DIAGNOSTIC_CAUSES ||\n diagnostic.context.length > MAX_DIAGNOSTIC_CONTEXT_ITEMS) {\n return false;\n }\n if (diagnostic.redaction.state === \"applied\" &&\n diagnostic.redaction.summaryReplacements === 0 &&\n diagnostic.redaction.causeReplacements === 0 &&\n diagnostic.redaction.contextReplacements === 0) {\n return false;\n }\n return (diagnostic.sourceFrame === null ||\n sourcePositionBeforeOrEqual(diagnostic.sourceFrame.start, diagnostic.sourceFrame.end));\n}\nconst AttemptDiagnosticsAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n diagnostics: Schema.Array(AttemptDiagnosticSchema),\n});\nfunction isCanonicalAttemptDiagnosticsAttachment(value: Schema.Schema.Type<typeof AttemptDiagnosticsAttachmentStructuralSchema>): boolean {\n return (value.diagnostics.length <= MAX_DIAGNOSTICS &&\n payloadFits(value, MAX_DIAGNOSTICS_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"diagnostic\"]) &&\n isStrictlyOrderedById(value.diagnostics, (diagnostic) => diagnostic.diagnosticId) &&\n value.diagnostics.every(hasValidDiagnosticShape));\n}\nexport const AttemptDiagnosticsAttachmentSchema = AttemptDiagnosticsAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalAttemptDiagnosticsAttachment, {\n identifier: \"ObservabilityAttemptDiagnosticsAttachment\",\n description: \"a canonical, bounded attempt diagnostics attachment\",\n}));\nexport type AttemptDiagnosticsAttachment = Schema.Schema.Type<typeof AttemptDiagnosticsAttachmentSchema>;\nconst RunDiagnosticsAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n diagnostics: Schema.Array(RunDiagnosticSchema),\n});\nfunction isCanonicalRunDiagnosticsAttachment(value: Schema.Schema.Type<typeof RunDiagnosticsAttachmentStructuralSchema>): boolean {\n return (value.diagnostics.length <= MAX_DIAGNOSTICS &&\n payloadFits(value, MAX_DIAGNOSTICS_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"diagnostic\"]) &&\n isStrictlyOrderedById(value.diagnostics, (diagnostic) => diagnostic.diagnosticId) &&\n value.diagnostics.every(hasValidDiagnosticShape));\n}\nexport const RunDiagnosticsAttachmentSchema = RunDiagnosticsAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalRunDiagnosticsAttachment, {\n identifier: \"ObservabilityRunDiagnosticsAttachment\",\n description: \"a canonical, bounded run diagnostics attachment\",\n}));\nexport type RunDiagnosticsAttachment = Schema.Schema.Type<typeof RunDiagnosticsAttachmentSchema>;\nconst attemptConversationFamilySchemaId = \"niceeval.observability\" as const;\nconst attemptCommandsFamilySchemaId = \"niceeval.observability\" as const;\nconst attemptUsageFamilySchemaId = \"niceeval.observability\" as const;\nconst attemptTimingFamilySchemaId = \"niceeval.observability\" as const;\nconst attemptDiagnosticsFamilySchemaId = \"niceeval.observability\" as const;\nconst runTimingFamilySchemaId = \"niceeval.observability\" as const;\nconst runDiagnosticsFamilySchemaId = \"niceeval.observability\" as const;\n/** Semantic cross-family facts intentionally remain independent of writes. */\nexport function makeAttemptConversationAttachmentFamilyValidation(payload: ConversationAttachment): ObservabilityFamilyValidation<\"attempt\"> {\n const entities: AttemptReferenceTarget[] = [\n ...payload.turns.map((turn) => Object.freeze({\n family: attemptConversationFamilySchemaId,\n kind: \"turn\" as const,\n id: turn.turnId,\n })),\n ...payload.items.map((item) => Object.freeze({\n family: attemptConversationFamilySchemaId,\n kind: \"item\" as const,\n id: item.itemId,\n })),\n ...payload.items.flatMap((item) => item.kind === \"tool-call\"\n ? [\n Object.freeze({\n family: attemptConversationFamilySchemaId,\n kind: \"call\" as const,\n id: item.callId,\n }),\n ]\n : []),\n ];\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptConversationFamilySchemaId,\n entities,\n references: [\n ...payload.turns.map((turn) => Object.freeze({ sourceId: turn.turnId, refs: turn.refs })),\n ...payload.items.map((item) => Object.freeze({ sourceId: item.itemId, refs: item.refs })),\n ],\n });\n}\nexport function makeAttemptCommandsAttachmentFamilyValidation(input: {\n readonly commands: readonly {\n readonly commandId: CommandId;\n readonly refs: readonly CommandsReferences[];\n }[];\n}): ObservabilityFamilyValidation<\"attempt\"> {\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptCommandsFamilySchemaId,\n entities: input.commands.map((command) => Object.freeze({\n family: attemptCommandsFamilySchemaId,\n kind: \"command\" as const,\n id: command.commandId,\n })),\n references: input.commands.map((command) => Object.freeze({ sourceId: command.commandId, refs: command.refs })),\n });\n}\nexport function makeAttemptUsageAttachmentFamilyValidation(payload: UsageAttachment): ObservabilityFamilyValidation<\"attempt\"> {\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptUsageFamilySchemaId,\n entities: payload.observations.map((observation) => Object.freeze({\n family: attemptUsageFamilySchemaId,\n kind: \"usage-observation\" as const,\n id: observation.usageObservationId,\n })),\n references: payload.observations.map((observation) => Object.freeze({\n sourceId: observation.usageObservationId,\n refs: observation.refs,\n })),\n });\n}\nexport function makeAttemptTimingAttachmentFamilyValidation(payload: AttemptTimingAttachment): ObservabilityFamilyValidation<\"attempt\"> {\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptTimingFamilySchemaId,\n entities: payload.intervals.map((interval) => Object.freeze({\n family: attemptTimingFamilySchemaId,\n kind: \"interval\" as const,\n id: interval.intervalId,\n })),\n references: payload.intervals.map((interval) => Object.freeze({ sourceId: interval.intervalId, refs: interval.refs })),\n });\n}\nexport function makeAttemptDiagnosticsAttachmentFamilyValidation(payload: AttemptDiagnosticsAttachment): ObservabilityFamilyValidation<\"attempt\"> {\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptDiagnosticsFamilySchemaId,\n entities: payload.diagnostics.map((diagnostic) => Object.freeze({\n family: attemptDiagnosticsFamilySchemaId,\n kind: \"diagnostic\" as const,\n id: diagnostic.diagnosticId,\n })),\n references: payload.diagnostics.map((diagnostic) => Object.freeze({ sourceId: diagnostic.diagnosticId, refs: diagnostic.refs })),\n });\n}\nexport function makeRunTimingAttachmentFamilyValidation(payload: RunTimingAttachment): ObservabilityFamilyValidation<\"run\"> {\n return makeRunObservabilityFamilyValidation({\n schemaId: runTimingFamilySchemaId,\n entities: payload.intervals.map((interval) => Object.freeze({\n family: runTimingFamilySchemaId,\n kind: \"interval\" as const,\n id: interval.intervalId,\n })),\n references: payload.intervals.map((interval) => Object.freeze({ sourceId: interval.intervalId, refs: interval.refs })),\n });\n}\nexport function makeRunDiagnosticsAttachmentFamilyValidation(payload: RunDiagnosticsAttachment): ObservabilityFamilyValidation<\"run\"> {\n return makeRunObservabilityFamilyValidation({\n schemaId: runDiagnosticsFamilySchemaId,\n entities: payload.diagnostics.map((diagnostic) => Object.freeze({\n family: runDiagnosticsFamilySchemaId,\n kind: \"diagnostic\" as const,\n id: diagnostic.diagnosticId,\n })),\n references: payload.diagnostics.map((diagnostic) => Object.freeze({ sourceId: diagnostic.diagnosticId, refs: diagnostic.refs })),\n });\n}\n"]}
1
+ {"version":3,"file":"families.js","sourceRoot":"","sources":["families.ts"],"names":[],"mappings":"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","sourcesContent":["import { Schema } from \"effect\";\nimport { isCanonicalTurnLabel } from \"../../shared/turn-label.ts\";\nimport type { RecordBlobRef } from \"../../record/attachment/index.ts\";\nimport { Sha256DigestSchema, SourceFileItemIdSchema, } from \"../../sources/codec.ts\";\nimport { AttemptDiagnosticsReferencesSchema, AttemptReferenceTargetSchema, AttemptTimingReferencesSchema, CollectionSchema, CommandsReferencesSchema, ConversationReferencesSchema, CurrencyCodeSchema, NonNegativeSafeIntegerSchema, PositiveSafeIntegerSchema, RunDiagnosticsReferencesSchema, RunReferenceTargetSchema, RunTimingReferencesSchema, SafeIdentifierSchema, SafeTextSchema, SourceNativeToolNameSchema, StableLabelSchema, UsageObservationIdSchema, UsageReferencesSchema, boundedSafeTextSchema, CallIdSchema, CommandIdSchema, DiagnosticIdSchema, IntervalIdSchema, ItemIdSchema, TurnIdSchema, } from \"./codec.ts\";\nimport { MAX_COMMAND_ARGUMENT_BYTES, MAX_COMMAND_ARGUMENTS, MAX_COMMAND_EXECUTABLE_BYTES, MAX_COMMAND_INLINE_STREAM_BYTES, MAX_COMMAND_PROJECT_RELATIVE_PATH_BYTES, MAX_COMMAND_SHELL_BYTES, MAX_COMMAND_STREAM_BYTES, MAX_COMMANDS_ATTACHMENT_BYTES, MAX_COMMANDS_CLOSURE_BYTES, MAX_COMMANDS, MAX_CONVERSATION_ATTACHMENT_BYTES, MAX_CONVERSATION_ITEMS, MAX_CONVERSATION_TEXT_BYTES, MAX_CONVERSATION_TURNS, MAX_DIAGNOSTIC_CAUSES, MAX_DIAGNOSTIC_CAUSE_SUMMARY_BYTES, MAX_DIAGNOSTIC_CONTEXT_ITEMS, MAX_DIAGNOSTIC_SUMMARY_BYTES, MAX_DIAGNOSTICS_ATTACHMENT_BYTES, MAX_DIAGNOSTICS, MAX_TIMING_ATTACHMENT_BYTES, MAX_TIMING_INTERVALS, MAX_USAGE_ATTACHMENT_BYTES, MAX_USAGE_OBSERVATIONS, } from \"./limits.ts\";\nimport { ATTEMPT_OBSERVABILITY_FAMILY_SCHEMA_IDS, RUN_OBSERVABILITY_FAMILY_SCHEMA_IDS, compareObservabilityText, isSafeText, isStableLabel, jsonUtf8ByteLength, limitationTarget, type AttemptDiagnosticsReferences, type AttemptReferenceTarget, type Collection, type CommandId, type CommandsReferences, type RunDiagnosticsReferences, } from \"./model.ts\";\nimport { makeAttemptObservabilityFamilyValidation, makeRunObservabilityFamilyValidation, type ObservabilityFamilyValidation, } from \"./validation.ts\";\nfunction freezeArray<Value>(values: readonly Value[]): readonly Value[] {\n return Object.freeze([...values]);\n}\nfunction payloadFits(value: object, maximumBytes: number): boolean {\n const length = jsonUtf8ByteLength(value);\n return length !== undefined && length <= maximumBytes;\n}\nfunction isStrictlyOrderedById<Item>(values: readonly Item[], idOf: (value: Item) => string): boolean {\n let previous: string | undefined;\n const seen = new Set<string>();\n for (const value of values) {\n const id = idOf(value);\n if (seen.has(id) || (previous !== undefined && compareObservabilityText(previous, id) >= 0)) {\n return false;\n }\n seen.add(id);\n previous = id;\n }\n return true;\n}\nfunction isAllowedCollection(collection: Collection, targets: readonly string[]): boolean {\n return collection.limitations.every((limitation) => targets.some((target) => limitationTarget(limitation) === target));\n}\nfunction hasExactStreamTruncation(collection: Collection, commandId: string, stream: \"stdout\" | \"stderr\", retainedBytes: number, totalSafeUtf8Bytes: number): boolean {\n const omittedBytes = totalSafeUtf8Bytes - retainedBytes;\n return collection.limitations.some((limitation) => limitation.code === \"stream-truncated\" &&\n limitation.commandId === commandId &&\n limitation.stream === stream &&\n limitation.retainedBytes === retainedBytes &&\n limitation.omittedBytes === omittedBytes);\n}\nfunction isProjectRelativePath(value: string): boolean {\n return (isSafeText(value) &&\n value.length > 0 &&\n !value.startsWith(\"/\") &&\n value.split(\"/\").every((segment) => segment.length > 0 && segment !== \".\" && segment !== \"..\") &&\n new TextEncoder().encode(value).byteLength <= MAX_COMMAND_PROJECT_RELATIVE_PATH_BYTES);\n}\nconst ProjectRelativePathSchema = Schema.String.pipe(Schema.filter(isProjectRelativePath, {\n identifier: \"ObservabilityProjectRelativePath\",\n description: \"a portable project-relative path without dot segments\",\n}));\nconst ExitCodeSchema = Schema.JsonNumber.pipe(Schema.filter((value) => Number.isSafeInteger(value) &&\n value >= -2147483648 &&\n value <= 2147483647, {\n identifier: \"ObservabilityCommandExitCode\",\n description: \"a signed 32-bit command exit code\",\n}));\n/** Record's opaque ref position is the only non-JSON value in a durable command payload. */\nconst RecordBlobRefPositionSchema: Schema.Schema<RecordBlobRef, RecordBlobRef, never> = Schema.declare<RecordBlobRef>((value): value is RecordBlobRef => typeof value === \"object\" && value !== null);\nconst ConversationItemBaseFields = {\n itemId: ItemIdSchema,\n turnId: TurnIdSchema,\n sequence: PositiveSafeIntegerSchema,\n refs: ConversationReferencesSchema,\n} as const;\nexport const ConversationTurnSchema = Schema.Struct({\n turnId: TurnIdSchema,\n sequence: PositiveSafeIntegerSchema,\n outcome: Schema.Literal(\"completed\", \"failed\", \"cancelled\", \"interrupted\"),\n refs: ConversationReferencesSchema,\n});\nexport const ConversationItemSchema = Schema.Union(Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"message\"),\n role: Schema.Literal(\"user\", \"assistant\"),\n text: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"tool-call\"),\n callId: CallIdSchema,\n tool: SourceNativeToolNameSchema,\n inputSummary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"tool-result\"),\n callId: CallIdSchema,\n outcome: Schema.Literal(\"completed\", \"rejected\", \"failed\", \"cancelled\"),\n outputSummary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"thinking-summary\"),\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"subagent\"),\n state: Schema.Literal(\"started\", \"completed\", \"failed\"),\n label: SafeIdentifierSchema,\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"input-request\"),\n state: Schema.Literal(\"requested\", \"answered\", \"cancelled\"),\n promptSummary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n responseSummary: Schema.NullOr(boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES)),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"skill-load\"),\n skill: SafeIdentifierSchema,\n outcome: Schema.Literal(\"loaded\", \"failed\"),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"context-injection\"),\n source: Schema.Literal(\"system\", \"memory\", \"skill\", \"user\"),\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"compaction\"),\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n compactedItemCount: NonNegativeSafeIntegerSchema,\n}), Schema.Struct({\n ...ConversationItemBaseFields,\n kind: Schema.Literal(\"conversation-error\"),\n code: SafeIdentifierSchema,\n summary: boundedSafeTextSchema(MAX_CONVERSATION_TEXT_BYTES),\n}));\nexport type ConversationTurn = Schema.Schema.Type<typeof ConversationTurnSchema>;\nexport type ConversationItem = Schema.Schema.Type<typeof ConversationItemSchema>;\nfunction conversationTextLengths(item: ConversationItem): readonly number[] {\n switch (item.kind) {\n case \"message\":\n return freezeArray([new TextEncoder().encode(item.text).byteLength]);\n case \"tool-call\":\n return freezeArray([new TextEncoder().encode(item.inputSummary).byteLength]);\n case \"tool-result\":\n return freezeArray([new TextEncoder().encode(item.outputSummary).byteLength]);\n case \"thinking-summary\":\n case \"subagent\":\n case \"context-injection\":\n case \"compaction\":\n case \"conversation-error\":\n return freezeArray([new TextEncoder().encode(item.summary).byteLength]);\n case \"input-request\":\n return freezeArray([\n new TextEncoder().encode(item.promptSummary).byteLength,\n ...(item.responseSummary === null\n ? []\n : [new TextEncoder().encode(item.responseSummary).byteLength]),\n ]);\n case \"skill-load\":\n return freezeArray([]);\n }\n}\nfunction isCanonicalConversationAttachment(value: Schema.Schema.Type<typeof ConversationAttachmentStructuralSchema>): boolean {\n if (value.turns.length > MAX_CONVERSATION_TURNS ||\n value.items.length > MAX_CONVERSATION_ITEMS ||\n !payloadFits(value, MAX_CONVERSATION_ATTACHMENT_BYTES) ||\n !isAllowedCollection(value.collection, [\"conversation-item\", \"conversation-text\"])) {\n return false;\n }\n if (!isStrictlyOrderedById(value.turns, (turn) => turn.turnId))\n return false;\n const turnIds = new Set<string>();\n const turnSequences = new Set<number>();\n for (const turn of value.turns) {\n turnIds.add(turn.turnId);\n if (turnSequences.has(turn.sequence))\n return false;\n turnSequences.add(turn.sequence);\n }\n const itemIds = new Set<string>();\n const itemSequences = new Set<number>();\n const callIds = new Set<string>();\n const resultCallIds = new Set<string>();\n let previous: ConversationItem | undefined;\n for (const item of value.items) {\n if (itemIds.has(item.itemId) ||\n itemSequences.has(item.sequence) ||\n !turnIds.has(item.turnId)) {\n return false;\n }\n if (previous !== undefined &&\n (previous.sequence > item.sequence ||\n (previous.sequence === item.sequence &&\n compareObservabilityText(previous.itemId, item.itemId) >= 0))) {\n return false;\n }\n itemIds.add(item.itemId);\n itemSequences.add(item.sequence);\n if (item.kind === \"tool-call\") {\n if (callIds.has(item.callId))\n return false;\n callIds.add(item.callId);\n }\n if (item.kind === \"tool-result\") {\n if (!callIds.has(item.callId) || resultCallIds.has(item.callId))\n return false;\n resultCallIds.add(item.callId);\n }\n previous = item;\n }\n if (value.collection.state === \"complete\" &&\n [...callIds].some((callId) => !resultCallIds.has(callId))) {\n return false;\n }\n return value.collection.limitations.every((limitation) => {\n if (limitation.code !== \"text-truncated\" || limitation.target !== \"conversation-text\") {\n return true;\n }\n const item = value.items.find((candidate) => candidate.itemId === limitation.itemId);\n return item !== undefined && conversationTextLengths(item).some((length) => length === limitation.retainedBytes);\n });\n}\nconst ConversationAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n turns: Schema.Array(ConversationTurnSchema),\n items: Schema.Array(ConversationItemSchema),\n});\nexport const ConversationAttachmentSchema = ConversationAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalConversationAttachment, {\n identifier: \"ObservabilityConversationAttachment\",\n description: \"a canonical, bounded conversation attachment\",\n}));\nexport type ConversationAttachment = Schema.Schema.Type<typeof ConversationAttachmentSchema>;\nconst CommandInvocationSchema = Schema.Union(Schema.Struct({\n kind: Schema.Literal(\"argv\"),\n executable: boundedSafeTextSchema(MAX_COMMAND_EXECUTABLE_BYTES),\n arguments: Schema.Array(boundedSafeTextSchema(MAX_COMMAND_ARGUMENT_BYTES)).pipe(Schema.filter((arguments_) => arguments_.length <= MAX_COMMAND_ARGUMENTS, {\n identifier: \"ObservabilityCommandArguments\",\n description: \"at most 64 safe command arguments\",\n })),\n}), Schema.Struct({\n kind: Schema.Literal(\"shell\"),\n command: boundedSafeTextSchema(MAX_COMMAND_SHELL_BYTES),\n}));\nconst CommandWorkingDirectorySchema = Schema.Union(Schema.Struct({ kind: Schema.Literal(\"sandbox-default\") }), Schema.Struct({\n kind: Schema.Literal(\"project-relative\"),\n path: ProjectRelativePathSchema,\n}), Schema.Struct({ kind: Schema.Literal(\"redacted\") }));\nexport const CommandManifestSchema = Schema.Struct({\n phase: Schema.Literal(\"attempt.setup\", \"sandbox.prepare\", \"agent.ensure\", \"eval.run\", \"sandbox.command\", \"attempt.teardown\"),\n invocation: CommandInvocationSchema,\n workingDirectory: CommandWorkingDirectorySchema,\n});\nexport const CommandStreamSchema = Schema.Struct({\n storage: Schema.Union(Schema.Struct({\n kind: Schema.Literal(\"inline\"),\n text: SafeTextSchema,\n }), Schema.Struct({\n kind: Schema.Literal(\"blob\"),\n ref: RecordBlobRefPositionSchema,\n })),\n retainedBytes: NonNegativeSafeIntegerSchema,\n totalSafeUtf8Bytes: NonNegativeSafeIntegerSchema,\n});\nexport const CommandOutcomeSchema = Schema.Union(Schema.Struct({\n kind: Schema.Literal(\"exited\"),\n exitCode: ExitCodeSchema,\n}), Schema.Struct({\n kind: Schema.Literal(\"terminated\"),\n reason: Schema.Literal(\"timeout\", \"cancelled\", \"transport-lost\"),\n}), Schema.Struct({\n kind: Schema.Literal(\"not-started\"),\n reason: Schema.Literal(\"spawn-failed\", \"cancelled-before-start\"),\n}));\nexport const CommandResultSchema = Schema.Struct({\n outcome: CommandOutcomeSchema,\n stdout: CommandStreamSchema,\n stderr: CommandStreamSchema,\n});\nexport const CommandObservationSchema = Schema.Struct({\n commandId: CommandIdSchema,\n manifest: CommandManifestSchema,\n result: CommandResultSchema,\n refs: CommandsReferencesSchema,\n});\nconst CommandsAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n commands: Schema.Array(CommandObservationSchema),\n});\nexport type CommandManifest = Schema.Schema.Type<typeof CommandManifestSchema>;\nexport type CommandStream = Schema.Schema.Type<typeof CommandStreamSchema>;\nexport type CommandResult = Schema.Schema.Type<typeof CommandResultSchema>;\nexport type CommandObservation = Schema.Schema.Type<typeof CommandObservationSchema>;\nfunction isCanonicalCommandStream(stream: CommandStream, collection: Collection, commandId: string, streamName: \"stdout\" | \"stderr\"): boolean {\n if (stream.retainedBytes > MAX_COMMAND_STREAM_BYTES ||\n stream.totalSafeUtf8Bytes < stream.retainedBytes) {\n return false;\n }\n if (stream.storage.kind === \"inline\") {\n const bytes = new TextEncoder().encode(stream.storage.text).byteLength;\n if (bytes !== stream.retainedBytes ||\n stream.retainedBytes > MAX_COMMAND_INLINE_STREAM_BYTES) {\n return false;\n }\n }\n if (stream.totalSafeUtf8Bytes === stream.retainedBytes) {\n return stream.storage.kind === \"inline\"\n ? stream.retainedBytes <= MAX_COMMAND_INLINE_STREAM_BYTES\n : stream.retainedBytes > MAX_COMMAND_INLINE_STREAM_BYTES;\n }\n return hasExactStreamTruncation(collection, commandId, streamName, stream.retainedBytes, stream.totalSafeUtf8Bytes);\n}\nfunction commandManifestTextLengths(manifest: CommandManifest): readonly number[] {\n const encoder = new TextEncoder();\n const invocation = manifest.invocation.kind === \"argv\"\n ? [manifest.invocation.executable, ...manifest.invocation.arguments]\n : [manifest.invocation.command];\n const directory = manifest.workingDirectory.kind === \"project-relative\"\n ? [manifest.workingDirectory.path]\n : [];\n return freezeArray([...invocation, ...directory].map((value) => encoder.encode(value).byteLength));\n}\nfunction isCanonicalCommandsAttachment(value: Schema.Schema.Type<typeof CommandsAttachmentStructuralSchema>): boolean {\n if (value.commands.length > MAX_COMMANDS ||\n !payloadFits(value, MAX_COMMANDS_ATTACHMENT_BYTES) ||\n !isAllowedCollection(value.collection, [\n \"command-manifest\",\n \"command-stdout\",\n \"command-stderr\",\n ]) ||\n !isStrictlyOrderedById(value.commands, (command) => command.commandId)) {\n return false;\n }\n let closureBytes = 0;\n for (const command of value.commands) {\n for (const [name, stream] of [\n [\"stdout\", command.result.stdout],\n [\"stderr\", command.result.stderr],\n ] as const) {\n if (!isCanonicalCommandStream(stream, value.collection, command.commandId, name)) {\n return false;\n }\n if (stream.storage.kind === \"blob\") {\n closureBytes += stream.retainedBytes;\n }\n }\n }\n if (closureBytes > MAX_COMMANDS_CLOSURE_BYTES)\n return false;\n return value.collection.limitations.every((limitation) => {\n if (limitation.code !== \"text-truncated\" || limitation.target !== \"command-manifest\") {\n return true;\n }\n const command = value.commands.find((candidate) => candidate.commandId === limitation.commandId);\n return command !== undefined && commandManifestTextLengths(command.manifest).some((length) => length === limitation.retainedBytes);\n });\n}\nexport const CommandsAttachmentSchema = CommandsAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalCommandsAttachment, {\n identifier: \"ObservabilityCommandsAttachment\",\n description: \"a canonical, bounded commands attachment\",\n}));\nexport type CommandsAttachment = Schema.Schema.Type<typeof CommandsAttachmentSchema>;\nexport const UsageObservationSchema = Schema.Union(Schema.Struct({\n usageObservationId: UsageObservationIdSchema,\n provider: SafeIdentifierSchema,\n refs: UsageReferencesSchema,\n kind: Schema.Literal(\"token-bucket\"),\n bucket: Schema.Literal(\"input\", \"output\", \"cache-read\", \"cache-write\", \"reasoning\", \"other\"),\n tokens: NonNegativeSafeIntegerSchema,\n}), Schema.Struct({\n usageObservationId: UsageObservationIdSchema,\n provider: SafeIdentifierSchema,\n refs: UsageReferencesSchema,\n kind: Schema.Literal(\"request\"),\n requestKind: Schema.Literal(\"model\", \"tool\"),\n}), Schema.Struct({\n usageObservationId: UsageObservationIdSchema,\n provider: SafeIdentifierSchema,\n refs: UsageReferencesSchema,\n kind: Schema.Literal(\"provider-cost\"),\n amount: Schema.String.pipe(Schema.filter((value) => /^(?:0|[1-9][0-9]*)(?:\\.[0-9]*[1-9])?$/u.test(value) &&\n new TextEncoder().encode(value).byteLength <= 64, {\n identifier: \"ObservabilityCanonicalDecimal\",\n description: \"a non-negative canonical decimal string\",\n })),\n currency: CurrencyCodeSchema,\n}));\nconst UsageAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n observations: Schema.Array(UsageObservationSchema),\n});\nexport type UsageObservation = Schema.Schema.Type<typeof UsageObservationSchema>;\nfunction isCanonicalUsageAttachment(value: Schema.Schema.Type<typeof UsageAttachmentStructuralSchema>): boolean {\n return (value.observations.length <= MAX_USAGE_OBSERVATIONS &&\n payloadFits(value, MAX_USAGE_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"usage-observation\"]) &&\n isStrictlyOrderedById(value.observations, (observation) => observation.usageObservationId));\n}\nexport const UsageAttachmentSchema = UsageAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalUsageAttachment, {\n identifier: \"ObservabilityUsageAttachment\",\n description: \"a canonical, bounded usage attachment\",\n}));\nexport type UsageAttachment = Schema.Schema.Type<typeof UsageAttachmentSchema>;\nexport const AttemptTimingPhaseSchema = Schema.Literal(\"attempt.setup\", \"sandbox.prepare\", \"agent.ensure\", \"eval.run\", \"agent.send\", \"sandbox.command\", \"assertion.evaluate\", \"verdict.fold\", \"attempt.teardown\");\nexport const RunTimingPhaseSchema = Schema.Literal(\"run.setup\", \"run.discovery\", \"run.plan\", \"run.dispatch\", \"run.teardown\");\nconst TimingOutcomeSchema = Schema.Literal(\"completed\", \"failed\", \"cancelled\", \"interrupted\", \"unknown\");\nconst CanonicalTurnLabelSchema = Schema.String.pipe(Schema.filter((value): value is string => isCanonicalTurnLabel(value), { identifier: \"CanonicalTurnLabel\" }));\nconst AttemptTimingIntervalBase = {\n intervalId: IntervalIdSchema,\n startOffsetMs: NonNegativeSafeIntegerSchema,\n durationMs: NonNegativeSafeIntegerSchema,\n parentIntervalId: Schema.NullOr(IntervalIdSchema),\n outcome: TimingOutcomeSchema,\n refs: AttemptTimingReferencesSchema,\n} as const;\nconst AttemptTimingIntervalStructuralSchema = Schema.Struct({\n ...AttemptTimingIntervalBase,\n phase: AttemptTimingPhaseSchema,\n label: Schema.Union(StableLabelSchema, CanonicalTurnLabelSchema),\n});\nexport const AttemptTimingIntervalSchema = AttemptTimingIntervalStructuralSchema.pipe(Schema.filter((interval) => interval.phase === \"agent.send\" || isStableLabel(interval.label), {\n identifier: \"AttemptTimingInterval\",\n description: \"canonical turn labels are reserved for agent.send intervals\",\n}));\nexport const RunTimingIntervalSchema = Schema.Struct({\n intervalId: IntervalIdSchema,\n phase: RunTimingPhaseSchema,\n label: StableLabelSchema,\n startOffsetMs: NonNegativeSafeIntegerSchema,\n durationMs: NonNegativeSafeIntegerSchema,\n parentIntervalId: Schema.NullOr(IntervalIdSchema),\n outcome: TimingOutcomeSchema,\n refs: RunTimingReferencesSchema,\n});\nexport type AttemptTimingInterval = Schema.Schema.Type<typeof AttemptTimingIntervalSchema>;\nexport type RunTimingInterval = Schema.Schema.Type<typeof RunTimingIntervalSchema>;\nfunction timingEnd(start: number, duration: number): number | undefined {\n const end = start + duration;\n return Number.isSafeInteger(end) ? end : undefined;\n}\nfunction isCanonicalTimingTree<Interval extends {\n readonly intervalId: string;\n readonly startOffsetMs: number;\n readonly durationMs: number;\n readonly parentIntervalId: string | null;\n}>(intervals: readonly Interval[]): boolean {\n if (!isStrictlyOrderedById(intervals, (interval) => interval.intervalId))\n return false;\n const byId = new Map(intervals.map((interval) => [interval.intervalId, interval] as const));\n for (const interval of intervals) {\n const end = timingEnd(interval.startOffsetMs, interval.durationMs);\n if (end === undefined)\n return false;\n const ancestors = new Set<string>([interval.intervalId]);\n let child: Interval = interval;\n while (child.parentIntervalId !== null) {\n const parent = byId.get(child.parentIntervalId);\n if (parent === undefined || ancestors.has(parent.intervalId)) {\n return false;\n }\n const parentEnd = timingEnd(parent.startOffsetMs, parent.durationMs);\n const childEnd = timingEnd(child.startOffsetMs, child.durationMs);\n if (parentEnd === undefined ||\n childEnd === undefined ||\n parent.startOffsetMs > child.startOffsetMs ||\n childEnd > parentEnd) {\n return false;\n }\n ancestors.add(parent.intervalId);\n child = parent;\n }\n }\n return true;\n}\nconst AttemptTimingAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n intervals: Schema.Array(AttemptTimingIntervalSchema),\n});\nfunction isCanonicalAttemptTimingAttachment(value: Schema.Schema.Type<typeof AttemptTimingAttachmentStructuralSchema>): boolean {\n return (value.intervals.length <= MAX_TIMING_INTERVALS &&\n payloadFits(value, MAX_TIMING_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"timing-interval\"]) &&\n isCanonicalTimingTree(value.intervals) &&\n (!value.intervals.some((interval) => interval.outcome === \"unknown\") ||\n value.collection.state === \"partial\"));\n}\nexport const AttemptTimingAttachmentSchema = AttemptTimingAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalAttemptTimingAttachment, {\n identifier: \"ObservabilityAttemptTimingAttachment\",\n description: \"a canonical, bounded attempt timing tree\",\n}));\nexport type AttemptTimingAttachment = Schema.Schema.Type<typeof AttemptTimingAttachmentSchema>;\nconst RunTimingAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n intervals: Schema.Array(RunTimingIntervalSchema),\n});\nfunction isCanonicalRunTimingAttachment(value: Schema.Schema.Type<typeof RunTimingAttachmentStructuralSchema>): boolean {\n return (value.intervals.length <= MAX_TIMING_INTERVALS &&\n payloadFits(value, MAX_TIMING_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"timing-interval\"]) &&\n isCanonicalTimingTree(value.intervals) &&\n (!value.intervals.some((interval) => interval.outcome === \"unknown\") ||\n value.collection.state === \"partial\"));\n}\nexport const RunTimingAttachmentSchema = RunTimingAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalRunTimingAttachment, {\n identifier: \"ObservabilityRunTimingAttachment\",\n description: \"a canonical, bounded run timing tree\",\n}));\nexport type RunTimingAttachment = Schema.Schema.Type<typeof RunTimingAttachmentSchema>;\nexport const AttemptDiagnosticPhaseSchema = Schema.Literal(\"attempt.setup\", \"sandbox.prepare\", \"agent.ensure\", \"eval.run\", \"agent.send\", \"sandbox.command\", \"assertion.evaluate\", \"verdict.fold\", \"attempt.teardown\", \"collection\");\nexport const RunDiagnosticPhaseSchema = Schema.Literal(\"run.setup\", \"run.discovery\", \"run.plan\", \"run.dispatch\", \"run.teardown\", \"collection\");\nexport const SourcePositionSchema = Schema.Struct({\n line: PositiveSafeIntegerSchema,\n column: PositiveSafeIntegerSchema,\n});\nexport const SourceFrameSchema = Schema.Struct({\n sourceItemId: SourceFileItemIdSchema,\n sha256: Sha256DigestSchema,\n start: SourcePositionSchema,\n end: SourcePositionSchema,\n});\nconst SafeDiagnosticCauseSchema = Schema.Struct({\n code: SafeIdentifierSchema,\n summary: boundedSafeTextSchema(MAX_DIAGNOSTIC_CAUSE_SUMMARY_BYTES),\n});\nconst DiagnosticRedactionSchema = Schema.Union(Schema.Struct({ state: Schema.Literal(\"none\") }), Schema.Struct({\n state: Schema.Literal(\"applied\"),\n summaryReplacements: NonNegativeSafeIntegerSchema,\n causeReplacements: NonNegativeSafeIntegerSchema,\n contextReplacements: NonNegativeSafeIntegerSchema,\n}));\nconst DiagnosticLimitContextSchema = Schema.Struct({\n kind: Schema.Literal(\"limit\"),\n limit: Schema.Literal(\"conversation-items\", \"commands\", \"usage-observations\", \"timing-intervals\", \"diagnostics\", \"command-stream-bytes\"),\n maximum: NonNegativeSafeIntegerSchema,\n observedAtLeast: NonNegativeSafeIntegerSchema,\n});\nconst DiagnosticProviderContextSchema = Schema.Struct({\n kind: Schema.Literal(\"provider\"),\n provider: SafeIdentifierSchema,\n});\n/**\n * The entity context is a single target rather than an array. Schema's generic\n * ref-array constructors cannot express the exclusion while preserving the\n * direct triple, so these declarations keep the exact input check local.\n */\nconst AttemptDiagnosticEntityContextSchema = Schema.Struct({\n kind: Schema.Literal(\"entity\"),\n target: AttemptReferenceTargetSchema.pipe(Schema.filter((target): target is AttemptDiagnosticsReferences => target.kind !== \"diagnostic\")),\n});\nconst RunDiagnosticEntityContextSchema = Schema.Struct({\n kind: Schema.Literal(\"entity\"),\n target: RunReferenceTargetSchema.pipe(Schema.filter((target): target is RunDiagnosticsReferences => target.kind !== \"diagnostic\")),\n});\nconst AttemptDiagnosticContextExactSchema = Schema.Union(AttemptDiagnosticEntityContextSchema, DiagnosticLimitContextSchema, DiagnosticProviderContextSchema);\nconst RunDiagnosticContextExactSchema = Schema.Union(RunDiagnosticEntityContextSchema, DiagnosticLimitContextSchema, DiagnosticProviderContextSchema);\nexport const AttemptDiagnosticSchema = Schema.Struct({\n diagnosticId: DiagnosticIdSchema,\n kind: Schema.Literal(\"advisory\", \"execution-error\"),\n code: SafeIdentifierSchema,\n phase: AttemptDiagnosticPhaseSchema,\n summary: boundedSafeTextSchema(MAX_DIAGNOSTIC_SUMMARY_BYTES),\n causes: Schema.Array(SafeDiagnosticCauseSchema),\n context: Schema.Array(AttemptDiagnosticContextExactSchema),\n redaction: DiagnosticRedactionSchema,\n sourceFrame: Schema.NullOr(SourceFrameSchema),\n refs: AttemptDiagnosticsReferencesSchema,\n});\nexport const RunDiagnosticSchema = Schema.Struct({\n diagnosticId: DiagnosticIdSchema,\n kind: Schema.Literal(\"advisory\", \"execution-error\"),\n code: SafeIdentifierSchema,\n phase: RunDiagnosticPhaseSchema,\n summary: boundedSafeTextSchema(MAX_DIAGNOSTIC_SUMMARY_BYTES),\n causes: Schema.Array(SafeDiagnosticCauseSchema),\n context: Schema.Array(RunDiagnosticContextExactSchema),\n redaction: DiagnosticRedactionSchema,\n sourceFrame: Schema.NullOr(SourceFrameSchema),\n refs: RunDiagnosticsReferencesSchema,\n});\nexport type SourcePosition = Schema.Schema.Type<typeof SourcePositionSchema>;\nexport type SourceFrame = Schema.Schema.Type<typeof SourceFrameSchema>;\nexport type SafeDiagnosticCause = Schema.Schema.Type<typeof SafeDiagnosticCauseSchema>;\nexport type DiagnosticRedaction = Schema.Schema.Type<typeof DiagnosticRedactionSchema>;\nexport type AttemptDiagnostic = Schema.Schema.Type<typeof AttemptDiagnosticSchema>;\nexport type RunDiagnostic = Schema.Schema.Type<typeof RunDiagnosticSchema>;\nfunction sourcePositionBeforeOrEqual(left: SourcePosition, right: SourcePosition): boolean {\n return left.line < right.line || (left.line === right.line && left.column <= right.column);\n}\nfunction hasValidDiagnosticShape(diagnostic: {\n readonly causes: readonly SafeDiagnosticCause[];\n readonly context: readonly unknown[];\n readonly redaction: DiagnosticRedaction;\n readonly sourceFrame: SourceFrame | null;\n}): boolean {\n if (diagnostic.causes.length > MAX_DIAGNOSTIC_CAUSES ||\n diagnostic.context.length > MAX_DIAGNOSTIC_CONTEXT_ITEMS) {\n return false;\n }\n if (diagnostic.redaction.state === \"applied\" &&\n diagnostic.redaction.summaryReplacements === 0 &&\n diagnostic.redaction.causeReplacements === 0 &&\n diagnostic.redaction.contextReplacements === 0) {\n return false;\n }\n return (diagnostic.sourceFrame === null ||\n sourcePositionBeforeOrEqual(diagnostic.sourceFrame.start, diagnostic.sourceFrame.end));\n}\nconst AttemptDiagnosticsAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n diagnostics: Schema.Array(AttemptDiagnosticSchema),\n});\nfunction isCanonicalAttemptDiagnosticsAttachment(value: Schema.Schema.Type<typeof AttemptDiagnosticsAttachmentStructuralSchema>): boolean {\n return (value.diagnostics.length <= MAX_DIAGNOSTICS &&\n payloadFits(value, MAX_DIAGNOSTICS_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"diagnostic\"]) &&\n isStrictlyOrderedById(value.diagnostics, (diagnostic) => diagnostic.diagnosticId) &&\n value.diagnostics.every(hasValidDiagnosticShape));\n}\nexport const AttemptDiagnosticsAttachmentSchema = AttemptDiagnosticsAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalAttemptDiagnosticsAttachment, {\n identifier: \"ObservabilityAttemptDiagnosticsAttachment\",\n description: \"a canonical, bounded attempt diagnostics attachment\",\n}));\nexport type AttemptDiagnosticsAttachment = Schema.Schema.Type<typeof AttemptDiagnosticsAttachmentSchema>;\nconst RunDiagnosticsAttachmentStructuralSchema = Schema.Struct({\n collection: CollectionSchema,\n diagnostics: Schema.Array(RunDiagnosticSchema),\n});\nfunction isCanonicalRunDiagnosticsAttachment(value: Schema.Schema.Type<typeof RunDiagnosticsAttachmentStructuralSchema>): boolean {\n return (value.diagnostics.length <= MAX_DIAGNOSTICS &&\n payloadFits(value, MAX_DIAGNOSTICS_ATTACHMENT_BYTES) &&\n isAllowedCollection(value.collection, [\"diagnostic\"]) &&\n isStrictlyOrderedById(value.diagnostics, (diagnostic) => diagnostic.diagnosticId) &&\n value.diagnostics.every(hasValidDiagnosticShape));\n}\nexport const RunDiagnosticsAttachmentSchema = RunDiagnosticsAttachmentStructuralSchema.pipe(Schema.filter(isCanonicalRunDiagnosticsAttachment, {\n identifier: \"ObservabilityRunDiagnosticsAttachment\",\n description: \"a canonical, bounded run diagnostics attachment\",\n}));\nexport type RunDiagnosticsAttachment = Schema.Schema.Type<typeof RunDiagnosticsAttachmentSchema>;\nconst attemptConversationFamilySchemaId = \"niceeval.observability\" as const;\nconst attemptCommandsFamilySchemaId = \"niceeval.observability\" as const;\nconst attemptUsageFamilySchemaId = \"niceeval.observability\" as const;\nconst attemptTimingFamilySchemaId = \"niceeval.observability\" as const;\nconst attemptDiagnosticsFamilySchemaId = \"niceeval.observability\" as const;\nconst runTimingFamilySchemaId = \"niceeval.observability\" as const;\nconst runDiagnosticsFamilySchemaId = \"niceeval.observability\" as const;\n/** Semantic cross-family facts intentionally remain independent of writes. */\nexport function makeAttemptConversationAttachmentFamilyValidation(payload: ConversationAttachment): ObservabilityFamilyValidation<\"attempt\"> {\n const entities: AttemptReferenceTarget[] = [\n ...payload.turns.map((turn) => Object.freeze({\n family: attemptConversationFamilySchemaId,\n kind: \"turn\" as const,\n id: turn.turnId,\n })),\n ...payload.items.map((item) => Object.freeze({\n family: attemptConversationFamilySchemaId,\n kind: \"item\" as const,\n id: item.itemId,\n })),\n ...payload.items.flatMap((item) => item.kind === \"tool-call\"\n ? [\n Object.freeze({\n family: attemptConversationFamilySchemaId,\n kind: \"call\" as const,\n id: item.callId,\n }),\n ]\n : []),\n ];\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptConversationFamilySchemaId,\n entities,\n references: [\n ...payload.turns.map((turn) => Object.freeze({ sourceId: turn.turnId, refs: turn.refs })),\n ...payload.items.map((item) => Object.freeze({ sourceId: item.itemId, refs: item.refs })),\n ],\n });\n}\nexport function makeAttemptCommandsAttachmentFamilyValidation(input: {\n readonly commands: readonly {\n readonly commandId: CommandId;\n readonly refs: readonly CommandsReferences[];\n }[];\n}): ObservabilityFamilyValidation<\"attempt\"> {\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptCommandsFamilySchemaId,\n entities: input.commands.map((command) => Object.freeze({\n family: attemptCommandsFamilySchemaId,\n kind: \"command\" as const,\n id: command.commandId,\n })),\n references: input.commands.map((command) => Object.freeze({ sourceId: command.commandId, refs: command.refs })),\n });\n}\nexport function makeAttemptUsageAttachmentFamilyValidation(payload: UsageAttachment): ObservabilityFamilyValidation<\"attempt\"> {\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptUsageFamilySchemaId,\n entities: payload.observations.map((observation) => Object.freeze({\n family: attemptUsageFamilySchemaId,\n kind: \"usage-observation\" as const,\n id: observation.usageObservationId,\n })),\n references: payload.observations.map((observation) => Object.freeze({\n sourceId: observation.usageObservationId,\n refs: observation.refs,\n })),\n });\n}\nexport function makeAttemptTimingAttachmentFamilyValidation(payload: AttemptTimingAttachment): ObservabilityFamilyValidation<\"attempt\"> {\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptTimingFamilySchemaId,\n entities: payload.intervals.map((interval) => Object.freeze({\n family: attemptTimingFamilySchemaId,\n kind: \"interval\" as const,\n id: interval.intervalId,\n })),\n references: payload.intervals.map((interval) => Object.freeze({ sourceId: interval.intervalId, refs: interval.refs })),\n });\n}\nexport function makeAttemptDiagnosticsAttachmentFamilyValidation(payload: AttemptDiagnosticsAttachment): ObservabilityFamilyValidation<\"attempt\"> {\n return makeAttemptObservabilityFamilyValidation({\n schemaId: attemptDiagnosticsFamilySchemaId,\n entities: payload.diagnostics.map((diagnostic) => Object.freeze({\n family: attemptDiagnosticsFamilySchemaId,\n kind: \"diagnostic\" as const,\n id: diagnostic.diagnosticId,\n })),\n references: payload.diagnostics.map((diagnostic) => Object.freeze({ sourceId: diagnostic.diagnosticId, refs: diagnostic.refs })),\n });\n}\nexport function makeRunTimingAttachmentFamilyValidation(payload: RunTimingAttachment): ObservabilityFamilyValidation<\"run\"> {\n return makeRunObservabilityFamilyValidation({\n schemaId: runTimingFamilySchemaId,\n entities: payload.intervals.map((interval) => Object.freeze({\n family: runTimingFamilySchemaId,\n kind: \"interval\" as const,\n id: interval.intervalId,\n })),\n references: payload.intervals.map((interval) => Object.freeze({ sourceId: interval.intervalId, refs: interval.refs })),\n });\n}\nexport function makeRunDiagnosticsAttachmentFamilyValidation(payload: RunDiagnosticsAttachment): ObservabilityFamilyValidation<\"run\"> {\n return makeRunObservabilityFamilyValidation({\n schemaId: runDiagnosticsFamilySchemaId,\n entities: payload.diagnostics.map((diagnostic) => Object.freeze({\n family: runDiagnosticsFamilySchemaId,\n kind: \"diagnostic\" as const,\n id: diagnostic.diagnosticId,\n })),\n references: payload.diagnostics.map((diagnostic) => Object.freeze({ sourceId: diagnostic.diagnosticId, refs: diagnostic.refs })),\n });\n}\n"]}
@@ -3136,10 +3136,10 @@ export declare const UsageAttachmentSchema: Schema.filter<Schema.Struct<{
3136
3136
  export type UsageAttachment = Schema.Schema.Type<typeof UsageAttachmentSchema>;
3137
3137
  export declare const AttemptTimingPhaseSchema: Schema.Literal<["attempt.setup", "sandbox.prepare", "agent.ensure", "eval.run", "agent.send", "sandbox.command", "assertion.evaluate", "verdict.fold", "attempt.teardown"]>;
3138
3138
  export declare const RunTimingPhaseSchema: Schema.Literal<["run.setup", "run.discovery", "run.plan", "run.dispatch", "run.teardown"]>;
3139
- export declare const AttemptTimingIntervalSchema: Schema.Struct<{
3140
- intervalId: Schema.Schema<import("./model.cjs").IntervalId, string, never>;
3139
+ export declare const AttemptTimingIntervalSchema: Schema.filter<Schema.Struct<{
3141
3140
  phase: Schema.Literal<["attempt.setup", "sandbox.prepare", "agent.ensure", "eval.run", "agent.send", "sandbox.command", "assertion.evaluate", "verdict.fold", "attempt.teardown"]>;
3142
- label: Schema.Schema<import("./model.cjs").StableLabel, string, never>;
3141
+ label: Schema.Union<[Schema.Schema<import("./model.cjs").StableLabel, string, never>, Schema.refine<string, Schema.Schema<string, string, never>>]>;
3142
+ intervalId: Schema.Schema<import("./model.cjs").IntervalId, string, never>;
3143
3143
  startOffsetMs: Schema.Schema<import("./model.cjs").NonNegativeSafeInteger, number, never>;
3144
3144
  durationMs: Schema.Schema<import("./model.cjs").NonNegativeSafeInteger, number, never>;
3145
3145
  parentIntervalId: Schema.NullOr<Schema.Schema<import("./model.cjs").IntervalId, string, never>>;
@@ -3229,7 +3229,7 @@ export declare const AttemptTimingIntervalSchema: Schema.Struct<{
3229
3229
  readonly family: "niceeval.observability";
3230
3230
  readonly id: string;
3231
3231
  })[], never>>;
3232
- }>;
3232
+ }>>;
3233
3233
  export declare const RunTimingIntervalSchema: Schema.Struct<{
3234
3234
  intervalId: Schema.Schema<import("./model.cjs").IntervalId, string, never>;
3235
3235
  phase: Schema.Literal<["run.setup", "run.discovery", "run.plan", "run.dispatch", "run.teardown"]>;
@@ -3329,10 +3329,10 @@ export declare const AttemptTimingAttachmentSchema: Schema.filter<Schema.Struct<
3329
3329
  replacementCount: Schema.Schema<import("./model.cjs").PositiveSafeInteger, number, never>;
3330
3330
  }>]>>>;
3331
3331
  }>]>>;
3332
- intervals: Schema.Array$<Schema.Struct<{
3333
- intervalId: Schema.Schema<import("./model.cjs").IntervalId, string, never>;
3332
+ intervals: Schema.Array$<Schema.filter<Schema.Struct<{
3334
3333
  phase: Schema.Literal<["attempt.setup", "sandbox.prepare", "agent.ensure", "eval.run", "agent.send", "sandbox.command", "assertion.evaluate", "verdict.fold", "attempt.teardown"]>;
3335
- label: Schema.Schema<import("./model.cjs").StableLabel, string, never>;
3334
+ label: Schema.Union<[Schema.Schema<import("./model.cjs").StableLabel, string, never>, Schema.refine<string, Schema.Schema<string, string, never>>]>;
3335
+ intervalId: Schema.Schema<import("./model.cjs").IntervalId, string, never>;
3336
3336
  startOffsetMs: Schema.Schema<import("./model.cjs").NonNegativeSafeInteger, number, never>;
3337
3337
  durationMs: Schema.Schema<import("./model.cjs").NonNegativeSafeInteger, number, never>;
3338
3338
  parentIntervalId: Schema.NullOr<Schema.Schema<import("./model.cjs").IntervalId, string, never>>;
@@ -3422,7 +3422,7 @@ export declare const AttemptTimingAttachmentSchema: Schema.filter<Schema.Struct<
3422
3422
  readonly family: "niceeval.observability";
3423
3423
  readonly id: string;
3424
3424
  })[], never>>;
3425
- }>>;
3425
+ }>>>;
3426
3426
  }>>;
3427
3427
  export type AttemptTimingAttachment = Schema.Schema.Type<typeof AttemptTimingAttachmentSchema>;
3428
3428
  export declare const RunTimingAttachmentSchema: Schema.filter<Schema.Struct<{