@absolutejs/absolute 0.19.0-beta.510 → 0.19.0-beta.511
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/client/index.js +112 -1
- package/dist/ai/client/index.js.map +3 -3
- package/dist/ai/index.js +123 -8
- package/dist/ai/index.js.map +4 -4
- package/dist/ai-client/react/ai/index.js +323 -0
- package/dist/ai-client/vue/ai/index.js +323 -0
- package/dist/angular/index.js +2 -2
- package/dist/angular/index.js.map +1 -1
- package/dist/angular/server.js +2 -2
- package/dist/angular/server.js.map +1 -1
- package/dist/build.js +2 -2
- package/dist/build.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/react/ai/index.js +112 -1
- package/dist/react/ai/index.js.map +3 -3
- package/dist/src/ai/index.d.ts +2 -2
- package/dist/src/ai/rag/index.d.ts +1 -1
- package/dist/src/ai/rag/quality.d.ts +15 -1
- package/dist/src/ai/rag/types.d.ts +1 -1
- package/dist/svelte/ai/index.js +112 -1
- package/dist/svelte/ai/index.js.map +3 -3
- package/dist/types/ai.d.ts +45 -0
- package/dist/vue/ai/index.js +112 -1
- package/dist/vue/ai/index.js.map +3 -3
- package/package.json +1 -1
package/dist/ai/index.js
CHANGED
|
@@ -4539,7 +4539,10 @@ var resolveRAGWorkflowRenderers = (custom) => ({
|
|
|
4539
4539
|
});
|
|
4540
4540
|
|
|
4541
4541
|
// src/ai/rag/quality.ts
|
|
4542
|
+
import { mkdir, readFile as readFile2, writeFile } from "fs/promises";
|
|
4543
|
+
import { dirname } from "path";
|
|
4542
4544
|
var DEFAULT_TOP_K2 = 6;
|
|
4545
|
+
var DEFAULT_HISTORY_LIMIT = 20;
|
|
4543
4546
|
var normalizeStringArray = (value) => {
|
|
4544
4547
|
if (!Array.isArray(value)) {
|
|
4545
4548
|
return [];
|
|
@@ -4597,6 +4600,114 @@ var buildRAGEvaluationLeaderboard = (runs) => {
|
|
|
4597
4600
|
totalCases: run.response.totalCases
|
|
4598
4601
|
}));
|
|
4599
4602
|
};
|
|
4603
|
+
var toHistorySortOrder = (left, right) => right.finishedAt - left.finishedAt;
|
|
4604
|
+
var normalizeHistoryRuns = (runs) => [...runs].sort(toHistorySortOrder);
|
|
4605
|
+
var buildCaseDiff = (currentCase, previousCase) => ({
|
|
4606
|
+
caseId: currentCase.caseId,
|
|
4607
|
+
currentF1: currentCase.f1,
|
|
4608
|
+
currentMatchedIds: currentCase.matchedIds,
|
|
4609
|
+
currentMissingIds: currentCase.missingIds,
|
|
4610
|
+
currentStatus: currentCase.status,
|
|
4611
|
+
label: currentCase.label,
|
|
4612
|
+
previousF1: previousCase?.f1,
|
|
4613
|
+
previousMatchedIds: previousCase?.matchedIds ?? [],
|
|
4614
|
+
previousMissingIds: previousCase?.missingIds ?? [],
|
|
4615
|
+
previousStatus: previousCase?.status,
|
|
4616
|
+
query: currentCase.query
|
|
4617
|
+
});
|
|
4618
|
+
var getStatusRank = (status) => status === "pass" ? 2 : status === "partial" ? 1 : 0;
|
|
4619
|
+
var buildRAGEvaluationRunDiff = ({
|
|
4620
|
+
current,
|
|
4621
|
+
previous
|
|
4622
|
+
}) => {
|
|
4623
|
+
const previousCases = new Map((previous?.response.cases ?? []).map((entry) => [entry.caseId, entry]));
|
|
4624
|
+
const diffs = current.response.cases.map((entry) => buildCaseDiff(entry, previousCases.get(entry.caseId)));
|
|
4625
|
+
const regressedCases = diffs.filter((entry) => getStatusRank(entry.currentStatus) < getStatusRank(entry.previousStatus ?? "fail"));
|
|
4626
|
+
const improvedCases = diffs.filter((entry) => getStatusRank(entry.currentStatus) > getStatusRank(entry.previousStatus ?? "fail"));
|
|
4627
|
+
const unchangedCases = diffs.filter((entry) => getStatusRank(entry.currentStatus) === getStatusRank(entry.previousStatus ?? "fail"));
|
|
4628
|
+
return {
|
|
4629
|
+
currentRunId: current.id,
|
|
4630
|
+
improvedCases,
|
|
4631
|
+
previousRunId: previous?.id,
|
|
4632
|
+
regressedCases,
|
|
4633
|
+
suiteId: current.suiteId,
|
|
4634
|
+
summaryDelta: {
|
|
4635
|
+
averageF1: current.response.summary.averageF1 - (previous?.response.summary.averageF1 ?? 0),
|
|
4636
|
+
averageLatencyMs: current.response.summary.averageLatencyMs - (previous?.response.summary.averageLatencyMs ?? 0),
|
|
4637
|
+
failedCases: current.response.summary.failedCases - (previous?.response.summary.failedCases ?? 0),
|
|
4638
|
+
passedCases: current.response.summary.passedCases - (previous?.response.summary.passedCases ?? 0),
|
|
4639
|
+
passingRate: current.response.passingRate - (previous?.response.passingRate ?? 0),
|
|
4640
|
+
partialCases: current.response.summary.partialCases - (previous?.response.summary.partialCases ?? 0)
|
|
4641
|
+
},
|
|
4642
|
+
unchangedCases
|
|
4643
|
+
};
|
|
4644
|
+
};
|
|
4645
|
+
var createRAGFileEvaluationHistoryStore = (path) => ({
|
|
4646
|
+
listRuns: async ({ limit, suiteId } = {}) => {
|
|
4647
|
+
let parsed = [];
|
|
4648
|
+
try {
|
|
4649
|
+
const content = await readFile2(path, "utf8");
|
|
4650
|
+
const value = JSON.parse(content);
|
|
4651
|
+
parsed = Array.isArray(value) ? value : [];
|
|
4652
|
+
} catch (error) {
|
|
4653
|
+
if (error.code !== "ENOENT") {
|
|
4654
|
+
throw error;
|
|
4655
|
+
}
|
|
4656
|
+
}
|
|
4657
|
+
const filtered = parsed.filter((entry) => !suiteId || entry.suiteId === suiteId);
|
|
4658
|
+
const sorted = normalizeHistoryRuns(filtered);
|
|
4659
|
+
return typeof limit === "number" ? sorted.slice(0, limit) : sorted;
|
|
4660
|
+
},
|
|
4661
|
+
saveRun: async (run) => {
|
|
4662
|
+
const existing = await (async () => {
|
|
4663
|
+
try {
|
|
4664
|
+
const content = await readFile2(path, "utf8");
|
|
4665
|
+
const value = JSON.parse(content);
|
|
4666
|
+
return Array.isArray(value) ? value : [];
|
|
4667
|
+
} catch (error) {
|
|
4668
|
+
if (error.code !== "ENOENT") {
|
|
4669
|
+
throw error;
|
|
4670
|
+
}
|
|
4671
|
+
return [];
|
|
4672
|
+
}
|
|
4673
|
+
})();
|
|
4674
|
+
const next = normalizeHistoryRuns([
|
|
4675
|
+
run,
|
|
4676
|
+
...existing.filter((entry) => entry.id !== run.id)
|
|
4677
|
+
]);
|
|
4678
|
+
await mkdir(dirname(path), { recursive: true });
|
|
4679
|
+
await writeFile(path, JSON.stringify(next, null, "\t") + `
|
|
4680
|
+
`, "utf8");
|
|
4681
|
+
}
|
|
4682
|
+
});
|
|
4683
|
+
var loadRAGEvaluationHistory = async ({
|
|
4684
|
+
store,
|
|
4685
|
+
suite,
|
|
4686
|
+
limit = DEFAULT_HISTORY_LIMIT
|
|
4687
|
+
}) => {
|
|
4688
|
+
const runs = normalizeHistoryRuns(await Promise.resolve(store.listRuns({ limit, suiteId: suite.id })));
|
|
4689
|
+
const latestRun = runs[0];
|
|
4690
|
+
const previousRun = runs[1];
|
|
4691
|
+
return {
|
|
4692
|
+
diff: latestRun ? buildRAGEvaluationRunDiff({
|
|
4693
|
+
current: latestRun,
|
|
4694
|
+
previous: previousRun
|
|
4695
|
+
}) : undefined,
|
|
4696
|
+
latestRun,
|
|
4697
|
+
leaderboard: buildRAGEvaluationLeaderboard(runs),
|
|
4698
|
+
previousRun,
|
|
4699
|
+
runs,
|
|
4700
|
+
suiteId: suite.id,
|
|
4701
|
+
suiteLabel: suite.label ?? suite.id
|
|
4702
|
+
};
|
|
4703
|
+
};
|
|
4704
|
+
var persistRAGEvaluationSuiteRun = async ({
|
|
4705
|
+
store,
|
|
4706
|
+
run
|
|
4707
|
+
}) => {
|
|
4708
|
+
await Promise.resolve(store.saveRun(run));
|
|
4709
|
+
return run;
|
|
4710
|
+
};
|
|
4600
4711
|
var buildRAGEvaluationResponse = (cases) => {
|
|
4601
4712
|
const totalCases = cases.length;
|
|
4602
4713
|
const passedCases = cases.filter((entry) => entry.status === "pass").length;
|
|
@@ -7665,8 +7776,8 @@ var resolveRAGStreamStage = ({
|
|
|
7665
7776
|
// src/ai/rag/sync.ts
|
|
7666
7777
|
var {S3Client } = globalThis.Bun;
|
|
7667
7778
|
import { createHash } from "crypto";
|
|
7668
|
-
import { mkdir, readFile as
|
|
7669
|
-
import { dirname, resolve as resolve2 } from "path";
|
|
7779
|
+
import { mkdir as mkdir2, readFile as readFile3, writeFile as writeFile2 } from "fs/promises";
|
|
7780
|
+
import { dirname as dirname2, resolve as resolve2 } from "path";
|
|
7670
7781
|
var toSyncError = (caught) => caught instanceof Error ? caught.message : String(caught);
|
|
7671
7782
|
var wait = async (delayMs) => {
|
|
7672
7783
|
if (!(delayMs > 0)) {
|
|
@@ -8250,14 +8361,14 @@ var createRAGFileSyncStateStore = (path) => {
|
|
|
8250
8361
|
return {
|
|
8251
8362
|
load: async () => {
|
|
8252
8363
|
try {
|
|
8253
|
-
return parseSyncState(await
|
|
8364
|
+
return parseSyncState(await readFile3(resolvedPath, "utf8"));
|
|
8254
8365
|
} catch {
|
|
8255
8366
|
return [];
|
|
8256
8367
|
}
|
|
8257
8368
|
},
|
|
8258
8369
|
save: async (records) => {
|
|
8259
|
-
await
|
|
8260
|
-
await
|
|
8370
|
+
await mkdir2(dirname2(resolvedPath), { recursive: true });
|
|
8371
|
+
await writeFile2(resolvedPath, JSON.stringify(records, null, 2), "utf8");
|
|
8261
8372
|
}
|
|
8262
8373
|
};
|
|
8263
8374
|
};
|
|
@@ -8461,7 +8572,7 @@ import { existsSync as existsSync2 } from "fs";
|
|
|
8461
8572
|
import { existsSync, readFileSync } from "fs";
|
|
8462
8573
|
import { createRequire } from "module";
|
|
8463
8574
|
import { arch, platform } from "os";
|
|
8464
|
-
import { dirname as
|
|
8575
|
+
import { dirname as dirname3, join as join2 } from "path";
|
|
8465
8576
|
var require2 = createRequire(import.meta.url);
|
|
8466
8577
|
var PLATFORM_PACKAGE_MAP = {
|
|
8467
8578
|
"darwin-arm64": {
|
|
@@ -8512,7 +8623,7 @@ var resolveAbsoluteSQLiteVec = () => {
|
|
|
8512
8623
|
}
|
|
8513
8624
|
try {
|
|
8514
8625
|
const packageJsonPath = require2.resolve(`${packageInfo.packageName}/package.json`);
|
|
8515
|
-
const packageRoot =
|
|
8626
|
+
const packageRoot = dirname3(packageJsonPath);
|
|
8516
8627
|
const libraryPath = join2(packageRoot, packageInfo.libraryFile);
|
|
8517
8628
|
const packageVersion = readPackageVersion(packageJsonPath);
|
|
8518
8629
|
if (!existsSync(libraryPath)) {
|
|
@@ -10177,6 +10288,7 @@ export {
|
|
|
10177
10288
|
prepareRAGDocumentFile,
|
|
10178
10289
|
prepareRAGDocument,
|
|
10179
10290
|
prepareRAGDirectoryDocuments,
|
|
10291
|
+
persistRAGEvaluationSuiteRun,
|
|
10180
10292
|
parseAIMessage,
|
|
10181
10293
|
openaiTranscriber,
|
|
10182
10294
|
openaiResponses,
|
|
@@ -10196,6 +10308,7 @@ export {
|
|
|
10196
10308
|
mistralai,
|
|
10197
10309
|
metaEmbeddings,
|
|
10198
10310
|
meta,
|
|
10311
|
+
loadRAGEvaluationHistory,
|
|
10199
10312
|
loadRAGDocumentsFromUploads,
|
|
10200
10313
|
loadRAGDocumentsFromURLs,
|
|
10201
10314
|
loadRAGDocumentsFromDirectory,
|
|
@@ -10240,6 +10353,7 @@ export {
|
|
|
10240
10353
|
createRAGGmailEmailSyncClient,
|
|
10241
10354
|
createRAGFileSyncStateStore,
|
|
10242
10355
|
createRAGFileExtractor,
|
|
10356
|
+
createRAGFileEvaluationHistoryStore,
|
|
10243
10357
|
createRAGEvaluationSuite,
|
|
10244
10358
|
createRAGEmbeddingProvider,
|
|
10245
10359
|
createRAGEmailSyncSource,
|
|
@@ -10273,6 +10387,7 @@ export {
|
|
|
10273
10387
|
buildRAGLexicalHaystack,
|
|
10274
10388
|
buildRAGGroundingReferences,
|
|
10275
10389
|
buildRAGGroundedAnswer,
|
|
10390
|
+
buildRAGEvaluationRunDiff,
|
|
10276
10391
|
buildRAGEvaluationResponse,
|
|
10277
10392
|
buildRAGEvaluationLeaderboard,
|
|
10278
10393
|
buildRAGCitations,
|
|
@@ -10285,5 +10400,5 @@ export {
|
|
|
10285
10400
|
aiChat
|
|
10286
10401
|
};
|
|
10287
10402
|
|
|
10288
|
-
//# debugId=
|
|
10403
|
+
//# debugId=4A35A139BFA75B8964756E2164756E21
|
|
10289
10404
|
//# sourceMappingURL=index.js.map
|