@namzu/sdk 62.12.0 → 62.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/agents/file-definitions.d.ts +7 -0
  3. package/dist/agents/file-definitions.d.ts.map +1 -1
  4. package/dist/agents/file-definitions.js +20 -0
  5. package/dist/agents/file-definitions.js.map +1 -1
  6. package/dist/agents/index.d.ts +1 -1
  7. package/dist/agents/index.d.ts.map +1 -1
  8. package/dist/agents/index.js +1 -1
  9. package/dist/agents/index.js.map +1 -1
  10. package/dist/bridge/acp/server.d.ts +8 -1
  11. package/dist/bridge/acp/server.d.ts.map +1 -1
  12. package/dist/bridge/acp/server.js +12 -0
  13. package/dist/bridge/acp/server.js.map +1 -1
  14. package/dist/connector/index.d.ts +1 -1
  15. package/dist/connector/index.d.ts.map +1 -1
  16. package/dist/connector/index.js +1 -1
  17. package/dist/connector/index.js.map +1 -1
  18. package/dist/connector/mcp/client.d.ts +96 -0
  19. package/dist/connector/mcp/client.d.ts.map +1 -1
  20. package/dist/connector/mcp/client.js +488 -13
  21. package/dist/connector/mcp/client.js.map +1 -1
  22. package/dist/connector/mcp/index.d.ts +1 -0
  23. package/dist/connector/mcp/index.d.ts.map +1 -1
  24. package/dist/connector/mcp/index.js +1 -0
  25. package/dist/connector/mcp/index.js.map +1 -1
  26. package/dist/connector/mcp/tasks.d.ts +40 -0
  27. package/dist/connector/mcp/tasks.d.ts.map +1 -0
  28. package/dist/connector/mcp/tasks.js +55 -0
  29. package/dist/connector/mcp/tasks.js.map +1 -0
  30. package/dist/constants/data-epoch.d.ts +18 -0
  31. package/dist/constants/data-epoch.d.ts.map +1 -0
  32. package/dist/constants/data-epoch.js +18 -0
  33. package/dist/constants/data-epoch.js.map +1 -0
  34. package/dist/constants/index.d.ts +1 -0
  35. package/dist/constants/index.d.ts.map +1 -1
  36. package/dist/constants/index.js +1 -0
  37. package/dist/constants/index.js.map +1 -1
  38. package/dist/constants/mcp/index.d.ts +1 -1
  39. package/dist/constants/mcp/index.d.ts.map +1 -1
  40. package/dist/constants/mcp/index.js +5 -0
  41. package/dist/constants/mcp/index.js.map +1 -1
  42. package/dist/constants/telemetry/index.d.ts +12 -0
  43. package/dist/constants/telemetry/index.d.ts.map +1 -1
  44. package/dist/constants/telemetry/index.js +12 -0
  45. package/dist/constants/telemetry/index.js.map +1 -1
  46. package/dist/eval/bootstrap.d.ts +122 -0
  47. package/dist/eval/bootstrap.d.ts.map +1 -0
  48. package/dist/eval/bootstrap.js +227 -0
  49. package/dist/eval/bootstrap.js.map +1 -0
  50. package/dist/eval/compare.d.ts +109 -0
  51. package/dist/eval/compare.d.ts.map +1 -0
  52. package/dist/eval/compare.js +324 -0
  53. package/dist/eval/compare.js.map +1 -0
  54. package/dist/eval/disclosure.d.ts +70 -0
  55. package/dist/eval/disclosure.d.ts.map +1 -0
  56. package/dist/eval/disclosure.js +64 -0
  57. package/dist/eval/disclosure.js.map +1 -0
  58. package/dist/eval/experiment.d.ts +23 -0
  59. package/dist/eval/experiment.d.ts.map +1 -1
  60. package/dist/eval/experiment.js +87 -15
  61. package/dist/eval/experiment.js.map +1 -1
  62. package/dist/eval/from-turn.d.ts.map +1 -1
  63. package/dist/eval/from-turn.js +5 -0
  64. package/dist/eval/from-turn.js.map +1 -1
  65. package/dist/eval/index.d.ts +13 -2
  66. package/dist/eval/index.d.ts.map +1 -1
  67. package/dist/eval/index.js +6 -1
  68. package/dist/eval/index.js.map +1 -1
  69. package/dist/eval/report-stats.d.ts +77 -0
  70. package/dist/eval/report-stats.d.ts.map +1 -0
  71. package/dist/eval/report-stats.js +184 -0
  72. package/dist/eval/report-stats.js.map +1 -0
  73. package/dist/eval/run-options.d.ts +30 -0
  74. package/dist/eval/run-options.d.ts.map +1 -0
  75. package/dist/eval/run-options.js +20 -0
  76. package/dist/eval/run-options.js.map +1 -0
  77. package/dist/eval/run-summary.d.ts +36 -0
  78. package/dist/eval/run-summary.d.ts.map +1 -0
  79. package/dist/eval/run-summary.js +57 -0
  80. package/dist/eval/run-summary.js.map +1 -0
  81. package/dist/eval/scorers.d.ts +32 -0
  82. package/dist/eval/scorers.d.ts.map +1 -1
  83. package/dist/eval/scorers.js +77 -0
  84. package/dist/eval/scorers.js.map +1 -1
  85. package/dist/eval/types.d.ts +74 -0
  86. package/dist/eval/types.d.ts.map +1 -1
  87. package/dist/manager/session/turn-recorder.d.ts +3 -0
  88. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  89. package/dist/manager/session/turn-recorder.js +18 -2
  90. package/dist/manager/session/turn-recorder.js.map +1 -1
  91. package/dist/plugin/index.d.ts +1 -1
  92. package/dist/plugin/index.d.ts.map +1 -1
  93. package/dist/plugin/index.js +1 -1
  94. package/dist/plugin/index.js.map +1 -1
  95. package/dist/plugin/loader.d.ts +11 -0
  96. package/dist/plugin/loader.d.ts.map +1 -1
  97. package/dist/plugin/loader.js +15 -2
  98. package/dist/plugin/loader.js.map +1 -1
  99. package/dist/public-runtime.d.ts +10 -6
  100. package/dist/public-runtime.d.ts.map +1 -1
  101. package/dist/public-runtime.js +13 -5
  102. package/dist/public-runtime.js.map +1 -1
  103. package/dist/public-types.d.ts +2 -0
  104. package/dist/public-types.d.ts.map +1 -1
  105. package/dist/registry/command/kernel-commands.d.ts +3 -0
  106. package/dist/registry/command/kernel-commands.d.ts.map +1 -1
  107. package/dist/registry/command/kernel-commands.js +76 -5
  108. package/dist/registry/command/kernel-commands.js.map +1 -1
  109. package/dist/runtime/query/cancelled-before-start.d.ts.map +1 -1
  110. package/dist/runtime/query/cancelled-before-start.js +2 -0
  111. package/dist/runtime/query/cancelled-before-start.js.map +1 -1
  112. package/dist/runtime/query/index.d.ts.map +1 -1
  113. package/dist/runtime/query/index.js +17 -0
  114. package/dist/runtime/query/index.js.map +1 -1
  115. package/dist/runtime/query/iteration/index.d.ts +18 -1
  116. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  117. package/dist/runtime/query/iteration/index.js +80 -1
  118. package/dist/runtime/query/iteration/index.js.map +1 -1
  119. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  120. package/dist/runtime/query/iteration/phases/tool-review.js +18 -1
  121. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  122. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  123. package/dist/runtime/query/iteration/stream-turn.js +5 -0
  124. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  125. package/dist/runtime/query/result.d.ts.map +1 -1
  126. package/dist/runtime/query/result.js +2 -0
  127. package/dist/runtime/query/result.js.map +1 -1
  128. package/dist/runtime/query/turn/answer-claims.d.ts +52 -0
  129. package/dist/runtime/query/turn/answer-claims.d.ts.map +1 -0
  130. package/dist/runtime/query/turn/answer-claims.js +348 -0
  131. package/dist/runtime/query/turn/answer-claims.js.map +1 -0
  132. package/dist/runtime/query/turn/outcome-ledger.d.ts +7 -0
  133. package/dist/runtime/query/turn/outcome-ledger.d.ts.map +1 -1
  134. package/dist/runtime/query/turn/outcome-ledger.js +13 -0
  135. package/dist/runtime/query/turn/outcome-ledger.js.map +1 -1
  136. package/dist/skills/index.d.ts +1 -1
  137. package/dist/skills/index.d.ts.map +1 -1
  138. package/dist/skills/index.js +1 -1
  139. package/dist/skills/index.js.map +1 -1
  140. package/dist/skills/loader.d.ts +15 -1
  141. package/dist/skills/loader.d.ts.map +1 -1
  142. package/dist/skills/loader.js +17 -3
  143. package/dist/skills/loader.js.map +1 -1
  144. package/dist/store/goal/index.d.ts +3 -1
  145. package/dist/store/goal/index.d.ts.map +1 -1
  146. package/dist/store/goal/index.js +6 -0
  147. package/dist/store/goal/index.js.map +1 -1
  148. package/dist/telemetry/genai.d.ts +98 -0
  149. package/dist/telemetry/genai.d.ts.map +1 -0
  150. package/dist/telemetry/genai.js +189 -0
  151. package/dist/telemetry/genai.js.map +1 -0
  152. package/dist/telemetry/runtime-accessors.d.ts +19 -0
  153. package/dist/telemetry/runtime-accessors.d.ts.map +1 -1
  154. package/dist/telemetry/runtime-accessors.js +43 -1
  155. package/dist/telemetry/runtime-accessors.js.map +1 -1
  156. package/dist/tools/goal/confirmation.d.ts +154 -0
  157. package/dist/tools/goal/confirmation.d.ts.map +1 -0
  158. package/dist/tools/goal/confirmation.js +290 -0
  159. package/dist/tools/goal/confirmation.js.map +1 -0
  160. package/dist/tools/goal/index.d.ts +4 -1
  161. package/dist/tools/goal/index.d.ts.map +1 -1
  162. package/dist/tools/goal/index.js +27 -2
  163. package/dist/tools/goal/index.js.map +1 -1
  164. package/dist/tools/hand-back/index.d.ts +48 -0
  165. package/dist/tools/hand-back/index.d.ts.map +1 -0
  166. package/dist/tools/hand-back/index.js +129 -0
  167. package/dist/tools/hand-back/index.js.map +1 -0
  168. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
  169. package/dist/tools/schedules/schedule-tool.js +15 -1
  170. package/dist/tools/schedules/schedule-tool.js.map +1 -1
  171. package/dist/tools/schedules/types.d.ts +10 -0
  172. package/dist/tools/schedules/types.d.ts.map +1 -1
  173. package/dist/toolsets/manager.d.ts.map +1 -1
  174. package/dist/toolsets/manager.js +12 -0
  175. package/dist/toolsets/manager.js.map +1 -1
  176. package/dist/types/acp/index.d.ts +18 -0
  177. package/dist/types/acp/index.d.ts.map +1 -1
  178. package/dist/types/connector/mcp.d.ts +18 -0
  179. package/dist/types/connector/mcp.d.ts.map +1 -1
  180. package/dist/types/goal/index.d.ts +12 -0
  181. package/dist/types/goal/index.d.ts.map +1 -1
  182. package/dist/types/session/config.d.ts +8 -0
  183. package/dist/types/session/config.d.ts.map +1 -1
  184. package/dist/types/session/hand-back.d.ts +29 -0
  185. package/dist/types/session/hand-back.d.ts.map +1 -0
  186. package/dist/types/session/hand-back.js +11 -0
  187. package/dist/types/session/hand-back.js.map +1 -0
  188. package/dist/types/session/outcome.d.ts +37 -0
  189. package/dist/types/session/outcome.d.ts.map +1 -1
  190. package/dist/types/session/outcome.js.map +1 -1
  191. package/dist/types/session/turn.d.ts +19 -1
  192. package/dist/types/session/turn.d.ts.map +1 -1
  193. package/dist/types/session/turn.js.map +1 -1
  194. package/package.json +1 -1
  195. package/src/agents/file-definitions.ts +21 -0
  196. package/src/agents/index.ts +1 -0
  197. package/src/bridge/acp/server.ts +20 -0
  198. package/src/connector/index.ts +1 -0
  199. package/src/connector/mcp/client.ts +531 -14
  200. package/src/connector/mcp/index.ts +1 -0
  201. package/src/connector/mcp/tasks.ts +81 -0
  202. package/src/constants/data-epoch.ts +17 -0
  203. package/src/constants/index.ts +1 -0
  204. package/src/constants/mcp/index.ts +6 -1
  205. package/src/constants/telemetry/index.ts +13 -0
  206. package/src/eval/bootstrap.ts +314 -0
  207. package/src/eval/compare.ts +473 -0
  208. package/src/eval/disclosure.ts +136 -0
  209. package/src/eval/experiment.ts +127 -15
  210. package/src/eval/from-turn.ts +5 -0
  211. package/src/eval/index.ts +51 -0
  212. package/src/eval/report-stats.ts +257 -0
  213. package/src/eval/run-options.ts +49 -0
  214. package/src/eval/run-summary.ts +104 -0
  215. package/src/eval/scorers.ts +83 -0
  216. package/src/eval/types.ts +76 -0
  217. package/src/manager/session/turn-recorder.ts +23 -2
  218. package/src/plugin/index.ts +7 -1
  219. package/src/plugin/loader.ts +16 -2
  220. package/src/public-runtime.ts +70 -0
  221. package/src/public-types.ts +9 -0
  222. package/src/registry/command/kernel-commands.ts +94 -6
  223. package/src/runtime/query/cancelled-before-start.ts +2 -0
  224. package/src/runtime/query/index.ts +20 -0
  225. package/src/runtime/query/iteration/index.ts +85 -1
  226. package/src/runtime/query/iteration/phases/tool-review.ts +24 -1
  227. package/src/runtime/query/iteration/stream-turn.ts +10 -0
  228. package/src/runtime/query/result.ts +2 -0
  229. package/src/runtime/query/turn/answer-claims.ts +413 -0
  230. package/src/runtime/query/turn/outcome-ledger.ts +12 -0
  231. package/src/skills/index.ts +1 -0
  232. package/src/skills/loader.ts +21 -3
  233. package/src/store/goal/index.ts +11 -0
  234. package/src/telemetry/genai.ts +202 -0
  235. package/src/telemetry/runtime-accessors.ts +40 -1
  236. package/src/tools/goal/confirmation.ts +375 -0
  237. package/src/tools/goal/index.ts +37 -1
  238. package/src/tools/hand-back/index.ts +150 -0
  239. package/src/tools/schedules/schedule-tool.ts +19 -1
  240. package/src/tools/schedules/types.ts +10 -0
  241. package/src/toolsets/manager.ts +22 -0
  242. package/src/types/acp/index.ts +20 -0
  243. package/src/types/connector/mcp.ts +18 -0
  244. package/src/types/goal/index.ts +13 -0
  245. package/src/types/session/config.ts +8 -0
  246. package/src/types/session/hand-back.ts +31 -0
  247. package/src/types/session/outcome.ts +42 -0
  248. package/src/types/session/turn.ts +19 -1
