@absolutejs/absolute 0.19.0-beta.625 → 0.19.0-beta.626

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.
package/dist/ai/index.js CHANGED
@@ -749,7 +749,7 @@ var formatLeadMediaCueSummary = (input) => {
749
749
  return parts.length > 0 ? parts.join(" \xB7 ") : "none";
750
750
  };
751
751
  var formatRAGTraceMetadataRow = (key, value) => ({
752
- label: key === "sqliteQueryMode" ? "SQLite query mode" : key === "sqliteQueryPushdownApplied" ? "SQLite pushdown applied" : key === "sqliteQueryPushdownClauseCount" ? "SQLite pushdown clauses" : key === "sqliteQueryFilteredCandidates" ? "SQLite filtered candidates" : key === "sqliteQueryInitialSearchK" ? "SQLite initial searchK" : key === "sqliteQueryFinalSearchK" ? "SQLite final searchK" : key === "sqliteQueryBackfillCount" ? "SQLite backfill count" : key === "leadSpeakerCue" ? "Lead speaker cue" : key === "leadSpeakerAttributionCue" ? "Lead speaker attribution" : key === "leadChannelAttributionCue" ? "Lead channel attribution" : key === "leadChannelCue" ? "Lead channel cue" : key === "leadContinuityCue" ? "Lead continuity cue" : key,
752
+ label: key === "sqliteQueryMode" ? "SQLite query mode" : key === "sqliteQueryPushdownApplied" ? "SQLite pushdown applied" : key === "sqliteQueryPushdownClauseCount" ? "SQLite pushdown clauses" : key === "sqliteQueryFilteredCandidates" ? "SQLite filtered candidates" : key === "sqliteQueryInitialSearchK" ? "SQLite initial searchK" : key === "sqliteQueryFinalSearchK" ? "SQLite final searchK" : key === "sqliteQueryBackfillCount" ? "SQLite backfill count" : key === "sqliteQueryReturnedCount" ? "SQLite returned hits" : key === "sqliteQueryUnderfilledTopK" ? "SQLite underfilled topK" : key === "sqliteQueryCandidateBudgetExhausted" ? "SQLite candidate budget exhausted" : key === "sqliteQueryCandidateCoverage" ? "SQLite candidate coverage" : key === "leadSpeakerCue" ? "Lead speaker cue" : key === "leadSpeakerAttributionCue" ? "Lead speaker attribution" : key === "leadChannelAttributionCue" ? "Lead channel attribution" : key === "leadChannelCue" ? "Lead channel cue" : key === "leadContinuityCue" ? "Lead continuity cue" : key,
753
753
  value: key === "sourceAwareChunkReason" ? formatSourceAwareChunkReason(value) ?? formatRAGTraceValue(value) : key === "leadSpeakerAttributionCue" ? formatLeadSpeakerAttributionCue(value) ?? formatRAGTraceValue(value) : key === "leadChannelAttributionCue" ? formatLeadChannelAttributionCue(value) ?? formatRAGTraceValue(value) : key === "leadContinuityCue" ? formatLeadContinuityCue(value) ?? formatRAGTraceValue(value) : formatRAGTraceValue(value)
754
754
  });
