@absolutejs/absolute 0.19.0-beta.517 → 0.19.0-beta.519

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
@@ -5105,8 +5105,34 @@ var buildRAGEvaluationLeaderboard = (runs) => {
5105
5105
  totalCases: run.response.totalCases
5106
5106
  }));
5107
5107
  };
5108
+ var buildRAGAnswerGroundingEvaluationLeaderboard = (runs) => {
5109
+ const sorted = [...runs].sort((left, right) => {
5110
+ if (right.response.passingRate !== left.response.passingRate) {
5111
+ return right.response.passingRate - left.response.passingRate;
5112
+ }
5113
+ if (right.response.summary.averageCitationF1 !== left.response.summary.averageCitationF1) {
5114
+ return right.response.summary.averageCitationF1 - left.response.summary.averageCitationF1;
5115
+ }
5116
+ if (right.response.summary.averageResolvedCitationRate !== left.response.summary.averageResolvedCitationRate) {
5117
+ return right.response.summary.averageResolvedCitationRate - left.response.summary.averageResolvedCitationRate;
5118
+ }
5119
+ return left.elapsedMs - right.elapsedMs;
5120
+ });
5121
+ return sorted.map((run, index) => ({
5122
+ averageCitationF1: run.response.summary.averageCitationF1,
5123
+ averageResolvedCitationRate: run.response.summary.averageResolvedCitationRate,
5124
+ label: run.label,
5125
+ passingRate: run.response.passingRate,
5126
+ rank: index + 1,
5127
+ runId: run.id,
5128
+ suiteId: run.suiteId,
5129
+ totalCases: run.response.totalCases
5130
+ }));
5131
+ };
5108
5132
  var toHistorySortOrder = (left, right) => right.finishedAt - left.finishedAt;
5109
5133
  var normalizeHistoryRuns = (runs) => [...runs].sort(toHistorySortOrder);
