@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.
@@ -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
 
9670
9824
  // src/angular/ai/ai-stream.service.ts
9671
9825
  import { computed, Injectable, signal } from "@angular/core";
@@ -11802,5 +11956,5 @@ export {
11802
11956
  AIStreamService
11803
11957
  };
11804
11958
 
11805
- //# debugId=67694DB72B3AE07064756E2164756E21
11959
+ //# debugId=EFD533429A529B3064756E2164756E21
11806
11960
  //# sourceMappingURL=index.js.map