@@ -0,0 +1,20 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ const STORE_KEY = Symbol.for('namzu.eval.runOptions');
3
+ /**
4
+ * One store per process, found through a global symbol, so a suite that
5
+ * resolves its own copy of the SDK still sees the scope the runner opened.
6
+ */
7
+ function store() {
8
+ const holder = globalThis;
9
+ holder[STORE_KEY] ??= new AsyncLocalStorage();
10
+ return holder[STORE_KEY];
11
+ }
12
+ /** Run `work` with `options` in force for every experiment it starts. */
13
+ export function withEvalRunOptions(options, work) {
14
+ return store().run(options, work);
15
+ }
16
+ /** The options in force here, or an empty set outside any scope. */
17
+ export function currentEvalRunOptions() {
18
+ return store().getStore() ?? {};
19
+ }
20
+ //# sourceMappingURL=run-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-options.js","sourceRoot":"","sources":["../../src/eval/run-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AA4BpD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AAErD;;;GAGG;AACH,SAAS,KAAK;IACb,MAAM,MAAM,GAAG,UAAiE,CAAA;IAChF,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,iBAAiB,EAAkB,CAAA;IAC7D,OAAO,MAAM,CAAC,SAAS,CAAC,CAAA;AACzB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,kBAAkB,CAAI,OAAuB,EAAE,IAAa;IAC3E,OAAO,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,qBAAqB;IACpC,OAAO,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;AAChC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { RunMode } from './disclosure.js';
2
+ import { type RunStats } from './report-stats.js';
3
+ import type { ExperimentReport } from './types.js';
4
+ /** What produced a whole run, across every suite in it. */
5
+ export interface RunDisclosure {
6
+ readonly harnessVersion: string;
7
+ readonly sdkVersion: string;
8
+ readonly generatedAt: string;
9
+ readonly commit: string;
10
+ readonly seed: number;
11
+ /** Repeats per case; the largest across suites when they differ. */
12
+ readonly repeats: number;
13
+ readonly suites: number;
14
+ readonly cases: number;
15
+ readonly runs: number;
16
+ /** `mixed` when suites that used a model differ in kind; a suite with no model at all does not count. */
17
+ readonly mode: RunMode | 'mixed';
18
+ }
19
+ /** The numbers for every case of every suite taken together. */
20
+ export interface RunSummary extends Omit<RunStats, 'caseSummaries' | 'reliability'> {
21
+ readonly disclosure: RunDisclosure;
22
+ /** Present only when cases were repeated. */
23
+ readonly reliability?: RunStats['reliability'];
24
+ }
25
+ export declare function summarizeRun(entries: ReadonlyArray<{
26
+ suite: string;
27
+ report: ExperimentReport;
28
+ }>, context: {
29
+ seed: number;
30
+ harnessVersion: string;
31
+ commit: string;
32
+ generatedAt: string;
33
+ sdkVersion: string;
34
+ }): RunSummary;
35
+ export declare function formatRunSummary(summary: RunSummary): string;
36
+ //# sourceMappingURL=run-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-summary.d.ts","sourceRoot":"","sources":["../../src/eval/run-summary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EACN,KAAK,QAAQ,EAKb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,yGAAyG;IACzG,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;CAChC;AAED,gEAAgE;AAChE,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,aAAa,CAAC;IAClF,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAA;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;CAC9C;AAED,wBAAgB,YAAY,CAC3B,OAAO,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACnE,OAAO,EAAE;IACR,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CAClB,GACC,UAAU,CAmCZ;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAuB5D"}
@@ -0,0 +1,57 @@
1
+ import { UNKNOWN } from './disclosure.js';
2
+ import { describeIntervals, describeSplits, groupRuns, statsOver, } from './report-stats.js';
3
+ export function summarizeRun(entries, context) {
4
+ // A case is named by its suite and its id: two suites may reuse a name.
5
+ const cases = entries.flatMap(({ suite, report }) => groupRuns(report.cases ?? [], (name) => `${suite}\u0000${name}`));
6
+ const { caseSummaries: _perCase, reliability, ...stats } = statsOver(cases, context.seed);
7
+ const repeats = Math.max(1, ...entries.map((e) => e.report.repeats ?? 1));
8
+ // A suite that used no model at all says nothing about whether a model
9
+ // ran, so it does not make a run "mixed" with the suites that did.
10
+ const all = entries.map((e) => e.report.disclosure?.mode ?? UNKNOWN);
11
+ const modes = new Set(all.filter((m) => m !== 'no-model'));
12
+ const mode = modes.size === 0
13
+ ? all.length === 0
14
+ ? UNKNOWN
15
+ : 'no-model'
16
+ : modes.size === 1
17
+ ? [...modes][0]
18
+ : 'mixed';
19
+ return {
20
+ ...stats,
21
+ ...(repeats > 1 ? { reliability } : {}),
22
+ disclosure: {
23
+ harnessVersion: context.harnessVersion,
24
+ sdkVersion: context.sdkVersion,
25
+ generatedAt: context.generatedAt,
26
+ commit: context.commit,
27
+ seed: context.seed,
28
+ repeats,
29
+ suites: entries.length,
30
+ cases: stats.cases,
31
+ runs: stats.runs,
32
+ mode,
33
+ },
34
+ };
35
+ }
36
+ export function formatRunSummary(summary) {
37
+ const d = summary.disclosure;
38
+ const lines = [
39
+ `Whole run: ${summary.passed}/${summary.runs} runs passed across ${d.suites} suite${d.suites === 1 ? '' : 's'}, ${summary.cases} case${summary.cases === 1 ? '' : 's'}${d.repeats > 1 ? ` x ${d.repeats} repeats` : ''}`,
40
+ ];
41
+ for (const line of describeIntervals({
42
+ mean: summary.mean,
43
+ passRate: summary.passRate,
44
+ intervals: summary.intervals,
45
+ })) {
46
+ lines.push(` ${line}`);
47
+ }
48
+ if (summary.reliability) {
49
+ const r = summary.reliability;
50
+ lines.push(` reliability across repeats: ${r.passedEveryRepeat} of ${r.cases} cases passed in every one of ${d.repeats} repeats${r.fraction === null ? '' : ` (${(r.fraction * 100).toFixed(1)}%)`}`);
51
+ }
52
+ for (const line of describeSplits(summary.splits))
53
+ lines.push(` ${line}`);
54
+ lines.push(` produced by: namzu eval ${d.harnessVersion}, sdk ${d.sdkVersion}, commit ${d.commit}, ${d.generatedAt}, ${d.mode}`);
55
+ return lines.join('\n');
56
+ }
57
+ //# sourceMappingURL=run-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-summary.js","sourceRoot":"","sources":["../../src/eval/run-summary.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import type { HandBackKind } from '../types/session/hand-back.js';
2
+ import type { TurnOutcomeVerdict } from '../types/session/outcome.js';
1
3
  import type { EvalCase, EvalTurn, Score, Scorer } from './types.js';
