@tangle-network/agent-eval 0.145.22 → 0.147.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 (153) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/analyst/index.d.ts +13 -13
  3. package/dist/analyst/index.js +6 -6
  4. package/dist/{backend-integrity-HVmWyOaX.d.ts → backend-integrity-Bz8nSrRE.d.ts} +2 -2
  5. package/dist/{backend-integrity-HVmWyOaX.d.ts.map → backend-integrity-Bz8nSrRE.d.ts.map} +1 -1
  6. package/dist/{benchmark-DTQ1RApl.d.ts → benchmark-Cn7ZMFNW.d.ts} +3 -3
  7. package/dist/{benchmark-DTQ1RApl.d.ts.map → benchmark-Cn7ZMFNW.d.ts.map} +1 -1
  8. package/dist/{benchmark-command-CDB_yKqS.js → benchmark-command-BTiysiYU.js} +11 -11
  9. package/dist/{benchmark-command-CDB_yKqS.js.map → benchmark-command-BTiysiYU.js.map} +1 -1
  10. package/dist/benchmarks/index.d.ts +4 -4
  11. package/dist/benchmarks/index.js +3 -3
  12. package/dist/campaign/index.d.ts +8 -8
  13. package/dist/campaign/index.js +5 -5
  14. package/dist/{campaign-CbQXcARJ.js → campaign-DCDdhuv2.js} +7 -7
  15. package/dist/{campaign-CbQXcARJ.js.map → campaign-DCDdhuv2.js.map} +1 -1
  16. package/dist/{capture-fetch-BZiO2cEH.d.ts → capture-fetch-BAx3Gntt.d.ts} +2 -2
  17. package/dist/{capture-fetch-BZiO2cEH.d.ts.map → capture-fetch-BAx3Gntt.d.ts.map} +1 -1
  18. package/dist/{chat-client-BJmwfnjN.js → chat-client-BX8Wh3fn.js} +3 -3
  19. package/dist/{chat-client-BJmwfnjN.js.map → chat-client-BX8Wh3fn.js.map} +1 -1
  20. package/dist/cli.js +2 -2
  21. package/dist/{client-YDkU5QST.d.ts → client-BV7icIfy.d.ts} +2 -2
  22. package/dist/{client-YDkU5QST.d.ts.map → client-BV7icIfy.d.ts.map} +1 -1
  23. package/dist/contract/index.d.ts +10 -10
  24. package/dist/contract/index.js +9 -9
  25. package/dist/{cost-ledger-BSe92yAV.js → cost-ledger-B1qx30B4.js} +2 -2
  26. package/dist/{cost-ledger-BSe92yAV.js.map → cost-ledger-B1qx30B4.js.map} +1 -1
  27. package/dist/{default-registry-DONui3mA.d.ts → default-registry-BUtRMRKk.d.ts} +6 -6
  28. package/dist/{default-registry-DONui3mA.d.ts.map → default-registry-BUtRMRKk.d.ts.map} +1 -1
  29. package/dist/{define-agent-eval-BGxmy4W6.js → define-agent-eval-BqWFz3sK.js} +3 -3
  30. package/dist/{define-agent-eval-BGxmy4W6.js.map → define-agent-eval-BqWFz3sK.js.map} +1 -1
  31. package/dist/{define-agent-eval-DrpgTVPp.d.ts → define-agent-eval-D52ClbX2.d.ts} +5 -5
  32. package/dist/{define-agent-eval-DrpgTVPp.d.ts.map → define-agent-eval-D52ClbX2.d.ts.map} +1 -1
  33. package/dist/{dspy-rlm-engine-B2nst4NR.js → dspy-rlm-engine-BmtOl_kP.js} +4 -4
  34. package/dist/{dspy-rlm-engine-B2nst4NR.js.map → dspy-rlm-engine-BmtOl_kP.js.map} +1 -1
  35. package/dist/{engine-Bc3seRPe.d.ts → engine-CIy18RTX.d.ts} +4 -4
  36. package/dist/{engine-Bc3seRPe.d.ts.map → engine-CIy18RTX.d.ts.map} +1 -1
  37. package/dist/{eval-campaign-DeGLwACc.js → eval-campaign-bmZ6NIIP.js} +2 -2
  38. package/dist/{eval-campaign-DeGLwACc.js.map → eval-campaign-bmZ6NIIP.js.map} +1 -1
  39. package/dist/{exact-types-CYFbvA5U.d.ts → exact-types-rdKFzEnK.d.ts} +2 -2
  40. package/dist/{exact-types-CYFbvA5U.d.ts.map → exact-types-rdKFzEnK.d.ts.map} +1 -1
  41. package/dist/experiment/index.d.ts +5 -5
  42. package/dist/experiment/index.js +3 -3
  43. package/dist/{experiment-tracker-DWHZBAYL.d.ts → experiment-tracker-D9VHwRm-.d.ts} +6 -24
  44. package/dist/experiment-tracker-D9VHwRm-.d.ts.map +1 -0
  45. package/dist/{experiment-tracker-C29gXM4B.js → experiment-tracker-Ym6rEQT1.js} +15 -4
  46. package/dist/experiment-tracker-Ym6rEQT1.js.map +1 -0
  47. package/dist/{external-optimizer-contracts-CKEY98bK.d.ts → external-optimizer-contracts-CSjDLLmr.d.ts} +2 -2
  48. package/dist/{external-optimizer-contracts-CKEY98bK.d.ts.map → external-optimizer-contracts-CSjDLLmr.d.ts.map} +1 -1
  49. package/dist/{external-optimizer-process-DYNizz8W.js → external-optimizer-process-C4AyCcQd.js} +2 -2
  50. package/dist/{external-optimizer-process-DYNizz8W.js.map → external-optimizer-process-C4AyCcQd.js.map} +1 -1
  51. package/dist/{external-optimizer-subprocess-r6dP9DAj.js → external-optimizer-subprocess-DU1KM8yV.js} +3 -3
  52. package/dist/{external-optimizer-subprocess-r6dP9DAj.js.map → external-optimizer-subprocess-DU1KM8yV.js.map} +1 -1
  53. package/dist/{feedback-trajectory-Cg9EDxKB.d.ts → feedback-trajectory-niGeR6uJ.d.ts} +3 -3
  54. package/dist/{feedback-trajectory-Cg9EDxKB.d.ts.map → feedback-trajectory-niGeR6uJ.d.ts.map} +1 -1
  55. package/dist/fuzz.js +1 -1
  56. package/dist/hosted/index.d.ts +2 -2
  57. package/dist/{index-DGrcBMbC.d.ts → index-BjBjxiVv.d.ts} +9 -9
  58. package/dist/{index-DGrcBMbC.d.ts.map → index-BjBjxiVv.d.ts.map} +1 -1
  59. package/dist/index-CKblBxtr.d.ts +1 -0
  60. package/dist/{index-CevPFhDT.d.ts → index-gtjtfLEJ.d.ts} +7 -7
  61. package/dist/{index-CevPFhDT.d.ts.map → index-gtjtfLEJ.d.ts.map} +1 -1
  62. package/dist/index.d.ts +21 -51
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +16 -125
  65. package/dist/index.js.map +1 -1
  66. package/dist/{integrity-DDoeWibF.d.ts → integrity-CGfpTE5-.d.ts} +2 -2
  67. package/dist/{integrity-DDoeWibF.d.ts.map → integrity-CGfpTE5-.d.ts.map} +1 -1
  68. package/dist/{kind-factory-CPmSd58s.js → kind-factory-DmAa0h3K.js} +7 -7
  69. package/dist/kind-factory-DmAa0h3K.js.map +1 -0
  70. package/dist/{llm-client-_UE4fU7Z.js → llm-client-BMuxYoZy.js} +2 -2
  71. package/dist/{llm-client-_UE4fU7Z.js.map → llm-client-BMuxYoZy.js.map} +1 -1
  72. package/dist/{llm-judge-B7ffRF8w.js → llm-judge-DrzsVS5k.js} +4 -4
  73. package/dist/{llm-judge-B7ffRF8w.js.map → llm-judge-DrzsVS5k.js.map} +1 -1
  74. package/dist/matrix-C-2Qx1Zr.d.ts +383 -0
  75. package/dist/matrix-C-2Qx1Zr.d.ts.map +1 -0
  76. package/dist/meta-eval/index.d.ts +1 -1
  77. package/dist/{metrics-Cl0L1KUy.js → metrics-Qv-cpptD.js} +15 -8
  78. package/dist/metrics-Qv-cpptD.js.map +1 -0
  79. package/dist/multishot/golden/index.d.ts +230 -0
  80. package/dist/multishot/golden/index.d.ts.map +1 -0
  81. package/dist/multishot/golden/index.js +7686 -0
  82. package/dist/multishot/golden/index.js.map +1 -0
  83. package/dist/multishot/index.d.ts +2 -380
  84. package/dist/multishot/index.d.ts.map +1 -1
  85. package/dist/multishot/index.js +2 -106
  86. package/dist/multishot/index.js.map +1 -1
  87. package/dist/openapi.json +1 -1
  88. package/dist/{produced-state-D3k45S9a.js → produced-state-Dtx60bUQ.js} +4 -4
  89. package/dist/{produced-state-D3k45S9a.js.map → produced-state-Dtx60bUQ.js.map} +1 -1
  90. package/dist/{promotion-policy-BKi5OK5l.d.ts → promotion-policy-CewdjfCJ.d.ts} +2 -2
  91. package/dist/{promotion-policy-BKi5OK5l.d.ts.map → promotion-policy-CewdjfCJ.d.ts.map} +1 -1
  92. package/dist/{provenance-Bb7Zmyj2.d.ts → provenance-LrOEOHQb.d.ts} +6 -6
  93. package/dist/{provenance-Bb7Zmyj2.d.ts.map → provenance-LrOEOHQb.d.ts.map} +1 -1
  94. package/dist/{registry-CZgEmVXb.d.ts → registry-CaqJIDdN.d.ts} +4 -4
  95. package/dist/{registry-CZgEmVXb.d.ts.map → registry-CaqJIDdN.d.ts.map} +1 -1
  96. package/dist/reporting.d.ts +1 -1
  97. package/dist/reporting.js +1 -1
  98. package/dist/{researcher-CC305Ed-.d.ts → researcher-BySlpla_.d.ts} +3 -3
  99. package/dist/{researcher-CC305Ed-.d.ts.map → researcher-BySlpla_.d.ts.map} +1 -1
  100. package/dist/rl.d.ts +3 -3
  101. package/dist/rl.js +2 -2
  102. package/dist/{semantic-concept-judge-BsY2Q0Oq.js → semantic-concept-judge-BI7Rrl5-.js} +3 -3
  103. package/dist/{semantic-concept-judge-BsY2Q0Oq.js.map → semantic-concept-judge-BI7Rrl5-.js.map} +1 -1
  104. package/dist/{sequential-CYwq6Ff_.d.ts → sequential-BhsrMupG.d.ts} +31 -2
  105. package/dist/sequential-BhsrMupG.d.ts.map +1 -0
  106. package/dist/{sequential-Br0mAPHA.js → sequential-CzK5DarL.js} +48 -6
  107. package/dist/sequential-CzK5DarL.js.map +1 -0
  108. package/dist/series-convergence-CjO2QdRW.js.map +1 -1
  109. package/dist/{series-convergence-C9G-GNYK.d.ts → series-convergence-D2fsoJ2w.d.ts} +4 -7
  110. package/dist/{series-convergence-C9G-GNYK.d.ts.map → series-convergence-D2fsoJ2w.d.ts.map} +1 -1
  111. package/dist/{server-cQXve8i4.js → server-D9wQclzG.js} +3 -3
  112. package/dist/{server-cQXve8i4.js.map → server-D9wQclzG.js.map} +1 -1
  113. package/dist/{skillopt-optimization-method-C9MrMgW9.d.ts → skillopt-optimization-method-BoC1Qccx.d.ts} +5 -5
  114. package/dist/{skillopt-optimization-method-C9MrMgW9.d.ts.map → skillopt-optimization-method-BoC1Qccx.d.ts.map} +1 -1
  115. package/dist/{skillopt-optimization-method-Cv3K4DaS.js → skillopt-optimization-method-C_UrqZs2.js} +4 -4
  116. package/dist/{skillopt-optimization-method-Cv3K4DaS.js.map → skillopt-optimization-method-C_UrqZs2.js.map} +1 -1
  117. package/dist/{statistical-heldout-fvxtHnKQ.d.ts → statistical-heldout-uxSpFEjm.d.ts} +2 -2
  118. package/dist/{statistical-heldout-fvxtHnKQ.d.ts.map → statistical-heldout-uxSpFEjm.d.ts.map} +1 -1
  119. package/dist/{store-otlp-CsptLYpN.js → store-otlp-CDYWW_8N.js} +2 -2
  120. package/dist/{store-otlp-CsptLYpN.js.map → store-otlp-CDYWW_8N.js.map} +1 -1
  121. package/dist/{store-tool-spans-Cq9mFd-q.js → store-tool-spans-CykkbOlv.js} +3 -3
  122. package/dist/{store-tool-spans-Cq9mFd-q.js.map → store-tool-spans-CykkbOlv.js.map} +1 -1
  123. package/dist/{store-tool-spans-CV0hRsUp.d.ts → store-tool-spans-D5FhM0_A.d.ts} +4 -4
  124. package/dist/{store-tool-spans-CV0hRsUp.d.ts.map → store-tool-spans-D5FhM0_A.d.ts.map} +1 -1
  125. package/dist/{task-failure-attributes-CpQ4y5RD.js → task-failure-attributes--ZTP3tYO.js} +2 -2
  126. package/dist/{task-failure-attributes-CpQ4y5RD.js.map → task-failure-attributes--ZTP3tYO.js.map} +1 -1
  127. package/dist/{tool-groups-CDDXNKhd.d.ts → tool-groups-zpufabP8.d.ts} +3 -3
  128. package/dist/tool-groups-zpufabP8.d.ts.map +1 -0
  129. package/dist/trace-repair/index.d.ts +1 -1
  130. package/dist/traces.d.ts +7 -7
  131. package/dist/traces.js +4 -4
  132. package/dist/types-B3jzCp0p.js +108 -0
  133. package/dist/types-B3jzCp0p.js.map +1 -0
  134. package/dist/{types-oAsa-fs4.d.ts → types-BohHewKK.d.ts} +2 -2
  135. package/dist/{types-oAsa-fs4.d.ts.map → types-BohHewKK.d.ts.map} +1 -1
  136. package/dist/{types-DABZgDGV.d.ts → types-C1Bmeb8X.d.ts} +3 -3
  137. package/dist/{types-DABZgDGV.d.ts.map → types-C1Bmeb8X.d.ts.map} +1 -1
  138. package/dist/{types-CWcPguwd.d.ts → types-ColZlZtc.d.ts} +2 -2
  139. package/dist/{types-CWcPguwd.d.ts.map → types-ColZlZtc.d.ts.map} +1 -1
  140. package/dist/{types-XBRdmbj8.d.ts → types-DOhGq4S1.d.ts} +1 -7
  141. package/dist/{types-XBRdmbj8.d.ts.map → types-DOhGq4S1.d.ts.map} +1 -1
  142. package/dist/wire/index.d.ts +2 -2
  143. package/dist/wire/index.js +1 -1
  144. package/docs/multishot-golden-records.md +102 -0
  145. package/package.json +7 -2
  146. package/dist/experiment-tracker-C29gXM4B.js.map +0 -1
  147. package/dist/experiment-tracker-DWHZBAYL.d.ts.map +0 -1
  148. package/dist/index-BgHYx1QG.d.ts +0 -1
  149. package/dist/kind-factory-CPmSd58s.js.map +0 -1
  150. package/dist/metrics-Cl0L1KUy.js.map +0 -1
  151. package/dist/sequential-Br0mAPHA.js.map +0 -1
  152. package/dist/sequential-CYwq6Ff_.d.ts.map +0 -1
  153. package/dist/tool-groups-CDDXNKhd.d.ts.map +0 -1