755
755
  var buildRAGRetrievalTracePresentation = (trace) => {
@@ -2519,19 +2519,27 @@ var formatSQLitePlannerCueSummary = (input) => {
2519
2519
  typeof input?.sqliteQueryPushdownClauseCount === "number" ? `clauses ${input.sqliteQueryPushdownClauseCount}` : undefined,
2520
2520
  typeof input?.sqliteQueryFilteredCandidates === "number" ? `filtered ${input.sqliteQueryFilteredCandidates}` : undefined,
2521
2521
  typeof input?.sqliteQueryInitialSearchK === "number" && typeof input?.sqliteQueryFinalSearchK === "number" ? `searchK ${input.sqliteQueryInitialSearchK}->${input.sqliteQueryFinalSearchK}` : typeof input?.sqliteQueryFinalSearchK === "number" ? `searchK ${input.sqliteQueryFinalSearchK}` : undefined,
2522
- typeof input?.sqliteQueryBackfillCount === "number" ? `backfill ${input.sqliteQueryBackfillCount}` : undefined
2522
+ typeof input?.sqliteQueryBackfillCount === "number" ? `backfill ${input.sqliteQueryBackfillCount}` : undefined,
2523
+ typeof input?.sqliteQueryReturnedCount === "number" ? `returned ${input.sqliteQueryReturnedCount}` : undefined,
2524
+ input?.sqliteQueryCandidateCoverage ? `coverage ${input.sqliteQueryCandidateCoverage}` : undefined,
2525
+ typeof input?.sqliteQueryUnderfilledTopK === "boolean" && input.sqliteQueryUnderfilledTopK ? "underfilled topK" : undefined,
2526
+ typeof input?.sqliteQueryCandidateBudgetExhausted === "boolean" && input.sqliteQueryCandidateBudgetExhausted ? "budget exhausted" : undefined
2523
2527
  ].filter((value) => typeof value === "string");
2524
2528
  return parts.length > 0 ? parts.join(" \xB7 ") : "none";
2525
2529
  };
2526
2530
  var formatComparisonSQLitePlannerCueSummary = (entry) => {
2527
2531
  const labels = Array.from(new Set((entry.caseTraceSnapshots ?? []).map((snapshot) => formatSQLitePlannerCueSummary({
2528
2532
  sqliteQueryBackfillCount: snapshot.sqliteQueryBackfillCount,
2533
+ sqliteQueryCandidateBudgetExhausted: snapshot.sqliteQueryCandidateBudgetExhausted,
2534
+ sqliteQueryCandidateCoverage: snapshot.sqliteQueryCandidateCoverage,
2529
2535
  sqliteQueryFilteredCandidates: snapshot.sqliteQueryFilteredCandidates,
2530
2536
  sqliteQueryFinalSearchK: snapshot.sqliteQueryFinalSearchK,
2531
2537
  sqliteQueryInitialSearchK: snapshot.sqliteQueryInitialSearchK,
2532
2538
  sqliteQueryMode: snapshot.sqliteQueryMode,
2533
2539
  sqliteQueryPushdownApplied: snapshot.sqliteQueryPushdownApplied,
2534
- sqliteQueryPushdownClauseCount: snapshot.sqliteQueryPushdownClauseCount
2540
+ sqliteQueryPushdownClauseCount: snapshot.sqliteQueryPushdownClauseCount,
2541
+ sqliteQueryReturnedCount: snapshot.sqliteQueryReturnedCount,
2542
+ sqliteQueryUnderfilledTopK: snapshot.sqliteQueryUnderfilledTopK
2535
2543
  })).filter((value) => typeof value === "string" && value !== "none"))).slice(0, 3);
2536
2544
  return labels.length > 0 ? labels.join(" \xB7 ") : "none";
2537
2545
  };
