@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.
@@ -1,5 +1,5 @@
1
1
  import type { RAGDocumentChunk, RAGQueryInput, RAGQueryResult, RAGUpsertInput } from '../../../types/ai';
2
- export type { AIHTMXRenderConfig, RAGAnswerWorkflowState, RAGBackendCapabilities, RAGCitation, RAGCitationReferenceMap, RAGGroundedAnswer, RAGGroundedAnswerPart, RAGGroundingReference, RAGChunkingOptions, RAGChunkingStrategy, RAGCollection, RAGCollectionSearchParams, RAGContentFormat, RAGHTMXConfig, RAGHybridFusionMode, RAGHybridRetrievalMode, RAGHybridSearchOptions, RAGDocumentChunk, RAGDocumentChunkPreview, RAGArchiveEntry, RAGArchiveExpander, RAGArchiveExpansionResult, RAGExtractedFileDocument, RAGFileExtractionInput, RAGFileExtractor, RAGPDFOCRExtractorOptions, RAGDirectoryIngestInput, RAGDirectorySyncSourceOptions, RAGDocumentFileInput, RAGDocumentIngestInput, RAGDocumentUploadIngestInput, RAGDocumentUploadInput, RAGEmbeddingFunction, RAGEmbeddingInput, RAGEmbeddingProvider, RAGEmbeddingProviderLike, RAGBackendDescriptor, RAGHTMXWorkflowRenderConfig, RAGIngestDocument, RAGIndexedDocument, RAGMediaTranscriber, RAGMediaTranscriptSegment, RAGMediaTranscriptionResult, RAGLexicalQueryInput, RAGDocumentUrlInput, RAGDocumentUrlIngestInput, RAGEmailSyncAttachment, RAGEmailSyncClient, RAGEmailSyncListInput, RAGEmailSyncListResult, RAGEmailSyncMessage, RAGEmailSyncSourceOptions, RAGFeedSyncInput, RAGFeedSyncSourceOptions, RAGGitHubRepoSyncInput, RAGGitHubSyncSourceOptions, RAGSitemapSyncInput, RAGSitemapSyncSourceOptions, RAGSiteDiscoveryInput, RAGSiteDiscoverySyncSourceOptions, RAGStorageSyncClient, RAGStorageSyncFile, RAGStorageSyncListInput, RAGStorageSyncListResult, RAGStorageSyncObject, RAGStorageSyncSourceOptions, RAGOCRProvider, RAGOCRResult, RAGPreparedDocument, RAGSource, RAGSourceGroup, RAGSourceSummary, RAGIngestResponse, RAGMutationResponse, RAGPostgresNativeDiagnostics, RAGQueryInput, RAGQueryResult, RAGQueryTransformInput, RAGQueryTransformProvider, RAGQueryTransformProviderLike, RAGQueryTransformResult, RAGQueryTransformer, RAGSearchRequest, RAGSyncManager, RAGSyncRunOptions, RAGSyncSchedule, RAGSyncScheduler, RAGSyncResponse, RAGSyncStateStore, RAGSyncSourceContext, RAGSyncSourceDefinition, RAGSyncSourceRecord, RAGSyncSourceRunResult, RAGUrlSyncSourceOptions, RAGSQLiteNativeDiagnostics, RAGStatusResponse, RAGStreamStage, RAGAnswerGroundingEvaluationCase, RAGAnswerGroundingEvaluationCaseDifficultyEntry, RAGAnswerGroundingCaseDifficultyDiffEntry, RAGAnswerGroundingCaseDifficultyHistory, RAGAnswerGroundingCaseDifficultyHistoryStore, RAGAnswerGroundingCaseDifficultyRun, RAGAnswerGroundingCaseDifficultyRunDiff, RAGAnswerGroundingEvaluationCaseDiff, RAGAnswerGroundingEvaluationCaseResult, RAGAnswerGroundingEvaluationHistory, RAGAnswerGroundingEvaluationLeaderboardEntry, RAGAnswerGroundingEvaluationHistoryStore, RAGAnswerGroundingEvaluationInput, RAGAnswerGroundingEvaluationResponse, RAGAnswerGroundingEvaluationRun, RAGAnswerGroundingEvaluationRunDiff, RAGAnswerGroundingEvaluationSummary, RAGEvaluationCase, RAGEvaluationCaseDiff, RAGEvaluationHistory, RAGEvaluationHistoryStore, RAGEvaluationCaseResult, RAGEvaluationLeaderboardEntry, RAGEvaluationInput, RAGEvaluationResponse, RAGEvaluationRunDiff, RAGEvaluationSummary, RAGEvaluationSuite, RAGEvaluationSuiteRun, RAGRetrievalCandidate, RAGRetrievalComparison, RAGRetrievalComparisonEntry, RAGRetrievalComparisonSummary, RAGUpsertInput, RAGVectorStore, RAGVectorStoreStatus, SQLiteVecResolution } from '../../../types/ai';
2
+ export type { AIHTMXRenderConfig, RAGAnswerWorkflowState, RAGBackendCapabilities, RAGCitation, RAGCitationReferenceMap, RAGGroundedAnswer, RAGGroundedAnswerPart, RAGGroundingReference, RAGChunkingOptions, RAGChunkingStrategy, RAGCollection, RAGCollectionSearchParams, RAGContentFormat, RAGHTMXConfig, RAGHybridFusionMode, RAGHybridRetrievalMode, RAGHybridSearchOptions, RAGDocumentChunk, RAGDocumentChunkEmbeddingVariant, RAGDocumentChunkPreview, RAGArchiveEntry, RAGArchiveExpander, RAGArchiveExpansionResult, RAGExtractedFileDocument, RAGFileExtractionInput, RAGFileExtractor, RAGPDFOCRExtractorOptions, RAGDirectoryIngestInput, RAGDirectorySyncSourceOptions, RAGDocumentFileInput, RAGDocumentIngestInput, RAGDocumentUploadIngestInput, RAGDocumentUploadInput, RAGEmbeddingFunction, RAGEmbeddingInput, RAGEmbeddingProvider, RAGEmbeddingProviderLike, RAGBackendDescriptor, RAGHTMXWorkflowRenderConfig, RAGIngestDocument, RAGIndexedDocument, RAGMediaTranscriber, RAGMediaTranscriptSegment, RAGMediaTranscriptionResult, RAGLexicalQueryInput, RAGDocumentUrlInput, RAGDocumentUrlIngestInput, RAGEmailSyncAttachment, RAGEmailSyncClient, RAGEmailSyncListInput, RAGEmailSyncListResult, RAGEmailSyncMessage, RAGEmailSyncSourceOptions, RAGFeedSyncInput, RAGFeedSyncSourceOptions, RAGGitHubRepoSyncInput, RAGGitHubSyncSourceOptions, RAGSitemapSyncInput, RAGSitemapSyncSourceOptions, RAGSiteDiscoveryInput, RAGSiteDiscoverySyncSourceOptions, RAGStorageSyncClient, RAGStorageSyncFile, RAGStorageSyncListInput, RAGStorageSyncListResult, RAGStorageSyncObject, RAGStorageSyncSourceOptions, RAGOCRProvider, RAGOCRResult, RAGPreparedDocument, RAGSource, RAGSourceGroup, RAGSourceSummary, RAGIngestResponse, RAGMutationResponse, RAGPostgresNativeDiagnostics, RAGQueryInput, RAGQueryResult, RAGQueryTransformInput, RAGQueryTransformProvider, RAGQueryTransformProviderLike, RAGQueryTransformResult, RAGQueryTransformer, RAGSearchRequest, RAGSyncManager, RAGSyncRunOptions, RAGSyncSchedule, RAGSyncScheduler, RAGSyncResponse, RAGSyncStateStore, RAGSyncSourceContext, RAGSyncSourceDefinition, RAGSyncSourceRecord, RAGSyncSourceRunResult, RAGUrlSyncSourceOptions, RAGSQLiteNativeDiagnostics, RAGStatusResponse, RAGStreamStage, RAGAnswerGroundingEvaluationCase, RAGAnswerGroundingEvaluationCaseDifficultyEntry, RAGAnswerGroundingCaseDifficultyDiffEntry, RAGAnswerGroundingCaseDifficultyHistory, RAGAnswerGroundingCaseDifficultyHistoryStore, RAGAnswerGroundingCaseDifficultyRun, RAGAnswerGroundingCaseDifficultyRunDiff, RAGAnswerGroundingEvaluationCaseDiff, RAGAnswerGroundingEvaluationCaseResult, RAGAnswerGroundingEvaluationHistory, RAGAnswerGroundingEvaluationLeaderboardEntry, RAGAnswerGroundingEvaluationHistoryStore, RAGAnswerGroundingEvaluationInput, RAGAnswerGroundingEvaluationResponse, RAGAnswerGroundingEvaluationRun, RAGAnswerGroundingEvaluationRunDiff, RAGAnswerGroundingEvaluationSummary, RAGEvaluationCase, RAGEvaluationCaseDiff, RAGEvaluationHistory, RAGEvaluationHistoryStore, RAGEvaluationCaseResult, RAGEvaluationLeaderboardEntry, RAGEvaluationInput, RAGEvaluationResponse, RAGEvaluationRunDiff, RAGEvaluationSummary, RAGEvaluationSuite, RAGEvaluationSuiteRun, RAGRetrievalCandidate, RAGRetrievalComparison, RAGRetrievalComparisonEntry, RAGRetrievalComparisonSummary, RAGUpsertInput, RAGVectorStore, RAGVectorStoreStatus, SQLiteVecResolution } from '../../../types/ai';
3
3
  export type InternalRAGStoredChunk = RAGDocumentChunk & {
4
4
  vector: number[];
5
5
  sourceId: string;
@@ -45,6 +45,13 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
45
45
  source?: string | undefined;
46
46
  metadata?: Record<string, unknown> | undefined;
47
47
  embedding?: number[] | undefined;
48
+ embeddingVariants?: {
49
+ id: string;
50
+ label?: string | undefined;
51
+ text?: string | undefined;
52
+ metadata?: Record<string, unknown> | undefined;
53
+ embedding?: number[] | undefined;
54
+ }[] | undefined;
48
55
  structure?: {
49
56
  section?: {
50
57
  title?: string | undefined;
@@ -104,6 +111,13 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
104
111
  source?: string | undefined;
105
112
  metadata?: Record<string, unknown> | undefined;
106
113
  embedding?: number[] | undefined;
114
+ embeddingVariants?: {
115
+ id: string;
116
+ label?: string | undefined;
117
+ text?: string | undefined;
118
+ metadata?: Record<string, unknown> | undefined;
119
+ embedding?: number[] | undefined;
120
+ }[] | undefined;
107
121
  structure?: {
108
122
  section?: {
109
123
  title?: string | undefined;
@@ -491,6 +505,10 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
491
505
  roundRobinCases: number;
492
506
  transformedCases: number;
493
507
  variantCases: number;
508
+ multiVectorCases: number;
509
+ multiVectorVectorHitCases: number;
510
+ multiVectorLexicalHitCases: number;
511
+ multiVectorCollapsedCases: number;
494
512
  averageFinalCount: number;
495
513
  averageVectorCount: number;
496
514
  averageLexicalCount: number;
@@ -790,6 +808,10 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
790
808
  roundRobinCases: number;
791
809
  transformedCases: number;
792
810
  variantCases: number;
811
+ multiVectorCases: number;
812
+ multiVectorVectorHitCases: number;
813
+ multiVectorLexicalHitCases: number;
814
+ multiVectorCollapsedCases: number;
793
815
  averageFinalCount: number;
794
816
  averageVectorCount: number;
795
817
  averageLexicalCount: number;
@@ -39,6 +39,13 @@ export declare const useRAGChunkPreview: (path: string) => {
39
39
  source?: string | undefined;
40
40
  metadata?: Record<string, unknown> | undefined;
41
41
  embedding?: number[] | undefined;
42
+ embeddingVariants?: {
43
+ id: string;
44
+ label?: string | undefined;
45
+ text?: string | undefined;
46
+ metadata?: Record<string, unknown> | undefined;
47
+ embedding?: number[] | undefined;
48
+ }[] | undefined;
42
49
  structure?: {
43
50
  section?: {
44
51
  title?: string | undefined;
@@ -98,6 +105,13 @@ export declare const useRAGChunkPreview: (path: string) => {
98
105
  source?: string | undefined;
99
106
  metadata?: Record<string, unknown> | undefined;
100
107
  embedding?: number[] | undefined;
108
+ embeddingVariants?: {
109
+ id: string;
110
+ label?: string | undefined;
111
+ text?: string | undefined;
112
+ metadata?: Record<string, unknown> | undefined;
113
+ embedding?: number[] | undefined;
114
+ }[] | undefined;
101
115
  structure?: {
102
116
  section?: {
103
117
  title?: string | undefined;
@@ -250,6 +250,10 @@ export declare const useRAGEvaluate: (path: string) => {
250
250
  roundRobinCases: number;
251
251
  transformedCases: number;
252
252
  variantCases: number;
253
+ multiVectorCases: number;
254
+ multiVectorVectorHitCases: number;
255
+ multiVectorLexicalHitCases: number;
256
+ multiVectorCollapsedCases: number;
253
257
  averageFinalCount: number;
254
258
  averageVectorCount: number;
255
259
  averageLexicalCount: number;
@@ -549,6 +553,10 @@ export declare const useRAGEvaluate: (path: string) => {
549
553
  roundRobinCases: number;
550
554
  transformedCases: number;
551
555
  variantCases: number;
556
+ multiVectorCases: number;
557
+ multiVectorVectorHitCases: number;
558
+ multiVectorLexicalHitCases: number;
559
+ multiVectorCollapsedCases: number;
552
560
  averageFinalCount: number;
553
561
  averageVectorCount: number;
554
562
  averageLexicalCount: number;
@@ -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/ai/client/actions.ts
9670
9824
  var serverMessageToAction = (message) => {
9671
9825
  switch (message.type) {
@@ -12300,5 +12454,5 @@ export {
12300
12454
  createAIStream
12301
12455
  };
12302
12456
 
12303
- //# debugId=A9F0FF2ABA1EAD4964756E2164756E21
12457
+ //# debugId=D05E1847729A8C6864756E2164756E21
12304
12458
  //# sourceMappingURL=index.js.map