2
4
  /**
3
5
  * How closely the turn's tool sequence matched the expected one, as F1 over
@@ -27,6 +29,36 @@ export declare function completionScorer(acceptable?: readonly string[]): Scorer
27
29
  export declare function stepBudgetScorer(maxSteps: number): Scorer;
28
30
  /** The final text contains every required substring. */
29
31
  export declare function containsScorer(...required: string[]): Scorer;
32
+ /**
33
+ * The turn's outcome record has one of the given verdicts.
34
+ *
35
+ * Reads the record the kernel settled from what actually ran, not the answer's
36
+ * words. A turn with no record scores unavailable: there is nothing to read,
37
+ * which is not the same as a wrong verdict.
38
+ */
39
+ export declare function outcomeScorer(verdicts: readonly TurnOutcomeVerdict[]): Scorer;
40
+ /**
41
+ * Whether the answer's plain check claims agree with the turn's outcome
42
+ * record: 1 when `compareAnswerToOutcome` found no mismatch, 0 when it found
43
+ * one, with the claim and what the record holds in the detail.
44
+ *
45
+ * Pass `{ expectMismatch: true }` for a case that is built to contradict
46
+ * itself, so the suite proves the comparison fires as well as that it stays
47
+ * silent.
48
+ */
49
+ export declare function claimMismatchScorer(opts?: {
50
+ expectMismatch?: boolean;
51
+ }): Scorer;
52
+ /**
53
+ * Score whether the turn was handed back to a person.
54
+ *
55
+ * Pass `{ expectKind }` for a case built so the model hands the task back, and
56
+ * the scorer checks it did, and for that kind; with nothing it checks the turn
57
+ * was not handed back. A gate: a scripted suite pins the kernel's side of it.
58
+ */
59
+ export declare function handedBackScorer(opts?: {
60
+ expectKind?: HandBackKind;
61
+ }): Scorer;
30
62
  /**
31
63
  * Judge the turn with a caller-supplied predicate.
32
64
  *
@@ -1 +1 @@
1
- {"version":3,"file":"scorers.d.ts","sourceRoot":"","sources":["../../src/eval/scorers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAyBnE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAwCzC;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAC/B,UAAU,GAAE,SAAS,MAAM,EAAmC,GAC5D,MAAM,CAqBR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAezD;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAmB5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC3B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,KAAK,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAChE,MAAM,CAER"}
1
+ {"version":3,"file":"scorers.d.ts","sourceRoot":"","sources":["../../src/eval/scorers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAyBnE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAwCzC;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAC/B,UAAU,GAAE,SAAS,MAAM,EAAmC,GAC5D,MAAM,CAqBR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAezD;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAmB5D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,CAoB7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAiBnF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,YAAY,CAAA;CAAO,GAAG,MAAM,CAejF;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC3B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,KAAK,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAChE,MAAM,CAER"}
@@ -136,6 +136,83 @@ export function containsScorer(...required) {
136
136
  },
137
137
  };
138
138
  }
139
+ /**
140
+ * The turn's outcome record has one of the given verdicts.
141
+ *
142
+ * Reads the record the kernel settled from what actually ran, not the answer's
143
+ * words. A turn with no record scores unavailable: there is nothing to read,
144
+ * which is not the same as a wrong verdict.
145
+ */
146
+ export function outcomeScorer(verdicts) {
147
+ return {
148
+ name: 'outcome',
149
+ // The record either says one of the verdicts or it does not.
150
+ severity: 'gate',
151
+ score(turn) {
152
+ const outcome = turn.outcome;
153
+ if (!outcome) {
154
+ return { score: 0, unavailable: true, reason: 'the turn has no outcome record' };
155
+ }
156
+ const ok = verdicts.includes(outcome.verdict);
157
+ return {
158
+ score: ok ? 1 : 0,
159
+ reason: ok
160
+ ? `verdict ${outcome.verdict}`
161
+ : `verdict ${outcome.verdict}, expected one of ${verdicts.join(', ')}`,
162
+ details: { verdict: outcome.verdict, expected: verdicts },
163
+ };
164
+ },
165
+ };
166
+ }
167
+ /**
168
+ * Whether the answer's plain check claims agree with the turn's outcome
169
+ * record: 1 when `compareAnswerToOutcome` found no mismatch, 0 when it found
170
+ * one, with the claim and what the record holds in the detail.
171
+ *
172
+ * Pass `{ expectMismatch: true }` for a case that is built to contradict
173
+ * itself, so the suite proves the comparison fires as well as that it stays
174
+ * silent.
175
+ */
176
+ export function claimMismatchScorer(opts = {}) {
177
+ const expectMismatch = opts.expectMismatch === true;
178
+ return {
179
+ name: 'claim-mismatch',
180
+ severity: 'gate',
181
+ score(turn) {
182
+ const found = turn.claimMismatch;
183
+ const ok = expectMismatch ? found !== undefined : found === undefined;
184
+ return {
185
+ score: ok ? 1 : 0,
186
+ reason: found
187
+ ? `${found.said}, but the record: ${found.recordSays}`
188
+ : 'no claim in the answer contradicts the record',
189
+ details: { claimMismatch: found ?? null, expectMismatch },
190
+ };
191
+ },
192
+ };
193
+ }
194
+ /**
195
+ * Score whether the turn was handed back to a person.
196
+ *
197
+ * Pass `{ expectKind }` for a case built so the model hands the task back, and
198
+ * the scorer checks it did, and for that kind; with nothing it checks the turn
199
+ * was not handed back. A gate: a scripted suite pins the kernel's side of it.
200
+ */
201
+ export function handedBackScorer(opts = {}) {
202
+ return {
203
+ name: 'handed-back',
204
+ severity: 'gate',
205
+ score(turn) {
206
+ const found = turn.handedBack;
207
+ const ok = opts.expectKind === undefined ? found === undefined : found?.kind === opts.expectKind;
208
+ return {
209
+ score: ok ? 1 : 0,
210
+ reason: found ? `handed back (${found.kind}): ${found.blocker}` : 'not handed back',
211
+ details: { handedBack: found ?? null, expectKind: opts.expectKind ?? null },
212
+ };
213
+ },
214
+ };
215
+ }
139
216
  /**
140
217
  * Judge the turn with a caller-supplied predicate.
141
218
  *
@@ -1 +1 @@
1
- {"version":3,"file":"scorers.js","sourceRoot":"","sources":["../../src/eval/scorers.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,CAAoB,EAAE,CAAoB;IAC5D,MAAM,KAAK,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CACnE,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/B,CAAA;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACzB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;gBAAE,SAAQ;YAC3B,GAAG,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1F,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB;IAC/B,OAAO;QACN,IAAI,EAAE,YAAY;QAClB,KAAK,CAAC,IAAc,EAAE,QAAkB;YACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAA;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAA;YAE7B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAA;YACjE,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACN,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,+BAA+B,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC7E,OAAO,EAAE,EAAE,MAAM,EAAE;iBACnB,CAAA;YACF,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;oBACN,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,YAAY,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B;oBACpE,OAAO,EAAE,EAAE,QAAQ,EAAE;iBACrB,CAAA;YACF,CAAC;YAED,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC3C,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,CAAA;YACzC,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAA;YACxC,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,CAAA;YAEzF,OAAO;gBACN,KAAK,EAAE,EAAE;gBACT,MAAM,EACL,EAAE,KAAK,CAAC;oBACP,CAAC,CAAC,qBAAqB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC3C,CAAC,CAAC,WAAW,OAAO,IAAI,QAAQ,CAAC,MAAM,uBAAuB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjH,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE;aACzD,CAAA;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAC/B,aAAgC,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAE9D,OAAO;QACN,IAAI,EAAE,YAAY;QAClB,oEAAoE;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,QAAQ,EAAE,MAAM;QAChB,KAAK,CAAC,IAAc;YACnB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,IAAI,CAAC,KAAK,EAAE,EAAE,CAAA;YAC1D,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAChF,OAAO;gBACN,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,EAAE,EAAE;oBACT,CAAC,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE;oBACjC,CAAC,CAAC,cAAc,IAAI,CAAC,UAAU,IAAI,SAAS,qBAAqB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzF,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;aACxC,CAAA;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAChD,OAAO;QACN,IAAI,EAAE,aAAa;QACnB,KAAK,CAAC,IAAc;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;YAC9B,OAAO;gBACN,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;gBAC1D,MAAM,EACL,IAAI,IAAI,QAAQ;oBACf,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,QAAQ;oBAC7B,CAAC,CAAC,gBAAgB,IAAI,oBAAoB,QAAQ,YAAY;gBAChE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3B,CAAA;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,cAAc,CAAC,GAAG,QAAkB;IACnD,OAAO;QACN,IAAI,EAAE,UAAU;QAChB,gEAAgE;QAChE,+DAA+D;QAC/D,QAAQ,EAAE,MAAM;QAChB,KAAK,CAAC,IAAc;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;YAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACzD,OAAO;gBACN,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM;gBACvF,MAAM,EACL,OAAO,CAAC,MAAM,KAAK,CAAC;oBACnB,CAAC,CAAC,aAAa,QAAQ,CAAC,MAAM,qBAAqB;oBACnD,CAAC,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpC,OAAO,EAAE,EAAE,OAAO,EAAE;aACpB,CAAA;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC3B,IAAY,EACZ,EAAkE;IAElE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"scorers.js","sourceRoot":"","sources":["../../src/eval/scorers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,18 @@
1
+ import type { AnswerClaimMismatch, TurnOutcome } from '../types/session/outcome.js';
1
2
  import type { StepResult } from '../types/session/step.js';
3
+ import type { CaseIntervals } from './bootstrap.js';
4
+ import type { ReportDisclosure } from './disclosure.js';
5
+ import type { RepeatReliability, SplitSummary } from './report-stats.js';
2
6
  import type { ScoreUncertainty } from './uncertainty.js';
7
+ /**
8
+ * Which part of a suite a case belongs to.
9
+ *
10
+ * `development` cases are the ones the harness was shaped against; a number
11
+ * measured on them says how well it fits them. `held-out` cases were not
12
+ * looked at while it was shaped, and only they say how it does on cases it
13
+ * has not seen.
14
+ */
15
+ export type EvalSplit = 'development' | 'held-out';
3
16
  /**
4
17
  * One case in a dataset: an input, and what a good run looks like.
5
18
  *
@@ -18,6 +31,11 @@ export interface EvalCase<TInput = unknown> {
18
31
  expectedTools?: readonly string[];
19
32
  /** Per-case scorer overrides; falls back to the dataset's scorers. */
