@jcode.labs/ragmir 2.6.0 → 2.8.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/README.md +4 -2
- package/dist/access-log.d.ts.map +1 -1
- package/dist/access-log.js +65 -8
- package/dist/access-log.js.map +1 -1
- package/dist/chunking.d.ts.map +1 -1
- package/dist/chunking.js +77 -7
- package/dist/chunking.js.map +1 -1
- package/dist/cli-options.d.ts +2 -0
- package/dist/cli-options.d.ts.map +1 -1
- package/dist/cli-options.js +8 -0
- package/dist/cli-options.js.map +1 -1
- package/dist/cli.js +106 -29
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +73 -29
- package/dist/config.js.map +1 -1
- package/dist/defaults.d.ts +2 -0
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +7 -1
- package/dist/defaults.js.map +1 -1
- package/dist/destroy.d.ts.map +1 -1
- package/dist/destroy.js +23 -1
- package/dist/destroy.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +40 -9
- package/dist/doctor.js.map +1 -1
- package/dist/embeddings.d.ts +4 -1
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +62 -14
- package/dist/embeddings.js.map +1 -1
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +89 -4
- package/dist/evaluate.js.map +1 -1
- package/dist/files.d.ts +8 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +44 -8
- package/dist/files.js.map +1 -1
- package/dist/index-diagnostics.d.ts +1 -1
- package/dist/index-diagnostics.d.ts.map +1 -1
- package/dist/index-diagnostics.js +14 -4
- package/dist/index-diagnostics.js.map +1 -1
- package/dist/index-policy.d.ts +3 -0
- package/dist/index-policy.d.ts.map +1 -0
- package/dist/index-policy.js +28 -0
- package/dist/index-policy.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ingest.d.ts.map +1 -1
- package/dist/ingest.js +119 -53
- package/dist/ingest.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +15 -3
- package/dist/init.js.map +1 -1
- package/dist/limits.d.ts +9 -0
- package/dist/limits.d.ts.map +1 -0
- package/dist/limits.js +25 -0
- package/dist/limits.js.map +1 -0
- package/dist/mcp.d.ts +4 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +84 -18
- package/dist/mcp.js.map +1 -1
- package/dist/parsing.d.ts.map +1 -1
- package/dist/parsing.js +124 -24
- package/dist/parsing.js.map +1 -1
- package/dist/permissions.d.ts +3 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +13 -0
- package/dist/permissions.js.map +1 -0
- package/dist/query-sanitizer.d.ts +8 -0
- package/dist/query-sanitizer.d.ts.map +1 -0
- package/dist/query-sanitizer.js +170 -0
- package/dist/query-sanitizer.js.map +1 -0
- package/dist/query.d.ts +2 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +285 -29
- package/dist/query.js.map +1 -1
- package/dist/research.d.ts.map +1 -1
- package/dist/research.js +42 -4
- package/dist/research.js.map +1 -1
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +110 -14
- package/dist/security.js.map +1 -1
- package/dist/store.d.ts +4 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +86 -55
- package/dist/store.js.map +1 -1
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +13 -1
- package/dist/text.js.map +1 -1
- package/dist/types.d.ts +131 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/examples/document-evidence-benchmark/.ragmir/config.json +22 -0
- package/examples/document-evidence-benchmark/README.md +36 -0
- package/examples/document-evidence-benchmark/golden-queries.json +41 -0
- package/examples/document-evidence-benchmark/raw/contracts/master-services-agreement.md +11 -0
- package/examples/document-evidence-benchmark/raw/contracts/pdf-control-evidence.pdf +32 -0
- package/examples/document-evidence-benchmark/raw/legal-tax/residency-review-note.md +10 -0
- package/examples/document-evidence-benchmark/raw/rfp/security-questionnaire.md +12 -0
- package/examples/document-evidence-benchmark/raw/runbooks/incident-response-runbook.md +11 -0
- package/examples/document-evidence-benchmark/raw/specs/agent-integration-spec.md +11 -0
- package/examples/sovereign-rag-demo/.ragmir/config.json +2 -1
- package/examples/sovereign-rag-demo/README.md +9 -1
- package/package.json +3 -3
- package/skills/ragmir/SKILL.md +11 -3
package/dist/ingest.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
1
|
import { recordAccess } from "./access-log.js";
|
|
3
2
|
import { chunkDocument } from "./chunking.js";
|
|
4
3
|
import { loadConfig } from "./config.js";
|
|
4
|
+
import { VECTOR_DISTANCE_METRIC } from "./defaults.js";
|
|
5
5
|
import { embedTexts } from "./embeddings.js";
|
|
6
6
|
import { countSkippedByReason, inventorySourceFiles, summarizeUnsupportedExtensions, } from "./files.js";
|
|
7
7
|
import { INDEX_SCHEMA_VERSION } from "./index-diagnostics.js";
|
|
8
|
+
import { indexPolicyFingerprint } from "./index-policy.js";
|
|
8
9
|
import { parseFile } from "./parsing.js";
|
|
9
10
|
import { redactText, totalRedactions } from "./redaction.js";
|
|
10
|
-
import { openRowsTable, readEmptyTextFiles,
|
|
11
|
-
import { normalizeForMatch } from "./text.js";
|
|
11
|
+
import { openRowsTable, readEmptyTextFiles, readIndexManifest, updateRows, writeEmptyTextFiles, writeIndexManifest, writeRows, } from "./store.js";
|
|
12
12
|
import { VERSION } from "./version.js";
|
|
13
|
-
const MAX_AUDIT_ROWS = 100_000;
|
|
14
13
|
const MAX_SOURCE_DIAGNOSTIC_ITEMS = 20;
|
|
15
14
|
const ARCHIVE_PATH_PATTERNS = [
|
|
16
15
|
/(^|[/_-])archive(s)?([/_-]|$)/iu,
|
|
@@ -28,15 +27,36 @@ const MIRROR_PATH_PATTERNS = [
|
|
|
28
27
|
];
|
|
29
28
|
export async function ingest(options = {}) {
|
|
30
29
|
const config = await loadConfig(String(options.cwd ?? process.cwd()));
|
|
31
|
-
const
|
|
30
|
+
const policyFingerprint = indexPolicyFingerprint(config);
|
|
31
|
+
const existingManifest = await readIndexManifest(config);
|
|
32
|
+
const manifestCompatible = !options.rebuild &&
|
|
33
|
+
existingManifest?.schemaVersion === INDEX_SCHEMA_VERSION &&
|
|
34
|
+
existingManifest.indexPolicyFingerprint === policyFingerprint &&
|
|
35
|
+
existingManifest.indexedFiles !== undefined;
|
|
36
|
+
const existingTable = manifestCompatible ? await openRowsTable(config) : null;
|
|
37
|
+
const storedEmptyFiles = manifestCompatible ? await readEmptyTextFiles(config) : [];
|
|
38
|
+
const knownFiles = new Map([...(existingManifest?.indexedFiles ?? []), ...storedEmptyFiles].map((file) => [
|
|
39
|
+
file.relativePath,
|
|
40
|
+
file,
|
|
41
|
+
]));
|
|
42
|
+
const inventory = await inventorySourceFiles(config, { knownFiles });
|
|
32
43
|
const files = inventory.supportedFiles;
|
|
44
|
+
const inventoryMetrics = sourceInventoryMetrics(files);
|
|
33
45
|
const currentFiles = new Map(files.map((file) => [file.relativePath, file]));
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
46
|
+
const policyRebuild = !options.rebuild &&
|
|
47
|
+
existingManifest !== null &&
|
|
48
|
+
(existingManifest.schemaVersion !== INDEX_SCHEMA_VERSION ||
|
|
49
|
+
existingManifest.indexPolicyFingerprint !== policyFingerprint);
|
|
50
|
+
const canReuse = manifestCompatible && existingTable !== null;
|
|
51
|
+
const previousIndexedFiles = canReuse ? (existingManifest.indexedFiles ?? []) : [];
|
|
52
|
+
const previousEmptyFiles = canReuse ? storedEmptyFiles : [];
|
|
53
|
+
const reusableIndexedFiles = previousIndexedFiles.filter((file) => currentFiles.get(file.relativePath)?.checksum === file.checksum);
|
|
54
|
+
const reusableEmptyFiles = previousEmptyFiles.filter((file) => currentFiles.get(file.relativePath)?.checksum === file.checksum);
|
|
55
|
+
const reusableFiles = new Set([
|
|
56
|
+
...reusableIndexedFiles.map((file) => file.relativePath),
|
|
57
|
+
...reusableEmptyFiles.map((file) => file.relativePath),
|
|
58
|
+
]);
|
|
59
|
+
const filesToIndex = files.filter((file) => !reusableFiles.has(file.relativePath));
|
|
40
60
|
const allChunks = [];
|
|
41
61
|
const errors = [];
|
|
42
62
|
const redactionCounts = [];
|
|
@@ -88,78 +108,122 @@ export async function ingest(options = {}) {
|
|
|
88
108
|
});
|
|
89
109
|
}
|
|
90
110
|
}
|
|
91
|
-
const
|
|
92
|
-
const
|
|
93
|
-
|
|
111
|
+
const rebuiltIndexedFiles = indexedFileRecords(rows);
|
|
112
|
+
const indexedFiles = [...reusableIndexedFiles, ...rebuiltIndexedFiles].sort((a, b) => a.relativePath.localeCompare(b.relativePath));
|
|
113
|
+
const chunkCount = indexedFiles.reduce((sum, file) => sum + file.chunkCount, 0);
|
|
114
|
+
const previousPaths = new Set(previousIndexedFiles.map((file) => file.relativePath));
|
|
115
|
+
const currentPaths = new Set(files.map((file) => file.relativePath));
|
|
116
|
+
const replacePaths = [
|
|
117
|
+
...filesToIndex.map((file) => file.relativePath),
|
|
118
|
+
...[...previousPaths].filter((relativePath) => !currentPaths.has(relativePath)),
|
|
119
|
+
];
|
|
120
|
+
const writeResult = !canReuse || chunkCount === 0
|
|
121
|
+
? await writeRows(rows, config)
|
|
122
|
+
: replacePaths.length > 0
|
|
123
|
+
? await updateRows(rows, replacePaths, config)
|
|
124
|
+
: { vectorIndexWarning: null, lexicalIndexWarning: null };
|
|
125
|
+
if (chunkCount > 0) {
|
|
126
|
+
const firstRow = rows[0] ?? (await firstStoredRow(config));
|
|
127
|
+
if (!firstRow) {
|
|
128
|
+
throw new Error("Cannot write an index manifest without indexed rows.");
|
|
129
|
+
}
|
|
94
130
|
await writeIndexManifest({
|
|
95
131
|
schemaVersion: INDEX_SCHEMA_VERSION,
|
|
96
132
|
createdAt: new Date().toISOString(),
|
|
97
133
|
ragmirVersion: VERSION,
|
|
98
134
|
embeddingProvider: config.embeddingProvider,
|
|
99
135
|
embeddingModel: config.embeddingModel,
|
|
136
|
+
indexPolicyFingerprint: policyFingerprint,
|
|
137
|
+
vectorDimension: firstRow.vector.length,
|
|
138
|
+
vectorDistanceMetric: VECTOR_DISTANCE_METRIC,
|
|
100
139
|
chunkSize: config.chunkSize,
|
|
101
140
|
chunkOverlap: config.chunkOverlap,
|
|
102
|
-
fileCount:
|
|
103
|
-
chunkCount
|
|
141
|
+
fileCount: indexedFiles.length,
|
|
142
|
+
chunkCount,
|
|
143
|
+
indexedFiles,
|
|
104
144
|
}, config);
|
|
105
145
|
}
|
|
106
|
-
await writeEmptyTextFiles(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
146
|
+
await writeEmptyTextFiles([
|
|
147
|
+
...reusableEmptyFiles,
|
|
148
|
+
...emptyTextFiles.flatMap((relativePath) => {
|
|
149
|
+
const file = currentFiles.get(relativePath);
|
|
150
|
+
return file
|
|
151
|
+
? [
|
|
152
|
+
{
|
|
153
|
+
relativePath,
|
|
154
|
+
checksum: file.checksum,
|
|
155
|
+
bytes: file.bytes,
|
|
156
|
+
mtimeMs: file.mtimeMs,
|
|
157
|
+
},
|
|
158
|
+
]
|
|
159
|
+
: [];
|
|
160
|
+
}),
|
|
161
|
+
], config);
|
|
110
162
|
await recordAccess(config, {
|
|
111
163
|
action: "ingest",
|
|
112
|
-
resultCount:
|
|
164
|
+
resultCount: chunkCount,
|
|
113
165
|
redactions: totalRedactions(redactionCounts),
|
|
114
166
|
});
|
|
115
167
|
return {
|
|
116
|
-
indexedFiles:
|
|
168
|
+
indexedFiles: indexedFiles.length,
|
|
117
169
|
rebuiltFiles: new Set(rows.map((row) => row.relativePath)).size,
|
|
118
170
|
reusedFiles: reusableFiles.size,
|
|
119
|
-
|
|
171
|
+
policyRebuild,
|
|
172
|
+
chunks: chunkCount,
|
|
120
173
|
discoveredFiles: inventory.discoveredFiles,
|
|
121
174
|
supportedFiles: files.length,
|
|
175
|
+
supportedBytes: inventoryMetrics.supportedBytes,
|
|
176
|
+
largestFileBytes: inventoryMetrics.largestFileBytes,
|
|
122
177
|
skippedFiles: inventory.skippedFiles.length + emptyTextFiles.length,
|
|
123
178
|
unsupportedFiles: countSkippedByReason(inventory.skippedFiles, "unsupported-extension"),
|
|
124
179
|
oversizedFiles: countSkippedByReason(inventory.skippedFiles, "oversized"),
|
|
125
180
|
sensitiveFiles: countSkippedByReason(inventory.skippedFiles, "sensitive-name"),
|
|
126
|
-
emptyTextFiles
|
|
181
|
+
emptyTextFiles: [
|
|
182
|
+
...reusableEmptyFiles.map((file) => file.relativePath),
|
|
183
|
+
...emptyTextFiles,
|
|
184
|
+
].sort(),
|
|
127
185
|
unsupportedExtensions: summarizeUnsupportedExtensions(inventory.skippedFiles),
|
|
128
186
|
redactions: totalRedactions(redactionCounts),
|
|
129
187
|
vectorIndexWarning: writeResult.vectorIndexWarning,
|
|
188
|
+
lexicalIndexWarning: writeResult.lexicalIndexWarning,
|
|
130
189
|
errors,
|
|
131
190
|
};
|
|
132
191
|
}
|
|
133
|
-
function
|
|
134
|
-
const
|
|
192
|
+
function indexedFileRecords(rows) {
|
|
193
|
+
const records = new Map();
|
|
135
194
|
for (const row of rows) {
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
195
|
+
const current = records.get(row.relativePath);
|
|
196
|
+
records.set(row.relativePath, {
|
|
197
|
+
relativePath: row.relativePath,
|
|
198
|
+
checksum: row.checksum,
|
|
199
|
+
chunkCount: (current?.chunkCount ?? 0) + 1,
|
|
200
|
+
bytes: row.bytes,
|
|
201
|
+
mtimeMs: row.mtimeMs,
|
|
202
|
+
});
|
|
139
203
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (fileRows.every((row) => row.checksum === file.checksum &&
|
|
147
|
-
row.embeddingProvider === config.embeddingProvider &&
|
|
148
|
-
row.embeddingModel === config.embeddingModel)) {
|
|
149
|
-
reusableRows.push(...fileRows);
|
|
150
|
-
}
|
|
204
|
+
return [...records.values()];
|
|
205
|
+
}
|
|
206
|
+
async function firstStoredRow(config) {
|
|
207
|
+
const table = await openRowsTable(config);
|
|
208
|
+
if (!table) {
|
|
209
|
+
return null;
|
|
151
210
|
}
|
|
152
|
-
|
|
211
|
+
const [row] = (await table.query().limit(1).toArray());
|
|
212
|
+
return row ?? null;
|
|
153
213
|
}
|
|
154
214
|
export async function audit(cwd = process.cwd()) {
|
|
155
215
|
const config = await loadConfig(cwd);
|
|
156
216
|
const inventory = await inventorySourceFiles(config);
|
|
157
217
|
const files = inventory.supportedFiles;
|
|
218
|
+
const inventoryMetrics = sourceInventoryMetrics(files);
|
|
158
219
|
const supportedFiles = files.map((file) => file.relativePath);
|
|
159
220
|
const table = await openRowsTable(config);
|
|
160
221
|
const emptyTextFiles = await currentEmptyTextFiles(config, files);
|
|
161
222
|
if (!table) {
|
|
162
223
|
return {
|
|
224
|
+
discoveredFiles: inventory.discoveredFiles,
|
|
225
|
+
supportedBytes: inventoryMetrics.supportedBytes,
|
|
226
|
+
largestFileBytes: inventoryMetrics.largestFileBytes,
|
|
163
227
|
indexedFiles: [],
|
|
164
228
|
supportedFiles,
|
|
165
229
|
skippedFiles: inventory.skippedFiles,
|
|
@@ -171,7 +235,7 @@ export async function audit(cwd = process.cwd()) {
|
|
|
171
235
|
totalChunks: 0,
|
|
172
236
|
};
|
|
173
237
|
}
|
|
174
|
-
const rows = (await table.query().
|
|
238
|
+
const rows = (await table.query().select(["relativePath", "checksum"]).toArray());
|
|
175
239
|
const counts = new Map();
|
|
176
240
|
const checksums = new Map();
|
|
177
241
|
for (const row of rows) {
|
|
@@ -186,6 +250,9 @@ export async function audit(cwd = process.cwd()) {
|
|
|
186
250
|
const indexedSet = new Set(counts.keys());
|
|
187
251
|
const currentChecksums = new Map(files.map((file) => [file.relativePath, file.checksum]));
|
|
188
252
|
return {
|
|
253
|
+
discoveredFiles: inventory.discoveredFiles,
|
|
254
|
+
supportedBytes: inventoryMetrics.supportedBytes,
|
|
255
|
+
largestFileBytes: inventoryMetrics.largestFileBytes,
|
|
189
256
|
indexedFiles: [...counts.entries()]
|
|
190
257
|
.sort(([a], [b]) => a.localeCompare(b))
|
|
191
258
|
.map(([source, chunks]) => ({ source, chunks })),
|
|
@@ -208,6 +275,15 @@ export async function audit(cwd = process.cwd()) {
|
|
|
208
275
|
totalChunks: rows.length,
|
|
209
276
|
};
|
|
210
277
|
}
|
|
278
|
+
function sourceInventoryMetrics(files) {
|
|
279
|
+
let supportedBytes = 0;
|
|
280
|
+
let largestFileBytes = 0;
|
|
281
|
+
for (const file of files) {
|
|
282
|
+
supportedBytes += file.bytes;
|
|
283
|
+
largestFileBytes = Math.max(largestFileBytes, file.bytes);
|
|
284
|
+
}
|
|
285
|
+
return { supportedBytes, largestFileBytes };
|
|
286
|
+
}
|
|
211
287
|
function sourceDiagnostics(supportedFiles, skippedFiles) {
|
|
212
288
|
const relativePaths = [
|
|
213
289
|
...supportedFiles.map((file) => file.relativePath),
|
|
@@ -221,17 +297,10 @@ function sourceDiagnostics(supportedFiles, skippedFiles) {
|
|
|
221
297
|
}
|
|
222
298
|
function duplicateCandidates(files) {
|
|
223
299
|
const byChecksum = new Map();
|
|
224
|
-
const byLogicalName = new Map();
|
|
225
300
|
for (const file of files) {
|
|
226
301
|
appendGrouped(byChecksum, `sha256:${file.checksum.slice(0, 12)}`, file.relativePath);
|
|
227
|
-
const logicalName = normalizedLogicalName(file.relativePath);
|
|
228
|
-
if (logicalName.length >= 6) {
|
|
229
|
-
appendGrouped(byLogicalName, `name:${logicalName}`, file.relativePath);
|
|
230
|
-
}
|
|
231
302
|
}
|
|
232
|
-
|
|
233
|
-
const logical = groupedDuplicates(byLogicalName).filter((candidate) => !exact.some((exactCandidate) => candidate.files.every((file) => exactCandidate.files.includes(file))));
|
|
234
|
-
return [...exact, ...logical]
|
|
303
|
+
return groupedDuplicates(byChecksum)
|
|
235
304
|
.sort((a, b) => b.files.length - a.files.length || a.key.localeCompare(b.key))
|
|
236
305
|
.slice(0, MAX_SOURCE_DIAGNOSTIC_ITEMS);
|
|
237
306
|
}
|
|
@@ -252,9 +321,6 @@ function groupedDuplicates(groups) {
|
|
|
252
321
|
.filter(([, files]) => files.length > 1)
|
|
253
322
|
.map(([key, files]) => ({ key, files: [...new Set(files)].sort() }));
|
|
254
323
|
}
|
|
255
|
-
function normalizedLogicalName(relativePath) {
|
|
256
|
-
return normalizeForMatch(path.basename(relativePath, path.extname(relativePath))).replace(/[^a-z0-9]+/gu, "");
|
|
257
|
-
}
|
|
258
324
|
async function currentEmptyTextFiles(config, files) {
|
|
259
325
|
const currentChecksums = new Map(files.map((file) => [file.relativePath, file.checksum]));
|
|
260
326
|
const emptyTextFiles = new Set();
|
package/dist/ingest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest.js","sourceRoot":"","sources":["../src/ingest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ingest.js","sourceRoot":"","sources":["../src/ingest.ts"],"names":[],"mappings":"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"}
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAOA,wBAAsB,WAAW,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8CxE"}
|
package/dist/init.js
CHANGED
|
@@ -1,27 +1,39 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
-
import {
|
|
2
|
+
import { writeFile } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { CONFIG_PATH, DEFAULT_CONFIG, LEGACY_CONFIG_PATH, RAGMIR_DIR } from "./defaults.js";
|
|
5
5
|
import { ensureRagmirGitignore } from "./gitignore.js";
|
|
6
|
+
import { ensurePrivateDirectory, hardenPrivateFile } from "./permissions.js";
|
|
6
7
|
export async function initProject(cwd = process.cwd()) {
|
|
7
8
|
const root = path.resolve(cwd);
|
|
8
9
|
const ragmirDir = path.join(root, RAGMIR_DIR);
|
|
9
10
|
const rawDir = path.join(root, DEFAULT_CONFIG.rawDir);
|
|
10
11
|
const created = [];
|
|
11
|
-
await
|
|
12
|
+
await ensurePrivateDirectory(ragmirDir);
|
|
13
|
+
if (existsSync(rawDir)) {
|
|
14
|
+
await ensurePrivateDirectory(rawDir);
|
|
15
|
+
}
|
|
12
16
|
const configPath = path.join(root, CONFIG_PATH);
|
|
13
17
|
const legacyConfigPath = path.join(root, LEGACY_CONFIG_PATH);
|
|
14
18
|
const hasConfig = existsSync(configPath);
|
|
15
19
|
const hasLegacyConfig = existsSync(legacyConfigPath);
|
|
20
|
+
if (hasConfig) {
|
|
21
|
+
await hardenPrivateFile(configPath);
|
|
22
|
+
}
|
|
23
|
+
if (hasLegacyConfig) {
|
|
24
|
+
await hardenPrivateFile(legacyConfigPath);
|
|
25
|
+
}
|
|
16
26
|
if (!hasConfig && !hasLegacyConfig) {
|
|
17
|
-
await
|
|
27
|
+
await ensurePrivateDirectory(rawDir);
|
|
18
28
|
await writeFile(configPath, `${JSON.stringify(DEFAULT_CONFIG, null, 2)}\n`, "utf8");
|
|
29
|
+
await hardenPrivateFile(configPath);
|
|
19
30
|
created.push(path.relative(root, configPath));
|
|
20
31
|
}
|
|
21
32
|
if (!hasConfig && !hasLegacyConfig) {
|
|
22
33
|
const readmePath = path.join(rawDir, "README.md");
|
|
23
34
|
if (!existsSync(readmePath)) {
|
|
24
35
|
await writeFile(readmePath, "# Ragmir raw documents\n\nPut local documents to ingest here. Keep this folder ignored by Git.\n", "utf8");
|
|
36
|
+
await hardenPrivateFile(readmePath);
|
|
25
37
|
created.push(path.relative(root, readmePath));
|
|
26
38
|
}
|
|
27
39
|
}
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAE5E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IACrD,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACpD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IAC3C,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACnF,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAA;QACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QACjD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,CACb,UAAU,EACV,kGAAkG,EAClG,MAAM,CACP,CAAA;YACD,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAA;YACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
package/dist/limits.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Config, IngestionLimitsReport } from "./types.js";
|
|
2
|
+
export declare const MAX_OFFICE_XML_ENTRY_BYTES = 25000000;
|
|
3
|
+
export declare const MAX_OFFICE_TEXT_ENTRY_COUNT = 512;
|
|
4
|
+
export declare const MAX_OFFICE_XML_TOTAL_BYTES = 50000000;
|
|
5
|
+
export declare const MAX_EXTERNAL_TEXT_STDIO_BYTES = 25000000;
|
|
6
|
+
export declare const MAX_PDF_PAGES = 1000;
|
|
7
|
+
export declare const MAX_PDF_TEXT_CHARACTERS = 25000000;
|
|
8
|
+
export declare function ingestionLimits(config: Pick<Config, "maxFileBytes">): IngestionLimitsReport;
|
|
9
|
+
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAE/D,eAAO,MAAM,0BAA0B,WAAa,CAAA;AACpD,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAC9C,eAAO,MAAM,0BAA0B,WAAa,CAAA;AACpD,eAAO,MAAM,6BAA6B,WAAa,CAAA;AACvD,eAAO,MAAM,aAAa,OAAQ,CAAA;AAClC,eAAO,MAAM,uBAAuB,WAAa,CAAA;AAEjD,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,qBAAqB,CAiB3F"}
|
package/dist/limits.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const MAX_OFFICE_XML_ENTRY_BYTES = 25_000_000;
|
|
2
|
+
export const MAX_OFFICE_TEXT_ENTRY_COUNT = 512;
|
|
3
|
+
export const MAX_OFFICE_XML_TOTAL_BYTES = 50_000_000;
|
|
4
|
+
export const MAX_EXTERNAL_TEXT_STDIO_BYTES = 25_000_000;
|
|
5
|
+
export const MAX_PDF_PAGES = 1_000;
|
|
6
|
+
export const MAX_PDF_TEXT_CHARACTERS = 25_000_000;
|
|
7
|
+
export function ingestionLimits(config) {
|
|
8
|
+
return {
|
|
9
|
+
maxFileBytes: config.maxFileBytes,
|
|
10
|
+
maxFiles: null,
|
|
11
|
+
maxCorpusBytes: null,
|
|
12
|
+
maxPdfPages: MAX_PDF_PAGES,
|
|
13
|
+
maxPdfTextCharacters: MAX_PDF_TEXT_CHARACTERS,
|
|
14
|
+
maxOfficeTextEntries: MAX_OFFICE_TEXT_ENTRY_COUNT,
|
|
15
|
+
maxOfficeEntryBytes: MAX_OFFICE_XML_ENTRY_BYTES,
|
|
16
|
+
maxOfficeTotalTextBytes: MAX_OFFICE_XML_TOTAL_BYTES,
|
|
17
|
+
maxExternalTextOutputBytes: MAX_EXTERNAL_TEXT_STDIO_BYTES,
|
|
18
|
+
notes: [
|
|
19
|
+
"Ragmir has no hard file-count or total-corpus-size limit; available disk, memory, embedding throughput, and exact-search latency are the practical constraints.",
|
|
20
|
+
"Files larger than maxFileBytes are skipped before parsing and reported by ingest, audit, and doctor.",
|
|
21
|
+
"PDF, Office/archive, and external extractor limits are hard safety blocks and surface as ingestion errors.",
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAA;AACpD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAA;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAA;AACpD,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAA;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAA;AAClC,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAA;AAEjD,MAAM,UAAU,eAAe,CAAC,MAAoC;IAClE,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,aAAa;QAC1B,oBAAoB,EAAE,uBAAuB;QAC7C,oBAAoB,EAAE,2BAA2B;QACjD,mBAAmB,EAAE,0BAA0B;QAC/C,uBAAuB,EAAE,0BAA0B;QACnD,0BAA0B,EAAE,6BAA6B;QACzD,KAAK,EAAE;YACL,iKAAiK;YACjK,sGAAsG;YACtG,4GAA4G;SAC7G;KACF,CAAA;AACH,CAAC"}
|
package/dist/mcp.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export declare function serveMcp(cwd?: string): Promise<void>;
|
|
2
2
|
export declare function resolveMcpProjectRoot(env?: NodeJS.ProcessEnv, fallback?: string): string;
|
|
3
|
-
export declare function searchOptions(cwd: string, topK: number | undefined): Promise<{
|
|
3
|
+
export declare function searchOptions(cwd: string, topK: number | undefined, contextRadius?: number | undefined, includePaths?: string[] | undefined, excludePaths?: string[] | undefined): Promise<{
|
|
4
4
|
cwd: string;
|
|
5
5
|
topK?: number;
|
|
6
|
+
contextRadius?: number;
|
|
7
|
+
includePaths?: string[];
|
|
8
|
+
excludePaths?: string[];
|
|
6
9
|
}>;
|
|
7
10
|
export declare function projectRelativeGoldenPath(cwd: string, goldenPath: string): string;
|
|
8
11
|
//# sourceMappingURL=mcp.d.ts.map
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAqDA,wBAAsB,QAAQ,CAAC,GAAG,SAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAmN3E;AAED,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,SAAgB,GACvB,MAAM,CAYR;AAaD,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EACnC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,GAClC,OAAO,CAAC;IACT,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB,CAAC,CAmBD;AAmBD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAQjF"}
|
package/dist/mcp.js
CHANGED
|
@@ -8,6 +8,7 @@ import { findProjectConfig, loadConfig } from "./config.js";
|
|
|
8
8
|
import { RAGMIR_PROJECT_ROOT_ENV } from "./defaults.js";
|
|
9
9
|
import { evaluateGoldenQueries } from "./evaluate.js";
|
|
10
10
|
import { audit } from "./ingest.js";
|
|
11
|
+
import { ingestionLimits } from "./limits.js";
|
|
11
12
|
import { routePrompt } from "./prompt-routing.js";
|
|
12
13
|
import { ask, search } from "./query.js";
|
|
13
14
|
import { compactResearchReport, compactSearchResults, research } from "./research.js";
|
|
@@ -17,12 +18,19 @@ import { VERSION } from "./version.js";
|
|
|
17
18
|
const queryToolInputSchema = z.object({
|
|
18
19
|
query: z.string().min(1),
|
|
19
20
|
topK: z.number().int().positive().optional(),
|
|
21
|
+
contextRadius: z.number().int().min(0).optional(),
|
|
22
|
+
includePaths: z.array(z.string().min(1).max(500)).max(20).optional(),
|
|
23
|
+
excludePaths: z.array(z.string().min(1).max(500)).max(20).optional(),
|
|
20
24
|
});
|
|
21
|
-
const
|
|
25
|
+
const researchToolInputSchema = z.object({
|
|
26
|
+
query: z.string().min(1),
|
|
27
|
+
topK: z.number().int().positive().optional(),
|
|
28
|
+
includeCode: z.boolean().optional(),
|
|
22
29
|
compact: z.boolean().optional(),
|
|
30
|
+
includePaths: z.array(z.string().min(1).max(500)).max(20).optional(),
|
|
31
|
+
excludePaths: z.array(z.string().min(1).max(500)).max(20).optional(),
|
|
23
32
|
});
|
|
24
|
-
const
|
|
25
|
-
includeCode: z.boolean().optional(),
|
|
33
|
+
const searchToolInputSchema = queryToolInputSchema.extend({
|
|
26
34
|
compact: z.boolean().optional(),
|
|
27
35
|
});
|
|
28
36
|
const evaluateToolInputSchema = z.object({
|
|
@@ -48,14 +56,24 @@ export async function serveMcp(cwd = resolveMcpProjectRoot()) {
|
|
|
48
56
|
}, async () => {
|
|
49
57
|
const config = await loadConfig(cwd);
|
|
50
58
|
const chunksIndexed = await countRows(config);
|
|
59
|
+
const strict = config.privacyProfile === "strict";
|
|
51
60
|
const output = {
|
|
52
|
-
projectRoot: config.projectRoot,
|
|
53
|
-
rawDir: config.rawDir,
|
|
54
|
-
storageDir:
|
|
55
|
-
|
|
61
|
+
projectRoot: strict ? "." : config.projectRoot,
|
|
62
|
+
rawDir: strict ? path.relative(config.projectRoot, config.rawDir) : config.rawDir,
|
|
63
|
+
storageDir: strict
|
|
64
|
+
? path.relative(config.projectRoot, config.storageDir)
|
|
65
|
+
: config.storageDir,
|
|
66
|
+
sourcesFile: strict
|
|
67
|
+
? path.relative(config.projectRoot, config.sourcesFile)
|
|
68
|
+
: config.sourcesFile,
|
|
69
|
+
privacyProfile: config.privacyProfile,
|
|
70
|
+
retrievalProfile: config.retrievalProfile,
|
|
56
71
|
embeddingProvider: config.embeddingProvider,
|
|
57
72
|
embeddingModel: config.embeddingModel,
|
|
58
|
-
|
|
73
|
+
embeddingModelRevision: config.embeddingModelRevision,
|
|
74
|
+
embeddingModelPath: strict
|
|
75
|
+
? path.relative(config.projectRoot, config.embeddingModelPath)
|
|
76
|
+
: config.embeddingModelPath,
|
|
59
77
|
transformersAllowRemoteModels: config.transformersAllowRemoteModels,
|
|
60
78
|
llmGeneration: false,
|
|
61
79
|
redactionEnabled: config.redaction.enabled,
|
|
@@ -70,6 +88,7 @@ export async function serveMcp(cwd = resolveMcpProjectRoot()) {
|
|
|
70
88
|
imageOcrTimeoutMs: config.imageOcrTimeoutMs,
|
|
71
89
|
legacyWordCommand: config.legacyWordCommand,
|
|
72
90
|
legacyWordTimeoutMs: config.legacyWordTimeoutMs,
|
|
91
|
+
ingestionLimits: ingestionLimits(config),
|
|
73
92
|
chunksIndexed,
|
|
74
93
|
};
|
|
75
94
|
return textResult(output);
|
|
@@ -83,26 +102,43 @@ export async function serveMcp(cwd = resolveMcpProjectRoot()) {
|
|
|
83
102
|
title: "Ragmir Search",
|
|
84
103
|
description: "Retrieve relevant passages from the local Ragmir knowledge base.",
|
|
85
104
|
inputSchema: searchToolInputSchema,
|
|
86
|
-
}, async ({ query, topK, compact }) => {
|
|
87
|
-
const
|
|
88
|
-
|
|
105
|
+
}, async ({ query, topK, contextRadius, compact, includePaths, excludePaths }) => {
|
|
106
|
+
const config = await loadConfig(cwd);
|
|
107
|
+
const results = await search(query, await searchOptions(cwd, topK, contextRadius, includePaths, excludePaths));
|
|
108
|
+
const compactOutput = compact ?? config.privacyProfile === "strict";
|
|
109
|
+
return textResult(compactOutput ? compactSearchResults(results) : results);
|
|
89
110
|
});
|
|
90
111
|
server.registerTool("ragmir_ask", {
|
|
91
112
|
title: "Ragmir Ask",
|
|
92
113
|
description: "Return cited retrieval context for a question without calling an LLM.",
|
|
93
114
|
inputSchema: queryToolInputSchema,
|
|
94
|
-
}, async ({ query, topK }) =>
|
|
115
|
+
}, async ({ query, topK, contextRadius, includePaths, excludePaths }) => {
|
|
116
|
+
const config = await loadConfig(cwd);
|
|
117
|
+
const options = await searchOptions(cwd, topK, contextRadius, includePaths, excludePaths);
|
|
118
|
+
if (config.privacyProfile === "strict") {
|
|
119
|
+
const results = await search(query, options);
|
|
120
|
+
return textResult({
|
|
121
|
+
answer: "Strict privacy profile returns compact cited retrieval only.",
|
|
122
|
+
sources: compactSearchResults(results),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return textResult(await ask(query, options));
|
|
126
|
+
});
|
|
95
127
|
server.registerTool("ragmir_research", {
|
|
96
128
|
title: "Ragmir Research",
|
|
97
129
|
description: "Run an audit-backed multi-query research pass with cited evidence and optional code matches.",
|
|
98
130
|
inputSchema: researchToolInputSchema,
|
|
99
|
-
}, async ({ query, topK, includeCode, compact }) => {
|
|
100
|
-
const
|
|
131
|
+
}, async ({ query, topK, includeCode, compact, includePaths, excludePaths }) => {
|
|
132
|
+
const config = await loadConfig(cwd);
|
|
133
|
+
const options = await searchOptions(cwd, topK, undefined, includePaths, excludePaths);
|
|
101
134
|
const researchOptions = { cwd };
|
|
102
135
|
addOption(researchOptions, "topK", options.topK);
|
|
103
136
|
addOption(researchOptions, "includeCode", includeCode);
|
|
137
|
+
addOption(researchOptions, "includePaths", options.includePaths);
|
|
138
|
+
addOption(researchOptions, "excludePaths", options.excludePaths);
|
|
104
139
|
const result = await research(query, researchOptions);
|
|
105
|
-
|
|
140
|
+
const compactOutput = compact ?? config.privacyProfile === "strict";
|
|
141
|
+
return textResult(compactOutput ? compactResearchReport(result) : result);
|
|
106
142
|
});
|
|
107
143
|
server.registerTool("ragmir_audit", {
|
|
108
144
|
title: "Ragmir Audit",
|
|
@@ -129,7 +165,29 @@ export async function serveMcp(cwd = resolveMcpProjectRoot()) {
|
|
|
129
165
|
title: "Ragmir Security Audit",
|
|
130
166
|
description: "Show local privacy, provider, redaction, MCP, and gitignore posture.",
|
|
131
167
|
inputSchema: z.object({}),
|
|
132
|
-
}, async () =>
|
|
168
|
+
}, async () => {
|
|
169
|
+
const config = await loadConfig(cwd);
|
|
170
|
+
const report = await securityAudit(cwd);
|
|
171
|
+
if (config.privacyProfile !== "strict") {
|
|
172
|
+
return textResult(report);
|
|
173
|
+
}
|
|
174
|
+
return textResult({
|
|
175
|
+
...report,
|
|
176
|
+
projectRoot: ".",
|
|
177
|
+
providers: {
|
|
178
|
+
...report.providers,
|
|
179
|
+
embeddingModelPath: path.relative(config.projectRoot, report.providers.embeddingModelPath),
|
|
180
|
+
},
|
|
181
|
+
accessLog: {
|
|
182
|
+
...report.accessLog,
|
|
183
|
+
path: path.relative(config.projectRoot, report.accessLog.path),
|
|
184
|
+
},
|
|
185
|
+
storage: {
|
|
186
|
+
...report.storage,
|
|
187
|
+
path: path.relative(config.projectRoot, report.storage.path),
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
});
|
|
133
191
|
server.registerTool("ragmir_usage_report", {
|
|
134
192
|
title: "Ragmir Usage Report",
|
|
135
193
|
description: "Summarize the metadata-only local access log.",
|
|
@@ -164,10 +222,18 @@ function textResult(value) {
|
|
|
164
222
|
],
|
|
165
223
|
};
|
|
166
224
|
}
|
|
167
|
-
export async function searchOptions(cwd, topK) {
|
|
225
|
+
export async function searchOptions(cwd, topK, contextRadius, includePaths, excludePaths) {
|
|
168
226
|
const config = await loadConfig(cwd);
|
|
169
227
|
const boundedTopK = Math.min(topK ?? config.topK, config.mcpMaxTopK);
|
|
170
|
-
|
|
228
|
+
const boundedContextRadius = contextRadius === undefined ? undefined : Math.min(Math.max(0, contextRadius), 3);
|
|
229
|
+
const result = {
|
|
230
|
+
cwd,
|
|
231
|
+
topK: boundedTopK,
|
|
232
|
+
};
|
|
233
|
+
addOption(result, "contextRadius", boundedContextRadius);
|
|
234
|
+
addOption(result, "includePaths", includePaths);
|
|
235
|
+
addOption(result, "excludePaths", excludePaths);
|
|
236
|
+
return result;
|
|
171
237
|
}
|
|
172
238
|
async function evaluationOptions(cwd, goldenPath, topK) {
|
|
173
239
|
const config = await loadConfig(cwd);
|