@@ -2662,12 +2670,16 @@ var formatHistorySQLitePlannerShift = (history) => {
2662
2670
  const shifts = history.caseTraceSnapshots.map((entry) => {
2663
2671
  const previousPlanner = formatSQLitePlannerCueSummary({
2664
2672
  sqliteQueryBackfillCount: entry.previousSqliteQueryBackfillCount,
2673
+ sqliteQueryCandidateBudgetExhausted: entry.previousSqliteQueryCandidateBudgetExhausted,
2674
+ sqliteQueryCandidateCoverage: entry.previousSqliteQueryCandidateCoverage,
2665
2675
  sqliteQueryFilteredCandidates: entry.previousSqliteQueryFilteredCandidates,
2666
2676
  sqliteQueryFinalSearchK: entry.previousSqliteQueryFinalSearchK,
2667
2677
  sqliteQueryInitialSearchK: entry.previousSqliteQueryInitialSearchK,
2668
2678
  sqliteQueryMode: entry.previousSqliteQueryMode,
2669
2679
  sqliteQueryPushdownApplied: entry.previousSqliteQueryPushdownApplied,
2670
- sqliteQueryPushdownClauseCount: entry.previousSqliteQueryPushdownClauseCount
2680
+ sqliteQueryPushdownClauseCount: entry.previousSqliteQueryPushdownClauseCount,
2681
+ sqliteQueryReturnedCount: entry.previousSqliteQueryReturnedCount,
2682
+ sqliteQueryUnderfilledTopK: entry.previousSqliteQueryUnderfilledTopK
2671
2683
  });
2672
2684
  const currentPlanner = formatSQLitePlannerCueSummary(entry);
2673
2685
  if (previousPlanner === "none" || currentPlanner === "none" || previousPlanner === currentPlanner) {
@@ -3693,12 +3705,16 @@ var buildEvaluationSQLiteQueryPlanSnapshot = (trace) => {
3693
3705
  const metadata = vectorStep?.metadata ?? {};
3694
3706
  return {
3695
3707
  sqliteQueryBackfillCount: typeof metadata.sqliteQueryBackfillCount === "number" ? metadata.sqliteQueryBackfillCount : undefined,
3708
+ sqliteQueryCandidateBudgetExhausted: typeof metadata.sqliteQueryCandidateBudgetExhausted === "boolean" ? metadata.sqliteQueryCandidateBudgetExhausted : undefined,
3709
+ sqliteQueryCandidateCoverage: metadata.sqliteQueryCandidateCoverage === "empty" || metadata.sqliteQueryCandidateCoverage === "under_target" || metadata.sqliteQueryCandidateCoverage === "target_sized" || metadata.sqliteQueryCandidateCoverage === "broad" ? metadata.sqliteQueryCandidateCoverage : undefined,
3696
3710
  sqliteQueryFilteredCandidates: typeof metadata.sqliteQueryFilteredCandidates === "number" ? metadata.sqliteQueryFilteredCandidates : undefined,
3697
3711
  sqliteQueryFinalSearchK: typeof metadata.sqliteQueryFinalSearchK === "number" ? metadata.sqliteQueryFinalSearchK : undefined,
3698
3712
  sqliteQueryInitialSearchK: typeof metadata.sqliteQueryInitialSearchK === "number" ? metadata.sqliteQueryInitialSearchK : undefined,
3699
3713
  sqliteQueryMode: metadata.sqliteQueryMode === "json_fallback" || metadata.sqliteQueryMode === "native_vec0" ? metadata.sqliteQueryMode : undefined,
3700
3714
  sqliteQueryPushdownApplied: typeof metadata.sqliteQueryPushdownApplied === "boolean" ? metadata.sqliteQueryPushdownApplied : undefined,
3701
- sqliteQueryPushdownClauseCount: typeof metadata.sqliteQueryPushdownClauseCount === "number" ? metadata.sqliteQueryPushdownClauseCount : undefined
3715
+ sqliteQueryPushdownClauseCount: typeof metadata.sqliteQueryPushdownClauseCount === "number" ? metadata.sqliteQueryPushdownClauseCount : undefined,
3716
+ sqliteQueryReturnedCount: typeof metadata.sqliteQueryReturnedCount === "number" ? metadata.sqliteQueryReturnedCount : undefined,
3717
+ sqliteQueryUnderfilledTopK: typeof metadata.sqliteQueryUnderfilledTopK === "boolean" ? metadata.sqliteQueryUnderfilledTopK : undefined
3702
3718
  };
3703
3719
  };
3704
3720
  var DEFAULT_RETRIEVAL_COMPARISON_HISTORY_TABLE_NAME = "rag_retrieval_comparison_history";
@@ -4947,11 +4963,15 @@ var buildEvaluationCaseTraceSnapshot = ({
4947
4963
  const sqliteQueryInitialSearchK = currentSQLiteQueryPlanSnapshot.sqliteQueryInitialSearchK ?? currentSnapshot?.sqliteQueryInitialSearchK;
4948
4964
  const sqliteQueryFinalSearchK = currentSQLiteQueryPlanSnapshot.sqliteQueryFinalSearchK ?? currentSnapshot?.sqliteQueryFinalSearchK;
4949
4965
  const sqliteQueryBackfillCount = currentSQLiteQueryPlanSnapshot.sqliteQueryBackfillCount ?? currentSnapshot?.sqliteQueryBackfillCount;
4966
+ const sqliteQueryReturnedCount = currentSQLiteQueryPlanSnapshot.sqliteQueryReturnedCount ?? currentSnapshot?.sqliteQueryReturnedCount;
4967
+ const sqliteQueryUnderfilledTopK = currentSQLiteQueryPlanSnapshot.sqliteQueryUnderfilledTopK ?? currentSnapshot?.sqliteQueryUnderfilledTopK;
4968
+ const sqliteQueryCandidateBudgetExhausted = currentSQLiteQueryPlanSnapshot.sqliteQueryCandidateBudgetExhausted ?? currentSnapshot?.sqliteQueryCandidateBudgetExhausted;
4969
+ const sqliteQueryCandidateCoverage = currentSQLiteQueryPlanSnapshot.sqliteQueryCandidateCoverage ?? currentSnapshot?.sqliteQueryCandidateCoverage;
4950
4970
  const currentFilterSignature = JSON.stringify(filter ?? undefined);
4951
4971
  const previousFilterSignature = JSON.stringify(previousTrace?.inputFilter ?? undefined);
4952
4972
  const currentRetrievalSignature = JSON.stringify(retrieval ?? undefined);
4953
4973
  const previousRetrievalSignature = JSON.stringify(previousTrace?.inputRetrieval ?? undefined);
4954
- const traceChange = !previousTrace ? currentTrace ? "new" : "unchanged" : previousTrace.traceMode !== currentTrace?.mode || previousFilterSignature !== currentFilterSignature || previousRetrievalSignature !== currentRetrievalSignature || 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) || previousTrace.topContextLabel !== topContextLabel || previousTrace.topLocatorLabel !== topLocatorLabel || previousTrace.sourceAwareChunkReasonLabel !== sourceAwareChunkReasonLabel || previousTrace.sourceAwareUnitScopeLabel !== sourceAwareUnitScopeLabel || previousTrace.leadSpeakerCue !== leadSpeakerCue || previousTrace.leadSpeakerAttributionCue !== leadSpeakerAttributionCue || previousTrace.leadChannelCue !== leadChannelCue || previousTrace.leadChannelAttributionCue !== leadChannelAttributionCue || previousTrace.leadContinuityCue !== leadContinuityCue || previousTrace.sqliteQueryMode !== sqliteQueryMode || previousTrace.sqliteQueryPushdownApplied !== sqliteQueryPushdownApplied || previousTrace.sqliteQueryPushdownClauseCount !== sqliteQueryPushdownClauseCount || previousTrace.sqliteQueryFilteredCandidates !== sqliteQueryFilteredCandidates || previousTrace.sqliteQueryInitialSearchK !== sqliteQueryInitialSearchK || previousTrace.sqliteQueryFinalSearchK !== sqliteQueryFinalSearchK || previousTrace.sqliteQueryBackfillCount !== sqliteQueryBackfillCount || !areStageCountsEqual(previousStageCounts, stageCounts) ? "changed" : "unchanged";
4974
+ const traceChange = !previousTrace ? currentTrace ? "new" : "unchanged" : previousTrace.traceMode !== currentTrace?.mode || previousFilterSignature !== currentFilterSignature || previousRetrievalSignature !== currentRetrievalSignature || 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) || previousTrace.topContextLabel !== topContextLabel || previousTrace.topLocatorLabel !== topLocatorLabel || previousTrace.sourceAwareChunkReasonLabel !== sourceAwareChunkReasonLabel || previousTrace.sourceAwareUnitScopeLabel !== sourceAwareUnitScopeLabel || previousTrace.leadSpeakerCue !== leadSpeakerCue || previousTrace.leadSpeakerAttributionCue !== leadSpeakerAttributionCue || previousTrace.leadChannelCue !== leadChannelCue || previousTrace.leadChannelAttributionCue !== leadChannelAttributionCue || previousTrace.leadContinuityCue !== leadContinuityCue || previousTrace.sqliteQueryMode !== sqliteQueryMode || previousTrace.sqliteQueryPushdownApplied !== sqliteQueryPushdownApplied || previousTrace.sqliteQueryPushdownClauseCount !== sqliteQueryPushdownClauseCount || previousTrace.sqliteQueryFilteredCandidates !== sqliteQueryFilteredCandidates || previousTrace.sqliteQueryInitialSearchK !== sqliteQueryInitialSearchK || previousTrace.sqliteQueryFinalSearchK !== sqliteQueryFinalSearchK || previousTrace.sqliteQueryBackfillCount !== sqliteQueryBackfillCount || previousTrace.sqliteQueryReturnedCount !== sqliteQueryReturnedCount || previousTrace.sqliteQueryUnderfilledTopK !== sqliteQueryUnderfilledTopK || previousTrace.sqliteQueryCandidateBudgetExhausted !== sqliteQueryCandidateBudgetExhausted || previousTrace.sqliteQueryCandidateCoverage !== sqliteQueryCandidateCoverage || !areStageCountsEqual(previousStageCounts, stageCounts) ? "changed" : "unchanged";
4955
4975
  return {
4956
4976
  candidateTopK: currentTrace?.candidateTopK ?? 0,
4957
4977
  caseId: caseResult.caseId,
@@ -4974,12 +4994,16 @@ var buildEvaluationCaseTraceSnapshot = ({
4974
4994
  previousLeadSpeakerAttributionCue: previousTrace?.leadSpeakerAttributionCue,
4975
4995
  previousLeadSpeakerCue: previousTrace?.leadSpeakerCue,
4976
4996
  previousSqliteQueryBackfillCount: previousTrace?.sqliteQueryBackfillCount,
4997
+ previousSqliteQueryCandidateBudgetExhausted: previousTrace?.sqliteQueryCandidateBudgetExhausted,
4998
+ previousSqliteQueryCandidateCoverage: previousTrace?.sqliteQueryCandidateCoverage,
4977
4999
  previousSqliteQueryFilteredCandidates: previousTrace?.sqliteQueryFilteredCandidates,
4978
5000
  previousSqliteQueryFinalSearchK: previousTrace?.sqliteQueryFinalSearchK,
4979
5001
  previousSqliteQueryInitialSearchK: previousTrace?.sqliteQueryInitialSearchK,
4980
5002
  previousSqliteQueryMode: previousTrace?.sqliteQueryMode,
4981
5003
  previousSqliteQueryPushdownApplied: previousTrace?.sqliteQueryPushdownApplied,
4982
5004
  previousSqliteQueryPushdownClauseCount: previousTrace?.sqliteQueryPushdownClauseCount,
5005
+ previousSqliteQueryReturnedCount: previousTrace?.sqliteQueryReturnedCount,
5006
+ previousSqliteQueryUnderfilledTopK: previousTrace?.sqliteQueryUnderfilledTopK,
4983
5007
  previousSourceBalanceStrategy: previousTrace?.sourceBalanceStrategy,
4984
5008
  previousSourceAwareChunkReasonLabel: previousTrace?.sourceAwareChunkReasonLabel,
4985
5009
  previousStageCounts,
@@ -4997,12 +5021,16 @@ var buildEvaluationCaseTraceSnapshot = ({
4997
5021
  leadSpeakerAttributionCue,
4998
5022
  leadSpeakerCue,
4999
5023
  sqliteQueryBackfillCount,
5024
+ sqliteQueryCandidateBudgetExhausted,
5025
+ sqliteQueryCandidateCoverage,
5000
5026
  sqliteQueryFilteredCandidates,
5001
5027
  sqliteQueryFinalSearchK,
5002
5028
  sqliteQueryInitialSearchK,
5003
5029
  sqliteQueryMode,
5004
5030
  sqliteQueryPushdownApplied,
5005
5031
  sqliteQueryPushdownClauseCount,
5032
+ sqliteQueryReturnedCount,
5033
+ sqliteQueryUnderfilledTopK,
5006
5034
  sourceAwareChunkReasonLabel,
5007
5035
  sourceAwareUnitScopeLabel,
5008
5036
  stageCounts,
@@ -16601,12 +16629,16 @@ var buildStoreQueryPlanTraceMetadata = (store) => {
16601
16629
  }
16602
16630
  return {
16603
16631
  sqliteQueryBackfillCount: nativePlan.backfillCount ?? null,
16632
+ sqliteQueryCandidateBudgetExhausted: nativePlan.candidateBudgetExhausted ?? null,
16633
+ sqliteQueryCandidateCoverage: nativePlan.candidateCoverage ?? null,
16604
16634
  sqliteQueryFilteredCandidates: nativePlan.filteredCandidateCount ?? null,
16605
16635
  sqliteQueryFinalSearchK: nativePlan.finalSearchK ?? null,
16606
16636
  sqliteQueryInitialSearchK: nativePlan.initialSearchK ?? null,
16607
16637
  sqliteQueryMode: nativePlan.queryMode,
16608
16638
  sqliteQueryPushdownApplied: nativePlan.pushdownApplied,
16609
- sqliteQueryPushdownClauseCount: nativePlan.pushdownClauseCount
16639
+ sqliteQueryPushdownClauseCount: nativePlan.pushdownClauseCount,
16640
+ sqliteQueryReturnedCount: nativePlan.returnedCount ?? null,
16641
+ sqliteQueryUnderfilledTopK: nativePlan.underfilledTopK ?? null
16610
16642
  };
16611
16643
  };
16612
16644
  var createRAGCollection = (options) => {
@@ -28514,6 +28546,19 @@ var planNativeCandidateSearchBackfillK = (input) => {
28514
28546
  }
28515
28547
  return Math.min(cappedLimit, Math.max(input.currentSearchK + 1, input.currentSearchK * 2));
28516
28548
  };
28549
+ var summarizeSQLiteCandidateCoverage = (input) => {
28550
+ const basis = typeof input.filteredCandidateCount === "number" && Number.isFinite(input.filteredCandidateCount) ? Math.max(0, Math.floor(input.filteredCandidateCount)) : typeof input.returnedCount === "number" && Number.isFinite(input.returnedCount) ? Math.max(0, Math.floor(input.returnedCount)) : 0;
28551
+ if (basis === 0) {
28552
+ return "empty";
28553
+ }
28554
+ if (basis < input.topK) {
28555
+ return "under_target";
28556
+ }
28557
+ if (basis >= input.topK * 3) {
28558
+ return "broad";
28559
+ }
28560
+ return "target_sized";
28561
+ };
28517
28562
 
28518
28563
  // src/ai/rag/adapters/sqlite.ts
28519
28564
  var DEFAULT_DIMENSIONS = RAG_VECTOR_DIMENSIONS_DEFAULT;
@@ -29101,12 +29146,20 @@ var updateSQLiteLastQueryPlan = (input) => {
29101
29146
  }
29102
29147
  input.nativeDiagnostics.lastQueryPlan = {
29103
29148
  backfillCount: input.backfillCount,
29149
+ candidateBudgetExhausted: input.candidateBudgetExhausted,
29150
+ candidateCoverage: summarizeSQLiteCandidateCoverage({
29151
+ filteredCandidateCount: input.filteredCandidateCount,
29152
+ returnedCount: input.returnedCount,
29153
+ topK: input.topK
29154
+ }),
29104
29155
  filteredCandidateCount: input.filteredCandidateCount,
29105
29156
  finalSearchK: input.finalSearchK,
29106
29157
  initialSearchK: input.initialSearchK,
29107
29158
  pushdownApplied: Boolean(input.pushdownFilter),
29108
29159
  pushdownClauseCount: countPushdownClauses(input.pushdownFilter),
29109
- queryMode: input.queryMode
29160
+ queryMode: input.queryMode,
29161
+ returnedCount: input.returnedCount,
29162
+ underfilledTopK: input.underfilledTopK
29110
29163
  };
29111
29164
  };
29112
29165
  var markNativeUpsertFailure = (nativeDiagnostics, error) => {
@@ -29230,16 +29283,21 @@ var createSQLiteRAGStore = (options = {}) => {
29230
29283
  const rawRows = toStoredRows(filterPlan ? db.prepare(buildJsonQuerySql(tableName, filterPlan.clause)).all(...filterPlan.params) : jsonStatements.query.all());
29231
29284
  const chunks = mapFilterToRows(rawRows);
29232
29285
  const filtered = mapToRows(queryVector, chunks, input.filter);
29286
+ const limited = filtered.slice(0, input.topK);
29233
29287
  updateSQLiteLastQueryPlan({
29234
29288
  backfillCount: 0,
29289
+ candidateBudgetExhausted: false,
29235
29290
  filteredCandidateCount: rawRows.length,
29236
29291
  finalSearchK: rawRows.length,
29237
29292
  initialSearchK: rawRows.length,
29238
29293
  nativeDiagnostics,
29239
29294
  pushdownFilter,
29240
- queryMode: "json_fallback"
29295
+ queryMode: "json_fallback",
29296
+ returnedCount: limited.length,
29297
+ topK: input.topK,
29298
+ underfilledTopK: limited.length < input.topK
29241
29299
  });
29242
- return filtered.slice(0, input.topK).map(({ chunk, score }) => ({
29300
+ return limited.map(({ chunk, score }) => ({
29243
29301
  chunkId: chunk.chunkId,
29244
29302
  chunkText: chunk.text,
29245
29303
  embedding: chunk.vector,
@@ -29275,6 +29333,7 @@ var createSQLiteRAGStore = (options = {}) => {
29275
29333
  const runNativeQuery = (candidateK) => toNativeStoredRows(filterPlan ? db.prepare(buildNativeQuerySql(nativeTableName, filterPlan.clause)).all(queryVectorText, candidateK, ...filterPlan.params) : nativeStatements.query.all(queryVectorText, candidateK));
29276
29334
  let currentSearchK = searchK;
29277
29335
  let backfillCount = 0;
29336
+ let candidateBudgetExhausted = false;
29278
29337
  let mapped = [];
29279
29338
  for (;; ) {
29280
29339
  const rawRows = runNativeQuery(currentSearchK);
@@ -29309,6 +29368,7 @@ var createSQLiteRAGStore = (options = {}) => {
29309
29368
  filteredCandidateCount
29310
29369
  });
29311
29370
  if (nextSearchK <= currentSearchK) {
29371
+ candidateBudgetExhausted = mapped.length < input.topK;
29312
29372
  break;
29313
29373
  }
29314
29374
  currentSearchK = nextSearchK;
@@ -29316,12 +29376,16 @@ var createSQLiteRAGStore = (options = {}) => {
29316
29376
  }
29317
29377
  updateSQLiteLastQueryPlan({
29318
29378
  backfillCount,
29379
+ candidateBudgetExhausted,
29319
29380
  filteredCandidateCount,
29320
29381
  finalSearchK: currentSearchK,
29321
29382
  initialSearchK: searchK,
29322
29383
  nativeDiagnostics,
29323
29384
  pushdownFilter,
29324
- queryMode: "native_vec0"
29385
+ queryMode: "native_vec0",
29386
+ returnedCount: Math.min(mapped.length, input.topK),
29387
+ topK: input.topK,
29388
+ underfilledTopK: mapped.length < input.topK
29325
29389
  });
29326
29390
  return mapped.slice(0, input.topK);
29327
29391
  };
@@ -31486,5 +31550,5 @@ export {
31486
31550
  addRAGEvaluationSuiteCase
31487
31551
  };
31488
31552
 
31489
- //# debugId=72863DACF2C3B69B64756E2164756E21
31553
+ //# debugId=B5F5D5DFB1D746F464756E2164756E21
31490
31554
  //# sourceMappingURL=index.js.map