@tangle-network/agent-eval 0.108.1 → 0.110.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 (175) hide show
  1. package/dist/analyst/index.d.ts +10 -12
  2. package/dist/analyst/index.js +8 -11
  3. package/dist/analyst/index.js.map +1 -1
  4. package/dist/{analyze-runs-DJYpep3L.d.ts → analyze-runs-Dmz6LA9e.d.ts} +4 -4
  5. package/dist/{baseline-Bbid3WoO.d.ts → baseline-DsNteOgR.d.ts} +32 -2
  6. package/dist/belief-state/index.d.ts +6 -6
  7. package/dist/benchmarks/index.d.ts +4 -4
  8. package/dist/benchmarks/index.js +7 -8
  9. package/dist/builder-eval/index.d.ts +4 -4
  10. package/dist/builder-eval/index.js +1 -2
  11. package/dist/builder-eval/index.js.map +1 -1
  12. package/dist/{calibration-BPmzuVPk.d.ts → calibration-Dz8TQV4y.d.ts} +2 -2
  13. package/dist/campaign/index.d.ts +161 -20
  14. package/dist/campaign/index.js +15 -8
  15. package/dist/{chunk-LOJ2QVCE.js → chunk-2IY4ILP4.js} +2 -2
  16. package/dist/{chunk-LIEJUH2I.js → chunk-6PL5MGDL.js} +9 -9
  17. package/dist/{chunk-2OGPXHOB.js → chunk-7NX6ZSBG.js} +36 -7
  18. package/dist/chunk-7NX6ZSBG.js.map +1 -0
  19. package/dist/{chunk-OVPVM4JC.js → chunk-GTERJI6Q.js} +4 -4
  20. package/dist/{chunk-YEHAEDUD.js → chunk-IMWDSFUM.js} +604 -2
  21. package/dist/chunk-IMWDSFUM.js.map +1 -0
  22. package/dist/{chunk-JZXGWLK5.js → chunk-MHNQWM4I.js} +62 -6
  23. package/dist/chunk-MHNQWM4I.js.map +1 -0
  24. package/dist/{chunk-QRVS7MX4.js → chunk-OW47B5WA.js} +3 -5
  25. package/dist/{chunk-QRVS7MX4.js.map → chunk-OW47B5WA.js.map} +1 -1
  26. package/dist/{chunk-DBDRR6GF.js → chunk-PLOMR3HP.js} +48 -2
  27. package/dist/chunk-PLOMR3HP.js.map +1 -0
  28. package/dist/{chunk-GDZAWO2I.js → chunk-QFGTU7MT.js} +2 -2
  29. package/dist/{chunk-6SKVFBTR.js → chunk-RNB2NICW.js} +115 -13
  30. package/dist/chunk-RNB2NICW.js.map +1 -0
  31. package/dist/{chunk-V7HNA47Z.js → chunk-RSVSSZKF.js} +5 -5
  32. package/dist/{chunk-5PK3626Q.js → chunk-XRGOKCMO.js} +88 -17
  33. package/dist/chunk-XRGOKCMO.js.map +1 -0
  34. package/dist/{code-agent-session-rnJKlqmT.d.ts → code-agent-session-yitf9I-F.d.ts} +1 -1
  35. package/dist/contract/index.d.ts +20 -23
  36. package/dist/contract/index.js +11 -13
  37. package/dist/contract/index.js.map +1 -1
  38. package/dist/{control-B8UthSBL.d.ts → control-U8LBKUES.d.ts} +5 -6
  39. package/dist/control.d.ts +8 -9
  40. package/dist/control.js +6 -8
  41. package/dist/{dataset-DS7ytHZU.d.ts → dataset-NENEzRgk.d.ts} +1 -1
  42. package/dist/{default-registry-BswHCXnU.d.ts → default-registry-Bcf1uKVI.d.ts} +1 -2
  43. package/dist/{emitter-C2rqGH_l.d.ts → emitter-BRchAAAx.d.ts} +2 -2
  44. package/dist/{failure-cluster-DH9Flgcf.d.ts → failure-cluster-C48PiReX.d.ts} +2 -2
  45. package/dist/feedback-trajectory-pDcz1lQ1.d.ts +348 -0
  46. package/dist/{gepa-B3x5Ulcv.d.ts → gepa-BUNP3606.d.ts} +143 -2
  47. package/dist/hosted/index.d.ts +7 -7
  48. package/dist/{index-pPtfoIJO.d.ts → index-Dc3VLGhp.d.ts} +2 -2
  49. package/dist/index.d.ts +645 -61
  50. package/dist/index.js +1282 -190
  51. package/dist/index.js.map +1 -1
  52. package/dist/{insight-report-B4xrdwEK.d.ts → insight-report-D4cXFsLt.d.ts} +1 -1
  53. package/dist/{integrity-DqGZg3st.d.ts → integrity-qemeBAyx.d.ts} +1 -1
  54. package/dist/{types-D1ytG0Yg.d.ts → kind-factory-20hcaYpf.d.ts} +169 -2
  55. package/dist/meta-eval/index.d.ts +5 -5
  56. package/dist/meta-eval/index.js +1 -2
  57. package/dist/meta-eval/index.js.map +1 -1
  58. package/dist/{multi-layer-verifier-CI4jdX-q.d.ts → multi-layer-verifier-BsqKuLyN.d.ts} +1 -1
  59. package/dist/multishot/index.d.ts +3 -3
  60. package/dist/openapi.json +1 -1
  61. package/dist/pipelines/index.d.ts +6 -7
  62. package/dist/pipelines/index.js +3 -6
  63. package/dist/pipelines/index.js.map +1 -1
  64. package/dist/{policy-edit-DQUXYMDm.d.ts → policy-edit-D2bBDZDf.d.ts} +2 -2
  65. package/dist/{pre-registration-BUhVPzE7.d.ts → pre-registration-BepVVa6P.d.ts} +3 -3
  66. package/dist/{provenance-DdDhf6cg.d.ts → provenance-DMvsfknv.d.ts} +3 -5
  67. package/dist/{query-0aTmbmQe.d.ts → query-Ck190MOd.d.ts} +2 -2
  68. package/dist/{release-report-DeJpsBiA.d.ts → release-report-oBfOz8ku.d.ts} +3 -3
  69. package/dist/reporting.d.ts +8 -8
  70. package/dist/{researcher-Wc7dx6GM.d.ts → researcher-CaH0CwFC.d.ts} +6 -6
  71. package/dist/rl.d.ts +568 -15
  72. package/dist/rl.js +4 -4
  73. package/dist/{rubric-predictive-validity-DPnyG-CE.d.ts → rubric-predictive-validity-C-fMteAW.d.ts} +1 -1
  74. package/dist/{run-record-I-Z3JNvO.d.ts → run-record-DksGsfgv.d.ts} +1 -1
  75. package/dist/{runtime-trajectory-iW9IhV3e.d.ts → runtime-trajectory-h5i0SZUj.d.ts} +1 -1
  76. package/dist/{schema-m0gsnbt3.d.ts → schema-SGWcK9wa.d.ts} +1 -1
  77. package/dist/{semantic-concept-judge-BmNZPB_j.d.ts → semantic-concept-judge-D7z6JCLZ.d.ts} +57 -4
  78. package/dist/{store-BcFXE6LG.d.ts → store-BsVi7ncX.d.ts} +1 -1
  79. package/dist/storyboard/index.d.ts +1 -1
  80. package/dist/{summary-report-QMZVe3P-.d.ts → summary-report-Bz-0-t8v.d.ts} +2 -2
  81. package/dist/{test-graded-scenario-DeODGLra.d.ts → test-graded-scenario-mzYBKspu.d.ts} +3 -3
  82. package/dist/traces.d.ts +54 -11
  83. package/dist/traces.js +25 -27
  84. package/dist/{types-BdIv5dvA.d.ts → types-v--ctu-b.d.ts} +2 -2
  85. package/dist/wire/index.d.ts +5 -6
  86. package/package.json +1 -71
  87. package/dist/adapters/http.d.ts +0 -142
  88. package/dist/adapters/http.js +0 -203
  89. package/dist/adapters/http.js.map +0 -1
  90. package/dist/adapters/langchain.d.ts +0 -95
  91. package/dist/adapters/langchain.js +0 -34
  92. package/dist/adapters/langchain.js.map +0 -1
  93. package/dist/adapters/otel.d.ts +0 -112
  94. package/dist/adapters/otel.js +0 -110
  95. package/dist/adapters/otel.js.map +0 -1
  96. package/dist/chunk-2OGPXHOB.js.map +0 -1
  97. package/dist/chunk-45EEMHTC.js +0 -35
  98. package/dist/chunk-45EEMHTC.js.map +0 -1
  99. package/dist/chunk-5BKGXME7.js +0 -65
  100. package/dist/chunk-5BKGXME7.js.map +0 -1
  101. package/dist/chunk-5PK3626Q.js.map +0 -1
  102. package/dist/chunk-6SK5VFYK.js +0 -100
  103. package/dist/chunk-6SK5VFYK.js.map +0 -1
  104. package/dist/chunk-6SKVFBTR.js.map +0 -1
  105. package/dist/chunk-DBDRR6GF.js.map +0 -1
  106. package/dist/chunk-DJWX3GVS.js +0 -81
  107. package/dist/chunk-DJWX3GVS.js.map +0 -1
  108. package/dist/chunk-FOUG2VVS.js +0 -855
  109. package/dist/chunk-FOUG2VVS.js.map +0 -1
  110. package/dist/chunk-JZXGWLK5.js.map +0 -1
  111. package/dist/chunk-K7QEIHHJ.js +0 -613
  112. package/dist/chunk-K7QEIHHJ.js.map +0 -1
  113. package/dist/chunk-KKHDIONI.js +0 -414
  114. package/dist/chunk-KKHDIONI.js.map +0 -1
  115. package/dist/chunk-KMPRBJK4.js +0 -74
  116. package/dist/chunk-KMPRBJK4.js.map +0 -1
  117. package/dist/chunk-Q2JRAWRI.js +0 -196
  118. package/dist/chunk-Q2JRAWRI.js.map +0 -1
  119. package/dist/chunk-RZTMDUO7.js +0 -49
  120. package/dist/chunk-RZTMDUO7.js.map +0 -1
  121. package/dist/chunk-STGVSCDH.js +0 -202
  122. package/dist/chunk-STGVSCDH.js.map +0 -1
  123. package/dist/chunk-YEHAEDUD.js.map +0 -1
  124. package/dist/control-runtime-Acf9CGhw.d.ts +0 -182
  125. package/dist/corpus-eBVwhCp1.d.ts +0 -560
  126. package/dist/counterfactual-DlOz8PBx.d.ts +0 -85
  127. package/dist/diagnose.d.ts +0 -252
  128. package/dist/diagnose.js +0 -382
  129. package/dist/diagnose.js.map +0 -1
  130. package/dist/feedback-trajectory-C9KCo8ag.d.ts +0 -169
  131. package/dist/governance/index.d.ts +0 -135
  132. package/dist/governance/index.js +0 -18
  133. package/dist/governance/index.js.map +0 -1
  134. package/dist/groundedness/index.d.ts +0 -112
  135. package/dist/groundedness/index.js +0 -77
  136. package/dist/groundedness/index.js.map +0 -1
  137. package/dist/harness-optimizer-mOl9XX_O.d.ts +0 -106
  138. package/dist/kind-factory-DvIGo_cP.d.ts +0 -171
  139. package/dist/knowledge/index.d.ts +0 -103
  140. package/dist/knowledge/index.js +0 -18
  141. package/dist/knowledge/index.js.map +0 -1
  142. package/dist/pareto-E-pembql.d.ts +0 -81
  143. package/dist/perf/index.d.ts +0 -123
  144. package/dist/perf/index.js +0 -18
  145. package/dist/perf/index.js.map +0 -1
  146. package/dist/prm/index.d.ts +0 -104
  147. package/dist/prm/index.js +0 -265
  148. package/dist/prm/index.js.map +0 -1
  149. package/dist/product-benchmark/index.d.ts +0 -247
  150. package/dist/product-benchmark/index.js +0 -37
  151. package/dist/product-benchmark/index.js.map +0 -1
  152. package/dist/red-team-KmmiqBlY.d.ts +0 -63
  153. package/dist/redact-B40YG2M_.d.ts +0 -45
  154. package/dist/rubric-Cc6UHvUb.d.ts +0 -73
  155. package/dist/run-critic-CmMf05uV.d.ts +0 -56
  156. package/dist/sink-fetch-B1Yg4Til.d.ts +0 -101
  157. package/dist/telemetry/file.d.ts +0 -19
  158. package/dist/telemetry/file.js +0 -45
  159. package/dist/telemetry/file.js.map +0 -1
  160. package/dist/telemetry/index.d.ts +0 -38
  161. package/dist/telemetry/index.js +0 -130
  162. package/dist/telemetry/index.js.map +0 -1
  163. package/dist/testing-C21CHsq2.d.ts +0 -20
  164. package/dist/testing.d.ts +0 -1
  165. package/dist/testing.js +0 -8
  166. package/dist/testing.js.map +0 -1
  167. package/dist/trajectory-2TkpSEVh.d.ts +0 -33
  168. package/dist/workflow/index.d.ts +0 -496
  169. package/dist/workflow/index.js +0 -2178
  170. package/dist/workflow/index.js.map +0 -1
  171. /package/dist/{chunk-LOJ2QVCE.js.map → chunk-2IY4ILP4.js.map} +0 -0
  172. /package/dist/{chunk-LIEJUH2I.js.map → chunk-6PL5MGDL.js.map} +0 -0
  173. /package/dist/{chunk-OVPVM4JC.js.map → chunk-GTERJI6Q.js.map} +0 -0
  174. /package/dist/{chunk-GDZAWO2I.js.map → chunk-QFGTU7MT.js.map} +0 -0
  175. /package/dist/{chunk-V7HNA47Z.js.map → chunk-RSVSSZKF.js.map} +0 -0
