@kernlang/core 4.0.1-canary.225.1.f5c8d5fe → 4.1.0
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/codegen/body-ts.js +6 -0
- package/dist/codegen/body-ts.js.map +1 -1
- package/dist/codegen/stdlib-preamble.d.ts +29 -0
- package/dist/codegen/stdlib-preamble.js +52 -1
- package/dist/codegen/stdlib-preamble.js.map +1 -1
- package/dist/codegen/type-system.js +8 -1
- package/dist/codegen/type-system.js.map +1 -1
- package/dist/codegen-expression.d.ts +10 -0
- package/dist/codegen-expression.js +40 -9
- package/dist/codegen-expression.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ir/semantics/portable-error.d.ts +51 -0
- package/dist/ir/semantics/portable-error.js +70 -0
- package/dist/ir/semantics/portable-error.js.map +1 -0
- package/dist/ir/semantics/portable-scalar.d.ts +12 -0
- package/dist/ir/semantics/portable-scalar.js +59 -10
- package/dist/ir/semantics/portable-scalar.js.map +1 -1
- package/dist/ir/semantics/primitives.js +82 -18
- package/dist/ir/semantics/primitives.js.map +1 -1
- package/dist/ir/semantics/trace.d.ts +12 -0
- package/dist/ir/semantics/trace.js +4 -0
- package/dist/ir/semantics/trace.js.map +1 -1
- package/dist/ir/semantics/try.js +33 -3
- package/dist/ir/semantics/try.js.map +1 -1
- package/dist/ir/semantics/ts-leg.js +17 -0
- package/dist/ir/semantics/ts-leg.js.map +1 -1
- package/dist/rag-embed-resolver.js +1 -0
- package/dist/rag-embed-resolver.js.map +1 -1
- package/dist/rag-embedding-node.d.ts +6 -0
- package/dist/rag-embedding-node.js +90 -5
- package/dist/rag-embedding-node.js.map +1 -1
- package/dist/rag-retrieve-runner.d.ts +2 -3
- package/dist/rag-retrieve-runner.js +204 -20
- package/dist/rag-retrieve-runner.js.map +1 -1
- package/dist/rag-runtime.d.ts +13 -2
- package/dist/rag-runtime.js +110 -14
- package/dist/rag-runtime.js.map +1 -1
- package/dist/semantic-validator.d.ts +9 -0
- package/dist/semantic-validator.js +59 -5
- package/dist/semantic-validator.js.map +1 -1
- package/dist/spec.d.ts +1 -1
- package/dist/spec.js +1 -1
- package/dist/spec.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ import { InMemoryPgVectorRagStore, RAG_VECTOR_STORE_SNAPSHOT_VERSION, } from './
|
|
|
4
4
|
const LOCAL_PERSISTENT_VECTOR_STORE_FILE = 'vectors.json';
|
|
5
5
|
const MAX_LOCAL_PERSISTENT_VECTOR_STORE_BYTES = 100 * 1024 * 1024;
|
|
6
6
|
const OPEN_LOCAL_PERSISTENT_VECTOR_STORE_FILES = new Set();
|
|
7
|
+
const LOCAL_VECTOR_STORE_LOCK_VERSION = 'kern-rag-vector-store-lock-v1';
|
|
7
8
|
/**
|
|
8
9
|
* Directory-backed vector store for local runner-native RAG.
|
|
9
10
|
*
|
|
@@ -35,6 +36,9 @@ export class LocalPersistentRagVectorStoreAdapter extends InMemoryPgVectorRagSto
|
|
|
35
36
|
this.loadFromDisk();
|
|
36
37
|
}
|
|
37
38
|
catch (error) {
|
|
39
|
+
if (options.rebuildOnFingerprintMismatch && isLocalVectorStoreFingerprintMismatch(error)) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
38
42
|
OPEN_LOCAL_PERSISTENT_VECTOR_STORE_FILES.delete(this.filePath);
|
|
39
43
|
releaseLocalVectorStoreLock(this.lockPath, this.lockFd);
|
|
40
44
|
this.lockFd = undefined;
|
|
@@ -78,6 +82,20 @@ export class LocalPersistentRagVectorStoreAdapter extends InMemoryPgVectorRagSto
|
|
|
78
82
|
throw error;
|
|
79
83
|
}
|
|
80
84
|
}
|
|
85
|
+
replaceAll(entries) {
|
|
86
|
+
this.assertOpen();
|
|
87
|
+
const before = this.snapshot();
|
|
88
|
+
try {
|
|
89
|
+
super.clear();
|
|
90
|
+
for (const entry of entries)
|
|
91
|
+
super.upsert(entry.chunk, entry.vector, entry.fingerprint);
|
|
92
|
+
this.flushToDisk();
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
this.restoreSnapshot(before);
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
81
99
|
search(query, queryVector, options = {}, fingerprint = this.fingerprint) {
|
|
82
100
|
this.assertOpen();
|
|
83
101
|
return super.search(query, queryVector, options, fingerprint);
|
|
@@ -149,7 +167,7 @@ export class LocalPersistentRagVectorStoreAdapter extends InMemoryPgVectorRagSto
|
|
|
149
167
|
const tmpPath = `${this.filePath}.tmp`;
|
|
150
168
|
try {
|
|
151
169
|
const payload = `${JSON.stringify(this.snapshot(), null, 2)}\n`;
|
|
152
|
-
if (
|
|
170
|
+
if (Buffer.byteLength(payload, 'utf-8') > MAX_LOCAL_PERSISTENT_VECTOR_STORE_BYTES) {
|
|
153
171
|
throw new Error(`KERN local vector store snapshot exceeds ${MAX_LOCAL_PERSISTENT_VECTOR_STORE_BYTES} bytes.`);
|
|
154
172
|
}
|
|
155
173
|
writeFileSync(tmpPath, payload, 'utf-8');
|
|
@@ -190,30 +208,97 @@ function localVectorStoreFilePath(directory, fileName = LOCAL_PERSISTENT_VECTOR_
|
|
|
190
208
|
return join(directory, fileName);
|
|
191
209
|
}
|
|
192
210
|
function acquireLocalVectorStoreLock(lockPath, filePath) {
|
|
211
|
+
const acquire = () => {
|
|
212
|
+
const fd = openSync(lockPath, 'wx');
|
|
213
|
+
try {
|
|
214
|
+
writeFileSync(fd, `${JSON.stringify({ version: LOCAL_VECTOR_STORE_LOCK_VERSION, pid: process.pid, filePath })}\n`, 'utf-8');
|
|
215
|
+
return fd;
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
try {
|
|
219
|
+
closeSync(fd);
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
// Preserve the write error; the descriptor cleanup is best effort.
|
|
223
|
+
}
|
|
224
|
+
try {
|
|
225
|
+
if (existsSync(lockPath))
|
|
226
|
+
unlinkSync(lockPath);
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
// Preserve the write error; stale lock cleanup is best effort.
|
|
230
|
+
}
|
|
231
|
+
throw error;
|
|
232
|
+
}
|
|
233
|
+
};
|
|
193
234
|
try {
|
|
194
|
-
return
|
|
235
|
+
return acquire();
|
|
195
236
|
}
|
|
196
237
|
catch (error) {
|
|
197
238
|
if (isNodeError(error) && error.code === 'EEXIST') {
|
|
239
|
+
if (isStaleLocalVectorStoreLock(lockPath)) {
|
|
240
|
+
try {
|
|
241
|
+
unlinkSync(lockPath);
|
|
242
|
+
return acquire();
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
// Preserve the fail-closed behavior below if stale-lock cleanup races another writer.
|
|
246
|
+
}
|
|
247
|
+
}
|
|
198
248
|
throw new Error(`KERN local vector store '${filePath}' is already open for writing.`);
|
|
199
249
|
}
|
|
200
250
|
throw error;
|
|
201
251
|
}
|
|
202
252
|
}
|
|
203
253
|
function releaseLocalVectorStoreLock(lockPath, lockFd) {
|
|
204
|
-
if (lockFd !== undefined)
|
|
205
|
-
|
|
254
|
+
if (lockFd !== undefined) {
|
|
255
|
+
try {
|
|
256
|
+
closeSync(lockFd);
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
// Lock cleanup is best effort; unlink still gives a subsequent open a chance to proceed.
|
|
260
|
+
}
|
|
261
|
+
}
|
|
206
262
|
try {
|
|
207
263
|
if (existsSync(lockPath))
|
|
208
264
|
unlinkSync(lockPath);
|
|
209
265
|
}
|
|
210
266
|
catch {
|
|
211
|
-
// Lock cleanup is best effort;
|
|
267
|
+
// Lock cleanup is best effort; stale locks with dead PID metadata can be recovered on the next open.
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
function isStaleLocalVectorStoreLock(lockPath) {
|
|
271
|
+
let parsed;
|
|
272
|
+
try {
|
|
273
|
+
parsed = JSON.parse(readFileSync(lockPath, 'utf-8'));
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
if (!parsed || typeof parsed !== 'object')
|
|
279
|
+
return false;
|
|
280
|
+
const lock = parsed;
|
|
281
|
+
const pid = lock.pid;
|
|
282
|
+
if (lock.version !== LOCAL_VECTOR_STORE_LOCK_VERSION ||
|
|
283
|
+
typeof pid !== 'number' ||
|
|
284
|
+
!Number.isInteger(pid) ||
|
|
285
|
+
pid <= 0) {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
try {
|
|
289
|
+
process.kill(pid, 0);
|
|
290
|
+
return false;
|
|
291
|
+
}
|
|
292
|
+
catch (error) {
|
|
293
|
+
return isNodeError(error) && error.code === 'ESRCH';
|
|
212
294
|
}
|
|
213
295
|
}
|
|
214
296
|
function isNodeError(error) {
|
|
215
297
|
return error instanceof Error && 'code' in error;
|
|
216
298
|
}
|
|
299
|
+
function isLocalVectorStoreFingerprintMismatch(error) {
|
|
300
|
+
return error instanceof Error && /embedding fingerprint mismatch/u.test(error.message);
|
|
301
|
+
}
|
|
217
302
|
function parseVectorStoreSnapshot(raw, fingerprint, dims) {
|
|
218
303
|
if (!raw || typeof raw !== 'object')
|
|
219
304
|
throw new Error('KERN local vector store snapshot must be an object.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag-embedding-node.js","sourceRoot":"","sources":["../src/rag-embedding-node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rag-embedding-node.js","sourceRoot":"","sources":["../src/rag-embedding-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,9 +26,8 @@ export interface RagRetrieveDocumentReport {
|
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Execute runtime ragRetrieve declarations over declared local sources.
|
|
29
|
-
* The current synchronous path
|
|
30
|
-
*
|
|
31
|
-
* future async runtime path.
|
|
29
|
+
* The current synchronous path supports memory and local-persistent vector stores
|
|
30
|
+
* over declared local sources. Provider vector stores remain future async work.
|
|
32
31
|
*/
|
|
33
32
|
export declare function retrieveRagDocument(source: string, options: RagRetrieveDocumentOptions): RagRetrieveDocumentReport;
|
|
34
33
|
export declare function ragRetrieveCorpusSourceSummary(report: RagRetrieveDocumentReport): string;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { lstatSync, realpathSync } from 'node:fs';
|
|
3
|
+
import { dirname, isAbsolute, relative, resolve } from 'node:path';
|
|
1
4
|
import { parseDocument } from './parser.js';
|
|
2
5
|
import { canonicalRagEmbedModel, defaultDimsForRagEmbedModel, RAG_EMBED_MODEL_LOCAL_HASH, RAG_EMBED_MODEL_LOCAL_SEMANTIC, } from './rag-embed-resolver.js';
|
|
3
6
|
import { DeterministicHashEmbedder, EmbeddingRagIndex, LocalSemanticEmbedder } from './rag-embedding.js';
|
|
7
|
+
import { LocalPersistentRagVectorStoreAdapter } from './rag-embedding-node.js';
|
|
4
8
|
import { ingestRagDeclaredLocalSources } from './rag-ingest.js';
|
|
5
9
|
import { collectRagSemanticFacts, validateRagSemantics, } from './semantic-validator.js';
|
|
6
10
|
/**
|
|
7
11
|
* Execute runtime ragRetrieve declarations over declared local sources.
|
|
8
|
-
* The current synchronous path
|
|
9
|
-
*
|
|
10
|
-
* future async runtime path.
|
|
12
|
+
* The current synchronous path supports memory and local-persistent vector stores
|
|
13
|
+
* over declared local sources. Provider vector stores remain future async work.
|
|
11
14
|
*/
|
|
12
15
|
export function retrieveRagDocument(source, options) {
|
|
13
16
|
const root = parseDocument(source);
|
|
@@ -16,13 +19,25 @@ export function retrieveRagDocument(source, options) {
|
|
|
16
19
|
return { diagnostics, retrievals: [] };
|
|
17
20
|
const facts = collectRagSemanticFacts(root);
|
|
18
21
|
const indexByName = new Map(facts.indexes.map((index) => [index.name, index]));
|
|
22
|
+
const vectorStoreByName = new Map(facts.vectorStores.map((store) => [store.name, store]));
|
|
19
23
|
const preparedRetrievals = facts.runtimeRetrievals.map((retrieval) => {
|
|
20
24
|
const index = indexByName.get(retrieval.indexName);
|
|
21
25
|
if (!index)
|
|
22
26
|
throw new Error(`KERN RAG runtime retrieval '${retrieval.name}' references missing index.`);
|
|
27
|
+
const vectorStore = vectorStoreByName.get(index.storeName);
|
|
28
|
+
if (!vectorStore) {
|
|
29
|
+
throw new Error(`KERN RAG runtime retrieval '${retrieval.name}' references missing vector store.`);
|
|
30
|
+
}
|
|
31
|
+
const vectorStoreKind = vectorStore.kind ?? 'memory';
|
|
32
|
+
if (vectorStoreKind !== 'memory' && vectorStoreKind !== 'local-persistent') {
|
|
33
|
+
throw new Error(`KERN RAG runtime retrieval '${retrieval.name}' references vectorStore '${vectorStore.name}' kind='${vectorStoreKind}', but the synchronous ragRetrieve runner only supports kind=memory and kind=local-persistent.`);
|
|
34
|
+
}
|
|
35
|
+
if (index.chunkingName) {
|
|
36
|
+
throw new Error(`KERN RAG runtime retrieval '${retrieval.name}' references index '${index.name}' with chunking='${index.chunkingName}', which is not supported by the synchronous ragRetrieve runner yet.`);
|
|
37
|
+
}
|
|
23
38
|
const query = queryForRuntimeRetrieval(retrieval, options);
|
|
24
39
|
const embedder = options.embedder ?? embedderForIndex(facts, index.embedName);
|
|
25
|
-
return { retrieval, index, query, embedder };
|
|
40
|
+
return { retrieval, index, query, embedder, vectorStore };
|
|
26
41
|
});
|
|
27
42
|
const corpusNames = Array.from(new Set(preparedRetrievals.map(({ index }) => index.corpusName))).sort();
|
|
28
43
|
if (corpusNames.length === 0)
|
|
@@ -32,23 +47,71 @@ export function retrieveRagDocument(source, options) {
|
|
|
32
47
|
corpusNames,
|
|
33
48
|
});
|
|
34
49
|
const embeddingIndexByKey = new Map();
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
50
|
+
const persistentStoreByKey = new Map();
|
|
51
|
+
let retrievals = [];
|
|
52
|
+
let retrievalError;
|
|
53
|
+
let closeError;
|
|
54
|
+
try {
|
|
55
|
+
retrievals = preparedRetrievals.map(({ retrieval, index, query, embedder, vectorStore }) => {
|
|
56
|
+
const corpusChunks = ingestion.chunks.filter((chunk) => chunk.metadata?.corpusName === index.corpusName);
|
|
57
|
+
const retrieveOptions = retrieveOptionsForFact(retrieval);
|
|
58
|
+
let result;
|
|
59
|
+
if ((vectorStore.kind ?? 'memory') === 'local-persistent') {
|
|
60
|
+
const config = localPersistentStoreConfig(vectorStore, index, embedder, corpusChunks, options.sourcePath);
|
|
61
|
+
let entry = persistentStoreByKey.get(config.physicalKey);
|
|
62
|
+
if (entry && entry.fingerprint !== config.fingerprint) {
|
|
63
|
+
throw new Error(`KERN RAG vectorStore '${vectorStore.name}' resolves to local snapshot '${config.fileName}' with multiple incompatible fingerprints. Use distinct namespace or path values for each local-persistent index.`);
|
|
64
|
+
}
|
|
65
|
+
if (!entry) {
|
|
66
|
+
entry = {
|
|
67
|
+
fingerprint: config.fingerprint,
|
|
68
|
+
store: new LocalPersistentRagVectorStoreAdapter({
|
|
69
|
+
directory: config.directory,
|
|
70
|
+
fileName: config.fileName,
|
|
71
|
+
fingerprint: config.fingerprint,
|
|
72
|
+
dims: embedder.dims,
|
|
73
|
+
rebuildOnFingerprintMismatch: true,
|
|
74
|
+
}),
|
|
75
|
+
};
|
|
76
|
+
persistentStoreByKey.set(config.physicalKey, entry);
|
|
77
|
+
}
|
|
78
|
+
const { fingerprint, store } = entry;
|
|
79
|
+
ensureLocalPersistentStoreIndexed(store, fingerprint, embedder, corpusChunks);
|
|
80
|
+
result = store.search(query, embedder.embed(query), retrieveOptions, fingerprint);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const cacheKey = JSON.stringify([index.corpusName, embedder.id, embedder.dims]);
|
|
84
|
+
let embeddingIndex = embeddingIndexByKey.get(cacheKey);
|
|
85
|
+
if (!embeddingIndex) {
|
|
86
|
+
embeddingIndex = new EmbeddingRagIndex(corpusChunks, { embedder });
|
|
87
|
+
embeddingIndexByKey.set(cacheKey, embeddingIndex);
|
|
88
|
+
}
|
|
89
|
+
result = embeddingIndex.retrieve(query, retrieveOptions);
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
name: retrieval.name,
|
|
93
|
+
indexName: retrieval.indexName,
|
|
94
|
+
...(retrieval.ragName ? { ragName: retrieval.ragName } : {}),
|
|
95
|
+
query,
|
|
96
|
+
retrieveOptions,
|
|
97
|
+
result,
|
|
98
|
+
};
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
retrievalError = error;
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
closeError = closeLocalPersistentStores(persistentStoreByKey.values());
|
|
106
|
+
}
|
|
107
|
+
if (retrievalError) {
|
|
108
|
+
if (closeError && retrievalError instanceof Error) {
|
|
109
|
+
retrievalError.closeError = closeError;
|
|
41
110
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
...(retrieval.ragName ? { ragName: retrieval.ragName } : {}),
|
|
47
|
-
query,
|
|
48
|
-
retrieveOptions,
|
|
49
|
-
result: embeddingIndex.retrieve(query, retrieveOptions),
|
|
50
|
-
};
|
|
51
|
-
});
|
|
111
|
+
throw retrievalError;
|
|
112
|
+
}
|
|
113
|
+
if (closeError)
|
|
114
|
+
throw closeError;
|
|
52
115
|
return { diagnostics, retrievals, ingestion };
|
|
53
116
|
}
|
|
54
117
|
function queryForRuntimeRetrieval(retrieval, options) {
|
|
@@ -75,6 +138,127 @@ function retrieveOptionsForFact(retrieval) {
|
|
|
75
138
|
...(retrieval.minScore !== undefined ? { minScore: retrieval.minScore } : {}),
|
|
76
139
|
};
|
|
77
140
|
}
|
|
141
|
+
function localPersistentStoreConfig(vectorStore, index, embedder, chunks, sourcePath) {
|
|
142
|
+
if (!vectorStore.path?.trim()) {
|
|
143
|
+
throw new Error(`KERN RAG vectorStore '${vectorStore.name}' kind=local-persistent requires path=<index directory>.`);
|
|
144
|
+
}
|
|
145
|
+
if (isAbsolute(vectorStore.path)) {
|
|
146
|
+
throw new Error(`KERN RAG vectorStore '${vectorStore.name}' kind=local-persistent requires a relative path inside the declaring .kern directory.`);
|
|
147
|
+
}
|
|
148
|
+
const baseDir = dirname(resolve(sourcePath));
|
|
149
|
+
const directory = resolve(baseDir, vectorStore.path);
|
|
150
|
+
const relativeDirectory = relative(baseDir, directory);
|
|
151
|
+
if (relativeDirectory.startsWith('..') || isAbsolute(relativeDirectory)) {
|
|
152
|
+
throw new Error(`KERN RAG vectorStore '${vectorStore.name}' kind=local-persistent path must stay inside the declaring .kern directory.`);
|
|
153
|
+
}
|
|
154
|
+
const confinedDirectory = confinedRealDirectory(vectorStore, baseDir, directory);
|
|
155
|
+
const fileName = `${safeLocalStoreFileName(vectorStore.namespace ?? index.name)}.json`;
|
|
156
|
+
const fingerprint = localPersistentFingerprint(vectorStore, index, embedder, chunks);
|
|
157
|
+
return {
|
|
158
|
+
physicalKey: JSON.stringify([confinedDirectory, fileName]),
|
|
159
|
+
directory: confinedDirectory,
|
|
160
|
+
fileName,
|
|
161
|
+
fingerprint,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function ensureLocalPersistentStoreIndexed(store, fingerprint, embedder, chunks) {
|
|
165
|
+
const snapshot = store.snapshot();
|
|
166
|
+
const actualChunks = snapshot.entries.map((entry) => entry.chunk);
|
|
167
|
+
if (snapshot.entries.length === chunks.length && stableChunkDigest(actualChunks) === stableChunkDigest(chunks)) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
store.replaceAll(chunks.map((chunk) => ({
|
|
171
|
+
chunk,
|
|
172
|
+
vector: embedder.embed(chunk.text),
|
|
173
|
+
fingerprint,
|
|
174
|
+
})));
|
|
175
|
+
}
|
|
176
|
+
function closeLocalPersistentStores(entries) {
|
|
177
|
+
let firstError;
|
|
178
|
+
for (const { store } of entries) {
|
|
179
|
+
try {
|
|
180
|
+
store.close();
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
firstError ??= error;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return firstError;
|
|
187
|
+
}
|
|
188
|
+
function localPersistentFingerprint(vectorStore, index, embedder, chunks) {
|
|
189
|
+
return sha256(JSON.stringify({
|
|
190
|
+
version: 'kern-rag-local-persistent-retrieve-v1',
|
|
191
|
+
corpusName: index.corpusName,
|
|
192
|
+
indexName: index.name,
|
|
193
|
+
storeName: vectorStore.name,
|
|
194
|
+
embedderId: embedder.id,
|
|
195
|
+
dims: embedder.dims,
|
|
196
|
+
chunks: stableChunkDigest(chunks),
|
|
197
|
+
}));
|
|
198
|
+
}
|
|
199
|
+
function stableChunkDigest(chunks) {
|
|
200
|
+
return sha256(chunks
|
|
201
|
+
.map((chunk) => stableJson(chunk))
|
|
202
|
+
.sort()
|
|
203
|
+
.join('\n'));
|
|
204
|
+
}
|
|
205
|
+
function sha256(text) {
|
|
206
|
+
return createHash('sha256').update(text).digest('hex');
|
|
207
|
+
}
|
|
208
|
+
function confinedRealDirectory(vectorStore, baseDir, directory) {
|
|
209
|
+
const baseReal = realpathSync(baseDir);
|
|
210
|
+
const existingAncestor = nearestExistingPath(directory);
|
|
211
|
+
let ancestorReal;
|
|
212
|
+
try {
|
|
213
|
+
ancestorReal = realpathSync(existingAncestor);
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
throw new Error(`KERN RAG vectorStore '${vectorStore.name}' kind=local-persistent path must stay inside the declaring .kern directory.`);
|
|
217
|
+
}
|
|
218
|
+
const targetReal = resolve(ancestorReal, relative(existingAncestor, directory));
|
|
219
|
+
if (!isPathInside(targetReal, baseReal)) {
|
|
220
|
+
throw new Error(`KERN RAG vectorStore '${vectorStore.name}' kind=local-persistent path must stay inside the declaring .kern directory.`);
|
|
221
|
+
}
|
|
222
|
+
return targetReal;
|
|
223
|
+
}
|
|
224
|
+
function nearestExistingPath(path) {
|
|
225
|
+
let current = path;
|
|
226
|
+
while (!pathExistsOrSymlink(current)) {
|
|
227
|
+
const parent = dirname(current);
|
|
228
|
+
if (parent === current)
|
|
229
|
+
return current;
|
|
230
|
+
current = parent;
|
|
231
|
+
}
|
|
232
|
+
return current;
|
|
233
|
+
}
|
|
234
|
+
function pathExistsOrSymlink(path) {
|
|
235
|
+
try {
|
|
236
|
+
lstatSync(path);
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
function isPathInside(path, base) {
|
|
244
|
+
const rel = relative(base, path);
|
|
245
|
+
const [firstSegment] = rel.split(/[\\/]/u);
|
|
246
|
+
return rel === '' || (firstSegment !== '..' && !isAbsolute(rel));
|
|
247
|
+
}
|
|
248
|
+
function stableJson(value) {
|
|
249
|
+
if (value === null || typeof value !== 'object')
|
|
250
|
+
return JSON.stringify(value) ?? 'undefined';
|
|
251
|
+
if (Array.isArray(value))
|
|
252
|
+
return `[${value.map((entry) => stableJson(entry)).join(',')}]`;
|
|
253
|
+
const record = value;
|
|
254
|
+
return `{${Object.keys(record)
|
|
255
|
+
.sort()
|
|
256
|
+
.map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`)
|
|
257
|
+
.join(',')}}`;
|
|
258
|
+
}
|
|
259
|
+
function safeLocalStoreFileName(name) {
|
|
260
|
+
return name.replace(/[^a-z0-9_-]+/giu, '-').replace(/^-+|-+$/gu, '') || 'index';
|
|
261
|
+
}
|
|
78
262
|
function embedderForIndex(facts, embedName) {
|
|
79
263
|
const embed = embedName
|
|
80
264
|
? facts.corpora.flatMap((corpus) => corpus.embeds).find((entry) => entry.name === embedName)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag-retrieve-runner.js","sourceRoot":"","sources":["../src/rag-retrieve-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rag-retrieve-runner.js","sourceRoot":"","sources":["../src/rag-retrieve-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/rag-runtime.d.ts
CHANGED
|
@@ -71,14 +71,18 @@ export interface RagMcpRetrieveProvenanceMapping {
|
|
|
71
71
|
readonly contractStatus: RagSemanticMcpRetrievalFact['contractStatus'];
|
|
72
72
|
readonly compatible: boolean;
|
|
73
73
|
}
|
|
74
|
-
export type RagAnswerContractStatus = 'grounded' | 'partially_grounded' | 'ungrounded' | 'invalid';
|
|
75
|
-
export type RagAnswerContractDiagnosticCode = 'ANSWER_EMPTY' | 'QUERY_MISMATCH' | 'RETRIEVER_ERROR' | 'PROVENANCE_MISMATCH' | 'SPAN_INVALID' | 'SPAN_UNGROUNDED' | 'CHUNK_REF_UNKNOWN' | 'CITATION_REQUIRED' | 'GROUNDING_BELOW_THRESHOLD';
|
|
74
|
+
export type RagAnswerContractStatus = 'grounded' | 'partially_grounded' | 'ungrounded' | 'abstained' | 'invalid';
|
|
75
|
+
export type RagAnswerContractDiagnosticCode = 'ANSWER_EMPTY' | 'ABSTAIN_ANSWER_MISMATCH' | 'ABSTAIN_EVIDENCE_POLICY_REQUIRED' | 'ABSTAIN_NOT_ALLOWED' | 'ABSTAIN_WITH_SUFFICIENT_EVIDENCE' | 'CITED_CHUNKS_BELOW_MINIMUM' | 'EVIDENCE_INSUFFICIENT' | 'QUERY_MISMATCH' | 'RETRIEVER_ERROR' | 'PROVENANCE_MISMATCH' | 'SPAN_INVALID' | 'SPAN_UNGROUNDED' | 'CHUNK_REF_UNKNOWN' | 'CITATION_REQUIRED' | 'GROUNDING_BELOW_THRESHOLD';
|
|
76
76
|
export interface RagAnswerGroundingSpan {
|
|
77
77
|
readonly start: number;
|
|
78
78
|
readonly end: number;
|
|
79
79
|
readonly chunkIds: readonly string[];
|
|
80
80
|
readonly required?: boolean;
|
|
81
81
|
}
|
|
82
|
+
export interface RagAnswerEvidencePolicy {
|
|
83
|
+
readonly minRetrievedChunks?: number;
|
|
84
|
+
readonly minTopScore?: number;
|
|
85
|
+
}
|
|
82
86
|
export interface RagAnswerContract {
|
|
83
87
|
readonly id?: string;
|
|
84
88
|
readonly ragName?: string;
|
|
@@ -89,7 +93,12 @@ export interface RagAnswerContract {
|
|
|
89
93
|
readonly provenance?: RagRuntimeProvenance;
|
|
90
94
|
readonly groundingSpans?: readonly RagAnswerGroundingSpan[];
|
|
91
95
|
readonly requireCitations?: boolean;
|
|
96
|
+
readonly minCitedChunks?: number;
|
|
92
97
|
readonly minGroundingCoverage?: number;
|
|
98
|
+
readonly evidencePolicy?: RagAnswerEvidencePolicy;
|
|
99
|
+
readonly abstained?: boolean;
|
|
100
|
+
readonly allowAbstain?: boolean;
|
|
101
|
+
readonly abstainAnswer?: string;
|
|
93
102
|
}
|
|
94
103
|
export interface RagAnswerContractDiagnostic {
|
|
95
104
|
readonly code: RagAnswerContractDiagnosticCode;
|
|
@@ -106,6 +115,8 @@ export interface RagAnswerContractResult {
|
|
|
106
115
|
readonly groundingCoverage: number;
|
|
107
116
|
readonly groundedChars: number;
|
|
108
117
|
readonly answerChars: number;
|
|
118
|
+
readonly evidenceSufficient: boolean;
|
|
119
|
+
readonly abstained: boolean;
|
|
109
120
|
readonly citedChunkIds: readonly string[];
|
|
110
121
|
readonly sources: readonly string[];
|
|
111
122
|
readonly provenance?: RagRuntimeProvenance;
|