5134
+ var toGroundingHistorySortOrder = (left, right) => right.finishedAt - left.finishedAt;
5135
+ var normalizeGroundingHistoryRuns = (runs) => [...runs].sort(toGroundingHistorySortOrder);
5110
5136
  var buildCaseDiff = (currentCase, previousCase) => ({
5111
5137
  caseId: currentCase.caseId,
5112
5138
  currentF1: currentCase.f1,
@@ -5120,6 +5146,19 @@ var buildCaseDiff = (currentCase, previousCase) => ({
5120
5146
  previousStatus: previousCase?.status,
5121
5147
  query: currentCase.query
5122
5148
  });
5149
+ var buildGroundingCaseDiff = (currentCase, previousCase) => ({
5150
+ caseId: currentCase.caseId,
5151
+ currentCitationF1: currentCase.citationF1,
5152
+ currentMatchedIds: currentCase.matchedIds,
5153
+ currentMissingIds: currentCase.missingIds,
5154
+ currentStatus: currentCase.status,
5155
+ label: currentCase.label,
5156
+ previousCitationF1: previousCase?.citationF1,
5157
+ previousMatchedIds: previousCase?.matchedIds ?? [],
5158
+ previousMissingIds: previousCase?.missingIds ?? [],
5159
+ previousStatus: previousCase?.status,
5160
+ query: currentCase.query
5161
+ });
5123
5162
  var getStatusRank = (status) => status === "pass" ? 2 : status === "partial" ? 1 : 0;
5124
5163
  var buildRAGEvaluationRunDiff = ({
5125
5164
  current,
@@ -5147,6 +5186,32 @@ var buildRAGEvaluationRunDiff = ({
5147
5186
  unchangedCases
5148
5187
  };
5149
5188
  };
5189
+ var buildRAGAnswerGroundingEvaluationRunDiff = ({
5190
+ current,
5191
+ previous
5192
+ }) => {
5193
+ const previousCases = new Map((previous?.response.cases ?? []).map((entry) => [entry.caseId, entry]));
5194
+ const diffs = current.response.cases.map((entry) => buildGroundingCaseDiff(entry, previousCases.get(entry.caseId)));
5195
+ const regressedCases = diffs.filter((entry) => getStatusRank(entry.currentStatus) < getStatusRank(entry.previousStatus ?? "fail"));
5196
+ const improvedCases = diffs.filter((entry) => getStatusRank(entry.currentStatus) > getStatusRank(entry.previousStatus ?? "fail"));
5197
+ const unchangedCases = diffs.filter((entry) => getStatusRank(entry.currentStatus) === getStatusRank(entry.previousStatus ?? "fail"));
5198
+ return {
5199
+ currentRunId: current.id,
5200
+ improvedCases,
5201
+ previousRunId: previous?.id,
5202
+ regressedCases,
5203
+ suiteId: current.suiteId,
5204
+ summaryDelta: {
5205
+ averageCitationF1: current.response.summary.averageCitationF1 - (previous?.response.summary.averageCitationF1 ?? 0),
5206
+ averageResolvedCitationRate: current.response.summary.averageResolvedCitationRate - (previous?.response.summary.averageResolvedCitationRate ?? 0),
5207
+ failedCases: current.response.summary.failedCases - (previous?.response.summary.failedCases ?? 0),
5208
+ passedCases: current.response.summary.passedCases - (previous?.response.summary.passedCases ?? 0),
5209
+ passingRate: current.response.passingRate - (previous?.response.passingRate ?? 0),
5210
+ partialCases: current.response.summary.partialCases - (previous?.response.summary.partialCases ?? 0)
5211
+ },
5212
+ unchangedCases
5213
+ };
5214
+ };
5150
5215
  var createRAGFileEvaluationHistoryStore = (path) => ({
5151
5216
  listRuns: async ({ limit, suiteId } = {}) => {
5152
5217
  let parsed = [];
@@ -5185,6 +5250,42 @@ var createRAGFileEvaluationHistoryStore = (path) => ({
5185
5250
  `, "utf8");
5186
5251
  }
5187
5252
  });
5253
+ var createRAGFileAnswerGroundingEvaluationHistoryStore = (path) => ({
5254
+ async listRuns(input) {
5255
+ try {
5256
+ const raw = await readFile2(path, "utf8");
5257
+ const data = JSON.parse(raw);
5258
+ const runs = Array.isArray(data.runs) ? data.runs : [];
5259
+ const filtered = input?.suiteId ? runs.filter((run) => run.suiteId === input.suiteId) : runs;
5260
+ return filtered.sort(toGroundingHistorySortOrder).slice(0, input?.limit ?? DEFAULT_HISTORY_LIMIT);
5261
+ } catch (error) {
5262
+ if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") {
5263
+ return [];
5264
+ }
5265
+ throw error;
5266
+ }
5267
+ },
5268
+ async saveRun(run) {
5269
+ let runs = [];
5270
+ try {
5271
+ const raw = await readFile2(path, "utf8");
5272
+ const data = JSON.parse(raw);
5273
+ runs = Array.isArray(data.runs) ? data.runs : [];
5274
+ } catch (error) {
5275
+ if (!error || typeof error !== "object" || !("code" in error) || error.code !== "ENOENT") {
5276
+ throw error;
5277
+ }
5278
+ }
5279
+ const nextRuns = normalizeGroundingHistoryRuns([
5280
+ run,
5281
+ ...runs.filter((entry) => entry.id !== run.id)
5282
+ ]);
5283
+ await mkdir(dirname(path), { recursive: true });
5284
+ await writeFile(path, JSON.stringify({
5285
+ runs: nextRuns
5286
+ }, null, 2));
5287
+ }
5288
+ });
5188
5289
  var loadRAGEvaluationHistory = async ({
5189
5290
  store,
5190
5291
  suite,
@@ -5206,6 +5307,30 @@ var loadRAGEvaluationHistory = async ({
5206
5307
  suiteLabel: suite.label ?? suite.id
5207
5308
  };
5208
5309
  };
5310
+ var loadRAGAnswerGroundingEvaluationHistory = async ({
5311
+ store,
5312
+ suite,
5313
+ limit = DEFAULT_HISTORY_LIMIT
5314
+ }) => {
5315
+ const runs = normalizeGroundingHistoryRuns(await Promise.resolve(store.listRuns({
5316
+ limit,
5317
+ suiteId: suite.id
5318
+ })));
5319
+ const latestRun = runs[0];
5320
+ const previousRun = runs[1];
5321
+ return {
5322
+ diff: latestRun && previousRun ? buildRAGAnswerGroundingEvaluationRunDiff({
5323
+ current: latestRun,
5324
+ previous: previousRun
5325
+ }) : undefined,
5326
+ latestRun,
5327
+ leaderboard: buildRAGAnswerGroundingEvaluationLeaderboard(runs),
5328
+ previousRun,
5329
+ runs,
5330
+ suiteId: suite.id,
5331
+ suiteLabel: suite.label ?? suite.id
5332
+ };
5333
+ };
5209
5334
  var persistRAGEvaluationSuiteRun = async ({
5210
5335
  store,
5211
5336
  run
@@ -5213,6 +5338,13 @@ var persistRAGEvaluationSuiteRun = async ({
5213
5338
  await Promise.resolve(store.saveRun(run));
5214
5339
  return run;
5215
5340
  };
5341
+ var persistRAGAnswerGroundingEvaluationRun = async ({
5342
+ store,
5343
+ run
5344
+ }) => {
5345
+ await Promise.resolve(store.saveRun(run));
5346
+ return run;
5347
+ };
5216
5348
  var buildRAGEvaluationResponse = (cases) => {
5217
5349
  const totalCases = cases.length;
5218
5350
  const passedCases = cases.filter((entry) => entry.status === "pass").length;
@@ -10548,6 +10680,7 @@ export {
10548
10680
  prepareRAGDocument,
10549
10681
  prepareRAGDirectoryDocuments,
10550
10682
  persistRAGEvaluationSuiteRun,
10683
+ persistRAGAnswerGroundingEvaluationRun,
10551
10684
  parseAIMessage,
10552
10685
  openaiTranscriber,
10553
10686
  openaiResponses,
@@ -10574,6 +10707,7 @@ export {
10574
10707
  loadRAGDocumentUpload,
10575
10708
  loadRAGDocumentFromURL,
10576
10709
  loadRAGDocumentFile,
10710
+ loadRAGAnswerGroundingEvaluationHistory,
10577
10711
  ingestRAGDocuments,
10578
10712
  ingestDocuments,
10579
10713
  googleEmbeddings,
@@ -10615,6 +10749,7 @@ export {
10615
10749
  createRAGFileSyncStateStore,
10616
10750
  createRAGFileExtractor,
10617
10751
  createRAGFileEvaluationHistoryStore,
10752
+ createRAGFileAnswerGroundingEvaluationHistoryStore,
10618
10753
  createRAGEvaluationSuite,
10619
10754
  createRAGEmbeddingProvider,
10620
10755
  createRAGEmailSyncSource,
@@ -10654,7 +10789,9 @@ export {
10654
10789
  buildRAGContext,
10655
10790
  buildRAGCitations,
10656
10791
  buildRAGCitationReferenceMap,
10792
+ buildRAGAnswerGroundingEvaluationRunDiff,
10657
10793
  buildRAGAnswerGroundingEvaluationResponse,
10794
+ buildRAGAnswerGroundingEvaluationLeaderboard,
10658
10795
  applyRAGReranking,
10659
10796
  applyRAGQueryTransform,
10660
10797
  anthropicOCR,
@@ -10663,5 +10800,5 @@ export {
10663
10800
  aiChat
10664
10801
  };
10665
10802
 
10666
- //# debugId=0094F0DC01E6389864756E2164756E21
10803
+ //# debugId=100847E6C5E33ADB64756E2164756E21
10667
10804
  //# sourceMappingURL=index.js.map