@@ -0,0 +1,230 @@
1
+ import { S as MultishotToolDefinition, T as MultishotTransportRequest, c as RunMultishotMatrixResult, f as RunMultishotOptions, s as RunMultishotMatrixOptions, v as MultishotPersona, y as MultishotResult } from "../../matrix-C-2Qx1Zr.js";
2
+ //#region src/multishot/golden/compare.d.ts
3
+ interface CompareOptions {
4
+ /** Stop after this many mismatches. A structural divergence high in the
5
+ * tree would otherwise report every leaf below it. */
6
+ limit?: number;
7
+ }
8
+ declare function compareJson(expected: unknown, actual: unknown, path: string, options?: CompareOptions): string[];
9
+ //#endregion
10
+ //#region src/multishot/golden/engine.d.ts
11
+ /** A conversation engine: one profile, one persona, one transcript. */
12
+ type MultishotGoldenEngine = (opts: RunMultishotOptions<MultishotPersona>) => Promise<MultishotResult>;
13
+ /** A matrix engine: profile x persona fan-out, judge slots, per-cell files. */
14
+ type MultishotMatrixGoldenEngine = (opts: RunMultishotMatrixOptions<MultishotPersona>) => Promise<RunMultishotMatrixResult>;
15
+ //#endregion
16
+ //#region src/multishot/golden/types.d.ts
17
+ /** One chat message as it reached a transport, normalized to the fields that
18
+ * decide behaviour. `content` is `null` when the message carried none. */
19
+ interface MultishotRecordedMessage {
20
+ role: string;
21
+ content: string | null;
22
+ /** Present on a tool result message. */
23
+ toolCallId?: string;
24
+ /** Present on an assistant message that dispatched tools. */
25
+ toolCalls?: Array<{
26
+ id: string;
27
+ name: string;
28
+ arguments: string;
29
+ }>;
30
+ }
31
+ /** One transport call, recorded in issue order. The ledger pins the sampling
32
+ * contract (per-leg temperature and token budget), the model rotation order,
33
+ * the tool advertisement, and the exact message log each leg saw — the four
34
+ * places two orchestrators diverge without the returned result changing. */
35
+ interface MultishotRecordedRequest {
36
+ leg: 'agent' | 'driver';
37
+ model: string;
38
+ temperature: number | null;
39
+ maxTokens: number | null;
40
+ /** The tool definitions advertised, in order, compared by value. `null` when
41
+ * the request carried no tools. An engine that rebuilds the array is free to
42
+ * do so; an engine that changes a name, a description or a parameter schema
43
+ * changes what the agent is offered, and that is the divergence. */
44
+ tools: MultishotToolDefinition[] | null;
45
+ messages: MultishotRecordedMessage[];
46
+ }
47
+ /** `MultishotResult` without wall-clock `durationMs`, which no two runs share. */
48
+ type RecordedMultishotResult = Omit<MultishotResult, 'durationMs'>;
49
+ /** A throw, reduced to what a caller can observe: the constructor name, the
50
+ * message, and the cell spend the throw declares. */
51
+ interface RecordedMultishotError {
52
+ name: string;
53
+ message: string;
54
+ /** Spend the throw carries for the matrix cost ceiling, or `null` when it
55
+ * carries none. `durationMs` is wall clock and is not recorded. */
56
+ cellSpend: {
57
+ costUsd: number;
58
+ kind: 'observed' | 'estimated' | 'uncaptured';
59
+ } | null;
60
+ }
61
+ type MultishotGoldenOutcome = {
62
+ kind: 'result';
63
+ result: RecordedMultishotResult;
64
+ } | {
65
+ kind: 'error';
66
+ error: RecordedMultishotError;
67
+ };
68
+ interface MultishotGoldenRecord {
69
+ id: string;
70
+ description: string;
71
+ requests: MultishotRecordedRequest[];
72
+ outcome: MultishotGoldenOutcome;
73
+ }
74
+ /** One judge call the matrix issued, recorded from the request body. */
75
+ interface RecordedJudgeRequest {
76
+ model: string;
77
+ temperature: number | null;
78
+ maxTokens: number | null;
79
+ messages: MultishotRecordedMessage[];
80
+ }
81
+ interface MultishotMatrixGoldenRecord {
82
+ id: string;
83
+ description: string;
84
+ requests: MultishotRecordedRequest[];
85
+ judgeRequests: RecordedJudgeRequest[];
86
+ /** The returned `MatrixResult`, with wall-clock and run-identity keys removed. */
87
+ matrix: unknown;
88
+ /** Every file the run persisted under its run directory, keyed by
89
+ * slash-separated relative path. JSON files are parsed and stripped of
90
+ * wall-clock keys; Markdown is kept as text with wall-clock tokens masked. */
91
+ files: Record<string, unknown>;
92
+ }
93
+ /** A frozen fixture version. Records are append-only: a behaviour change mints
94
+ * a NEW version file, never an edit to a released one. */
95
+ interface MultishotGoldenRecordSet {
96
+ version: string;
97
+ /** Engine the records were captured from, as `<module>#<export>`. */
98
+ recordedFrom: string;
99
+ /** Package version that captured them. */
100
+ recordedFromPackageVersion: string;
101
+ recordedAt: string;
102
+ scenarios: MultishotGoldenRecord[];
103
+ matrixScenarios: MultishotMatrixGoldenRecord[];
104
+ }
105
+ //#endregion
106
+ //#region src/multishot/golden/matrix-scenarios.d.ts
107
+ interface MultishotMatrixGoldenCase {
108
+ options: RunMultishotMatrixOptions<MultishotPersona>;
109
+ requests: MultishotRecordedRequest[];
110
+ /** Judge calls, filled while the case runs. Sorted before comparison. */
111
+ judgeRequests: RecordedJudgeRequest[];
112
+ /** Installs the deterministic judge wire on `globalThis.fetch` and returns
113
+ * the function that restores the previous one. */
114
+ installJudgeWire: () => () => void;
115
+ }
116
+ interface MultishotMatrixGoldenScenario {
117
+ readonly id: string;
118
+ readonly description: string;
119
+ readonly build: (runDir: string) => MultishotMatrixGoldenCase;
120
+ }
121
+ declare function multishotMatrixGoldenScenarios(): MultishotMatrixGoldenScenario[];
122
+ //#endregion
123
+ //#region src/multishot/golden/scenarios.d.ts
124
+ /** Options plus the ledger the scenario's transports fill while it runs. */
125
+ interface MultishotGoldenCase {
126
+ options: RunMultishotOptions<MultishotPersona>;
127
+ /** Every transport call, in issue order. Populated by running the case. */
128
+ requests: MultishotRecordedRequest[];
129
+ }
130
+ interface MultishotGoldenScenario {
131
+ readonly id: string;
132
+ readonly description: string;
133
+ /** Fresh options and a fresh ledger. Scripted transports carry per-run
134
+ * state, so an engine run and a re-run must never share a case. */
135
+ readonly build: () => MultishotGoldenCase;
136
+ }
137
+ /** Every recorded shot scenario, in record order. */
138
+ declare function multishotGoldenScenarios(): MultishotGoldenScenario[];
139
+ //#endregion
140
+ //#region src/multishot/golden/harness.d.ts
141
+ interface MultishotGoldenScenarioReport {
142
+ id: string;
143
+ description: string;
144
+ ok: boolean;
145
+ mismatches: string[];
146
+ }
147
+ interface MultishotGoldenReport {
148
+ version: string;
149
+ recordedFrom: string;
150
+ ok: boolean;
151
+ scenarios: MultishotGoldenScenarioReport[];
152
+ }
153
+ declare class MultishotGoldenMismatchError extends Error {
154
+ readonly scenarioId: string;
155
+ readonly mismatches: string[];
156
+ readonly version: string;
157
+ constructor(scenarioId: string, mismatches: string[], version: string);
158
+ }
159
+ /** Run one scenario and report every field that diverged from the record. */
160
+ declare function checkMultishotGoldenScenario(opts: {
161
+ engine: MultishotGoldenEngine;
162
+ scenario: MultishotGoldenScenario;
163
+ records?: MultishotGoldenRecordSet;
164
+ }): Promise<MultishotGoldenScenarioReport>;
165
+ /** Same as `checkMultishotGoldenScenario`, but throws on divergence. */
166
+ declare function assertMultishotGoldenScenario(opts: {
167
+ engine: MultishotGoldenEngine;
168
+ scenario: MultishotGoldenScenario;
169
+ records?: MultishotGoldenRecordSet;
170
+ }): Promise<void>;
171
+ /** Run every shot scenario. Never throws on divergence — read `ok`. */
172
+ declare function checkMultishotGolden(opts: {
173
+ engine: MultishotGoldenEngine;
174
+ records?: MultishotGoldenRecordSet;
175
+ only?: string[];
176
+ }): Promise<MultishotGoldenReport>;
177
+ /** Run one matrix scenario against `runDir` and report every divergence. */
178
+ declare function checkMultishotMatrixGoldenScenario(opts: {
179
+ engine: MultishotMatrixGoldenEngine;
180
+ scenario: MultishotMatrixGoldenScenario;
181
+ /** An empty directory the engine may write its per-cell files into. */
182
+ runDir: string;
183
+ records?: MultishotGoldenRecordSet;
184
+ }): Promise<MultishotGoldenScenarioReport>;
185
+ declare function assertMultishotMatrixGoldenScenario(opts: {
186
+ engine: MultishotMatrixGoldenEngine;
187
+ scenario: MultishotMatrixGoldenScenario;
188
+ runDir: string;
189
+ records?: MultishotGoldenRecordSet;
190
+ }): Promise<void>;
191
+ //#endregion
192
+ //#region src/multishot/golden/recording.d.ts
193
+ /** Keys whose value is wall clock or run identity. Two runs never agree on
194
+ * them, so they are removed before comparison instead of being compared. */
195
+ declare const VOLATILE_KEYS: ReadonlySet<string>;
196
+ declare function recordMessage(raw: unknown): MultishotRecordedMessage;
197
+ declare function recordRequest(leg: 'agent' | 'driver', req: MultishotTransportRequest): MultishotRecordedRequest;
198
+ /** Judge calls reach the wire as an OpenAI-compat body, not through a
199
+ * transport, so they are recorded from the request body the stub receives. */
200
+ declare function recordJudgeRequest(body: Record<string, unknown>): RecordedJudgeRequest;
201
+ declare function recordResult(result: MultishotResult): RecordedMultishotResult;
202
+ declare function recordError(err: unknown): RecordedMultishotError;
203
+ /** Deep copy with every wall-clock and run-identity key removed. */
204
+ declare function stripVolatile(value: unknown): unknown;
205
+ /** The matrix summary Markdown carries a rendered duration. Mask it so the rest
206
+ * of the document — cell counts, pass rate, mean, cost, the uncaptured warning
207
+ * — stays under comparison.
208
+ *
209
+ * A duration the mask does not recognise would stay in the comparison and make
210
+ * every run mismatch on a definitionally irreproducible field, so an
211
+ * unmaskable duration line fails loud instead. */
212
+ declare function maskVolatileMarkdown(text: string): string;
213
+ /** Judge calls fan out through `Promise.all` across three slots, so their
214
+ * issue order is an implementation detail of the cell body, not behaviour a
215
+ * caller can observe. Their CONTENT is behaviour, so they are compared as a
216
+ * set with a stable order. */
217
+ declare function sortJudgeRequests(requests: readonly RecordedJudgeRequest[]): RecordedJudgeRequest[];
218
+ /** Every file under `dir`, keyed by slash-separated relative path. JSON is
219
+ * parsed and stripped of wall-clock keys; Markdown keeps its text with the
220
+ * rendered duration masked; anything else is kept verbatim. */
221
+ declare function readRunDir(dir: string): Record<string, unknown>;
222
+ //#endregion
223
+ //#region src/multishot/golden/records/index.d.ts
224
+ /** Version a check uses when the caller names none. */
225
+ declare const CURRENT_MULTISHOT_GOLDEN_VERSION = "v1";
226
+ declare function multishotGoldenVersions(): string[];
227
+ declare function goldenRecords(version?: string): MultishotGoldenRecordSet;
228
+ //#endregion
229
+ export { CURRENT_MULTISHOT_GOLDEN_VERSION, type CompareOptions, type MultishotGoldenCase, type MultishotGoldenEngine, MultishotGoldenMismatchError, type MultishotGoldenOutcome, type MultishotGoldenRecord, type MultishotGoldenRecordSet, type MultishotGoldenReport, type MultishotGoldenScenario, type MultishotGoldenScenarioReport, type MultishotMatrixGoldenCase, type MultishotMatrixGoldenEngine, type MultishotMatrixGoldenRecord, type MultishotMatrixGoldenScenario, type MultishotRecordedMessage, type MultishotRecordedRequest, type RecordedJudgeRequest, type RecordedMultishotError, type RecordedMultishotResult, VOLATILE_KEYS, assertMultishotGoldenScenario, assertMultishotMatrixGoldenScenario, checkMultishotGolden, checkMultishotGoldenScenario, checkMultishotMatrixGoldenScenario, compareJson, goldenRecords, maskVolatileMarkdown, multishotGoldenScenarios, multishotGoldenVersions, multishotMatrixGoldenScenarios, readRunDir, recordError, recordJudgeRequest, recordMessage, recordRequest, recordResult, sortJudgeRequests, stripVolatile };
230
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/multishot/golden/compare.ts","../../../src/multishot/golden/engine.ts","../../../src/multishot/golden/types.ts","../../../src/multishot/golden/matrix-scenarios.ts","../../../src/multishot/golden/scenarios.ts","../../../src/multishot/golden/harness.ts","../../../src/multishot/golden/recording.ts","../../../src/multishot/golden/records/index.ts"],"mappings":";;UAQiB;;;EAGf;;iBAGc,YACd,mBACA,iBACA,cACA,UAAS;;;;KCPC,yBACV,MAAM,oBAAoB,sBACvB,QAAQ;;KAGD,+BACV,MAAM,0BAA0B,sBAC7B,QAAQ;;;;;UCRI;EACf;EACA;;EAEA;;EAEA,YAAY;IAAQ;IAAY;IAAc;;;;;;;UAO/B;EACf;EACA;EACA;EACA;;;;;EAKA,OAAO;EACP,UAAU;;;KAIA,0BAA0B,KAAK;;;UAI1B;EACf;EACA;;;EAGA;IAAa;IAAiB;;;KAGpB;EACN;EAAgB,QAAQ;;EACxB;EAAe,OAAO;;UAEX;EACf;EACA;EACA,UAAU;EACV,SAAS;;;UAIM;EACf;EACA;EACA;EACA,UAAU;;UAGK;EACf;EACA;EACA,UAAU;EACV,eAAe;;EAEf;;;;EAIA,OAAO;;;;UAKQ;EACf;;EAEA;;EAEA;EACA;EACA,WAAW;EACX,iBAAiB;;;;UCpEF;EACf,SAAS,0BAA0B;EACnC,UAAU;;EAEV,eAAe;;;EAGf;;UAGe;WACN;WACA;WACA,QAAQ,mBAAmB;;iBAqJtB,kCAAkC;;;;UCzJjC;EACf,SAAS,oBAAoB;;EAE7B,UAAU;;UAGK;WACN;WACA;;;WAGA,aAAa;;;iBA4WR,4BAA4B;;;UCzX3B;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA,WAAW;;cAGA,qCAAqC;WAErC;WACA;WACA;EAHX,YACW,oBACA,sBACA;;;iBAoCS,6BAA6B;EACjD,QAAQ;EACR,UAAU;EACV,UAAU;IACR,QAAQ;;iBAoCU,8BAA8B;EAClD,QAAQ;EACR,UAAU;EACV,UAAU;IACR;;iBASkB,qBAAqB;EACzC,QAAQ;EACR,UAAU;EACV;IACE,QAAQ;;iBA6BU,mCAAmC;EACvD,QAAQ;EACR,UAAU;;EAEV;EACA,UAAU;IACR,QAAQ;iBA0BU,oCAAoC;EACxD,QAAQ;EACR,UAAU;EACV;EACA,UAAU;IACR;;;;;cC1LS,eAAe;iBAOZ,cAAc,eAAe;iBA0B7B,cACd,yBACA,KAAK,4BACJ;;;iBAaa,mBAAmB,MAAM,0BAA0B;iBASnD,aAAa,QAAQ,kBAAkB;iBAKvC,YAAY,eAAe;;iBAU3B,cAAc;;;;;;;;iBAoBd,qBAAqB;;;;;iBAgBrB,kBACd,mBAAmB,yBAClB;;;;iBAWa,WAAW,cAAc;;;;cCpI5B;iBAoDG;iBAIA,cACd,mBACC"}