@jcode.labs/ragmir 2.17.2 → 2.18.1
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/README.md +53 -43
- package/dist/access-log.d.ts +10 -0
- package/dist/access-log.d.ts.map +1 -1
- package/dist/access-log.js +119 -49
- package/dist/access-log.js.map +1 -1
- package/dist/chunking.d.ts +5 -1
- package/dist/chunking.d.ts.map +1 -1
- package/dist/chunking.js +102 -16
- package/dist/chunking.js.map +1 -1
- package/dist/citation.d.ts +18 -0
- package/dist/citation.d.ts.map +1 -0
- package/dist/citation.js +54 -0
- package/dist/citation.js.map +1 -0
- package/dist/cli-entry.d.ts +3 -0
- package/dist/cli-entry.d.ts.map +1 -0
- package/dist/cli-entry.js +16 -0
- package/dist/cli-entry.js.map +1 -0
- package/dist/cli-fast.d.ts +13 -0
- package/dist/cli-fast.d.ts.map +1 -0
- package/dist/cli-fast.js +145 -0
- package/dist/cli-fast.js.map +1 -0
- package/dist/cli-options.d.ts +3 -0
- package/dist/cli-options.d.ts.map +1 -1
- package/dist/cli-options.js +7 -0
- package/dist/cli-options.js.map +1 -1
- package/dist/cli-stdin.d.ts +3 -0
- package/dist/cli-stdin.d.ts.map +1 -0
- package/dist/cli-stdin.js +15 -0
- package/dist/cli-stdin.js.map +1 -0
- package/dist/cli.js +251 -44
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +13 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +155 -10
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +227 -49
- package/dist/config.js.map +1 -1
- package/dist/context-resources.d.ts +4 -2
- package/dist/context-resources.d.ts.map +1 -1
- package/dist/context-resources.js +55 -24
- package/dist/context-resources.js.map +1 -1
- package/dist/defaults.d.ts +27 -0
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +42 -2
- package/dist/defaults.js.map +1 -1
- package/dist/destroy.d.ts +2 -2
- package/dist/destroy.d.ts.map +1 -1
- package/dist/destroy.js +34 -20
- package/dist/destroy.js.map +1 -1
- package/dist/doctor.d.ts +3 -2
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +86 -41
- package/dist/doctor.js.map +1 -1
- package/dist/durable-file.d.ts +13 -0
- package/dist/durable-file.d.ts.map +1 -0
- package/dist/durable-file.js +56 -0
- package/dist/durable-file.js.map +1 -0
- package/dist/embeddings.d.ts +14 -3
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +233 -95
- package/dist/embeddings.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/evaluate.d.ts +4 -3
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +611 -110
- package/dist/evaluate.js.map +1 -1
- package/dist/files.d.ts +4 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +119 -33
- package/dist/files.js.map +1 -1
- package/dist/generation-retention.d.ts +52 -0
- package/dist/generation-retention.d.ts.map +1 -0
- package/dist/generation-retention.js +318 -0
- package/dist/generation-retention.js.map +1 -0
- package/dist/index-diagnostics.d.ts +3 -2
- package/dist/index-diagnostics.d.ts.map +1 -1
- package/dist/index-diagnostics.js +32 -3
- package/dist/index-diagnostics.js.map +1 -1
- package/dist/index-policy.d.ts.map +1 -1
- package/dist/index-policy.js +3 -0
- package/dist/index-policy.js.map +1 -1
- package/dist/index-write-lock.d.ts +16 -1
- package/dist/index-write-lock.d.ts.map +1 -1
- package/dist/index-write-lock.js +392 -13
- package/dist/index-write-lock.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/ingest.d.ts +11 -2
- package/dist/ingest.d.ts.map +1 -1
- package/dist/ingest.js +680 -165
- package/dist/ingest.js.map +1 -1
- package/dist/ingestion-metrics.d.ts +58 -0
- package/dist/ingestion-metrics.d.ts.map +1 -0
- package/dist/ingestion-metrics.js +216 -0
- package/dist/ingestion-metrics.js.map +1 -0
- package/dist/ingestion-state.d.ts +11 -2
- package/dist/ingestion-state.d.ts.map +1 -1
- package/dist/ingestion-state.js +480 -49
- package/dist/ingestion-state.js.map +1 -1
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +11 -1
- package/dist/limits.js.map +1 -1
- package/dist/mcp-output.d.ts +44 -4
- package/dist/mcp-output.d.ts.map +1 -1
- package/dist/mcp-output.js +132 -159
- package/dist/mcp-output.js.map +1 -1
- package/dist/mcp-summaries.d.ts +32 -0
- package/dist/mcp-summaries.d.ts.map +1 -0
- package/dist/mcp-summaries.js +227 -0
- package/dist/mcp-summaries.js.map +1 -0
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +85 -46
- package/dist/mcp.js.map +1 -1
- package/dist/ocr-cache.d.ts +15 -0
- package/dist/ocr-cache.d.ts.map +1 -0
- package/dist/ocr-cache.js +90 -0
- package/dist/ocr-cache.js.map +1 -0
- package/dist/ocr.d.ts +31 -0
- package/dist/ocr.d.ts.map +1 -1
- package/dist/ocr.js +193 -17
- package/dist/ocr.js.map +1 -1
- package/dist/parsing.d.ts.map +1 -1
- package/dist/parsing.js +482 -85
- package/dist/parsing.js.map +1 -1
- package/dist/permissions.js +2 -2
- package/dist/permissions.js.map +1 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +10 -11
- package/dist/preview.js.map +1 -1
- package/dist/quality-report.d.ts +12 -0
- package/dist/quality-report.d.ts.map +1 -0
- package/dist/quality-report.js +146 -0
- package/dist/quality-report.js.map +1 -0
- package/dist/query.d.ts +7 -4
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +371 -284
- package/dist/query.js.map +1 -1
- package/dist/ranking.d.ts +38 -0
- package/dist/ranking.d.ts.map +1 -0
- package/dist/ranking.js +278 -0
- package/dist/ranking.js.map +1 -0
- package/dist/redaction.d.ts +6 -1
- package/dist/redaction.d.ts.map +1 -1
- package/dist/redaction.js +118 -4
- package/dist/redaction.js.map +1 -1
- package/dist/research.d.ts +6 -1
- package/dist/research.d.ts.map +1 -1
- package/dist/research.js +330 -130
- package/dist/research.js.map +1 -1
- package/dist/runtime-info.d.ts +3 -0
- package/dist/runtime-info.d.ts.map +1 -0
- package/dist/runtime-info.js +81 -0
- package/dist/runtime-info.js.map +1 -0
- package/dist/security.d.ts +3 -2
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +242 -45
- package/dist/security.js.map +1 -1
- package/dist/semantic-config.d.ts +7 -1
- package/dist/semantic-config.d.ts.map +1 -1
- package/dist/semantic-config.js +30 -4
- package/dist/semantic-config.js.map +1 -1
- package/dist/setup.js +6 -3
- package/dist/setup.js.map +1 -1
- package/dist/skill.js +34 -12
- package/dist/skill.js.map +1 -1
- package/dist/source-fingerprint-cache.d.ts +20 -0
- package/dist/source-fingerprint-cache.d.ts.map +1 -0
- package/dist/source-fingerprint-cache.js +133 -0
- package/dist/source-fingerprint-cache.js.map +1 -0
- package/dist/storage-maintenance.d.ts +46 -0
- package/dist/storage-maintenance.d.ts.map +1 -0
- package/dist/storage-maintenance.js +329 -0
- package/dist/storage-maintenance.js.map +1 -0
- package/dist/store.d.ts +39 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +559 -24
- package/dist/store.js.map +1 -1
- package/dist/text.d.ts +1 -1
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +12 -2
- package/dist/text.js.map +1 -1
- package/dist/types.d.ts +414 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/vector-index.d.ts +42 -0
- package/dist/vector-index.d.ts.map +1 -0
- package/dist/vector-index.js +249 -0
- package/dist/vector-index.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workload.d.ts +22 -0
- package/dist/workload.d.ts.map +1 -0
- package/dist/workload.js +181 -0
- package/dist/workload.js.map +1 -0
- package/examples/document-evidence-benchmark/README.md +25 -63
- package/examples/document-evidence-benchmark/golden-queries.json +1 -1
- package/examples/library-api-demo/README.md +17 -57
- package/examples/sovereign-rag-demo/README.md +37 -97
- package/package.json +36 -11
package/dist/types.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export interface Config {
|
|
|
28
28
|
embeddingProvider: EmbeddingProvider;
|
|
29
29
|
embeddingModel: string;
|
|
30
30
|
embeddingModelRevision: string;
|
|
31
|
+
embeddingModelDigest: string | null;
|
|
31
32
|
transformersAllowRemoteModels: boolean;
|
|
32
33
|
redaction: RedactionConfig;
|
|
33
34
|
accessLog: boolean;
|
|
@@ -39,7 +40,10 @@ export interface Config {
|
|
|
39
40
|
maxFileBytes: number;
|
|
40
41
|
ingestConcurrency: number;
|
|
41
42
|
embeddingBatchSize: number;
|
|
43
|
+
sourceFingerprintMode: SourceFingerprintMode;
|
|
44
|
+
incrementalFailurePolicy: IncrementalFailurePolicy;
|
|
42
45
|
hybridTextScanLimit: number;
|
|
46
|
+
workloadLimits: WorkloadLimits;
|
|
43
47
|
includeExtensions: string[];
|
|
44
48
|
pdfOcrCommand: string[];
|
|
45
49
|
pdfOcrTimeoutMs: number;
|
|
@@ -50,6 +54,15 @@ export interface Config {
|
|
|
50
54
|
}
|
|
51
55
|
export type PrivacyProfile = "strict" | "private" | "trusted" | "custom";
|
|
52
56
|
export type RetrievalProfile = "fast" | "balanced" | "quality" | "custom";
|
|
57
|
+
export type IncrementalFailurePolicy = "preserve-last-good" | "remove-stale";
|
|
58
|
+
export type SourceFingerprintMode = "fast" | "strict";
|
|
59
|
+
export type WorkloadKind = "search" | "embedding" | "ingestion";
|
|
60
|
+
export interface WorkloadLimit {
|
|
61
|
+
concurrency: number;
|
|
62
|
+
maxQueue: number;
|
|
63
|
+
queueTimeoutMs: number;
|
|
64
|
+
}
|
|
65
|
+
export type WorkloadLimits = Record<WorkloadKind, WorkloadLimit>;
|
|
53
66
|
export type AccessLogAction = "ingest" | "search" | "ask" | "research" | "evaluate" | "destroy-index";
|
|
54
67
|
export interface AccessLogUsageOptions extends OperationOptions {
|
|
55
68
|
cwd?: PathLike;
|
|
@@ -80,8 +93,16 @@ export interface McpOutputUsageReport {
|
|
|
80
93
|
}
|
|
81
94
|
export interface IngestionLimitsReport {
|
|
82
95
|
maxFileBytes: number;
|
|
96
|
+
hardMaxFileBytes: number;
|
|
83
97
|
maxFiles: null;
|
|
84
98
|
maxCorpusBytes: null;
|
|
99
|
+
maxFileBatchSize: number;
|
|
100
|
+
maxIngestConcurrency: number;
|
|
101
|
+
maxEmbeddingBatchSize: number;
|
|
102
|
+
maxSourceWindowBytes: number;
|
|
103
|
+
maxChunkWindow: number;
|
|
104
|
+
maxChunksPerFile: number;
|
|
105
|
+
maxVectorBytesPerFile: number;
|
|
85
106
|
maxPdfPages: number;
|
|
86
107
|
maxPdfTextCharacters: number;
|
|
87
108
|
maxOfficeTextEntries: number;
|
|
@@ -91,11 +112,34 @@ export interface IngestionLimitsReport {
|
|
|
91
112
|
notes: string[];
|
|
92
113
|
}
|
|
93
114
|
export type EmbeddingProvider = "local-hash" | "transformers";
|
|
115
|
+
export type VectorIndexStrategy = "exact" | "ivf-pq" | "hnsw-sq";
|
|
116
|
+
export interface VectorIndexParameters {
|
|
117
|
+
numPartitions?: number;
|
|
118
|
+
numSubVectors?: number;
|
|
119
|
+
nprobes?: number;
|
|
120
|
+
refineFactor?: number;
|
|
121
|
+
ef?: number;
|
|
122
|
+
}
|
|
123
|
+
export interface VectorIndexManifest {
|
|
124
|
+
policyVersion: 1;
|
|
125
|
+
strategy: VectorIndexStrategy;
|
|
126
|
+
indexName: string | null;
|
|
127
|
+
indexType: string | null;
|
|
128
|
+
column: "vector";
|
|
129
|
+
distanceMetric: string;
|
|
130
|
+
dimension: number;
|
|
131
|
+
modelFingerprint: string;
|
|
132
|
+
indexedRows: number;
|
|
133
|
+
unindexedRows: number;
|
|
134
|
+
coverage: number;
|
|
135
|
+
parameters: VectorIndexParameters;
|
|
136
|
+
}
|
|
94
137
|
/**
|
|
95
138
|
* Manifest written next to the LanceDB table at each ingest. It captures the
|
|
96
139
|
* configuration that produced the indexed vectors so callers can detect a
|
|
97
140
|
* stale index cheaply (without re-scanning every file's checksum) when the
|
|
98
|
-
* embedding model, provider, chunking, or Ragmir schema has changed.
|
|
141
|
+
* embedding model, provider, chunking, or Ragmir schema has changed. The
|
|
142
|
+
* corpus fingerprint identifies indexed relative paths and source bytes.
|
|
99
143
|
*/
|
|
100
144
|
export interface IndexManifest {
|
|
101
145
|
schemaVersion: number;
|
|
@@ -103,15 +147,71 @@ export interface IndexManifest {
|
|
|
103
147
|
ragmirVersion: string;
|
|
104
148
|
embeddingProvider: EmbeddingProvider;
|
|
105
149
|
embeddingModel: string;
|
|
150
|
+
embeddingModelRevision?: string;
|
|
151
|
+
embeddingModelDigest?: string | null;
|
|
106
152
|
indexPolicyFingerprint?: string;
|
|
107
153
|
vectorDimension?: number;
|
|
108
154
|
vectorDistanceMetric?: string;
|
|
155
|
+
vectorIndex?: VectorIndexManifest;
|
|
109
156
|
chunkSize: number;
|
|
110
157
|
chunkOverlap: number;
|
|
111
158
|
fileCount: number;
|
|
112
159
|
chunkCount: number;
|
|
160
|
+
corpusFingerprint?: string;
|
|
113
161
|
tableName?: string;
|
|
114
162
|
indexedFiles?: IndexManifestFile[];
|
|
163
|
+
staleFiles?: IndexManifestStaleFile[];
|
|
164
|
+
health?: IndexHealthSnapshot;
|
|
165
|
+
maintenance?: IndexMaintenanceSnapshot;
|
|
166
|
+
qualityReport?: IndexQualityReport;
|
|
167
|
+
}
|
|
168
|
+
export interface IndexHealthSnapshot {
|
|
169
|
+
schemaVersion: 1;
|
|
170
|
+
checkedAt: string;
|
|
171
|
+
discoveredFiles: number;
|
|
172
|
+
supportedFiles: number;
|
|
173
|
+
supportedBytes: number;
|
|
174
|
+
largestFileBytes: number;
|
|
175
|
+
skippedFiles: number;
|
|
176
|
+
unsupportedFiles: number;
|
|
177
|
+
oversizedFiles: number;
|
|
178
|
+
sensitiveFiles: number;
|
|
179
|
+
emptyTextFiles: number;
|
|
180
|
+
missingFromIndex: number;
|
|
181
|
+
staleInIndex: number;
|
|
182
|
+
previews: {
|
|
183
|
+
missingFromIndex: string[];
|
|
184
|
+
staleInIndex: string[];
|
|
185
|
+
emptyTextFiles: string[];
|
|
186
|
+
};
|
|
187
|
+
previewOmitted: {
|
|
188
|
+
missingFromIndex: number;
|
|
189
|
+
staleInIndex: number;
|
|
190
|
+
emptyTextFiles: number;
|
|
191
|
+
};
|
|
192
|
+
skippedByReason: Record<string, number>;
|
|
193
|
+
sourceDiagnostics: SourceDiagnostics;
|
|
194
|
+
securityCheckedAt: string;
|
|
195
|
+
securityWarnings: string[];
|
|
196
|
+
}
|
|
197
|
+
export interface IndexMaintenanceSnapshot {
|
|
198
|
+
schemaVersion: 1;
|
|
199
|
+
checkedAt: string;
|
|
200
|
+
status: "missing" | "healthy" | "needed" | "completed" | "warning";
|
|
201
|
+
tableVersion: number | null;
|
|
202
|
+
mutationsSinceOptimization: number;
|
|
203
|
+
fragments: {
|
|
204
|
+
total: number;
|
|
205
|
+
small: number;
|
|
206
|
+
smallRatio: number;
|
|
207
|
+
};
|
|
208
|
+
fullTextIndex: {
|
|
209
|
+
present: boolean;
|
|
210
|
+
indexedRows: number;
|
|
211
|
+
unindexedRows: number;
|
|
212
|
+
complete: boolean;
|
|
213
|
+
};
|
|
214
|
+
warning: string | null;
|
|
115
215
|
}
|
|
116
216
|
export interface IndexManifestFile {
|
|
117
217
|
relativePath: string;
|
|
@@ -120,6 +220,13 @@ export interface IndexManifestFile {
|
|
|
120
220
|
bytes?: number;
|
|
121
221
|
mtimeMs?: number;
|
|
122
222
|
}
|
|
223
|
+
export interface IndexManifestStaleFile {
|
|
224
|
+
relativePath: string;
|
|
225
|
+
currentChecksum: string;
|
|
226
|
+
lastGoodChecksum: string;
|
|
227
|
+
chunkCount: number;
|
|
228
|
+
error: string;
|
|
229
|
+
}
|
|
123
230
|
export interface RedactionConfig {
|
|
124
231
|
enabled: boolean;
|
|
125
232
|
builtIn: boolean;
|
|
@@ -159,17 +266,46 @@ export interface SourceInventory {
|
|
|
159
266
|
discoveredFiles: number;
|
|
160
267
|
supportedFiles: SourceFile[];
|
|
161
268
|
skippedFiles: SkippedSourceFile[];
|
|
269
|
+
contentBytesRead: number;
|
|
270
|
+
hashedFiles: number;
|
|
271
|
+
reusedFingerprints: number;
|
|
162
272
|
}
|
|
163
273
|
export interface ParsedDocument {
|
|
164
274
|
file: SourceFile;
|
|
165
275
|
text: string;
|
|
276
|
+
sourceLineCoordinates?: boolean;
|
|
166
277
|
pages?: ParsedPage[];
|
|
278
|
+
regions?: ParsedRegion[];
|
|
279
|
+
ocr?: PdfOcrMetrics;
|
|
280
|
+
}
|
|
281
|
+
export interface PdfOcrMetrics {
|
|
282
|
+
pages: number;
|
|
283
|
+
cacheHits: number;
|
|
284
|
+
cacheMisses: number;
|
|
285
|
+
batches: number;
|
|
286
|
+
subprocesses: number;
|
|
287
|
+
durationMs: number;
|
|
167
288
|
}
|
|
168
289
|
export interface ParsedPage {
|
|
169
290
|
pageNumber: number;
|
|
170
291
|
charStart: number;
|
|
171
292
|
charEnd: number;
|
|
172
293
|
}
|
|
294
|
+
export type SourceLocationKind = "page" | "slide" | "sheet" | "epub";
|
|
295
|
+
export interface SourceLocation {
|
|
296
|
+
kind: SourceLocationKind;
|
|
297
|
+
start: number;
|
|
298
|
+
end: number;
|
|
299
|
+
label?: string;
|
|
300
|
+
cellStart?: string;
|
|
301
|
+
cellEnd?: string;
|
|
302
|
+
}
|
|
303
|
+
export interface ParsedRegion {
|
|
304
|
+
charStart: number;
|
|
305
|
+
charEnd: number;
|
|
306
|
+
contextPath: string;
|
|
307
|
+
location: SourceLocation;
|
|
308
|
+
}
|
|
173
309
|
export interface TextChunk {
|
|
174
310
|
id: string;
|
|
175
311
|
source: string;
|
|
@@ -179,10 +315,16 @@ export interface TextChunk {
|
|
|
179
315
|
text: string;
|
|
180
316
|
charStart: number;
|
|
181
317
|
charEnd: number;
|
|
182
|
-
lineStart
|
|
183
|
-
lineEnd
|
|
318
|
+
lineStart?: number;
|
|
319
|
+
lineEnd?: number;
|
|
184
320
|
pageStart?: number;
|
|
185
321
|
pageEnd?: number;
|
|
322
|
+
locationKind?: SourceLocationKind;
|
|
323
|
+
locationStart?: number;
|
|
324
|
+
locationEnd?: number;
|
|
325
|
+
locationLabel?: string;
|
|
326
|
+
cellStart?: string;
|
|
327
|
+
cellEnd?: string;
|
|
186
328
|
checksum: string;
|
|
187
329
|
bytes: number;
|
|
188
330
|
mtimeMs: number;
|
|
@@ -211,8 +353,51 @@ export interface IngestOptions extends OperationOptions {
|
|
|
211
353
|
cwd?: PathLike;
|
|
212
354
|
rebuild?: boolean;
|
|
213
355
|
batchSize?: number;
|
|
356
|
+
incrementalFailurePolicy?: IncrementalFailurePolicy;
|
|
357
|
+
collectMetrics?: boolean;
|
|
214
358
|
onProgress?: (progress: IngestionProgress) => void | Promise<void>;
|
|
215
359
|
}
|
|
360
|
+
export type IngestionEmbeddingModelState = "unused" | "stateless" | "cold" | "warm" | "mixed";
|
|
361
|
+
export interface IngestionPhaseDurations {
|
|
362
|
+
queueMs: number;
|
|
363
|
+
writeLockWaitMs: number;
|
|
364
|
+
discoveryMs: number;
|
|
365
|
+
hashingMs: number;
|
|
366
|
+
parsingMs: number;
|
|
367
|
+
redactionMs: number;
|
|
368
|
+
chunkingMs: number;
|
|
369
|
+
embeddingMs: number;
|
|
370
|
+
storageWriteMs: number;
|
|
371
|
+
maintenanceMs: number;
|
|
372
|
+
totalMs: number;
|
|
373
|
+
}
|
|
374
|
+
export interface IngestionThroughputMetrics {
|
|
375
|
+
filesPerSecond: number;
|
|
376
|
+
mebibytesPerSecond: number;
|
|
377
|
+
chunksPerSecond: number;
|
|
378
|
+
embeddingsPerSecond: number;
|
|
379
|
+
}
|
|
380
|
+
export interface IngestionMetrics {
|
|
381
|
+
phaseDurations: IngestionPhaseDurations;
|
|
382
|
+
throughput: IngestionThroughputMetrics;
|
|
383
|
+
sourceBytesRead: number;
|
|
384
|
+
storagePayloadBytes: number;
|
|
385
|
+
peakRssBytes: number;
|
|
386
|
+
candidateFiles: number;
|
|
387
|
+
processedFiles: number;
|
|
388
|
+
embeddedChunks: number;
|
|
389
|
+
embeddingProvider: EmbeddingProvider;
|
|
390
|
+
embeddingModelState: IngestionEmbeddingModelState;
|
|
391
|
+
embeddingCacheHits: number;
|
|
392
|
+
embeddingCacheMisses: number;
|
|
393
|
+
embeddingQueueMs: number;
|
|
394
|
+
fallbackFiles: number;
|
|
395
|
+
errorCount: number;
|
|
396
|
+
timeoutCount: number;
|
|
397
|
+
truncationCount: number;
|
|
398
|
+
maintenanceOperations: number;
|
|
399
|
+
ocrSubprocesses: number;
|
|
400
|
+
}
|
|
216
401
|
export interface IngestResult {
|
|
217
402
|
runId: string;
|
|
218
403
|
resumed: boolean;
|
|
@@ -224,6 +409,7 @@ export interface IngestResult {
|
|
|
224
409
|
indexedFiles: number;
|
|
225
410
|
rebuiltFiles: number;
|
|
226
411
|
reusedFiles: number;
|
|
412
|
+
staleLastKnownGood: string[];
|
|
227
413
|
policyRebuild: boolean;
|
|
228
414
|
chunks: number;
|
|
229
415
|
skippedFiles: number;
|
|
@@ -236,12 +422,15 @@ export interface IngestResult {
|
|
|
236
422
|
count: number;
|
|
237
423
|
}>;
|
|
238
424
|
redactions: number;
|
|
425
|
+
ocr: PdfOcrMetrics;
|
|
239
426
|
vectorIndexWarning: string | null;
|
|
240
427
|
lexicalIndexWarning: string | null;
|
|
428
|
+
storageWarning: string | null;
|
|
241
429
|
errors: Array<{
|
|
242
430
|
path: string;
|
|
243
431
|
message: string;
|
|
244
432
|
}>;
|
|
433
|
+
metrics?: IngestionMetrics;
|
|
245
434
|
}
|
|
246
435
|
export type IngestionFileStage = "pending" | "parsed" | "embedded" | "indexed" | "error";
|
|
247
436
|
export type IngestionRunMode = "incremental" | "rebuild";
|
|
@@ -258,6 +447,7 @@ export interface IngestionProgress {
|
|
|
258
447
|
embeddedFiles: number;
|
|
259
448
|
indexedFiles: number;
|
|
260
449
|
errorFiles: number;
|
|
450
|
+
staleFiles: number;
|
|
261
451
|
chunksIndexed: number;
|
|
262
452
|
lastActivityAt: string;
|
|
263
453
|
}
|
|
@@ -274,8 +464,8 @@ export interface PreviewChunk {
|
|
|
274
464
|
text: string;
|
|
275
465
|
charStart: number;
|
|
276
466
|
charEnd: number;
|
|
277
|
-
lineStart: number;
|
|
278
|
-
lineEnd: number;
|
|
467
|
+
lineStart: number | null;
|
|
468
|
+
lineEnd: number | null;
|
|
279
469
|
pageStart: number | null;
|
|
280
470
|
pageEnd: number | null;
|
|
281
471
|
}
|
|
@@ -286,6 +476,7 @@ export interface PreviewFile {
|
|
|
286
476
|
bytes: number;
|
|
287
477
|
parsedChars: number;
|
|
288
478
|
redactions: number;
|
|
479
|
+
ocr: PdfOcrMetrics | null;
|
|
289
480
|
chunkStats: ChunkStats;
|
|
290
481
|
chunks: PreviewChunk[];
|
|
291
482
|
omittedChunks: number;
|
|
@@ -328,6 +519,7 @@ export interface KnowledgeBaseContextReport {
|
|
|
328
519
|
privacyProfile: PrivacyProfile;
|
|
329
520
|
retrievalProfile: RetrievalProfile;
|
|
330
521
|
embeddingProvider: EmbeddingProvider;
|
|
522
|
+
corpusFingerprint: string | null;
|
|
331
523
|
ready: boolean;
|
|
332
524
|
coverage: {
|
|
333
525
|
supportedFiles: number;
|
|
@@ -371,6 +563,15 @@ export interface KnowledgeBaseSourceCatalog {
|
|
|
371
563
|
staleInIndex: number;
|
|
372
564
|
emptyTextFiles: number;
|
|
373
565
|
};
|
|
566
|
+
page: {
|
|
567
|
+
offset: number;
|
|
568
|
+
limit: number;
|
|
569
|
+
nextOffset: number | null;
|
|
570
|
+
};
|
|
571
|
+
}
|
|
572
|
+
export interface KnowledgeBaseSourceCatalogOptions extends OperationOptions {
|
|
573
|
+
offset?: number;
|
|
574
|
+
limit?: number;
|
|
374
575
|
}
|
|
375
576
|
export interface SearchOptions extends OperationOptions {
|
|
376
577
|
cwd?: PathLike;
|
|
@@ -380,6 +581,7 @@ export interface SearchOptions extends OperationOptions {
|
|
|
380
581
|
excludePaths?: string[];
|
|
381
582
|
contextPaths?: string[];
|
|
382
583
|
explain?: boolean;
|
|
584
|
+
vectorSearchMode?: "adaptive" | "exact";
|
|
383
585
|
}
|
|
384
586
|
export interface SearchContextChunk {
|
|
385
587
|
chunkIndex: number;
|
|
@@ -419,6 +621,18 @@ export interface SearchScoreExplanation {
|
|
|
419
621
|
lexicalRank: number | null;
|
|
420
622
|
vectorDistance: number | null;
|
|
421
623
|
lexicalBackendScore: number | null;
|
|
624
|
+
lexicalBackend: "fts" | "fallback";
|
|
625
|
+
lexicalFallbackActivated: boolean;
|
|
626
|
+
lexicalFallbackReason: "fts-index-unavailable" | "fts-query-failed" | null;
|
|
627
|
+
lexicalExactPathMatch: boolean;
|
|
628
|
+
lexicalCandidateLimit: number;
|
|
629
|
+
lexicalCandidatesMaterialized: number;
|
|
630
|
+
lexicalQueryVariants: number;
|
|
631
|
+
lexicalIndexedRows: number;
|
|
632
|
+
lexicalUnindexedRows: number;
|
|
633
|
+
lexicalCoverage: number;
|
|
634
|
+
workloadQueueMs: number;
|
|
635
|
+
rankingPolicyFingerprint: string;
|
|
422
636
|
matchedTerms: string[];
|
|
423
637
|
}
|
|
424
638
|
export interface ExpandCitationOptions extends OperationOptions {
|
|
@@ -464,6 +678,11 @@ export interface ResearchOptions extends OperationOptions {
|
|
|
464
678
|
cwd?: PathLike;
|
|
465
679
|
topK?: number;
|
|
466
680
|
includeCode?: boolean;
|
|
681
|
+
fullAudit?: boolean;
|
|
682
|
+
codeTopK?: number;
|
|
683
|
+
codeScanMaxFiles?: number;
|
|
684
|
+
codeScanMaxBytes?: number;
|
|
685
|
+
codeScanConcurrency?: number;
|
|
467
686
|
includePaths?: string[];
|
|
468
687
|
excludePaths?: string[];
|
|
469
688
|
contextPaths?: string[];
|
|
@@ -481,18 +700,23 @@ export interface ResearchEvidence {
|
|
|
481
700
|
pageStart: number | null;
|
|
482
701
|
pageEnd: number | null;
|
|
483
702
|
queries: string[];
|
|
703
|
+
bestRank: number;
|
|
704
|
+
researchScore: number;
|
|
484
705
|
}
|
|
485
706
|
export interface CodeEvidence {
|
|
486
707
|
relativePath: string;
|
|
487
708
|
lineNumber: number;
|
|
488
709
|
snippet: string;
|
|
489
710
|
matchedTerms: string[];
|
|
711
|
+
score: number;
|
|
490
712
|
}
|
|
491
713
|
export interface ResearchReport {
|
|
492
714
|
query: string;
|
|
493
715
|
generatedQueries: string[];
|
|
494
716
|
ready: boolean;
|
|
495
717
|
audit: {
|
|
718
|
+
mode: "manifest" | "full";
|
|
719
|
+
inventoryVerified: boolean;
|
|
496
720
|
supportedFiles: number;
|
|
497
721
|
supportedBytes: number;
|
|
498
722
|
largestFileBytes: number;
|
|
@@ -509,6 +733,17 @@ export interface ResearchReport {
|
|
|
509
733
|
sourceDiagnostics: SourceDiagnostics;
|
|
510
734
|
evidence: ResearchEvidence[];
|
|
511
735
|
codeEvidence: CodeEvidence[];
|
|
736
|
+
budgets: {
|
|
737
|
+
timeoutMs: number | null;
|
|
738
|
+
evidenceTopK: number;
|
|
739
|
+
codeEvidenceTopK: number;
|
|
740
|
+
codeScanMaxFiles: number;
|
|
741
|
+
codeScanMaxBytes: number;
|
|
742
|
+
codeScanConcurrency: number;
|
|
743
|
+
codeFilesScanned: number;
|
|
744
|
+
codeBytesScanned: number;
|
|
745
|
+
codeScanTruncated: boolean;
|
|
746
|
+
};
|
|
512
747
|
gaps: string[];
|
|
513
748
|
nextSteps: string[];
|
|
514
749
|
}
|
|
@@ -517,16 +752,58 @@ export interface GoldenQuery {
|
|
|
517
752
|
query: string;
|
|
518
753
|
expectedPaths: string[];
|
|
519
754
|
expectedCitations?: string[];
|
|
755
|
+
answerable?: boolean;
|
|
756
|
+
category?: string;
|
|
757
|
+
locale?: string;
|
|
758
|
+
relevanceJudgments?: RelevanceJudgment[];
|
|
759
|
+
maximumVectorDistance?: number;
|
|
520
760
|
includePaths?: string[];
|
|
521
761
|
excludePaths?: string[];
|
|
522
762
|
contextPaths?: string[];
|
|
523
763
|
topK?: number;
|
|
524
764
|
}
|
|
765
|
+
export interface RelevanceJudgment {
|
|
766
|
+
kind: "path" | "citation";
|
|
767
|
+
value: string;
|
|
768
|
+
relevance: 0 | 1 | 2 | 3;
|
|
769
|
+
}
|
|
770
|
+
export interface QualityMetricThresholds {
|
|
771
|
+
recallAt1?: number;
|
|
772
|
+
recallAt3?: number;
|
|
773
|
+
recallAt5?: number;
|
|
774
|
+
recallAt10?: number;
|
|
775
|
+
precisionAt5?: number;
|
|
776
|
+
meanReciprocalRankAt10?: number;
|
|
777
|
+
ndcgAt10?: number;
|
|
778
|
+
exactCitationRate?: number;
|
|
779
|
+
maximumFalsePositiveRate?: number;
|
|
780
|
+
}
|
|
781
|
+
export interface QualityGateResult {
|
|
782
|
+
metric: keyof QualityMetricThresholds;
|
|
783
|
+
direction: "minimum" | "maximum";
|
|
784
|
+
threshold: number;
|
|
785
|
+
actual: number | null;
|
|
786
|
+
passed: boolean;
|
|
787
|
+
applicable: boolean;
|
|
788
|
+
}
|
|
789
|
+
export interface EvaluationGroupResult {
|
|
790
|
+
total: number;
|
|
791
|
+
answerable: number;
|
|
792
|
+
unanswerable: number;
|
|
793
|
+
recallAt10: number;
|
|
794
|
+
precisionAt5: number;
|
|
795
|
+
meanReciprocalRankAt10: number;
|
|
796
|
+
ndcgAt10: number;
|
|
797
|
+
falsePositiveRate: number;
|
|
798
|
+
}
|
|
525
799
|
export interface EvaluationOptions extends OperationOptions {
|
|
526
800
|
cwd?: PathLike;
|
|
527
801
|
goldenPath: PathLike;
|
|
528
802
|
topK?: number;
|
|
529
803
|
maxTopK?: number;
|
|
804
|
+
thresholds?: QualityMetricThresholds;
|
|
805
|
+
persistCompatibleReport?: boolean;
|
|
806
|
+
caseDetailLimit?: number;
|
|
530
807
|
}
|
|
531
808
|
export interface EvaluationCaseResult {
|
|
532
809
|
id?: string;
|
|
@@ -541,18 +818,36 @@ export interface EvaluationCaseResult {
|
|
|
541
818
|
matchedPaths: string[];
|
|
542
819
|
matchedCitations: string[];
|
|
543
820
|
expectedCitations?: string[];
|
|
821
|
+
answerable: boolean;
|
|
822
|
+
category?: string;
|
|
823
|
+
locale?: string;
|
|
824
|
+
relevanceJudgments: RelevanceJudgment[];
|
|
825
|
+
abstained: boolean;
|
|
826
|
+
falsePositive: boolean;
|
|
827
|
+
pathHit: boolean;
|
|
828
|
+
exactCitationHit: boolean | null;
|
|
544
829
|
hit: boolean;
|
|
545
830
|
bestRank: number | null;
|
|
546
831
|
reciprocalRank: number;
|
|
547
832
|
recall: number;
|
|
548
833
|
precision: number;
|
|
549
834
|
ndcg: number;
|
|
835
|
+
recallAt: Record<1 | 3 | 5 | 10, number>;
|
|
836
|
+
precisionAt5: number;
|
|
837
|
+
reciprocalRankAt10: number;
|
|
838
|
+
ndcgAt10: number;
|
|
550
839
|
latencyMs: number;
|
|
551
840
|
}
|
|
552
841
|
export interface EvaluationResult {
|
|
553
842
|
goldenPath: string;
|
|
554
843
|
embeddingProvider: EmbeddingProvider;
|
|
555
844
|
embeddingModel: string;
|
|
845
|
+
embeddingModelRevision: string;
|
|
846
|
+
embeddingModelDigest: string | null;
|
|
847
|
+
retrievalProfile: RetrievalProfile;
|
|
848
|
+
rankingPolicyFingerprint: string;
|
|
849
|
+
indexFingerprint: string;
|
|
850
|
+
goldenFingerprint: string;
|
|
556
851
|
topK: number;
|
|
557
852
|
total: number;
|
|
558
853
|
hits: number;
|
|
@@ -562,16 +857,70 @@ export interface EvaluationResult {
|
|
|
562
857
|
precision: number;
|
|
563
858
|
meanReciprocalRank: number;
|
|
564
859
|
ndcg: number;
|
|
860
|
+
recallAt: Record<1 | 3 | 5 | 10, number>;
|
|
861
|
+
precisionAt5: number;
|
|
862
|
+
meanReciprocalRankAt10: number;
|
|
863
|
+
ndcgAt10: number;
|
|
864
|
+
exactCitationRate: number | null;
|
|
865
|
+
falsePositiveRate: number | null;
|
|
866
|
+
abstentionAccuracy: number | null;
|
|
867
|
+
thresholds: QualityMetricThresholds;
|
|
868
|
+
gates: QualityGateResult[];
|
|
869
|
+
passed: boolean;
|
|
870
|
+
verificationEligible: boolean;
|
|
871
|
+
reportStored: boolean;
|
|
872
|
+
qualityReportFingerprint: string | null;
|
|
873
|
+
groups: {
|
|
874
|
+
categories: Record<string, EvaluationGroupResult>;
|
|
875
|
+
locales: Record<string, EvaluationGroupResult>;
|
|
876
|
+
};
|
|
565
877
|
p50LatencyMs: number;
|
|
566
878
|
p95LatencyMs: number;
|
|
567
879
|
cases: EvaluationCaseResult[];
|
|
880
|
+
omittedCases?: number;
|
|
881
|
+
}
|
|
882
|
+
export interface IndexQualityReport {
|
|
883
|
+
schemaVersion: 3;
|
|
884
|
+
createdAt: string;
|
|
885
|
+
goldenPath: string;
|
|
886
|
+
goldenFingerprint: string;
|
|
887
|
+
indexFingerprint: string;
|
|
888
|
+
indexPolicyFingerprint: string;
|
|
889
|
+
embeddingProvider: EmbeddingProvider;
|
|
890
|
+
embeddingModel: string;
|
|
891
|
+
embeddingModelRevision: string;
|
|
892
|
+
embeddingModelDigest: string | null;
|
|
893
|
+
retrievalProfile: RetrievalProfile;
|
|
894
|
+
rankingPolicyFingerprint: string;
|
|
895
|
+
total: number;
|
|
896
|
+
metrics: {
|
|
897
|
+
recallAt1: number;
|
|
898
|
+
recallAt3: number;
|
|
899
|
+
recallAt5: number;
|
|
900
|
+
recallAt10: number;
|
|
901
|
+
precisionAt5: number;
|
|
902
|
+
meanReciprocalRankAt10: number;
|
|
903
|
+
ndcgAt10: number;
|
|
904
|
+
exactCitationRate: number;
|
|
905
|
+
falsePositiveRate: number;
|
|
906
|
+
};
|
|
907
|
+
thresholds: Required<QualityMetricThresholds>;
|
|
908
|
+
passed: true;
|
|
909
|
+
verificationEligible: true;
|
|
910
|
+
qualityReportFingerprint: string;
|
|
568
911
|
}
|
|
569
912
|
export interface AskResult {
|
|
570
913
|
answer: string;
|
|
571
914
|
sources: SearchResult[];
|
|
572
915
|
staleWarning: string | null;
|
|
573
916
|
}
|
|
917
|
+
export interface AuditOptions extends OperationOptions {
|
|
918
|
+
previewLimit?: number;
|
|
919
|
+
}
|
|
574
920
|
export interface AuditReport {
|
|
921
|
+
mode: "deep";
|
|
922
|
+
inventoryVerified: true;
|
|
923
|
+
cost: "O(corpus)";
|
|
575
924
|
discoveredFiles: number;
|
|
576
925
|
supportedBytes: number;
|
|
577
926
|
largestFileBytes: number;
|
|
@@ -591,6 +940,17 @@ export interface AuditReport {
|
|
|
591
940
|
staleInIndex: string[];
|
|
592
941
|
totalChunks: number;
|
|
593
942
|
chunkStats: ChunkStats;
|
|
943
|
+
omitted?: {
|
|
944
|
+
indexedFiles: number;
|
|
945
|
+
supportedFiles: number;
|
|
946
|
+
skippedFiles: number;
|
|
947
|
+
emptyTextFiles: number;
|
|
948
|
+
duplicateCandidates: number;
|
|
949
|
+
archiveCandidates: number;
|
|
950
|
+
mirrorCandidates: number;
|
|
951
|
+
missingFromIndex: number;
|
|
952
|
+
staleInIndex: number;
|
|
953
|
+
};
|
|
594
954
|
}
|
|
595
955
|
export interface DestroyIndexResult {
|
|
596
956
|
storageDir: string;
|
|
@@ -598,10 +958,15 @@ export interface DestroyIndexResult {
|
|
|
598
958
|
note: string;
|
|
599
959
|
}
|
|
600
960
|
export interface DoctorReport {
|
|
961
|
+
mode: "manifest" | "deep";
|
|
962
|
+
inventoryVerified: boolean;
|
|
963
|
+
securityVerified: boolean;
|
|
964
|
+
cost: "O(1)" | "O(corpus)";
|
|
601
965
|
projectRoot: string;
|
|
602
966
|
initialized: boolean;
|
|
603
967
|
packageManager: PackageManager;
|
|
604
968
|
runCommand: string;
|
|
969
|
+
runtime: RuntimeInfo;
|
|
605
970
|
agentKitInstalled: boolean;
|
|
606
971
|
agentIntegration: AgentIntegrationReport;
|
|
607
972
|
rawDir: string;
|
|
@@ -625,6 +990,7 @@ export interface DoctorReport {
|
|
|
625
990
|
chunksIndexed: number;
|
|
626
991
|
missingFromIndex: number;
|
|
627
992
|
staleInIndex: number;
|
|
993
|
+
corpusFingerprint: string | null;
|
|
628
994
|
securityWarnings: string[];
|
|
629
995
|
indexFreshness: {
|
|
630
996
|
manifestFound: boolean;
|
|
@@ -641,6 +1007,29 @@ export interface DoctorReport {
|
|
|
641
1007
|
};
|
|
642
1008
|
nextSteps: string[];
|
|
643
1009
|
}
|
|
1010
|
+
export interface RuntimePackageVersion {
|
|
1011
|
+
name: string;
|
|
1012
|
+
version: string;
|
|
1013
|
+
}
|
|
1014
|
+
export interface RuntimeInfo {
|
|
1015
|
+
ragmir: string;
|
|
1016
|
+
node: string;
|
|
1017
|
+
v8: string;
|
|
1018
|
+
napi: string | null;
|
|
1019
|
+
platform: NodeJS.Platform;
|
|
1020
|
+
architecture: string;
|
|
1021
|
+
dependencies: {
|
|
1022
|
+
lanceDb: RuntimePackageVersion | null;
|
|
1023
|
+
lanceDbNative: RuntimePackageVersion | null;
|
|
1024
|
+
apacheArrow: RuntimePackageVersion | null;
|
|
1025
|
+
transformers: RuntimePackageVersion | null;
|
|
1026
|
+
onnxRuntime: RuntimePackageVersion | null;
|
|
1027
|
+
sharp: RuntimePackageVersion | null;
|
|
1028
|
+
};
|
|
1029
|
+
}
|
|
1030
|
+
export interface DoctorOptions extends OperationOptions {
|
|
1031
|
+
deep?: boolean;
|
|
1032
|
+
}
|
|
644
1033
|
export interface SecurityAuditReport {
|
|
645
1034
|
projectRoot: string;
|
|
646
1035
|
zeroTelemetry: true;
|
|
@@ -650,6 +1039,7 @@ export interface SecurityAuditReport {
|
|
|
650
1039
|
embedding: EmbeddingProvider;
|
|
651
1040
|
embeddingModel: string;
|
|
652
1041
|
embeddingModelRevision: string;
|
|
1042
|
+
embeddingModelDigest: string | null;
|
|
653
1043
|
embeddingModelPath: string;
|
|
654
1044
|
transformersAllowRemoteModels: boolean;
|
|
655
1045
|
llmGeneration: false;
|
|
@@ -669,12 +1059,28 @@ export interface SecurityAuditReport {
|
|
|
669
1059
|
gitIgnored: boolean;
|
|
670
1060
|
encryptedAtRest: "external-required";
|
|
671
1061
|
};
|
|
1062
|
+
privatePaths: Array<{
|
|
1063
|
+
kind: "config" | "raw" | "storage" | "sources" | "access-log" | "embedding-models";
|
|
1064
|
+
path: string;
|
|
1065
|
+
insideProject: boolean;
|
|
1066
|
+
gitIgnored: boolean | null;
|
|
1067
|
+
gitTracked: boolean | null;
|
|
1068
|
+
permissionPrivate: boolean | null;
|
|
1069
|
+
}>;
|
|
1070
|
+
externalExtractors: {
|
|
1071
|
+
configured: boolean;
|
|
1072
|
+
enabled: Array<"pdf-ocr" | "image-ocr" | "legacy-word">;
|
|
1073
|
+
disabledByStrictProfile: boolean;
|
|
1074
|
+
executeWithOperatorAuthority: true;
|
|
1075
|
+
};
|
|
672
1076
|
permissions: {
|
|
673
1077
|
checked: boolean;
|
|
674
1078
|
configPrivate: boolean | null;
|
|
675
1079
|
rawDirPrivate: boolean | null;
|
|
676
1080
|
storageDirPrivate: boolean | null;
|
|
1081
|
+
sourcesFilePrivate: boolean | null;
|
|
677
1082
|
accessLogPrivate: boolean | null;
|
|
1083
|
+
embeddingModelPathPrivate: boolean | null;
|
|
678
1084
|
};
|
|
679
1085
|
mcp: {
|
|
680
1086
|
maxTopK: number;
|
|
@@ -689,4 +1095,7 @@ export interface SecurityAuditReport {
|
|
|
689
1095
|
recommendations: string[];
|
|
690
1096
|
warnings: string[];
|
|
691
1097
|
}
|
|
1098
|
+
export interface SecurityAuditOptions extends OperationOptions {
|
|
1099
|
+
deep?: boolean;
|
|
1100
|
+
}
|
|
692
1101
|
//# sourceMappingURL=types.d.ts.map
|