20
33
  scorers?: readonly Scorer[];
34
+ /**
35
+ * `development` or `held-out`. Left out, the case is reported as
36
+ * unassigned. See {@link EvalSplit}.
37
+ */
38
+ split?: EvalSplit;
21
39
  }
22
40
  /** What actually happened, handed to every scorer. */
23
41
  export interface EvalTurn {
@@ -34,6 +52,18 @@ export interface EvalTurn {
34
52
  durationMs: number;
35
53
  /** Set when the turn threw rather than settling. */
36
54
  error?: string;
55
+ /**
56
+ * What the turn changed and what checked it, from the kernel's own record of
57
+ * its tool calls. Absent for a turn that never ran the loop.
58
+ */
59
+ outcome?: TurnOutcome;
60
+ /**
61
+ * A plain claim in the answer that the outcome record contradicts, found by
62
+ * `compareAnswerToOutcome`. Absent when there is none.
63
+ */
64
+ claimMismatch?: AnswerClaimMismatch;
65
+ /** The model handed the task back to a person and the turn ended there. Absent otherwise. */
66
+ handedBack?: import('../types/session/hand-back.js').HandBack;
37
67
  }
38
68
  /**
39
69
  * A judgement about one turn.
@@ -136,6 +166,10 @@ export interface CaseResult {
136
166
  * mattered. Absent when no gate missed.
137
167
  */
138
168
  failedGates?: readonly string[];
169
+ /** Which run of this case this is, from 1. Set on every run of a report that has `repeats`. */
170
+ repeat?: number;
171
+ /** The case's declared split, copied here so a report can be cut by it. */
172
+ split?: EvalSplit;
139
173
  }
