@absolutejs/absolute 0.19.0-beta.641 → 0.19.0-beta.643

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.
@@ -279,8 +279,16 @@ export type RAGDocumentChunk = {
279
279
  source?: string;
280
280
  metadata?: Record<string, unknown>;
281
281
  embedding?: number[];
282
+ embeddingVariants?: RAGDocumentChunkEmbeddingVariant[];
282
283
  structure?: RAGChunkStructure;
283
284
  };
285
+ export type RAGDocumentChunkEmbeddingVariant = {
286
+ id: string;
287
+ label?: string;
288
+ text?: string;
289
+ metadata?: Record<string, unknown>;
290
+ embedding?: number[];
291
+ };
284
292
  export type RAGEmbeddingInput = {
285
293
  text: string;
286
294
  model?: string;
@@ -970,6 +978,12 @@ export type RAGRetrievalTrace = {
970
978
  reranked: number;
971
979
  final: number;
972
980
  };
981
+ multiVector?: {
982
+ configured: boolean;
983
+ vectorVariantHits: number;
984
+ lexicalVariantHits: number;
985
+ collapsedParents: number;
986
+ };
973
987
  steps: RAGRetrievalTraceStep[];
974
988
  };
975
989
  export type RAGCollectionSearchResult = {
@@ -2668,6 +2682,10 @@ export type RAGRetrievalTraceComparisonSummary = {
2668
2682
  roundRobinCases: number;
2669
2683
  transformedCases: number;
2670
2684
  variantCases: number;
2685
+ multiVectorCases: number;
2686
+ multiVectorVectorHitCases: number;
2687
+ multiVectorLexicalHitCases: number;
2688
+ multiVectorCollapsedCases: number;
2671
2689
  averageFinalCount: number;
2672
2690
  averageVectorCount: number;
2673
2691
  averageLexicalCount: number;
@@ -2869,6 +2887,10 @@ export type RAGRetrievalTraceComparisonSummaryDiff = {
2869
2887
  roundRobinCasesDelta: number;
2870
2888
  transformedCasesDelta: number;
2871
2889
  variantCasesDelta: number;
2890
+ multiVectorCasesDelta: number;
2891
+ multiVectorVectorHitCasesDelta: number;
2892
+ multiVectorLexicalHitCasesDelta: number;
2893
+ multiVectorCollapsedCasesDelta: number;
2872
2894
  modeDelta: RAGTraceSummaryListDelta<RAGHybridRetrievalMode>;
2873
2895
  sourceBalanceStrategyDelta: RAGTraceSummaryListDelta<RAGSourceBalanceStrategy>;
2874
2896
  stageCountsDelta: Partial<Record<RAGRetrievalTraceStage, RAGTraceSummaryStageCountsDelta>>;
@@ -2912,6 +2934,9 @@ export type RAGRetrievalComparisonSummary = {
2912
2934
  bestByPassingRate?: string;
2913
2935
  bestByAverageF1?: string;
2914
2936
  fastest?: string;
2937
+ bestByMultivectorCollapsedCases?: string;
2938
+ bestByMultivectorLexicalHitCases?: string;
2939
+ bestByMultivectorVectorHitCases?: string;
2915
2940
  };
2916
2941
  export type RAGRetrievalComparison = {
2917
2942
  suiteId: string;
@@ -2962,11 +2987,17 @@ export type RAGRetrievalComparisonDecisionDelta = {
2962
2987
  passingRateDelta: number;
2963
2988
  averageF1Delta: number;
2964
2989
  elapsedMsDelta: number;
2990
+ multiVectorCollapsedCasesDelta?: number;
2991
+ multiVectorLexicalHitCasesDelta?: number;
2992
+ multiVectorVectorHitCasesDelta?: number;
2965
2993
  };
2966
2994
  export type RAGRetrievalBaselineGatePolicy = {
2967
2995
  minPassingRateDelta?: number;
2968
2996
  minAverageF1Delta?: number;
2969
2997
  maxElapsedMsDelta?: number;
2998
+ minMultiVectorCollapsedCasesDelta?: number;
2999
+ minMultiVectorLexicalHitCasesDelta?: number;
3000
+ minMultiVectorVectorHitCasesDelta?: number;
2970
3001
  severity?: 'warn' | 'fail';
2971
3002
  };
2972
3003
  export type RAGRetrievalComparisonGateResult = {
@@ -2989,12 +3020,18 @@ export type RAGRetrievalComparisonDecisionSummary = {
2989
3020
  winnerByPassingRate?: string;
2990
3021
  winnerByAverageF1?: string;
2991
3022
  fastest?: string;
3023
+ winnerByMultivectorCollapsedCases?: string;
3024
+ winnerByMultivectorLexicalHitCases?: string;
3025
+ winnerByMultivectorVectorHitCases?: string;
2992
3026
  baseline?: {
2993
3027
  retrievalId: string;
2994
3028
  label: string;
2995
3029
  passingRate: number;
2996
3030
  averageF1: number;
2997
3031
  elapsedMs: number;
3032
+ multiVectorCollapsedCases?: number;
3033
+ multiVectorLexicalHitCases?: number;
3034
+ multiVectorVectorHitCases?: number;
2998
3035
  };
2999
3036
  candidate?: {
3000
3037
  retrievalId: string;
@@ -3002,6 +3039,9 @@ export type RAGRetrievalComparisonDecisionSummary = {
3002
3039
  passingRate: number;
3003
3040
  averageF1: number;
3004
3041
  elapsedMs: number;
3042
+ multiVectorCollapsedCases?: number;
3043
+ multiVectorLexicalHitCases?: number;
3044
+ multiVectorVectorHitCases?: number;
3005
3045
  };
3006
3046
  delta?: RAGRetrievalComparisonDecisionDelta;
3007
3047
  gate?: RAGRetrievalComparisonGateResult;
@@ -3382,6 +3422,7 @@ export type RAGRetrievalIncidentRemediationBulkExecutionResponse = {
3382
3422
  export type RAGRetrievalReleaseGroupSummary = {
3383
3423
  corpusGroupKey?: string;
3384
3424
  groupKey: string;
3425
+ classification?: 'general' | 'multivector';
3385
3426
  escalationSeverity: 'none' | 'info' | 'warning' | 'critical';
3386
3427
  recommendedAction: 'promote_candidate' | 'renew_approval' | 'await_approval' | 'investigate_regression' | 'monitor';
3387
3428
  recommendedActionReasons: string[];
@@ -3509,6 +3550,7 @@ export type RAGRetrievalReleaseLaneAuditSummary = {
3509
3550
  export type RAGRetrievalReleaseLaneRecommendationSummary = {
3510
3551
  corpusGroupKey?: string;
3511
3552
  groupKey: string;
3553
+ classification?: 'general' | 'multivector';
3512
3554
  targetRolloutLabel: Exclude<RAGRetrievalBaselineRecord['rolloutLabel'], undefined>;
3513
3555
  recommendedAction: 'promote_candidate' | 'renew_approval' | 'await_approval' | 'investigate_regression' | 'monitor';
3514
3556
  recommendedActionReasons: string[];
@@ -3548,6 +3590,7 @@ export type RAGRetrievalReleaseLaneHandoffSummary = {
3548
3590
  };
3549
3591
  export type RAGRetrievalLanePromotionStateSummary = {
3550
3592
  groupKey: string;
3593
+ classification?: 'general' | 'multivector';
3551
3594
  targetRolloutLabel: Exclude<RAGRetrievalBaselineRecord['rolloutLabel'], undefined>;
3552
3595
  baselineRetrievalId?: string;
3553
3596
  candidateRetrievalId?: string;
@@ -3581,6 +3624,7 @@ export type RAGRetrievalReleaseIncidentRecord = {
3581
3624
  acknowledgedBy?: string;
3582
3625
  acknowledgementNotes?: string;
3583
3626
  notes?: string;
3627
+ classification?: 'general' | 'multivector';
3584
3628
  };
3585
3629
  export type RAGRetrievalLaneHandoffIncidentRecord = Omit<RAGRetrievalReleaseIncidentRecord, 'kind'> & {
3586
3630
  corpusGroupKey?: string;
@@ -3744,6 +3788,7 @@ export type RAGRetrievalReleaseIncidentListResponse = {
3744
3788
  export type RAGRetrievalReleaseIncidentStatusResponse = {
3745
3789
  ok: true;
3746
3790
  incidentSummary?: RAGRetrievalComparisonRuntime['incidentSummary'];
3791
+ incidentClassificationSummary?: RAGRetrievalIncidentClassificationSummary;
3747
3792
  releaseLaneIncidentSummaries?: RAGRetrievalComparisonRuntime['releaseLaneIncidentSummaries'];
3748
3793
  recentIncidents?: RAGRetrievalComparisonRuntime['recentIncidents'];
3749
3794
  recentIncidentRemediationDecisions?: RAGRetrievalComparisonRuntime['recentIncidentRemediationDecisions'];
@@ -3753,9 +3798,18 @@ export type RAGRetrievalReleaseIncidentStatusResponse = {
3753
3798
  };
3754
3799
  export type RAGRetrievalIncidentRemediationStatusResponse = {
3755
3800
  ok: true;
3801
+ incidentClassificationSummary?: RAGRetrievalIncidentClassificationSummary;
3756
3802
  recentIncidentRemediationExecutions?: RAGRetrievalComparisonRuntime['recentIncidentRemediationExecutions'];
3757
3803
  incidentRemediationExecutionSummary?: RAGRetrievalComparisonRuntime['incidentRemediationExecutionSummary'];
3758
3804
  };
3805
+ export type RAGRetrievalIncidentClassificationSummary = {
3806
+ totalGeneralCount: number;
3807
+ totalMultiVectorCount: number;
3808
+ openGeneralCount: number;
3809
+ openMultiVectorCount: number;
3810
+ resolvedGeneralCount: number;
3811
+ resolvedMultiVectorCount: number;
3812
+ };
3759
3813
  export type RAGRetrievalReleaseEvent = {
3760
3814
  kind: 'incident_opened' | 'incident_resolved';
3761
3815
  incident: RAGRetrievalReleaseIncidentRecord;
@@ -3879,6 +3933,9 @@ export type RAGRetrievalComparisonLatestSummary = {
3879
3933
  bestByPassingRate?: string;
3880
3934
  bestByAverageF1?: string;
3881
3935
  fastest?: string;
3936
+ bestByMultivectorCollapsedCases?: string;
3937
+ bestByMultivectorLexicalHitCases?: string;
3938
+ bestByMultivectorVectorHitCases?: string;
3882
3939
  decisionSummary?: RAGRetrievalComparisonDecisionSummary;
3883
3940
  releaseVerdict?: RAGRetrievalReleaseVerdict;
3884
3941
  };
@@ -3900,6 +3957,7 @@ export type RAGRetrievalComparisonAlert = {
3900
3957
  candidateRetrievalId?: string;
3901
3958
  delta?: RAGRetrievalComparisonDecisionDelta;
3902
3959
  gate?: RAGRetrievalComparisonGateResult;
3960
+ classification?: 'general' | 'multivector';
3903
3961
  };
3904
3962
  export type RAGRetrievalComparisonRuntime = {
3905
3963
  configured: boolean;
@@ -4341,6 +4399,7 @@ export type RAGHTMXWorkflowRenderConfig = {
4341
4399
  adminActions?: RAGAdminActionRecord[];
4342
4400
  adminJobs?: RAGAdminJobRecord[];
4343
4401
  maintenance?: RAGBackendMaintenanceSummary;
4402
+ retrievalComparisons?: RAGOperationsResponse['retrievalComparisons'];
4344
4403
  path?: string;
4345
4404
  status?: RAGVectorStoreStatus;
4346
4405
  capabilities?: RAGBackendCapabilities;
@@ -2933,21 +2933,40 @@ var formatTraceCountDelta = (value) => `${value >= 0 ? "+" : ""}${value}`;
2933
2933
  var buildComparisonOverviewPresentation = (input) => {
2934
2934
  const winnerLabel = input.resolveLabel(input.summary.bestByPassingRate);
2935
2935
  const winnerEntry = input.resolveEntry(input.summary.bestByPassingRate);
2936
+ const rows = [
2937
+ {
2938
+ label: "Best passing rate",
2939
+ value: input.resolveLabel(input.summary.bestByPassingRate)
2940
+ },
2941
+ {
2942
+ label: "Best average F1",
2943
+ value: input.resolveLabel(input.summary.bestByAverageF1)
2944
+ },
2945
+ {
2946
+ label: "Fastest",
2947
+ value: input.resolveLabel(input.summary.fastest)
2948
+ }
2949
+ ];
2950
+ if (input.summary.bestByMultivectorCollapsedCases) {
2951
+ rows.push({
2952
+ label: "Best multivector collapse",
2953
+ value: input.resolveLabel(input.summary.bestByMultivectorCollapsedCases)
2954
+ });
2955
+ }
2956
+ if (input.summary.bestByMultivectorLexicalHitCases) {
2957
+ rows.push({
2958
+ label: "Best multivector lexical hits",
2959
+ value: input.resolveLabel(input.summary.bestByMultivectorLexicalHitCases)
2960
+ });
2961
+ }
2962
+ if (input.summary.bestByMultivectorVectorHitCases) {
2963
+ rows.push({
2964
+ label: "Best multivector vector hits",
2965
+ value: input.resolveLabel(input.summary.bestByMultivectorVectorHitCases)
2966
+ });
2967
+ }
2936
2968
  return {
2937
- rows: [
2938
- {
2939
- label: "Best passing rate",
2940
- value: input.resolveLabel(input.summary.bestByPassingRate)
2941
- },
2942
- {
2943
- label: "Best average F1",
2944
- value: input.resolveLabel(input.summary.bestByAverageF1)
2945
- },
2946
- {
2947
- label: "Fastest",
2948
- value: input.resolveLabel(input.summary.fastest)
2949
- }
2950
- ],
2969
+ rows,
2951
2970
  winnerLabel,
2952
2971
  summary: winnerEntry ? `passing ${formatEvaluationPassingRate(winnerEntry.response.passingRate)} \xB7 f1 ${winnerEntry.response.summary.averageF1.toFixed(3)} \xB7 latency ${winnerEntry.response.summary.averageLatencyMs.toFixed(1)}ms` : "Stored benchmark comparison"
2953
2972
  };
@@ -2995,6 +3014,9 @@ var buildRAGComparisonTraceSummaryRows = (entry) => {
2995
3014
  }, {
2996
3015
  label: "Variants",
2997
3016
  value: formatTraceRatio(trace.variantCases, trace.totalCases)
3017
+ }, {
3018
+ label: "Multivector",
3019
+ value: `${formatTraceRatio(trace.multiVectorCases, trace.totalCases)} \xB7 collapse ${formatTraceRatio(trace.multiVectorCollapsedCases, trace.totalCases)} \xB7 lexical ${formatTraceRatio(trace.multiVectorLexicalHitCases, trace.totalCases)} \xB7 vector ${formatTraceRatio(trace.multiVectorVectorHitCases, trace.totalCases)}`
2998
3020
  }, {
2999
3021
  label: "TopK",
3000
3022
  value: `${trace.averageCandidateTopK.toFixed(1)} / ${trace.averageLexicalTopK.toFixed(1)}`
@@ -4051,6 +4073,15 @@ var evaluateRetrievalComparisonGate = ({
4051
4073
  if (typeof policy.maxElapsedMsDelta === "number" && delta.elapsedMsDelta > policy.maxElapsedMsDelta) {
4052
4074
  reasons.push(`elapsed ms delta ${delta.elapsedMsDelta} exceeds ${policy.maxElapsedMsDelta}`);
4053
4075
  }
4076
+ if (typeof policy.minMultiVectorCollapsedCasesDelta === "number" && (delta.multiVectorCollapsedCasesDelta ?? 0) < policy.minMultiVectorCollapsedCasesDelta) {
4077
+ reasons.push(`multivector collapsed delta ${delta.multiVectorCollapsedCasesDelta ?? 0} is below ${policy.minMultiVectorCollapsedCasesDelta}`);
4078
+ }
4079
+ if (typeof policy.minMultiVectorLexicalHitCasesDelta === "number" && (delta.multiVectorLexicalHitCasesDelta ?? 0) < policy.minMultiVectorLexicalHitCasesDelta) {
4080
+ reasons.push(`multivector lexical-hit delta ${delta.multiVectorLexicalHitCasesDelta ?? 0} is below ${policy.minMultiVectorLexicalHitCasesDelta}`);
4081
+ }
4082
+ if (typeof policy.minMultiVectorVectorHitCasesDelta === "number" && (delta.multiVectorVectorHitCasesDelta ?? 0) < policy.minMultiVectorVectorHitCasesDelta) {
4083
+ reasons.push(`multivector vector-hit delta ${delta.multiVectorVectorHitCasesDelta ?? 0} is below ${policy.minMultiVectorVectorHitCasesDelta}`);
4084
+ }
4054
4085
  if (reasons.length === 0) {
4055
4086
  return {
4056
4087
  policy,
@@ -4553,6 +4584,34 @@ var buildTraceSummaryAggregate = ({
4553
4584
  direction: "flat",
4554
4585
  metric: "variantCases",
4555
4586
  previous: 0
4587
+ },
4588
+ {
4589
+ current: 0,
4590
+ delta: 0,
4591
+ direction: "flat",
4592
+ metric: "multiVectorCases",
4593
+ previous: 0
4594
+ },
4595
+ {
4596
+ current: 0,
4597
+ delta: 0,
4598
+ direction: "flat",
4599
+ metric: "multiVectorVectorHitCases",
4600
+ previous: 0
4601
+ },
4602
+ {
4603
+ current: 0,
4604
+ delta: 0,
4605
+ direction: "flat",
4606
+ metric: "multiVectorLexicalHitCases",
4607
+ previous: 0
4608
+ },
4609
+ {
4610
+ current: 0,
4611
+ delta: 0,
4612
+ direction: "flat",
4613
+ metric: "multiVectorCollapsedCases",
4614
+ previous: 0
4556
4615
  }
4557
4616
  ];
4558
4617
  return {
@@ -4647,6 +4706,34 @@ var buildTraceSummaryAggregate = ({
4647
4706
  direction: buildTraceSummaryDirection(latest.variantCases - previous.variantCases),
4648
4707
  metric: "variantCases",
4649
4708
  previous: previous.variantCases
4709
+ },
4710
+ {
4711
+ current: latest.multiVectorCases,
4712
+ delta: latest.multiVectorCases - previous.multiVectorCases,
4713
+ direction: buildTraceSummaryDirection(latest.multiVectorCases - previous.multiVectorCases),
4714
+ metric: "multiVectorCases",
4715
+ previous: previous.multiVectorCases
4716
+ },
4717
+ {
4718
+ current: latest.multiVectorVectorHitCases,
4719
+ delta: latest.multiVectorVectorHitCases - previous.multiVectorVectorHitCases,
4720
+ direction: buildTraceSummaryDirection(latest.multiVectorVectorHitCases - previous.multiVectorVectorHitCases),
4721
+ metric: "multiVectorVectorHitCases",
4722
+ previous: previous.multiVectorVectorHitCases
4723
+ },
4724
+ {
4725
+ current: latest.multiVectorLexicalHitCases,
4726
+ delta: latest.multiVectorLexicalHitCases - previous.multiVectorLexicalHitCases,
4727
+ direction: buildTraceSummaryDirection(latest.multiVectorLexicalHitCases - previous.multiVectorLexicalHitCases),
4728
+ metric: "multiVectorLexicalHitCases",
4729
+ previous: previous.multiVectorLexicalHitCases
4730
+ },
4731
+ {
4732
+ current: latest.multiVectorCollapsedCases,
4733
+ delta: latest.multiVectorCollapsedCases - previous.multiVectorCollapsedCases,
4734
+ direction: buildTraceSummaryDirection(latest.multiVectorCollapsedCases - previous.multiVectorCollapsedCases),
4735
+ metric: "multiVectorCollapsedCases",
4736
+ previous: previous.multiVectorCollapsedCases
4650
4737
  }
4651
4738
  ];
4652
4739
  const absoluteSorted = [...aggregate].sort((left, right) => Math.abs(right.delta) - Math.abs(left.delta) || left.metric.localeCompare(right.metric));
@@ -4697,6 +4784,10 @@ var summarizeRetrievalTraces = (traces) => {
4697
4784
  let roundRobinCases = 0;
4698
4785
  let transformedCases = 0;
4699
4786
  let variantCases = 0;
4787
+ let multiVectorCases = 0;
4788
+ let multiVectorVectorHitCases = 0;
4789
+ let multiVectorLexicalHitCases = 0;
4790
+ let multiVectorCollapsedCases = 0;
4700
4791
  let finalCountSum = 0;
4701
4792
  let vectorCountSum = 0;
4702
4793
  let lexicalCountSum = 0;
@@ -4723,6 +4814,18 @@ var summarizeRetrievalTraces = (traces) => {
4723
4814
  if (trace.variantQueries.length > 0) {
4724
4815
  variantCases += 1;
4725
4816
  }
4817
+ if (trace.multiVector?.configured) {
4818
+ multiVectorCases += 1;
4819
+ }
4820
+ if ((trace.multiVector?.vectorVariantHits ?? 0) > 0) {
4821
+ multiVectorVectorHitCases += 1;
4822
+ }
4823
+ if ((trace.multiVector?.lexicalVariantHits ?? 0) > 0) {
4824
+ multiVectorLexicalHitCases += 1;
4825
+ }
4826
+ if ((trace.multiVector?.collapsedParents ?? 0) > 0) {
4827
+ multiVectorCollapsedCases += 1;
4828
+ }
4726
4829
  finalCountSum += trace.resultCounts.final;
4727
4830
  vectorCountSum += trace.resultCounts.vector;
4728
4831
  lexicalCountSum += trace.resultCounts.lexical;
@@ -4744,6 +4847,10 @@ var summarizeRetrievalTraces = (traces) => {
4744
4847
  totalCases,
4745
4848
  transformedCases,
4746
4849
  variantCases,
4850
+ multiVectorCases,
4851
+ multiVectorVectorHitCases,
4852
+ multiVectorLexicalHitCases,
4853
+ multiVectorCollapsedCases,
4747
4854
  vectorCases
4748
4855
  };
4749
4856
  };
@@ -8326,13 +8433,19 @@ var buildRAGRetrievalComparisonDecisionSummary = ({
8326
8433
  const delta = baselineEntry && candidateEntry ? {
8327
8434
  averageF1Delta: candidateEntry.response.summary.averageF1 - baselineEntry.response.summary.averageF1,
8328
8435
  elapsedMsDelta: candidateEntry.response.elapsedMs - baselineEntry.response.elapsedMs,
8329
- passingRateDelta: candidateEntry.response.passingRate - baselineEntry.response.passingRate
8436
+ passingRateDelta: candidateEntry.response.passingRate - baselineEntry.response.passingRate,
8437
+ multiVectorCollapsedCasesDelta: (candidateEntry.traceSummary?.multiVectorCollapsedCases ?? 0) - (baselineEntry.traceSummary?.multiVectorCollapsedCases ?? 0),
8438
+ multiVectorLexicalHitCasesDelta: (candidateEntry.traceSummary?.multiVectorLexicalHitCases ?? 0) - (baselineEntry.traceSummary?.multiVectorLexicalHitCases ?? 0),
8439
+ multiVectorVectorHitCasesDelta: (candidateEntry.traceSummary?.multiVectorVectorHitCases ?? 0) - (baselineEntry.traceSummary?.multiVectorVectorHitCases ?? 0)
8330
8440
  } : undefined;
8331
8441
  return {
8332
8442
  baseline: baselineEntry ? {
8333
8443
  averageF1: baselineEntry.response.summary.averageF1,
8334
8444
  elapsedMs: baselineEntry.response.elapsedMs,
8335
8445
  label: baselineEntry.label,
8446
+ multiVectorCollapsedCases: baselineEntry.traceSummary?.multiVectorCollapsedCases,
8447
+ multiVectorLexicalHitCases: baselineEntry.traceSummary?.multiVectorLexicalHitCases,
8448
+ multiVectorVectorHitCases: baselineEntry.traceSummary?.multiVectorVectorHitCases,
8336
8449
  passingRate: baselineEntry.response.passingRate,
8337
8450
  retrievalId: baselineEntry.retrievalId
8338
8451
  } : undefined,
@@ -8341,6 +8454,9 @@ var buildRAGRetrievalComparisonDecisionSummary = ({
8341
8454
  averageF1: candidateEntry.response.summary.averageF1,
8342
8455
  elapsedMs: candidateEntry.response.elapsedMs,
8343
8456
  label: candidateEntry.label,
8457
+ multiVectorCollapsedCases: candidateEntry.traceSummary?.multiVectorCollapsedCases,
8458
+ multiVectorLexicalHitCases: candidateEntry.traceSummary?.multiVectorLexicalHitCases,
8459
+ multiVectorVectorHitCases: candidateEntry.traceSummary?.multiVectorVectorHitCases,
8344
8460
  passingRate: candidateEntry.response.passingRate,
8345
8461
  retrievalId: candidateEntry.retrievalId
8346
8462
  } : undefined,
@@ -8349,7 +8465,10 @@ var buildRAGRetrievalComparisonDecisionSummary = ({
8349
8465
  fastest: comparison.summary.fastest,
8350
8466
  gate: evaluateRetrievalComparisonGate({ delta, policy }),
8351
8467
  winnerByAverageF1: comparison.summary.bestByAverageF1,
8352
- winnerByPassingRate: comparison.summary.bestByPassingRate
8468
+ winnerByPassingRate: comparison.summary.bestByPassingRate,
8469
+ winnerByMultivectorCollapsedCases: comparison.summary.bestByMultivectorCollapsedCases,
8470
+ winnerByMultivectorLexicalHitCases: comparison.summary.bestByMultivectorLexicalHitCases,
8471
+ winnerByMultivectorVectorHitCases: comparison.summary.bestByMultivectorVectorHitCases
8353
8472
  };
8354
8473
  };
8355
8474
  var loadRAGSearchTracePruneHistory = async ({
@@ -9011,6 +9130,32 @@ var summarizeEvaluationResponseComparison = (entries, idKey) => {
9011
9130
  fastest: getId(byLatency[0])
9012
9131
  };
9013
9132
  };
9133
+ var selectComparisonEntryByTraceMetric = (entries, idKey, metric) => {
9134
+ const ranked = [...entries].sort((left, right) => {
9135
+ const leftMetric = left.traceSummary?.[metric] ?? 0;
9136
+ const rightMetric = right.traceSummary?.[metric] ?? 0;
9137
+ if (rightMetric !== leftMetric) {
9138
+ return rightMetric - leftMetric;
9139
+ }
9140
+ const leftEvidenceScore = (left.traceSummary?.multiVectorCollapsedCases ?? 0) + (left.traceSummary?.multiVectorLexicalHitCases ?? 0) + (left.traceSummary?.multiVectorVectorHitCases ?? 0);
9141
+ const rightEvidenceScore = (right.traceSummary?.multiVectorCollapsedCases ?? 0) + (right.traceSummary?.multiVectorLexicalHitCases ?? 0) + (right.traceSummary?.multiVectorVectorHitCases ?? 0);
9142
+ if (rightEvidenceScore !== leftEvidenceScore) {
9143
+ return rightEvidenceScore - leftEvidenceScore;
9144
+ }
9145
+ if (right.response.passingRate !== left.response.passingRate) {
9146
+ return right.response.passingRate - left.response.passingRate;
9147
+ }
9148
+ if (right.response.summary.averageF1 !== left.response.summary.averageF1) {
9149
+ return right.response.summary.averageF1 - left.response.summary.averageF1;
9150
+ }
9151
+ return left.response.summary.averageLatencyMs - right.response.summary.averageLatencyMs;
9152
+ });
9153
+ const winner = ranked[0];
9154
+ if (!winner || (winner.traceSummary?.[metric] ?? 0) === 0) {
9155
+ return;
9156
+ }
9157
+ return typeof winner[idKey] === "string" ? winner[idKey] : undefined;
9158
+ };
9014
9159
  var resolveRetrievalMode = (candidate) => {
9015
9160
  if (!candidate.retrieval) {
9016
9161
  return "vector";
@@ -9100,7 +9245,11 @@ var compareRAGRetrievalTraceSummaries = (current, previous) => ({
9100
9245
  totalCasesDelta: current.totalCases - previous.totalCases,
9101
9246
  transformedCasesDelta: current.transformedCases - previous.transformedCases,
9102
9247
  vectorCasesDelta: current.vectorCases - previous.vectorCases,
9103
- variantCasesDelta: current.variantCases - previous.variantCases
9248
+ variantCasesDelta: current.variantCases - previous.variantCases,
9249
+ multiVectorCasesDelta: current.multiVectorCases - previous.multiVectorCases,
9250
+ multiVectorVectorHitCasesDelta: current.multiVectorVectorHitCases - previous.multiVectorVectorHitCases,
9251
+ multiVectorLexicalHitCasesDelta: current.multiVectorLexicalHitCases - previous.multiVectorLexicalHitCases,
9252
+ multiVectorCollapsedCasesDelta: current.multiVectorCollapsedCases - previous.multiVectorCollapsedCases
9104
9253
  });
9105
9254
  var buildSearchTraceResultSnapshots = (results) => results.map((result) => ({
9106
9255
  chunkId: result.chunkId,
@@ -9665,7 +9814,12 @@ var summarizeRAGEvaluationCase = ({
9665
9814
  var summarizeRAGRerankerComparison = (entries) => {
9666
9815
  return summarizeEvaluationResponseComparison(entries, "rerankerId");
9667
9816
  };
9668
- var summarizeRAGRetrievalComparison = (entries) => summarizeEvaluationResponseComparison(entries, "retrievalId");
9817
+ var summarizeRAGRetrievalComparison = (entries) => ({
9818
+ ...summarizeEvaluationResponseComparison(entries, "retrievalId"),
9819
+ bestByMultivectorCollapsedCases: selectComparisonEntryByTraceMetric(entries, "retrievalId", "multiVectorCollapsedCases"),
9820
+ bestByMultivectorLexicalHitCases: selectComparisonEntryByTraceMetric(entries, "retrievalId", "multiVectorLexicalHitCases"),
9821
+ bestByMultivectorVectorHitCases: selectComparisonEntryByTraceMetric(entries, "retrievalId", "multiVectorVectorHitCases")
9822
+ });
9669
9823
  // src/vue/ai/useAIStream.ts
9670
9824
  import { onUnmounted, ref, shallowRef } from "vue";
9671
9825
 
@@ -12271,5 +12425,5 @@ export {
12271
12425
  AIStreamKey
12272
12426
  };
12273
12427
 
12274
- //# debugId=3BA2CFDE50C1CDEE64756E2164756E21
12428
+ //# debugId=C409FAF21E73030A64756E2164756E21
12275
12429
  //# sourceMappingURL=index.js.map