@absolutejs/absolute 0.19.0-beta.553 → 0.19.0-beta.555

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.
@@ -33,9 +33,10 @@ export declare const fuseRAGQueryResults: ({ fusion, fusionConstant, lexical, le
33
33
  score: number;
34
34
  chunkId: string;
35
35
  chunkText: string;
36
+ embedding?: number[];
36
37
  title?: string;
37
38
  source?: string;
38
39
  metadata?: Record<string, unknown>;
39
40
  }[];
40
- export declare const resolveRAGHybridSearchOptions: (retrieval: RAGHybridSearchOptions | RAGHybridRetrievalMode | undefined) => Required<Pick<RAGHybridSearchOptions, "fusion" | "fusionConstant" | "lexicalWeight" | "mode" | "sourceBalanceStrategy" | "vectorWeight">> & Pick<RAGHybridSearchOptions, "lexicalTopK" | "maxResultsPerSource">;
41
+ export declare const resolveRAGHybridSearchOptions: (retrieval: RAGHybridSearchOptions | RAGHybridRetrievalMode | undefined) => Required<Pick<RAGHybridSearchOptions, "fusion" | "fusionConstant" | "lexicalWeight" | "mode" | "noveltyStrategy" | "mmrLambda" | "sourceBalanceStrategy" | "vectorWeight">> & Pick<RAGHybridSearchOptions, "lexicalTopK" | "maxResultsPerSource">;
41
42
  export {};
@@ -312,8 +312,11 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
312
312
  traceSummary?: {
313
313
  totalCases: number;
314
314
  modes: import("../..").RAGHybridRetrievalMode[];
315
+ sourceBalanceStrategies: import("../..").RAGSourceBalanceStrategy[];
315
316
  vectorCases: number;
316
317
  lexicalCases: number;
318
+ balancedCases: number;
319
+ roundRobinCases: number;
317
320
  transformedCases: number;
318
321
  variantCases: number;
319
322
  averageFinalCount: number;
@@ -329,6 +332,7 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
329
332
  lexical_search?: number | undefined;
330
333
  fusion?: number | undefined;
331
334
  rerank?: number | undefined;
335
+ novelty?: number | undefined;
332
336
  source_balance?: number | undefined;
333
337
  score_filter?: number | undefined;
334
338
  finalize?: number | undefined;
@@ -341,6 +345,8 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
341
345
  status: import("../..").RAGEvaluationCaseResult["status"];
342
346
  traceMode?: import("../..").RAGHybridRetrievalMode | undefined;
343
347
  previousTraceMode?: import("../..").RAGHybridRetrievalMode | undefined;
348
+ sourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
349
+ previousSourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
344
350
  transformedQuery?: string | undefined;
345
351
  previousTransformedQuery?: string | undefined;
346
352
  variantQueries: string[];
@@ -363,6 +369,7 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
363
369
  lexical_search?: number | undefined;
364
370
  fusion?: number | undefined;
365
371
  rerank?: number | undefined;
372
+ novelty?: number | undefined;
366
373
  source_balance?: number | undefined;
367
374
  score_filter?: number | undefined;
368
375
  finalize?: number | undefined;
@@ -375,6 +382,7 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
375
382
  lexical_search?: number | undefined;
376
383
  fusion?: number | undefined;
377
384
  rerank?: number | undefined;
385
+ novelty?: number | undefined;
378
386
  source_balance?: number | undefined;
379
387
  score_filter?: number | undefined;
380
388
  finalize?: number | undefined;
@@ -428,8 +436,11 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
428
436
  traceSummary?: {
429
437
  totalCases: number;
430
438
  modes: import("../..").RAGHybridRetrievalMode[];
439
+ sourceBalanceStrategies: import("../..").RAGSourceBalanceStrategy[];
431
440
  vectorCases: number;
432
441
  lexicalCases: number;
442
+ balancedCases: number;
443
+ roundRobinCases: number;
433
444
  transformedCases: number;
434
445
  variantCases: number;
435
446
  averageFinalCount: number;
@@ -445,6 +456,7 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
445
456
  lexical_search?: number | undefined;
446
457
  fusion?: number | undefined;
447
458
  rerank?: number | undefined;
459
+ novelty?: number | undefined;
448
460
  source_balance?: number | undefined;
449
461
  score_filter?: number | undefined;
450
462
  finalize?: number | undefined;
@@ -457,6 +469,8 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
457
469
  status: import("../..").RAGEvaluationCaseResult["status"];
458
470
  traceMode?: import("../..").RAGHybridRetrievalMode | undefined;
459
471
  previousTraceMode?: import("../..").RAGHybridRetrievalMode | undefined;
472
+ sourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
473
+ previousSourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
460
474
  transformedQuery?: string | undefined;
461
475
  previousTransformedQuery?: string | undefined;
462
476
  variantQueries: string[];
@@ -479,6 +493,7 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
479
493
  lexical_search?: number | undefined;
480
494
  fusion?: number | undefined;
481
495
  rerank?: number | undefined;
496
+ novelty?: number | undefined;
482
497
  source_balance?: number | undefined;
483
498
  score_filter?: number | undefined;
484
499
  finalize?: number | undefined;
@@ -491,6 +506,7 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
491
506
  lexical_search?: number | undefined;
492
507
  fusion?: number | undefined;
493
508
  rerank?: number | undefined;
509
+ novelty?: number | undefined;
494
510
  source_balance?: number | undefined;
495
511
  score_filter?: number | undefined;
496
512
  finalize?: number | undefined;
@@ -1050,6 +1066,8 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
1050
1066
  lexicalTopK?: number | undefined;
1051
1067
  maxResultsPerSource?: number | undefined;
1052
1068
  sourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
1069
+ noveltyStrategy?: import("../..").RAGNoveltyStrategy | undefined;
1070
+ mmrLambda?: number | undefined;
1053
1071
  fusion?: import("../..").RAGHybridFusionMode | undefined;
1054
1072
  fusionConstant?: number | undefined;
1055
1073
  lexicalWeight?: number | undefined;
@@ -1073,6 +1091,8 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
1073
1091
  lexicalTopK?: number | undefined;
1074
1092
  maxResultsPerSource?: number | undefined;
1075
1093
  sourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
1094
+ noveltyStrategy?: import("../..").RAGNoveltyStrategy | undefined;
1095
+ mmrLambda?: number | undefined;
1076
1096
  fusion?: import("../..").RAGHybridFusionMode | undefined;
1077
1097
  fusionConstant?: number | undefined;
1078
1098
  lexicalWeight?: number | undefined;
@@ -176,8 +176,11 @@ export declare const useRAGEvaluate: (path: string) => {
176
176
  traceSummary?: {
177
177
  totalCases: number;
178
178
  modes: import("../..").RAGHybridRetrievalMode[];
179
+ sourceBalanceStrategies: import("../..").RAGSourceBalanceStrategy[];
179
180
  vectorCases: number;
180
181
  lexicalCases: number;
182
+ balancedCases: number;
183
+ roundRobinCases: number;
181
184
  transformedCases: number;
182
185
  variantCases: number;
183
186
  averageFinalCount: number;
@@ -193,6 +196,7 @@ export declare const useRAGEvaluate: (path: string) => {
193
196
  lexical_search?: number | undefined;
194
197
  fusion?: number | undefined;
195
198
  rerank?: number | undefined;
199
+ novelty?: number | undefined;
196
200
  source_balance?: number | undefined;
197
201
  score_filter?: number | undefined;
198
202
  finalize?: number | undefined;
@@ -205,6 +209,8 @@ export declare const useRAGEvaluate: (path: string) => {
205
209
  status: import("../..").RAGEvaluationCaseResult["status"];
206
210
  traceMode?: import("../..").RAGHybridRetrievalMode | undefined;
207
211
  previousTraceMode?: import("../..").RAGHybridRetrievalMode | undefined;
212
+ sourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
213
+ previousSourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
208
214
  transformedQuery?: string | undefined;
209
215
  previousTransformedQuery?: string | undefined;
210
216
  variantQueries: string[];
@@ -227,6 +233,7 @@ export declare const useRAGEvaluate: (path: string) => {
227
233
  lexical_search?: number | undefined;
228
234
  fusion?: number | undefined;
229
235
  rerank?: number | undefined;
236
+ novelty?: number | undefined;
230
237
  source_balance?: number | undefined;
231
238
  score_filter?: number | undefined;
232
239
  finalize?: number | undefined;
@@ -239,6 +246,7 @@ export declare const useRAGEvaluate: (path: string) => {
239
246
  lexical_search?: number | undefined;
240
247
  fusion?: number | undefined;
241
248
  rerank?: number | undefined;
249
+ novelty?: number | undefined;
242
250
  source_balance?: number | undefined;
243
251
  score_filter?: number | undefined;
244
252
  finalize?: number | undefined;
@@ -292,8 +300,11 @@ export declare const useRAGEvaluate: (path: string) => {
292
300
  traceSummary?: {
293
301
  totalCases: number;
294
302
  modes: import("../..").RAGHybridRetrievalMode[];
303
+ sourceBalanceStrategies: import("../..").RAGSourceBalanceStrategy[];
295
304
  vectorCases: number;
296
305
  lexicalCases: number;
306
+ balancedCases: number;
307
+ roundRobinCases: number;
297
308
  transformedCases: number;
298
309
  variantCases: number;
299
310
  averageFinalCount: number;
@@ -309,6 +320,7 @@ export declare const useRAGEvaluate: (path: string) => {
309
320
  lexical_search?: number | undefined;
310
321
  fusion?: number | undefined;
311
322
  rerank?: number | undefined;
323
+ novelty?: number | undefined;
312
324
  source_balance?: number | undefined;
313
325
  score_filter?: number | undefined;
314
326
  finalize?: number | undefined;
@@ -321,6 +333,8 @@ export declare const useRAGEvaluate: (path: string) => {
321
333
  status: import("../..").RAGEvaluationCaseResult["status"];
322
334
  traceMode?: import("../..").RAGHybridRetrievalMode | undefined;
323
335
  previousTraceMode?: import("../..").RAGHybridRetrievalMode | undefined;
336
+ sourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
337
+ previousSourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
324
338
  transformedQuery?: string | undefined;
325
339
  previousTransformedQuery?: string | undefined;
326
340
  variantQueries: string[];
@@ -343,6 +357,7 @@ export declare const useRAGEvaluate: (path: string) => {
343
357
  lexical_search?: number | undefined;
344
358
  fusion?: number | undefined;
345
359
  rerank?: number | undefined;
360
+ novelty?: number | undefined;
346
361
  source_balance?: number | undefined;
347
362
  score_filter?: number | undefined;
348
363
  finalize?: number | undefined;
@@ -355,6 +370,7 @@ export declare const useRAGEvaluate: (path: string) => {
355
370
  lexical_search?: number | undefined;
356
371
  fusion?: number | undefined;
357
372
  rerank?: number | undefined;
373
+ novelty?: number | undefined;
358
374
  source_balance?: number | undefined;
359
375
  score_filter?: number | undefined;
360
376
  finalize?: number | undefined;
@@ -19,6 +19,8 @@ export declare const useRAGSearch: (path: string) => {
19
19
  lexicalTopK?: number | undefined;
20
20
  maxResultsPerSource?: number | undefined;
21
21
  sourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
22
+ noveltyStrategy?: import("../..").RAGNoveltyStrategy | undefined;
23
+ mmrLambda?: number | undefined;
22
24
  fusion?: import("../..").RAGHybridFusionMode | undefined;
23
25
  fusionConstant?: number | undefined;
24
26
  lexicalWeight?: number | undefined;
@@ -42,6 +44,8 @@ export declare const useRAGSearch: (path: string) => {
42
44
  lexicalTopK?: number | undefined;
43
45
  maxResultsPerSource?: number | undefined;
44
46
  sourceBalanceStrategy?: import("../..").RAGSourceBalanceStrategy | undefined;
47
+ noveltyStrategy?: import("../..").RAGNoveltyStrategy | undefined;
48
+ mmrLambda?: number | undefined;
45
49
  fusion?: import("../..").RAGHybridFusionMode | undefined;
46
50
  fusionConstant?: number | undefined;
47
51
  lexicalWeight?: number | undefined;
@@ -2209,8 +2209,11 @@ var summarizeRetrievalTraces = (traces) => {
2209
2209
  }
2210
2210
  const totalCases = traces.length;
2211
2211
  const modeSet = new Set;
2212
+ const sourceBalanceStrategySet = new Set;
2212
2213
  let vectorCases = 0;
2213
2214
  let lexicalCases = 0;
2215
+ let balancedCases = 0;
2216
+ let roundRobinCases = 0;
2214
2217
  let transformedCases = 0;
2215
2218
  let variantCases = 0;
2216
2219
  let finalCountSum = 0;
@@ -2220,12 +2223,19 @@ var summarizeRetrievalTraces = (traces) => {
2220
2223
  let lexicalTopKSum = 0;
2221
2224
  for (const trace of traces) {
2222
2225
  modeSet.add(trace.mode);
2226
+ sourceBalanceStrategySet.add(trace.sourceBalanceStrategy ?? "cap");
2223
2227
  if (trace.runVector) {
2224
2228
  vectorCases += 1;
2225
2229
  }
2226
2230
  if (trace.runLexical) {
2227
2231
  lexicalCases += 1;
2228
2232
  }
2233
+ if (typeof trace.maxResultsPerSource === "number") {
2234
+ balancedCases += 1;
2235
+ if (trace.sourceBalanceStrategy === "round_robin") {
2236
+ roundRobinCases += 1;
2237
+ }
2238
+ }
2229
2239
  if (trace.transformedQuery !== trace.query) {
2230
2240
  transformedCases += 1;
2231
2241
  }
@@ -2243,9 +2253,12 @@ var summarizeRetrievalTraces = (traces) => {
2243
2253
  averageFinalCount: roundTraceAverage(finalCountSum, totalCases),
2244
2254
  averageLexicalCount: roundTraceAverage(lexicalCountSum, totalCases),
2245
2255
  averageLexicalTopK: roundTraceAverage(lexicalTopKSum, totalCases),
2256
+ balancedCases,
2246
2257
  averageVectorCount: roundTraceAverage(vectorCountSum, totalCases),
2247
2258
  lexicalCases,
2248
2259
  modes: Array.from(modeSet),
2260
+ roundRobinCases,
2261
+ sourceBalanceStrategies: Array.from(sourceBalanceStrategySet),
2249
2262
  stageCounts: buildTraceStageCounts(traces),
2250
2263
  totalCases,
2251
2264
  transformedCases,
@@ -2581,7 +2594,7 @@ var buildEvaluationCaseTraceSnapshot = ({
2581
2594
  }) => {
2582
2595
  const stageCounts = currentTrace ? buildTraceStageCounts([currentTrace]) : {};
2583
2596
  const previousStageCounts = previousTrace?.stageCounts ?? {};
2584
- const traceChange = !previousTrace ? currentTrace ? "new" : "unchanged" : previousTrace.traceMode !== currentTrace?.mode || previousTrace.transformedQuery !== (currentTrace?.transformedQuery || undefined) || previousTrace.variantQueries.join("|") !== (currentTrace?.variantQueries ?? []).join("|") || previousTrace.finalCount !== (currentTrace?.resultCounts.final ?? 0) || previousTrace.vectorCount !== (currentTrace?.resultCounts.vector ?? 0) || previousTrace.lexicalCount !== (currentTrace?.resultCounts.lexical ?? 0) || previousTrace.candidateTopK !== (currentTrace?.candidateTopK ?? 0) || previousTrace.lexicalTopK !== (currentTrace?.lexicalTopK ?? 0) || !areStageCountsEqual(previousStageCounts, stageCounts) ? "changed" : "unchanged";
2597
+ const traceChange = !previousTrace ? currentTrace ? "new" : "unchanged" : previousTrace.traceMode !== currentTrace?.mode || previousTrace.sourceBalanceStrategy !== currentTrace?.sourceBalanceStrategy || previousTrace.transformedQuery !== (currentTrace?.transformedQuery || undefined) || previousTrace.variantQueries.join("|") !== (currentTrace?.variantQueries ?? []).join("|") || previousTrace.finalCount !== (currentTrace?.resultCounts.final ?? 0) || previousTrace.vectorCount !== (currentTrace?.resultCounts.vector ?? 0) || previousTrace.lexicalCount !== (currentTrace?.resultCounts.lexical ?? 0) || previousTrace.candidateTopK !== (currentTrace?.candidateTopK ?? 0) || previousTrace.lexicalTopK !== (currentTrace?.lexicalTopK ?? 0) || !areStageCountsEqual(previousStageCounts, stageCounts) ? "changed" : "unchanged";
2585
2598
  return {
2586
2599
  candidateTopK: currentTrace?.candidateTopK ?? 0,
2587
2600
  caseId: caseResult.caseId,
@@ -2593,6 +2606,7 @@ var buildEvaluationCaseTraceSnapshot = ({
2593
2606
  previousFinalCount: previousTrace?.finalCount,
2594
2607
  previousLexicalCount: previousTrace?.lexicalCount,
2595
2608
  previousLexicalTopK: previousTrace?.lexicalTopK,
2609
+ previousSourceBalanceStrategy: previousTrace?.sourceBalanceStrategy,
2596
2610
  previousStageCounts,
2597
2611
  previousTraceMode: previousTrace?.traceMode,
2598
2612
  previousTransformedQuery: previousTrace?.transformedQuery,
@@ -2601,6 +2615,7 @@ var buildEvaluationCaseTraceSnapshot = ({
2601
2615
  query: caseResult.query,
2602
2616
  stageCounts,
2603
2617
  status: caseResult.status,
2618
+ sourceBalanceStrategy: currentTrace?.sourceBalanceStrategy,
2604
2619
  traceChange,
2605
2620
  traceMode: currentTrace?.mode,
2606
2621
  transformedQuery: currentTrace?.transformedQuery || undefined,
@@ -2645,6 +2660,7 @@ var buildEvaluationCaseTraceSnapshots = ({
2645
2660
  },
2646
2661
  runLexical: currentSnapshot.lexicalCount > 0,
2647
2662
  runVector: currentSnapshot.vectorCount > 0,
2663
+ sourceBalanceStrategy: currentSnapshot.sourceBalanceStrategy ?? "cap",
2648
2664
  steps: [],
2649
2665
  topK: caseResult.topK,
2650
2666
  transformedQuery: currentSnapshot.transformedQuery ?? caseResult.query,
@@ -2675,6 +2691,7 @@ var formatRetrievalComparisonHeadline = (entry) => [
2675
2691
  `latency ${entry.response.summary.averageLatencyMs.toFixed(1)}ms`
2676
2692
  ].join(" \xB7 ");
2677
2693
  var formatTraceModes = (modes) => modes.length > 0 ? modes.join(" / ") : "n/a";
2694
+ var formatSourceBalanceStrategies = (strategies) => strategies.length > 0 ? strategies.join(" / ") : "n/a";
2678
2695
  var formatTraceStageSummary = (stageCounts) => {
2679
2696
  const topStages = Object.entries(stageCounts).sort((left, right) => right[1] - left[1]).slice(0, 3);
2680
2697
  return topStages.length > 0 ? topStages.map(([stage, count]) => `${stage} ${count}`).join(" \xB7 ") : "n/a";
@@ -2710,9 +2727,21 @@ var buildRAGComparisonTraceSummaryRows = (entry) => {
2710
2727
  }
2711
2728
  return [
2712
2729
  { label: "Modes", value: formatTraceModes(trace.modes) },
2730
+ {
2731
+ label: "Balance",
2732
+ value: formatSourceBalanceStrategies(trace.sourceBalanceStrategies)
2733
+ },
2713
2734
  { label: "Avg final", value: trace.averageFinalCount.toFixed(1) },
2714
2735
  { label: "Avg vector", value: trace.averageVectorCount.toFixed(1) },
2715
2736
  { label: "Avg lexical", value: trace.averageLexicalCount.toFixed(1) },
2737
+ {
2738
+ label: "Balanced",
2739
+ value: formatTraceRatio(trace.balancedCases, trace.totalCases)
2740
+ },
2741
+ {
2742
+ label: "Round robin",
2743
+ value: formatTraceRatio(trace.roundRobinCases, trace.totalCases)
2744
+ },
2716
2745
  {
2717
2746
  label: "Transforms",
2718
2747
  value: formatTraceRatio(trace.transformedCases, trace.totalCases)
@@ -2760,6 +2789,12 @@ var buildRAGComparisonTraceDiffRows = (entry, leader) => {
2760
2789
  value: `${formatTraceModes(trace.modes)} vs ${formatTraceModes(leaderTrace.modes)}`
2761
2790
  });
2762
2791
  }
2792
+ if (formatSourceBalanceStrategies(trace.sourceBalanceStrategies) !== formatSourceBalanceStrategies(leaderTrace.sourceBalanceStrategies)) {
2793
+ rows.push({
2794
+ label: "Balance vs leader",
2795
+ value: `${formatSourceBalanceStrategies(trace.sourceBalanceStrategies)} vs ${formatSourceBalanceStrategies(leaderTrace.sourceBalanceStrategies)}`
2796
+ });
2797
+ }
2763
2798
  rows.push({
2764
2799
  label: "Final delta",
2765
2800
  value: formatSignedDelta(trace.averageFinalCount - leaderTrace.averageFinalCount, 1)
@@ -2772,6 +2807,12 @@ var buildRAGComparisonTraceDiffRows = (entry, leader) => {
2772
2807
  }, {
2773
2808
  label: "Transform delta",
2774
2809
  value: formatTraceCountDelta(trace.transformedCases - leaderTrace.transformedCases)
2810
+ }, {
2811
+ label: "Balanced delta",
2812
+ value: formatTraceCountDelta(trace.balancedCases - leaderTrace.balancedCases)
2813
+ }, {
2814
+ label: "Round robin delta",
2815
+ value: formatTraceCountDelta(trace.roundRobinCases - leaderTrace.roundRobinCases)
2775
2816
  });
2776
2817
  if (stageDelta) {
2777
2818
  rows.push({ label: "Stage delta", value: stageDelta });
@@ -2935,7 +2976,7 @@ var buildRAGEvaluationHistoryRows = (history) => {
2935
2976
  if (history.latestRun.traceSummary) {
2936
2977
  rows.push({
2937
2978
  label: "Latest trace",
2938
- value: `${formatTraceModes(history.latestRun.traceSummary.modes)} \xB7 final ${history.latestRun.traceSummary.averageFinalCount.toFixed(1)} \xB7 vector ${history.latestRun.traceSummary.averageVectorCount.toFixed(1)} \xB7 lexical ${history.latestRun.traceSummary.averageLexicalCount.toFixed(1)}`
2979
+ value: `${formatTraceModes(history.latestRun.traceSummary.modes)} \xB7 balance ${formatSourceBalanceStrategies(history.latestRun.traceSummary.sourceBalanceStrategies)} \xB7 final ${history.latestRun.traceSummary.averageFinalCount.toFixed(1)} \xB7 vector ${history.latestRun.traceSummary.averageVectorCount.toFixed(1)} \xB7 lexical ${history.latestRun.traceSummary.averageLexicalCount.toFixed(1)}`
2939
2980
  });
2940
2981
  }
2941
2982
  if (history.previousRun) {
@@ -2971,6 +3012,9 @@ var buildRAGEvaluationHistoryRows = (history) => {
2971
3012
  rows.push({
2972
3013
  label: "Trace mode shift",
2973
3014
  value: history.diff.traceSummaryDelta.modesChanged ? "changed" : "stable"
3015
+ }, {
3016
+ label: "Trace balance shift",
3017
+ value: history.diff.traceSummaryDelta.sourceBalanceStrategiesChanged ? "changed" : "stable"
2974
3018
  }, {
2975
3019
  label: "Trace final delta",
2976
3020
  value: formatSignedDelta(history.diff.traceSummaryDelta.averageFinalCount, 1)
@@ -2980,6 +3024,12 @@ var buildRAGEvaluationHistoryRows = (history) => {
2980
3024
  }, {
2981
3025
  label: "Trace lexical delta",
2982
3026
  value: formatSignedDelta(history.diff.traceSummaryDelta.averageLexicalCount, 1)
3027
+ }, {
3028
+ label: "Trace balanced delta",
3029
+ value: formatTraceCountDelta(history.diff.traceSummaryDelta.balancedCases)
3030
+ }, {
3031
+ label: "Trace round robin delta",
3032
+ value: formatTraceCountDelta(history.diff.traceSummaryDelta.roundRobinCases)
2983
3033
  }, {
2984
3034
  label: "Trace transform delta",
2985
3035
  value: formatTraceCountDelta(history.diff.traceSummaryDelta.transformedCases)
@@ -3009,6 +3059,8 @@ var buildRAGEvaluationCaseTracePresentations = (history) => {
3009
3059
  const label = entry.label ?? entry.caseId;
3010
3060
  const currentMode = entry.traceMode ?? "no-trace";
3011
3061
  const previousMode = entry.previousTraceMode ?? "n/a";
3062
+ const currentBalance = entry.sourceBalanceStrategy ?? "cap";
3063
+ const previousBalance = entry.previousSourceBalanceStrategy ?? "n/a";
3012
3064
  const currentVariants = entry.variantQueries.length > 0 ? entry.variantQueries.join(", ") : "none";
3013
3065
  const previousVariants = entry.previousVariantQueries.length > 0 ? entry.previousVariantQueries.join(", ") : "none";
3014
3066
  const currentStages = Object.keys(entry.stageCounts).length > 0 ? Object.entries(entry.stageCounts).map(([stage, count]) => `${stage} ${count}`).join(", ") : "none";
@@ -3016,12 +3068,16 @@ var buildRAGEvaluationCaseTracePresentations = (history) => {
3016
3068
  return {
3017
3069
  caseId: entry.caseId,
3018
3070
  label,
3019
- summary: `${entry.traceChange} \xB7 ${previousMode}\u2192${currentMode} \xB7 final ${entry.previousFinalCount ?? 0}\u2192${entry.finalCount}`,
3071
+ summary: `${entry.traceChange} \xB7 ${previousMode}\u2192${currentMode} \xB7 ${previousBalance}\u2192${currentBalance} \xB7 final ${entry.previousFinalCount ?? 0}\u2192${entry.finalCount}`,
3020
3072
  traceChange: entry.traceChange,
3021
3073
  rows: [
3022
3074
  { label: "Query", value: entry.query },
3023
3075
  { label: "Trace change", value: entry.traceChange },
3024
3076
  { label: "Mode", value: `${previousMode}\u2192${currentMode}` },
3077
+ {
3078
+ label: "Balance",
3079
+ value: `${previousBalance}\u2192${currentBalance}`
3080
+ },
3025
3081
  {
3026
3082
  label: "Transformed query",
3027
3083
  value: `${entry.previousTransformedQuery?.trim() || "n/a"}\u2192${entry.transformedQuery?.trim() || "n/a"}`
@@ -3093,12 +3149,15 @@ var buildRAGEvaluationRunDiff = ({
3093
3149
  averageLexicalCount: (current.traceSummary?.averageLexicalCount ?? 0) - (previous?.traceSummary?.averageLexicalCount ?? 0),
3094
3150
  averageLexicalTopK: (current.traceSummary?.averageLexicalTopK ?? 0) - (previous?.traceSummary?.averageLexicalTopK ?? 0),
3095
3151
  averageVectorCount: (current.traceSummary?.averageVectorCount ?? 0) - (previous?.traceSummary?.averageVectorCount ?? 0),
3152
+ balancedCases: (current.traceSummary?.balancedCases ?? 0) - (previous?.traceSummary?.balancedCases ?? 0),
3096
3153
  lexicalCases: (current.traceSummary?.lexicalCases ?? 0) - (previous?.traceSummary?.lexicalCases ?? 0),
3097
3154
  modesChanged: (current.traceSummary?.modes ?? []).join("|") !== (previous?.traceSummary?.modes ?? []).join("|"),
3155
+ roundRobinCases: (current.traceSummary?.roundRobinCases ?? 0) - (previous?.traceSummary?.roundRobinCases ?? 0),
3098
3156
  stageCounts: diffTraceStageCounts({
3099
3157
  current: current.traceSummary?.stageCounts ?? {},
3100
3158
  previous: previous?.traceSummary?.stageCounts ?? {}
3101
3159
  }),
3160
+ sourceBalanceStrategiesChanged: (current.traceSummary?.sourceBalanceStrategies ?? []).join("|") !== (previous?.traceSummary?.sourceBalanceStrategies ?? []).join("|"),
3102
3161
  transformedCases: (current.traceSummary?.transformedCases ?? 0) - (previous?.traceSummary?.transformedCases ?? 0),
3103
3162
  variantCases: (current.traceSummary?.variantCases ?? 0) - (previous?.traceSummary?.variantCases ?? 0),
3104
3163
  vectorCases: (current.traceSummary?.vectorCases ?? 0) - (previous?.traceSummary?.vectorCases ?? 0)
@@ -4492,5 +4551,5 @@ export {
4492
4551
  createAIStream
4493
4552
  };
4494
4553
 
4495
- //# debugId=086F4529C4D4B76164756E2164756E21
4554
+ //# debugId=4C6A458565CAE93E64756E2164756E21
4496
4555
  //# sourceMappingURL=index.js.map