@@ -1,100 +0,0 @@
1
- import {
2
- buildTrajectory
3
- } from "./chunk-RZTMDUO7.js";
4
- import {
5
- TraceEmitter
6
- } from "./chunk-TVVP3ZZQ.js";
7
- import {
8
- NotFoundError,
9
- ValidationError
10
- } from "./chunk-ONWEPEDO.js";
11
-
12
- // src/counterfactual.ts
13
- async function runCounterfactual(store, originalRunId, mutation, runner) {
14
- const originalRun = await store.getRun(originalRunId);
15
- if (!originalRun) throw new NotFoundError(`counterfactual: run ${originalRunId} not found`);
16
- const trajectory = await buildTrajectory(store, originalRunId);
17
- if (mutation.at < 0 || mutation.at >= trajectory.steps.length) {
18
- throw new ValidationError(
19
- `counterfactual: mutation.at=${mutation.at} out of range [0, ${trajectory.steps.length})`
20
- );
21
- }
22
- const targetStep = trajectory.steps[mutation.at];
23
- const mutatedStep = applyMutation(targetStep, mutation);
24
- const cfEmitter = new TraceEmitter(store);
25
- await cfEmitter.startRun({
26
- scenarioId: originalRun.scenarioId,
27
- variantId: originalRun.variantId ? `${originalRun.variantId}+cf:${mutation.kind}@${mutation.at}` : `cf:${mutation.kind}@${mutation.at}`,
28
- projectId: originalRun.projectId,
29
- parentRunId: originalRunId,
30
- layer: "meta",
31
- tags: { counterfactual: "true", mutationKind: mutation.kind, mutationAt: String(mutation.at) }
32
- });
33
- await runner.executeFrom(
34
- {
35
- originalRunId,
36
- originalTrajectory: trajectory,
37
- prefix: trajectory.steps.slice(0, mutation.at),
38
- mutation,
39
- mutatedStep
40
- },
41
- cfEmitter
42
- );
43
- const counterfactual = await store.getRun(cfEmitter.runId);
44
- const delta = {
45
- originalOutcomeScore: originalRun.outcome?.score ?? null,
46
- counterfactualOutcomeScore: counterfactual?.outcome?.score ?? null,
47
- deltaScore: originalRun.outcome?.score !== void 0 && counterfactual?.outcome?.score !== void 0 ? counterfactual.outcome.score - originalRun.outcome.score : null
48
- };
49
- return { counterfactualRunId: cfEmitter.runId, originalRunId, mutation, delta };
50
- }
51
- function applyMutation(step, mutation) {
52
- if (mutation.kind === "swap-model" && step.span.kind === "llm") {
53
- const llm = step.span;
54
- return { ...step, span: { ...llm, model: mutation.newModel } };
55
- }
56
- if (mutation.kind === "swap-tool-result" && step.span.kind === "tool") {
57
- const tool = step.span;
58
- return { ...step, span: { ...tool, result: mutation.newResult } };
59
- }
60
- if (mutation.kind === "inject-system-message" && step.span.kind === "llm") {
61
- const llm = step.span;
62
- return {
63
- ...step,
64
- span: {
65
- ...llm,
66
- messages: [{ role: "system", content: mutation.content }, ...llm.messages]
67
- }
68
- };
69
- }
70
- if (mutation.kind === "custom") return mutation.apply(step);
71
- return step;
72
- }
73
- function attributeCounterfactuals(results) {
74
- const grouped = /* @__PURE__ */ new Map();
75
- for (const r of results) {
76
- const arr = grouped.get(r.mutation.kind) ?? [];
77
- arr.push(r);
78
- grouped.set(r.mutation.kind, arr);
79
- }
80
- const out = [];
81
- for (const [kind, items] of grouped) {
82
- const deltas = items.map((i) => i.delta.deltaScore).filter((d) => typeof d === "number");
83
- if (deltas.length === 0) continue;
84
- const meanAbs = deltas.reduce((a, b) => a + Math.abs(b), 0) / deltas.length;
85
- const meanSigned = deltas.reduce((a, b) => a + b, 0) / deltas.length;
86
- out.push({
87
- mutationKind: kind,
88
- n: deltas.length,
89
- meanAbsDelta: meanAbs,
90
- meanSignedDelta: meanSigned
91
- });
92
- }
93
- return out.sort((a, b) => b.meanAbsDelta - a.meanAbsDelta);
94
- }
95
-
96
- export {
97
- runCounterfactual,
98
- attributeCounterfactuals
99
- };
100
- //# sourceMappingURL=chunk-6SK5VFYK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/counterfactual.ts"],"sourcesContent":["/**\n * Counterfactual replay — \"what would have happened if we'd changed\n * exactly one thing at turn N?\"\n *\n * The framework does NOT drive the agent — it sets up the replay\n * context (prior spans, prior state, mutation spec) and records the\n * resulting divergence. Consumers supply an `executeFrom(ctx)` callback\n * that runs their agent starting from turn N with the mutation applied.\n *\n * Counterfactual runs are recorded as a new Run with `layer='meta'` and\n * `parentRunId = originalRunId`, so downstream diff + correlation\n * pipelines see them natively.\n */\n\nimport { NotFoundError, ValidationError } from './errors'\nimport { TraceEmitter } from './trace/emitter'\nimport type { LlmSpan, Span, ToolSpan } from './trace/schema'\nimport type { TraceStore } from './trace/store'\nimport { buildTrajectory, type Trajectory, type TrajectoryStep } from './trajectory'\n\nexport type CounterfactualMutation =\n | { kind: 'swap-model'; at: number; newModel: string }\n | { kind: 'swap-tool-result'; at: number; newResult: unknown }\n | { kind: 'truncate-after'; at: number }\n | { kind: 'inject-system-message'; at: number; content: string }\n | {\n kind: 'custom'\n at: number\n describe: string\n apply: (step: TrajectoryStep) => TrajectoryStep\n }\n\nexport interface CounterfactualContext {\n originalRunId: string\n originalTrajectory: Trajectory\n /** Steps up to (but not including) the mutation point — the prefix the\n * replayed agent inherits as its prior conversation/tool history. */\n prefix: TrajectoryStep[]\n mutation: CounterfactualMutation\n /** Pre-applied mutation on the step at `mutation.at`. Consumers use this\n * as the FIRST step the replayed agent emits (they decide whether to\n * re-emit it or continue from there). */\n mutatedStep: TrajectoryStep\n}\n\nexport interface CounterfactualResult {\n counterfactualRunId: string\n originalRunId: string\n mutation: CounterfactualMutation\n /** Structured delta summary — caller can extend via scoring. */\n delta: {\n originalOutcomeScore: number | null\n counterfactualOutcomeScore: number | null\n deltaScore: number | null\n }\n}\n\nexport interface CounterfactualRunner {\n /**\n * Execute the agent from `ctx.prefix` with the mutation applied.\n * MUST emit spans into the provided emitter so they become part of\n * the counterfactual run. MUST call emitter.endRun() with a verdict.\n */\n executeFrom: (ctx: CounterfactualContext, emitter: TraceEmitter) => Promise<void>\n}\n\nexport async function runCounterfactual(\n store: TraceStore,\n originalRunId: string,\n mutation: CounterfactualMutation,\n runner: CounterfactualRunner,\n): Promise<CounterfactualResult> {\n const originalRun = await store.getRun(originalRunId)\n if (!originalRun) throw new NotFoundError(`counterfactual: run ${originalRunId} not found`)\n const trajectory = await buildTrajectory(store, originalRunId)\n if (mutation.at < 0 || mutation.at >= trajectory.steps.length) {\n throw new ValidationError(\n `counterfactual: mutation.at=${mutation.at} out of range [0, ${trajectory.steps.length})`,\n )\n }\n const targetStep = trajectory.steps[mutation.at]!\n const mutatedStep = applyMutation(targetStep, mutation)\n\n const cfEmitter = new TraceEmitter(store)\n await cfEmitter.startRun({\n scenarioId: originalRun.scenarioId,\n variantId: originalRun.variantId\n ? `${originalRun.variantId}+cf:${mutation.kind}@${mutation.at}`\n : `cf:${mutation.kind}@${mutation.at}`,\n projectId: originalRun.projectId,\n parentRunId: originalRunId,\n layer: 'meta',\n tags: { counterfactual: 'true', mutationKind: mutation.kind, mutationAt: String(mutation.at) },\n })\n\n await runner.executeFrom(\n {\n originalRunId,\n originalTrajectory: trajectory,\n prefix: trajectory.steps.slice(0, mutation.at),\n mutation,\n mutatedStep,\n },\n cfEmitter,\n )\n\n const counterfactual = await store.getRun(cfEmitter.runId)\n const delta = {\n originalOutcomeScore: originalRun.outcome?.score ?? null,\n counterfactualOutcomeScore: counterfactual?.outcome?.score ?? null,\n deltaScore:\n originalRun.outcome?.score !== undefined && counterfactual?.outcome?.score !== undefined\n ? counterfactual.outcome.score - originalRun.outcome.score\n : null,\n }\n return { counterfactualRunId: cfEmitter.runId, originalRunId, mutation, delta }\n}\n\nfunction applyMutation(step: TrajectoryStep, mutation: CounterfactualMutation): TrajectoryStep {\n if (mutation.kind === 'swap-model' && step.span.kind === 'llm') {\n const llm = step.span as LlmSpan\n return { ...step, span: { ...llm, model: mutation.newModel } }\n }\n if (mutation.kind === 'swap-tool-result' && step.span.kind === 'tool') {\n const tool = step.span as ToolSpan\n return { ...step, span: { ...tool, result: mutation.newResult } }\n }\n if (mutation.kind === 'inject-system-message' && step.span.kind === 'llm') {\n const llm = step.span as LlmSpan\n return {\n ...step,\n span: {\n ...llm,\n messages: [{ role: 'system', content: mutation.content }, ...llm.messages],\n },\n }\n }\n if (mutation.kind === 'custom') return mutation.apply(step)\n // swap-tool-result on non-tool span / swap-model on non-llm / truncate-after: no step-level change.\n return step\n}\n\n/**\n * Aggregate a batch of counterfactuals into a simple attribution table:\n * which mutation kinds move outcomes most? (Useful when you run a grid\n * over the same trajectory — swap-model at every llm span, swap-tool\n * at every tool span — and want a ranked summary.)\n */\nexport function attributeCounterfactuals(results: CounterfactualResult[]): Array<{\n mutationKind: CounterfactualMutation['kind']\n n: number\n meanAbsDelta: number\n meanSignedDelta: number\n}> {\n const grouped = new Map<string, CounterfactualResult[]>()\n for (const r of results) {\n const arr = grouped.get(r.mutation.kind) ?? []\n arr.push(r)\n grouped.set(r.mutation.kind, arr)\n }\n const out: Array<{\n mutationKind: CounterfactualMutation['kind']\n n: number\n meanAbsDelta: number\n meanSignedDelta: number\n }> = []\n for (const [kind, items] of grouped) {\n const deltas = items\n .map((i) => i.delta.deltaScore)\n .filter((d): d is number => typeof d === 'number')\n if (deltas.length === 0) continue\n const meanAbs = deltas.reduce((a, b) => a + Math.abs(b), 0) / deltas.length\n const meanSigned = deltas.reduce((a, b) => a + b, 0) / deltas.length\n out.push({\n mutationKind: kind as CounterfactualMutation['kind'],\n n: deltas.length,\n meanAbsDelta: meanAbs,\n meanSignedDelta: meanSigned,\n })\n }\n return out.sort((a, b) => b.meanAbsDelta - a.meanAbsDelta)\n}\n\n// Re-export Span type for consumer ergonomics.\nexport type { Span }\n"],"mappings":"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","names":[]}