140
174
  export interface ExperimentReport {
141
175
  name: string;
@@ -169,5 +203,45 @@ export interface ExperimentReport {
169
203
  */
170
204
  byScorer: Record<string, number>;
171
205
  durationMs: number;
206
+ /**
207
+ * Times each case ran. When it is above 1, `cases` holds every run of
208
+ * every case, in case order, each marked with its `repeat`, and `passed`,
209
+ * `failed` and `inconclusive` count runs. Absent in a report written before
210
+ * repeats existed, which is read as 1.
211
+ */
212
+ repeats?: number;
213
+ /** Seed of the bootstrap behind {@link intervals}. */
214
+ seed?: number;
215
+ /**
216
+ * Passed runs over judged runs. An inconclusive run is in neither number,
217
+ * so it cannot pull the rate either way.
218
+ */
219
+ passRate?: number;
220
+ /**
221
+ * 95% intervals for {@link mean} and {@link passRate}, by a bootstrap over
222
+ * cases. Absent from a report that predates it.
223
+ */
224
+ intervals?: CaseIntervals;
225
+ /** Per case: how many of its repeats passed. Present when `repeats` is above 1. */
226
+ caseSummaries?: readonly CaseRepeatSummary[];
227
+ /** Reliability across repeats. Present when `repeats` is above 1. */
228
+ reliability?: RepeatReliability;
229
+ /** Numbers per split. Keys appear only for splits that have cases. */
230
+ splits?: Partial<Record<EvalSplit | 'unassigned', SplitSummary>>;
231
+ /** What produced this report. */
232
+ disclosure?: ReportDisclosure;
233
+ }
234
+ /** How the repeats of one case went. */
235
+ export interface CaseRepeatSummary {
236
+ case: string;
237
+ split?: EvalSplit;
238
+ repeats: number;
239
+ passed: number;
240
+ failed: number;
241
+ inconclusive: number;
242
+ /** Mean score over the judged repeats; null when none was judged. */
243
+ mean: number | null;
244
+ /** Every repeat passed. An inconclusive repeat means this is false. */
245
+ passedEveryRepeat: boolean;
172
246
  }
173
247
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/eval/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/eval/types.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import type { ProviderErrorInfo } from '../../types/provider/index.js';
8
8
  import type { AuditEvent, AuditEventInput } from '../../types/session/audit.js';
9
9
  import type { TurnRecorderConfig } from '../../types/session/config.js';
10
10
  import { type SessionEvent } from '../../types/session/events.js';
11
+ import type { HandBack } from '../../types/session/hand-back.js';
11
12
  import type { ProjectId, TopicId } from '../../types/session/ids.js';
12
13
  import type { TurnOutcome } from '../../types/session/outcome.js';
13
14
  import type { StepResult } from '../../types/session/step.js';
@@ -135,6 +136,8 @@ export declare class TurnRecorder {
135
136
  setAbandonedJobIds(jobIds: readonly string[]): void;
136
137
  /** The turn's outcome record, set once as the loop ends; absent means none was kept. */
137
138
  setOutcome(outcome: TurnOutcome | undefined): void;
139
+ /** The model handed the task back; set once, as the turn ends. */
140
+ setHandedBack(handBack: HandBack | undefined): void;
138
141
  setSteps(steps: readonly StepResult[]): void;
139
142
  /** Record that a provider chain advanced, so the turn stops naming a member that did not serve. */
140
143
  setServingProvider(providerId: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"turn-recorder.d.ts","sourceRoot":"","sources":["../../../src/manager/session/turn-recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-recorder.d.ts","sourceRoot":"","sources":["../../../src/manager/session/turn-recorder.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { AUTO_CONTINUATION_USER_MESSAGE, REASONING_CUT_USER_MESSAGE, } from '../
3
3
  import { EMPTY_TOKEN_USAGE } from '../../constants/limits.js';
4
4
  import { NAMZU } from '../../constants/telemetry/index.js';
5
5
  import { resolveModelPricing } from '../../pricing/index.js';
6
+ import { compareAnswerToOutcome } from '../../runtime/query/turn/answer-claims.js';
6
7
  import { foldSessionLog } from '../../store/session-log/incremental.js';
7
8
  import { SessionMessageFold, turnHolder, withMessageId, } from '../../store/session-log/index.js';
8
9
  import { getActiveSpanContext } from '../../telemetry/runtime-accessors.js';
@@ -379,6 +380,13 @@ export class TurnRecorder {
379
380
  else
380
381
  this.#turn.outcome = outcome;
381
382
  }
383
+ /** The model handed the task back; set once, as the turn ends. */
384
+ setHandedBack(handBack) {
385
+ if (handBack === undefined)
386
+ delete this.#turn.handedBack;
387
+ else
388
+ this.#turn.handedBack = handBack;
389
+ }
382
390
  setSteps(steps) {
383
391
  this.#turn.steps = steps;
384
392
  }
@@ -466,6 +474,11 @@ export class TurnRecorder {
466
474
  settlement(status) {
467
475
  const turn = this.getTurn();
468
476
  const resultMessageId = this.#lastAssistantEntry()?.id;
477
+ // A task handed back says what blocks it in the model's words; those are not
478
+ // an answer to read claims out of.
479
+ const claimMismatch = turn.handedBack
480
+ ? undefined
481
+ : compareAnswerToOutcome(turn.result, turn.outcome);
469
482
  return {
470
483
  status,
471
484
  iterations: turn.currentIteration,
@@ -479,6 +492,8 @@ export class TurnRecorder {
479
492
  abandonedTaskIds: [...(turn.abandonedTaskIds ?? [])],
480
493
  abandonedJobIds: [...(turn.abandonedJobIds ?? [])],
481
494
  ...(turn.outcome ? { outcome: turn.outcome } : {}),
495
+ ...(claimMismatch ? { claimMismatch } : {}),
496
+ ...(turn.handedBack ? { handedBack: turn.handedBack } : {}),
482
497
  };
483
498
  }
484
499
  // ─── the log ───────────────────────────────────────────────────────────
@@ -1372,9 +1387,10 @@ export function snapshotTurnConfig(config) {
1372
1387
  export function eventDraft(event, turnId) {
1373
1388
  const { sessionId: _sessionId, turnId: _turnId, lineage: _lineage, v: _v, seq: _seq, generation: _generation, ...payload } = event;
1374
1389
  const draft = JSON.parse(JSON.stringify(payload));
1375
- // The outcome rides the live settlement only; the log keeps it in its own record.
1390
+ // The outcome, the claim mismatch and the hand-back ride the live settlement
1391
+ // only; the log keeps the outcome in its own record, the other two nowhere.
1376
1392
  if (draft.settlement !== undefined && typeof draft.settlement === 'object') {
1377
- const { outcome: _outcome, ...settlement } = draft.settlement;
1393
+ const { outcome: _outcome, claimMismatch: _claimMismatch, handedBack: _handedBack, ...settlement } = draft.settlement;
1378
1394
  draft.settlement = settlement;
1379
1395
  }
1380
1396
  return { ...draft, ...(turnId ? { turnId } : {}) };