mcp-local-rag 0.15.4 → 0.16.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 +3 -0
- package/dist/cli/list.d.ts +7 -0
- package/dist/cli/list.d.ts.map +1 -1
- package/dist/cli/list.js +39 -16
- package/dist/cli/list.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +31 -15
- package/dist/server/index.js.map +1 -1
- package/dist/server/list-scanner.d.ts +6 -1
- package/dist/server/list-scanner.d.ts.map +1 -1
- package/dist/server/list-scanner.js +21 -4
- package/dist/server/list-scanner.js.map +1 -1
- package/dist/server/tool-definitions.d.ts.map +1 -1
- package/dist/server/tool-definitions.js +10 -2
- package/dist/server/tool-definitions.js.map +1 -1
- package/dist/server/tool-input.d.ts +7 -1
- package/dist/server/tool-input.d.ts.map +1 -1
- package/dist/server/tool-input.js +17 -0
- package/dist/server/tool-input.js.map +1 -1
- package/dist/server/types.d.ts +7 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/utils/list-sources.d.ts +47 -0
- package/dist/utils/list-sources.d.ts.map +1 -0
- package/dist/utils/list-sources.js +49 -0
- package/dist/utils/list-sources.js.map +1 -0
- package/dist/utils/scan.d.ts +7 -1
- package/dist/utils/scan.d.ts.map +1 -1
- package/dist/utils/scan.js +21 -4
- package/dist/utils/scan.js.map +1 -1
- package/dist/utils/scope-match.d.ts +37 -0
- package/dist/utils/scope-match.d.ts.map +1 -0
- package/dist/utils/scope-match.js +82 -0
- package/dist/utils/scope-match.js.map +1 -0
- package/package.json +1 -1
- package/skills/mcp-local-rag/SKILL.md +1 -1
- package/skills/mcp-local-rag/references/cli-reference.md +2 -1
package/README.md
CHANGED
|
@@ -213,6 +213,8 @@ Pass the `filePath` and `chunkIndex` from the search result. The response includ
|
|
|
213
213
|
"Show RAG server status" # Check system health
|
|
214
214
|
```
|
|
215
215
|
|
|
216
|
+
Narrow the listing with `scope` on `list_files` — one path prefix or a list of them. Results are restricted to files reachable at a path equal to or under a prefix (exact-or-descendant); for example, `"/docs/api"` matches `/docs/api` and `/docs/api/auth.md` but not `/docs/apiv2`. Raw-data sources (from `ingest_data`) stay listed regardless of scope. On large volumes, scope also speeds up the listing by skipping out-of-scope directories during the scan.
|
|
217
|
+
|
|
216
218
|
### Using as CLI
|
|
217
219
|
|
|
218
220
|
All MCP tools are also available as CLI commands — no MCP server needed:
|
|
@@ -223,6 +225,7 @@ npx mcp-local-rag query "authentication API" # Search documents
|
|
|
223
225
|
npx mcp-local-rag query "auth" --scope /docs/api --scope /docs/guide # Restrict to path prefixes (repeatable)
|
|
224
226
|
npx mcp-local-rag read-neighbors --file-path /abs/path.md --chunk-index 5 # Expand context
|
|
225
227
|
npx mcp-local-rag list # Show ingestion status
|
|
228
|
+
npx mcp-local-rag list --scope /docs/api --scope /docs/guide # Restrict listing to path prefixes (repeatable)
|
|
226
229
|
npx mcp-local-rag status # Database stats
|
|
227
230
|
npx mcp-local-rag delete ./docs/old.pdf # Remove content
|
|
228
231
|
npx mcp-local-rag delete --source "https://..." # Remove by source URL
|
package/dist/cli/list.d.ts
CHANGED
|
@@ -6,6 +6,13 @@ interface ListCliOptions {
|
|
|
6
6
|
* provided.
|
|
7
7
|
*/
|
|
8
8
|
baseDirs?: string[] | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Collected `--scope` path prefixes in CLI order. Repeatable: multiple flags
|
|
11
|
+
* union. Each value is trimmed and validated non-empty at parse time.
|
|
12
|
+
* `undefined` means no scope (list every file); trailing-separator
|
|
13
|
+
* equivalence is applied downstream by `scope-match.ts`.
|
|
14
|
+
*/
|
|
15
|
+
scope?: string[] | undefined;
|
|
9
16
|
}
|
|
10
17
|
interface ParsedArgs {
|
|
11
18
|
options: ListCliOptions;
|
package/dist/cli/list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AA4DjD,UAAU,cAAc;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC/B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CAC7B;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,OAAO,CAAA;CACd;AA+DD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAsDpD;AAMD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJ9F"}
|
package/dist/cli/list.js
CHANGED
|
@@ -2,18 +2,21 @@
|
|
|
2
2
|
import { resolve, sep } from 'node:path';
|
|
3
3
|
import { displayPath } from '../utils/base-dirs.js';
|
|
4
4
|
import { MAX_SCAN_DEPTH } from '../utils/limits.js';
|
|
5
|
-
import {
|
|
5
|
+
import { classifyIngestedSources } from '../utils/list-sources.js';
|
|
6
6
|
import { bfsCollectSupportedFiles, realpathForMatch } from '../utils/scan.js';
|
|
7
|
+
import { nonAbsolutePrefixes } from '../utils/scope-match.js';
|
|
7
8
|
import { createVectorStore, formatCliError, resolveCliBaseDirsOrExit } from './common.js';
|
|
8
|
-
import { consumeBaseDirArg, resolveGlobalConfig, validatePath } from './options.js';
|
|
9
|
+
import { consumeBaseDirArg, requireFlagValue, resolveGlobalConfig, validatePath, } from './options.js';
|
|
9
10
|
/**
|
|
10
11
|
* Bounded BFS scan of a single root, up to `MAX_SCAN_DEPTH` levels deep.
|
|
11
12
|
* Delegates the traversal to {@link bfsCollectSupportedFiles} and renders the
|
|
12
13
|
* `list`-specific warnings: per-directory read failures and the depth-limit
|
|
13
14
|
* warning, both annotated with `displayPath`.
|
|
14
15
|
*/
|
|
15
|
-
async function scanRoot(root, excludePaths) {
|
|
16
|
-
|
|
16
|
+
async function scanRoot(root, excludePaths, scope) {
|
|
17
|
+
// `scope` threads into the walker as the 4th positional arg (after `maxDepth`);
|
|
18
|
+
// pass `undefined` for `maxDepth` to keep the default bound.
|
|
19
|
+
const { files, unreadableDirs, depthLimited } = await bfsCollectSupportedFiles(root, excludePaths, undefined, scope);
|
|
17
20
|
const warnings = [];
|
|
18
21
|
for (const { dirPath, code } of unreadableDirs) {
|
|
19
22
|
warnings.push(`cannot read directory: ${displayPath(dirPath)} (${code})`);
|
|
@@ -32,6 +35,7 @@ List files and their ingestion status.
|
|
|
32
35
|
|
|
33
36
|
Options:
|
|
34
37
|
--base-dir <path> Base directory to scan for files (repeatable: pass once per root; default: BASE_DIRS/BASE_DIR env or cwd)
|
|
38
|
+
--scope <prefix> Restrict results to a path prefix (must be absolute; a relative prefix matches nothing; repeatable for multiple prefixes)
|
|
35
39
|
-h, --help Show this help
|
|
36
40
|
|
|
37
41
|
Global options (must appear before "list"):
|
|
@@ -71,6 +75,22 @@ export function parseArgs(args) {
|
|
|
71
75
|
i = valueIndex + 1;
|
|
72
76
|
break;
|
|
73
77
|
}
|
|
78
|
+
case '--scope': {
|
|
79
|
+
// Repeatable prefix filter (mirrors `query --scope`). Trim and reject
|
|
80
|
+
// empty/whitespace locally — the same non-empty check `normalizeScope`
|
|
81
|
+
// applies at the MCP boundary, kept module-private there. Trailing-
|
|
82
|
+
// separator equivalence is handled downstream in `scope-match.ts`.
|
|
83
|
+
const value = requireFlagValue(args, i, '--scope').trim();
|
|
84
|
+
if (value.length === 0) {
|
|
85
|
+
console.error('--scope value must not be empty');
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
const scope = options.scope ?? [];
|
|
89
|
+
scope.push(value);
|
|
90
|
+
options.scope = scope;
|
|
91
|
+
i += 2;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
74
94
|
default:
|
|
75
95
|
if (arg.startsWith('-')) {
|
|
76
96
|
console.error(`Unknown option: ${arg}`);
|
|
@@ -123,6 +143,15 @@ export async function runList(args, globalOptions = {}) {
|
|
|
123
143
|
for (const warning of baseDirsWarnings) {
|
|
124
144
|
console.error(warning.message);
|
|
125
145
|
}
|
|
146
|
+
// A non-absolute `--scope` prefix matches nothing (scan matching is
|
|
147
|
+
// absolute-path based) but silently yields an empty result for that prefix.
|
|
148
|
+
// Surface it as a non-fatal stderr warning without changing result semantics
|
|
149
|
+
// or the exit code — relative is unhelpful, not an error.
|
|
150
|
+
if (options.scope) {
|
|
151
|
+
for (const prefix of nonAbsolutePrefixes(options.scope)) {
|
|
152
|
+
console.error(`Warning [scope]: "${prefix}" is not an absolute path; it matches nothing.`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
126
155
|
// Scan/display the normal-path roots (`rawBaseDirs`) so scanned paths match
|
|
127
156
|
// the resolve()-stored DB keys; the realpath'd `baseDirs` are the security
|
|
128
157
|
// boundary, not used here. `rawBaseDirs[0]` is the legacy `baseDir` field.
|
|
@@ -160,7 +189,7 @@ export async function runList(args, globalOptions = {}) {
|
|
|
160
189
|
const keyToRoot = new Map();
|
|
161
190
|
const keyToScanned = new Map();
|
|
162
191
|
for (const root of rawBaseDirs) {
|
|
163
|
-
const { files: perRoot, warnings: rootWarnings } = await scanRoot(root, excludePaths);
|
|
192
|
+
const { files: perRoot, warnings: rootWarnings } = await scanRoot(root, excludePaths, options.scope);
|
|
164
193
|
for (const warning of rootWarnings) {
|
|
165
194
|
console.error(`Warning [${root}]: ${warning}`);
|
|
166
195
|
}
|
|
@@ -191,17 +220,11 @@ export async function runList(args, globalOptions = {}) {
|
|
|
191
220
|
});
|
|
192
221
|
files.sort((a, b) => (a.filePath < b.filePath ? -1 : a.filePath > b.filePath ? 1 : 0));
|
|
193
222
|
// Content ingested via ingest_data plus orphaned DB entries: ingested
|
|
194
|
-
// entries whose identity key matched no scanned file.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
const source = extractSourceFromPath(f.filePath);
|
|
200
|
-
if (source)
|
|
201
|
-
return { source, chunkCount: f.chunkCount, timestamp: f.timestamp };
|
|
202
|
-
}
|
|
203
|
-
return { filePath: f.filePath, chunkCount: f.chunkCount, timestamp: f.timestamp };
|
|
204
|
-
});
|
|
223
|
+
// entries whose identity key matched no scanned file. With `scope` present,
|
|
224
|
+
// raw-data sources are always kept while real-file entries are scope-filtered
|
|
225
|
+
// (see `classifyIngestedSources`); scope-absent behavior is unchanged. The
|
|
226
|
+
// same helper backs the MCP `list_files` surface, so both stay identical.
|
|
227
|
+
const sources = classifyIngestedSources(ingestedKeyed, matchedKeys, options.scope);
|
|
205
228
|
const result = {
|
|
206
229
|
baseDirs: [...rawBaseDirs],
|
|
207
230
|
baseDir,
|
package/dist/cli/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type RagContentBlock } from './error-utils.js';
|
|
2
|
-
import type { DeleteFileInput, IngestDataInput, IngestFileInput, QueryDocumentsInput, RAGServerConfig, ReadChunkNeighborsInput } from './types.js';
|
|
2
|
+
import type { DeleteFileInput, IngestDataInput, IngestFileInput, ListFilesInput, QueryDocumentsInput, RAGServerConfig, ReadChunkNeighborsInput } from './types.js';
|
|
3
3
|
/** RAG server compliant with MCP Protocol */
|
|
4
4
|
export declare class RAGServer {
|
|
5
5
|
private readonly server;
|
|
@@ -112,7 +112,7 @@ export declare class RAGServer {
|
|
|
112
112
|
* producing-root annotation.
|
|
113
113
|
* - Excludes `dbPath` and `cacheDir` uniformly across every root.
|
|
114
114
|
*/
|
|
115
|
-
handleListFiles(): Promise<{
|
|
115
|
+
handleListFiles(input?: ListFilesInput): Promise<{
|
|
116
116
|
content: RagContentBlock[];
|
|
117
117
|
}>;
|
|
118
118
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAuCA,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAA;AAQzB,OAAO,KAAK,EACV,eAAe,EAGf,eAAe,EACf,eAAe,EAEf,cAAc,EAEd,mBAAmB,EAEnB,eAAe,EACf,uBAAuB,EAGxB,MAAM,YAAY,CAAA;AAuBnB,6CAA6C;AAC7C,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,MAAM,EAAE,eAAe;IAqEnC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,cAAc;IAMtB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAqDrB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;OAEG;IACG,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAqD9F;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAyLtF;;;;;;;;OAQG;IACG,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IA2EtF;;;;;;;;;;;;;;;;;;OAkBG;IACG,eAAe,CAAC,KAAK,GAAE,cAAmB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAoG1F;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAyB7D;;;;OAIG;IACG,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAwFtF;;;;;OAKG;IACG,wBAAwB,CAC5B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC;QAAE,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IA2F1C;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
|
package/dist/server/index.js
CHANGED
|
@@ -11,14 +11,16 @@ import { prepareVisualPdfChunks } from '../ingest/visual.js';
|
|
|
11
11
|
import { parseHtml } from '../parser/html-parser.js';
|
|
12
12
|
import { DocumentParser } from '../parser/index.js';
|
|
13
13
|
import { extractMarkdownTitle, extractTxtTitle } from '../parser/title-extractor.js';
|
|
14
|
+
import { classifyIngestedSources } from '../utils/list-sources.js';
|
|
14
15
|
import { checkRawDataArtifacts, extractSourceFromPath, generateMetaJsonPath, generateRawDataPath, isEnoent, isPathInRawDataDir, isPathInRawDataDirLexical, loadMetaJson, looksLikeRawDataPath, saveMetaJson, saveRawData, } from '../utils/raw-data-utils.js';
|
|
15
16
|
import { realpathForMatch } from '../utils/scan.js';
|
|
17
|
+
import { nonAbsolutePrefixes } from '../utils/scope-match.js';
|
|
16
18
|
import { VectorStore } from '../vectordb/index.js';
|
|
17
19
|
import { DatabaseError } from '../vectordb/types.js';
|
|
18
20
|
import { appendConfigWarnings, buildConfigErrorBlock, logError, toMcpError, } from './error-utils.js';
|
|
19
21
|
import { normalizeBaseDirs, scanBaseDir } from './list-scanner.js';
|
|
20
22
|
import { toolDefinitions } from './tool-definitions.js';
|
|
21
|
-
import { parseIngestDataInput, parseQueryDocumentsInput } from './tool-input.js';
|
|
23
|
+
import { parseIngestDataInput, parseListFilesInput, parseQueryDocumentsInput, } from './tool-input.js';
|
|
22
24
|
/**
|
|
23
25
|
* Per-tool client-message policy consumed by the central dispatcher mapper
|
|
24
26
|
* (`toMcpError(error, context)`). The `prefix`, when present, is prepended to
|
|
@@ -197,7 +199,7 @@ export class RAGServer {
|
|
|
197
199
|
case 'read_chunk_neighbors':
|
|
198
200
|
return await this.handleReadChunkNeighbors(request.params.arguments);
|
|
199
201
|
case 'list_files':
|
|
200
|
-
return await this.handleListFiles();
|
|
202
|
+
return await this.handleListFiles(parseListFilesInput(request.params.arguments));
|
|
201
203
|
case 'status':
|
|
202
204
|
return await this.handleStatus();
|
|
203
205
|
default:
|
|
@@ -506,11 +508,20 @@ export class RAGServer {
|
|
|
506
508
|
* producing-root annotation.
|
|
507
509
|
* - Excludes `dbPath` and `cacheDir` uniformly across every root.
|
|
508
510
|
*/
|
|
509
|
-
async handleListFiles() {
|
|
511
|
+
async handleListFiles(input = {}) {
|
|
510
512
|
// Root-dependent tool: fail fast on configError BEFORE any DB / FS access.
|
|
511
513
|
// `assertConfigOk` throws `BaseDirsConfigError` (mapped to InvalidParams by
|
|
512
514
|
// the central dispatcher); no local error-mapping catch here.
|
|
513
515
|
this.assertConfigOk();
|
|
516
|
+
// `input.scope` is parser-normalized to `string[]`, but the shared input
|
|
517
|
+
// type admits `string | string[]`; array-wrap once (mirrors query_documents)
|
|
518
|
+
// so scope threads uniformly into the walker and the sources classifier.
|
|
519
|
+
// Undefined scope leaves both the scan and the sources split unchanged.
|
|
520
|
+
const scope = input.scope === undefined
|
|
521
|
+
? undefined
|
|
522
|
+
: Array.isArray(input.scope)
|
|
523
|
+
? input.scope
|
|
524
|
+
: [input.scope];
|
|
514
525
|
// Get all ingested entries and index them by file IDENTITY (realpath), so
|
|
515
526
|
// a file ingested via a different spelling (symlinked prefix or alias)
|
|
516
527
|
// still matches the scan. Storage/display stay normal-path; realpath is
|
|
@@ -527,7 +538,7 @@ export class RAGServer {
|
|
|
527
538
|
const matchedKeys = new Set();
|
|
528
539
|
const scanWarnings = [];
|
|
529
540
|
for (const baseDir of this.rawBaseDirs) {
|
|
530
|
-
const { files: scanned, warnings: rootWarnings } = await scanBaseDir(baseDir, this.excludePaths);
|
|
541
|
+
const { files: scanned, warnings: rootWarnings } = await scanBaseDir(baseDir, this.excludePaths, scope);
|
|
531
542
|
for (const w of rootWarnings) {
|
|
532
543
|
scanWarnings.push(`[${baseDir}] ${w}`);
|
|
533
544
|
}
|
|
@@ -553,17 +564,10 @@ export class RAGServer {
|
|
|
553
564
|
}
|
|
554
565
|
}
|
|
555
566
|
// Content ingested via ingest_data plus orphaned DB entries: ingested
|
|
556
|
-
// entries whose identity key matched no scanned file.
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
if (looksLikeRawDataPath(f.filePath)) {
|
|
561
|
-
const source = extractSourceFromPath(f.filePath);
|
|
562
|
-
if (source)
|
|
563
|
-
return { source, chunkCount: f.chunkCount, timestamp: f.timestamp };
|
|
564
|
-
}
|
|
565
|
-
return { filePath: f.filePath, chunkCount: f.chunkCount, timestamp: f.timestamp };
|
|
566
|
-
});
|
|
567
|
+
// entries whose identity key matched no scanned file. With `scope` present,
|
|
568
|
+
// raw-data sources are always kept while real-file entries are scope-filtered
|
|
569
|
+
// (see `classifyIngestedSources`); scope-absent behavior is unchanged.
|
|
570
|
+
const sources = classifyIngestedSources(ingestedKeyed, matchedKeys, scope);
|
|
567
571
|
const result = {
|
|
568
572
|
baseDir: this.rawBaseDir,
|
|
569
573
|
baseDirs: [...this.rawBaseDirs],
|
|
@@ -579,6 +583,18 @@ export class RAGServer {
|
|
|
579
583
|
for (const w of scanWarnings) {
|
|
580
584
|
content.push({ type: 'text', text: `Warning: ${w}` });
|
|
581
585
|
}
|
|
586
|
+
// A non-absolute scope prefix matches nothing (the scan is absolute-path
|
|
587
|
+
// based) but yields no result-level signal, so surface it as a non-fatal
|
|
588
|
+
// warning block. Result semantics are unchanged — the prefix still matches
|
|
589
|
+
// nothing; this only makes the silent miss visible to the client.
|
|
590
|
+
if (scope !== undefined) {
|
|
591
|
+
for (const prefix of nonAbsolutePrefixes(scope)) {
|
|
592
|
+
content.push({
|
|
593
|
+
type: 'text',
|
|
594
|
+
text: `Warning: scope prefix "${prefix}" is not absolute; it matches nothing.`,
|
|
595
|
+
});
|
|
596
|
+
}
|
|
597
|
+
}
|
|
582
598
|
return { content: this.withWarnings(content) };
|
|
583
599
|
}
|
|
584
600
|
/**
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,13 @@ import type { RAGServerConfig } from './types.js';
|
|
|
13
13
|
* hide files under the other roots, so the multi-root contract makes this
|
|
14
14
|
* asymmetry user-visible, so the policy is now best-effort per root.
|
|
15
15
|
* - Symlinks are skipped (mirrors the CLI ingest walker).
|
|
16
|
+
* - When `scope` is provided (non-empty), the predicate is pushed into the
|
|
17
|
+
* traversal: a directory is visited only if it is in-scope or an ancestor of
|
|
18
|
+
* some scope prefix, and a file is collected only if it is in-scope. A
|
|
19
|
+
* baseDir intersecting no prefix is skipped without any `readdir`. An
|
|
20
|
+
* absent/empty `scope` leaves traversal and collection unchanged.
|
|
16
21
|
*/
|
|
17
|
-
export declare function scanBaseDir(baseDir: string, excludePaths: readonly string[]): Promise<{
|
|
22
|
+
export declare function scanBaseDir(baseDir: string, excludePaths: readonly string[], scope?: string[]): Promise<{
|
|
18
23
|
files: string[];
|
|
19
24
|
warnings: string[];
|
|
20
25
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-scanner.d.ts","sourceRoot":"","sources":["../../src/server/list-scanner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-scanner.d.ts","sourceRoot":"","sources":["../../src/server/list-scanner.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgElD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG;IAC1D,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB,CASA"}
|
|
@@ -7,6 +7,7 @@ import { extname, join } from 'node:path';
|
|
|
7
7
|
import { SUPPORTED_EXTENSIONS } from '../parser/index.js';
|
|
8
8
|
import { displayPath } from '../utils/base-dirs.js';
|
|
9
9
|
import { MAX_SCAN_DEPTH } from '../utils/limits.js';
|
|
10
|
+
import { isInScope, shouldVisitDir } from '../utils/scope-match.js';
|
|
10
11
|
/**
|
|
11
12
|
* Bounded BFS scan of a single base directory for supported files,
|
|
12
13
|
* excluding system-managed paths (dbPath, cacheDir). Returns sorted
|
|
@@ -21,12 +22,24 @@ import { MAX_SCAN_DEPTH } from '../utils/limits.js';
|
|
|
21
22
|
* hide files under the other roots, so the multi-root contract makes this
|
|
22
23
|
* asymmetry user-visible, so the policy is now best-effort per root.
|
|
23
24
|
* - Symlinks are skipped (mirrors the CLI ingest walker).
|
|
25
|
+
* - When `scope` is provided (non-empty), the predicate is pushed into the
|
|
26
|
+
* traversal: a directory is visited only if it is in-scope or an ancestor of
|
|
27
|
+
* some scope prefix, and a file is collected only if it is in-scope. A
|
|
28
|
+
* baseDir intersecting no prefix is skipped without any `readdir`. An
|
|
29
|
+
* absent/empty `scope` leaves traversal and collection unchanged.
|
|
24
30
|
*/
|
|
25
|
-
export async function scanBaseDir(baseDir, excludePaths) {
|
|
31
|
+
export async function scanBaseDir(baseDir, excludePaths, scope) {
|
|
26
32
|
const files = [];
|
|
27
33
|
const warnings = [];
|
|
28
34
|
let depthLimited = false;
|
|
29
|
-
|
|
35
|
+
// Scope pushdown (shared with bfsCollectSupportedFiles via scope-match): visit
|
|
36
|
+
// a directory only if it is in-scope or an ancestor of the scoped subtree, and
|
|
37
|
+
// collect a file only if it is in-scope. A baseDir intersecting no prefix is
|
|
38
|
+
// skipped without any `readdir`; absent scope leaves traversal/collection
|
|
39
|
+
// unchanged.
|
|
40
|
+
const queue = shouldVisitDir(baseDir, scope)
|
|
41
|
+
? [{ dirPath: baseDir, depth: 0 }]
|
|
42
|
+
: [];
|
|
30
43
|
while (queue.length > 0) {
|
|
31
44
|
const { dirPath, depth } = queue.shift();
|
|
32
45
|
if (depth >= MAX_SCAN_DEPTH) {
|
|
@@ -57,10 +70,14 @@ export async function scanBaseDir(baseDir, excludePaths) {
|
|
|
57
70
|
if (excludePaths.some((ep) => fullPath.startsWith(ep)))
|
|
58
71
|
continue;
|
|
59
72
|
if (entry.isDirectory()) {
|
|
60
|
-
|
|
73
|
+
if (shouldVisitDir(fullPath, scope)) {
|
|
74
|
+
queue.push({ dirPath: fullPath, depth: depth + 1 });
|
|
75
|
+
}
|
|
61
76
|
}
|
|
62
77
|
else if (entry.isFile() && SUPPORTED_EXTENSIONS.has(extname(entry.name).toLowerCase())) {
|
|
63
|
-
|
|
78
|
+
if (isInScope(fullPath, scope)) {
|
|
79
|
+
files.push(fullPath);
|
|
80
|
+
}
|
|
64
81
|
}
|
|
65
82
|
}
|
|
66
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-scanner.js","sourceRoot":"","sources":["../../src/server/list-scanner.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,8EAA8E;AAC9E,uEAAuE;AACvE,+DAA+D;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"list-scanner.js","sourceRoot":"","sources":["../../src/server/list-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-definitions.d.ts","sourceRoot":"","sources":["../../src/server/tool-definitions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAE9D;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"tool-definitions.d.ts","sourceRoot":"","sources":["../../src/server/tool-definitions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAE9D;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,IAAI,EAkKjC,CAAA"}
|
|
@@ -101,8 +101,16 @@ export const toolDefinitions = [
|
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
name: 'list_files',
|
|
104
|
-
description: 'List supported files (PDF, DOCX, TXT, MD) under the configured base directories and whether each is ingested. Returns { baseDirs, files, sources }; sources
|
|
105
|
-
inputSchema: {
|
|
104
|
+
description: 'List supported files (PDF, DOCX, TXT, MD) under the configured base directories and whether each is ingested. Returns { baseDirs, files, sources }; sources lists ingested items reported apart from the file scan, chiefly ingest_data content (web pages, clipboard, etc.).',
|
|
105
|
+
inputSchema: {
|
|
106
|
+
type: 'object',
|
|
107
|
+
properties: {
|
|
108
|
+
scope: {
|
|
109
|
+
oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }],
|
|
110
|
+
description: 'Optional absolute path prefix(es) — one string or a list (unioned) — restricting the listing to files reachable at a path equal to or under a prefix within the base directories. "/docs/api" matches "/docs/api/x.md" but not "/docs/apiv2". Must be absolute (server OS style); a relative prefix matches nothing. Scope filters files by their scan path; ingest_data sources, which have no base-directory path, are always listed.',
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
106
114
|
},
|
|
107
115
|
{
|
|
108
116
|
name: 'status',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../../src/server/tool-definitions.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAI5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAW;IACrC;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,gOAAgO;QAClO,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2HAA2H;iBAC9H;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;oBACX,WAAW,EACT,8EAA8E;iBACjF;gBACD,KAAK,EAAE;oBACL,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;oBACzE,WAAW,EACT,mVAAmV;iBACtV;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,6MAA6M;QAC/M,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kFAAkF;iBACrF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+DAA+D;iBAC7E;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;oBACzB,OAAO,EAAE,MAAM;oBACf,WAAW,EACT,uKAAuK;iBAC1K;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,0MAA0M;QAC5M,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,uRAAuR;yBAC1R;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;4BAClC,WAAW,EACT,kFAAkF;yBACrF;qBACF;oBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;iBAC/B;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;SAClC;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,0TAA0T;QAC5T,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0FAA0F;iBAC7F;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uGAAuG;iBAC1G;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EACT
|
|
1
|
+
{"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../../src/server/tool-definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import type { IngestDataInput, QueryDocumentsInput } from './types.js';
|
|
1
|
+
import type { IngestDataInput, ListFilesInput, QueryDocumentsInput } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Validate `query_documents` arguments. `query` must be a non-empty string;
|
|
4
4
|
* `limit`, when provided, must be a positive integer (the handler defaults it
|
|
5
5
|
* to 10 when absent).
|
|
6
6
|
*/
|
|
7
7
|
export declare function parseQueryDocumentsInput(raw: unknown): QueryDocumentsInput;
|
|
8
|
+
/**
|
|
9
|
+
* Validate `list_files` arguments. The tool historically takes no arguments, so
|
|
10
|
+
* an omitted `arguments` (`undefined`) or `{}` is accepted as "no scope". When
|
|
11
|
+
* `scope` is present, it is normalized the same way as `query_documents`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseListFilesInput(raw: unknown): ListFilesInput;
|
|
8
14
|
/**
|
|
9
15
|
* Validate `ingest_data` arguments. `content` must be a non-empty string;
|
|
10
16
|
* `metadata` must be an object with a non-empty `source` string and a `format`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-input.d.ts","sourceRoot":"","sources":["../../src/server/tool-input.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"tool-input.d.ts","sourceRoot":"","sources":["../../src/server/tool-input.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAiCtF;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CA0B1E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAchE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAuBlE"}
|
|
@@ -58,6 +58,23 @@ export function parseQueryDocumentsInput(raw) {
|
|
|
58
58
|
}
|
|
59
59
|
return input;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Validate `list_files` arguments. The tool historically takes no arguments, so
|
|
63
|
+
* an omitted `arguments` (`undefined`) or `{}` is accepted as "no scope". When
|
|
64
|
+
* `scope` is present, it is normalized the same way as `query_documents`.
|
|
65
|
+
*/
|
|
66
|
+
export function parseListFilesInput(raw) {
|
|
67
|
+
// Preserve the no-argument contract: `asRecord` rejects `undefined`, so
|
|
68
|
+
// short-circuit before it to avoid a spurious McpError on no-arg calls.
|
|
69
|
+
if (raw === undefined) {
|
|
70
|
+
return {};
|
|
71
|
+
}
|
|
72
|
+
const { scope } = asRecord(raw, 'list_files');
|
|
73
|
+
if (scope === undefined) {
|
|
74
|
+
return {};
|
|
75
|
+
}
|
|
76
|
+
return { scope: normalizeScope(scope) };
|
|
77
|
+
}
|
|
61
78
|
/**
|
|
62
79
|
* Validate `ingest_data` arguments. `content` must be a non-empty string;
|
|
63
80
|
* `metadata` must be an object with a non-empty `source` string and a `format`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-input.js","sourceRoot":"","sources":["../../src/server/tool-input.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,4EAA4E;AAC5E,8EAA8E;AAC9E,wEAAwE;AACxE,yEAAyE;AACzE,8CAA8C;AAE9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAIxE,MAAM,eAAe,GAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;AAE9E,MAAM,WAAW,GAAG,4EAA4E,CAAA;AAEhG;;;GAGG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC3D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IAEtD,mEAAmE;IACnE,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,QAAQ,CAAC,GAAY,EAAE,KAAa;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,KAAK,8BAA8B,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,GAA8B,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;IAC5C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;IAEnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,kCAAkC,CAAC,CAAA;IACjF,CAAC;IAED,MAAM,KAAK,GAAwB,EAAE,KAAK,EAAE,CAAA;IAE5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,2CAA2C;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACrF,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,2CAA2C,CAAC,CAAA;QAC1F,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,KAAK,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;IACxC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;IAEjC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,oCAAoC,CAAC,CAAA;IACnF,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;IACvD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAE/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,4CAA4C,CAAC,CAAA;IAC3F,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAuB,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,mCAAmC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAA;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAuB,EAAE,EAAE,CAAA;AAC3E,CAAC"}
|
|
1
|
+
{"version":3,"file":"tool-input.js","sourceRoot":"","sources":["../../src/server/tool-input.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,4EAA4E;AAC5E,8EAA8E;AAC9E,wEAAwE;AACxE,yEAAyE;AACzE,8CAA8C;AAE9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAIxE,MAAM,eAAe,GAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;AAE9E,MAAM,WAAW,GAAG,4EAA4E,CAAA;AAEhG;;;GAGG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC3D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IAEtD,mEAAmE;IACnE,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,QAAQ,CAAC,GAAY,EAAE,KAAa;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,KAAK,8BAA8B,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,GAA8B,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;IAC5C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;IAEnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,kCAAkC,CAAC,CAAA;IACjF,CAAC;IAED,MAAM,KAAK,GAAwB,EAAE,KAAK,EAAE,CAAA;IAE5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,2CAA2C;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACrF,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,2CAA2C,CAAC,CAAA;QAC1F,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,KAAK,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,wEAAwE;IACxE,wEAAwE;IACxE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAE7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAA;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;IACxC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;IAEjC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,oCAAoC,CAAC,CAAA;IACnF,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;IACvD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAE/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,4CAA4C,CAAC,CAAA;IAC3F,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAuB,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,mCAAmC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAA;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAuB,EAAE,EAAE,CAAA;AAC3E,CAAC"}
|
package/dist/server/types.d.ts
CHANGED
|
@@ -78,6 +78,13 @@ export interface QueryDocumentsInput {
|
|
|
78
78
|
/** Path prefix scope (one or a list); the parser normalizes to `string[]`. */
|
|
79
79
|
scope?: string | string[];
|
|
80
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* list_files tool input
|
|
83
|
+
*/
|
|
84
|
+
export interface ListFilesInput {
|
|
85
|
+
/** Path prefix scope (one or a list); the parser normalizes to `string[]`. */
|
|
86
|
+
scope?: string | string[];
|
|
87
|
+
}
|
|
81
88
|
/**
|
|
82
89
|
* ingest_file tool input
|
|
83
90
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An ingested entry paired with its identity key (`realpathForMatch` of the
|
|
3
|
+
* stored `filePath`). Only the fields the classifier reads are required, so the
|
|
4
|
+
* caller's richer row type is consumed structurally.
|
|
5
|
+
*/
|
|
6
|
+
export interface KeyedIngestedEntry {
|
|
7
|
+
entry: {
|
|
8
|
+
filePath: string;
|
|
9
|
+
chunkCount: number;
|
|
10
|
+
timestamp: string;
|
|
11
|
+
};
|
|
12
|
+
key: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A classified source: a raw-data entry restored to its original `source`, or a
|
|
16
|
+
* real-file / orphaned entry keyed by `filePath`. Structurally compatible with
|
|
17
|
+
* the `SourceEntry` union both surfaces already return (no type-move refactor).
|
|
18
|
+
*/
|
|
19
|
+
export type ClassifiedSource = {
|
|
20
|
+
source: string;
|
|
21
|
+
chunkCount: number;
|
|
22
|
+
timestamp: string;
|
|
23
|
+
} | {
|
|
24
|
+
filePath: string;
|
|
25
|
+
chunkCount: number;
|
|
26
|
+
timestamp: string;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Classify the ingested entries that matched no scanned file into `sources`.
|
|
30
|
+
*
|
|
31
|
+
* Base filter (always): keep only entries whose `key` is absent from
|
|
32
|
+
* `matchedKeys`.
|
|
33
|
+
*
|
|
34
|
+
* When `scope` is present (non-empty): raw-data entries
|
|
35
|
+
* (`looksLikeRawDataPath`) have no filesystem path under a base directory, so
|
|
36
|
+
* they are always emitted regardless of scope; real-file entries are kept only
|
|
37
|
+
* when their stored `filePath` is under scope (`matchesAnyScope`) — a real-file
|
|
38
|
+
* entry outside scope is dropped so it appears in neither `files[]` (already
|
|
39
|
+
* pruned from the scan) nor `sources[]` (no orphan misclassification), while an
|
|
40
|
+
* unmatched real-file entry under scope remains an orphan source.
|
|
41
|
+
*
|
|
42
|
+
* When `scope` is absent (or empty): behavior is unchanged from the pre-extraction
|
|
43
|
+
* inline block — every unmatched entry is emitted, raw-data as `{ source }` when
|
|
44
|
+
* `extractSourceFromPath` yields one, else as `{ filePath }`.
|
|
45
|
+
*/
|
|
46
|
+
export declare function classifyIngestedSources(ingestedKeyed: readonly KeyedIngestedEntry[], matchedKeys: ReadonlySet<string>, scope?: string[]): ClassifiedSource[];
|
|
47
|
+
//# sourceMappingURL=list-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-sources.d.ts","sourceRoot":"","sources":["../../src/utils/list-sources.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAClE,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,SAAS,kBAAkB,EAAE,EAC5C,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,gBAAgB,EAAE,CAiBpB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Pure `sources` classifier shared by the MCP `list_files` handler
|
|
2
|
+
// (`src/server/index.ts`) and the `list` CLI (`src/cli/list.ts`). Extracted
|
|
3
|
+
// from the byte-for-byte-identical inline blocks in both surfaces so the
|
|
4
|
+
// raw-data / real-file scope branch lives in one place, mirroring the
|
|
5
|
+
// drift-avoidance rationale behind the shared `scope-match.ts` matcher.
|
|
6
|
+
//
|
|
7
|
+
// `sources` are ingested entries whose identity key matched no scanned file:
|
|
8
|
+
// content ingested via `ingest_data` (raw-data paths) plus orphaned DB entries
|
|
9
|
+
// for real files not currently on disk under a scanned root.
|
|
10
|
+
import { extractSourceFromPath, looksLikeRawDataPath } from './raw-data-utils.js';
|
|
11
|
+
import { matchesAnyScope } from './scope-match.js';
|
|
12
|
+
/**
|
|
13
|
+
* Classify the ingested entries that matched no scanned file into `sources`.
|
|
14
|
+
*
|
|
15
|
+
* Base filter (always): keep only entries whose `key` is absent from
|
|
16
|
+
* `matchedKeys`.
|
|
17
|
+
*
|
|
18
|
+
* When `scope` is present (non-empty): raw-data entries
|
|
19
|
+
* (`looksLikeRawDataPath`) have no filesystem path under a base directory, so
|
|
20
|
+
* they are always emitted regardless of scope; real-file entries are kept only
|
|
21
|
+
* when their stored `filePath` is under scope (`matchesAnyScope`) — a real-file
|
|
22
|
+
* entry outside scope is dropped so it appears in neither `files[]` (already
|
|
23
|
+
* pruned from the scan) nor `sources[]` (no orphan misclassification), while an
|
|
24
|
+
* unmatched real-file entry under scope remains an orphan source.
|
|
25
|
+
*
|
|
26
|
+
* When `scope` is absent (or empty): behavior is unchanged from the pre-extraction
|
|
27
|
+
* inline block — every unmatched entry is emitted, raw-data as `{ source }` when
|
|
28
|
+
* `extractSourceFromPath` yields one, else as `{ filePath }`.
|
|
29
|
+
*/
|
|
30
|
+
export function classifyIngestedSources(ingestedKeyed, matchedKeys, scope) {
|
|
31
|
+
const scopePrefixes = scope && scope.length > 0 ? scope : undefined;
|
|
32
|
+
return ingestedKeyed
|
|
33
|
+
.filter(({ key }) => !matchedKeys.has(key))
|
|
34
|
+
.filter(({ entry }) => {
|
|
35
|
+
if (!scopePrefixes)
|
|
36
|
+
return true;
|
|
37
|
+
// Raw-data sources are exempt from scope; real-file entries respect it.
|
|
38
|
+
return looksLikeRawDataPath(entry.filePath) || matchesAnyScope(entry.filePath, scopePrefixes);
|
|
39
|
+
})
|
|
40
|
+
.map(({ entry }) => {
|
|
41
|
+
if (looksLikeRawDataPath(entry.filePath)) {
|
|
42
|
+
const source = extractSourceFromPath(entry.filePath);
|
|
43
|
+
if (source)
|
|
44
|
+
return { source, chunkCount: entry.chunkCount, timestamp: entry.timestamp };
|
|
45
|
+
}
|
|
46
|
+
return { filePath: entry.filePath, chunkCount: entry.chunkCount, timestamp: entry.timestamp };
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=list-sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-sources.js","sourceRoot":"","sources":["../../src/utils/list-sources.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,4EAA4E;AAC5E,yEAAyE;AACzE,sEAAsE;AACtE,wEAAwE;AACxE,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,6DAA6D;AAE7D,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAqBlD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAA4C,EAC5C,WAAgC,EAChC,KAAgB;IAEhB,MAAM,aAAa,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAEnE,OAAO,aAAa;SACjB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1C,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACpB,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAA;QAC/B,wEAAwE;QACxE,OAAO,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAC/F,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACjB,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACpD,IAAI,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;QACzF,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC/F,CAAC,CAAC,CAAA;AACN,CAAC"}
|
package/dist/utils/scan.d.ts
CHANGED
|
@@ -28,8 +28,14 @@ export interface DirScanResult {
|
|
|
28
28
|
* prefix are filtered out. A per-directory `readdir` failure is captured into
|
|
29
29
|
* `unreadableDirs` and does not abort the scan (best-effort per directory).
|
|
30
30
|
*
|
|
31
|
+
* When `scope` is provided (non-empty), the predicate is pushed into the
|
|
32
|
+
* traversal: a directory is visited only if it is in-scope or an ancestor of
|
|
33
|
+
* some scope prefix, and a file is collected only if it is in-scope. A root that
|
|
34
|
+
* intersects no prefix is skipped without any `readdir`. An absent/empty `scope`
|
|
35
|
+
* leaves traversal and collection byte-for-byte unchanged.
|
|
36
|
+
*
|
|
31
37
|
* Does not sort, dedupe, or emit warnings — callers handle those so their
|
|
32
38
|
* existing output contracts are preserved.
|
|
33
39
|
*/
|
|
34
|
-
export declare function bfsCollectSupportedFiles(rootPath: string, excludePaths: readonly string[], maxDepth?: number): Promise<DirScanResult>;
|
|
40
|
+
export declare function bfsCollectSupportedFiles(rootPath: string, excludePaths: readonly string[], maxDepth?: number, scope?: string[]): Promise<DirScanResult>;
|
|
35
41
|
//# sourceMappingURL=scan.d.ts.map
|
package/dist/utils/scan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/utils/scan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/utils/scan.ts"],"names":[],"mappings":"AAiBA;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMxE;AAED,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,iFAAiF;IACjF,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,8DAA8D;IAC9D,YAAY,EAAE,OAAO,CAAA;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,QAAQ,GAAE,MAAuB,EACjC,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,aAAa,CAAC,CAwDxB"}
|
package/dist/utils/scan.js
CHANGED
|
@@ -12,6 +12,7 @@ import { readdir, realpath } from 'node:fs/promises';
|
|
|
12
12
|
import { extname, join } from 'node:path';
|
|
13
13
|
import { SUPPORTED_EXTENSIONS } from '../parser/index.js';
|
|
14
14
|
import { MAX_SCAN_DEPTH } from './limits.js';
|
|
15
|
+
import { isInScope, shouldVisitDir } from './scope-match.js';
|
|
15
16
|
/**
|
|
16
17
|
* Canonical identity key for the `list`/`list_files` cross-reference: a file's
|
|
17
18
|
* realpath, falling back to the input path when realpath fails (orphaned or
|
|
@@ -34,14 +35,26 @@ export async function realpathForMatch(filePath) {
|
|
|
34
35
|
* prefix are filtered out. A per-directory `readdir` failure is captured into
|
|
35
36
|
* `unreadableDirs` and does not abort the scan (best-effort per directory).
|
|
36
37
|
*
|
|
38
|
+
* When `scope` is provided (non-empty), the predicate is pushed into the
|
|
39
|
+
* traversal: a directory is visited only if it is in-scope or an ancestor of
|
|
40
|
+
* some scope prefix, and a file is collected only if it is in-scope. A root that
|
|
41
|
+
* intersects no prefix is skipped without any `readdir`. An absent/empty `scope`
|
|
42
|
+
* leaves traversal and collection byte-for-byte unchanged.
|
|
43
|
+
*
|
|
37
44
|
* Does not sort, dedupe, or emit warnings — callers handle those so their
|
|
38
45
|
* existing output contracts are preserved.
|
|
39
46
|
*/
|
|
40
|
-
export async function bfsCollectSupportedFiles(rootPath, excludePaths, maxDepth = MAX_SCAN_DEPTH) {
|
|
47
|
+
export async function bfsCollectSupportedFiles(rootPath, excludePaths, maxDepth = MAX_SCAN_DEPTH, scope) {
|
|
41
48
|
const files = [];
|
|
42
49
|
const unreadableDirs = [];
|
|
43
50
|
let depthLimited = false;
|
|
44
|
-
|
|
51
|
+
// Scope pushdown (shared with scanBaseDir via scope-match): visit a directory
|
|
52
|
+
// only if it is in-scope or an ancestor of the scoped subtree, and collect a
|
|
53
|
+
// file only if it is in-scope. A root intersecting no prefix is skipped
|
|
54
|
+
// without any `readdir`; absent scope leaves traversal/collection unchanged.
|
|
55
|
+
const queue = shouldVisitDir(rootPath, scope)
|
|
56
|
+
? [{ dirPath: rootPath, depth: 0 }]
|
|
57
|
+
: [];
|
|
45
58
|
while (queue.length > 0) {
|
|
46
59
|
const { dirPath, depth } = queue.shift();
|
|
47
60
|
if (depth >= maxDepth) {
|
|
@@ -72,10 +85,14 @@ export async function bfsCollectSupportedFiles(rootPath, excludePaths, maxDepth
|
|
|
72
85
|
if (excludePaths.some((ep) => fullPath.startsWith(ep)))
|
|
73
86
|
continue;
|
|
74
87
|
if (entry.isDirectory()) {
|
|
75
|
-
|
|
88
|
+
if (shouldVisitDir(fullPath, scope)) {
|
|
89
|
+
queue.push({ dirPath: fullPath, depth: depth + 1 });
|
|
90
|
+
}
|
|
76
91
|
}
|
|
77
92
|
else if (entry.isFile() && SUPPORTED_EXTENSIONS.has(extname(entry.name).toLowerCase())) {
|
|
78
|
-
|
|
93
|
+
if (isInScope(fullPath, scope)) {
|
|
94
|
+
files.push(fullPath);
|
|
95
|
+
}
|
|
79
96
|
}
|
|
80
97
|
}
|
|
81
98
|
}
|
package/dist/utils/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/utils/scan.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,0EAA0E;AAC1E,4DAA4D;AAE5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/utils/scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True when `path` equals `prefix` or is a descendant of it, using a separator
|
|
3
|
+
* boundary so `/foo/bar` does not match `/foo/barista`. The separator is derived
|
|
4
|
+
* from `prefix`; trailing separators on `prefix` are normalized so `/a/b`,
|
|
5
|
+
* `/a/b/`, and `/a/b//` are equivalent. `path` is compared verbatim, matching
|
|
6
|
+
* the SQL contract in `buildPrefixPredicate`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isUnderOrEqual(path: string, prefix: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* True when `path` is under-or-equal any prefix in `prefixes` (union). Empty or
|
|
11
|
+
* undefined `prefixes` semantics are the caller's concern; an empty list yields
|
|
12
|
+
* false (membership against no prefixes).
|
|
13
|
+
*/
|
|
14
|
+
export declare function matchesAnyScope(path: string, prefixes: string[]): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Return the prefixes in `scope` that are NOT absolute paths (server-OS path
|
|
17
|
+
* style, via `node:path` `isAbsolute` — the same path style scope matching
|
|
18
|
+
* uses). A non-absolute prefix matches nothing under the exact-or-descendant
|
|
19
|
+
* contract, so both list surfaces surface these as non-fatal warnings while
|
|
20
|
+
* preserving the "matches nothing" result semantics. Input order is preserved.
|
|
21
|
+
*/
|
|
22
|
+
export declare function nonAbsolutePrefixes(scope: string[]): string[];
|
|
23
|
+
/**
|
|
24
|
+
* Directory-visit predicate for the scoped BFS walk, shared by both walkers so
|
|
25
|
+
* the boundary semantics live in one place. Visit `dir` when there is no scope,
|
|
26
|
+
* when `dir` is in-scope (under-or-equal a prefix), or when `dir` is an ancestor
|
|
27
|
+
* of some prefix (must be descended to reach the scoped subtree). An absent or
|
|
28
|
+
* empty `scope` visits every directory (traversal unchanged).
|
|
29
|
+
*/
|
|
30
|
+
export declare function shouldVisitDir(dir: string, scope?: string[]): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* File-collect predicate for the scoped BFS walk, shared by both walkers.
|
|
33
|
+
* Collect `path` when there is no scope, or when `path` is in-scope. An absent
|
|
34
|
+
* or empty `scope` collects every supported file (collection unchanged).
|
|
35
|
+
*/
|
|
36
|
+
export declare function isInScope(path: string, scope?: string[]): boolean;
|
|
37
|
+
//# sourceMappingURL=scope-match.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-match.d.ts","sourceRoot":"","sources":["../../src/utils/scope-match.ts"],"names":[],"mappings":"AAkCA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKpE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAEzE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAGrE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAEjE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// Boundary-safe, exact-or-descendant path prefix matcher shared by both BFS
|
|
2
|
+
// walkers and both list surfaces (MCP `list_files` and the `list` CLI).
|
|
3
|
+
//
|
|
4
|
+
// This is the JS counterpart of `vectordb`'s SQL `buildPrefixPredicate`
|
|
5
|
+
// (`src/vectordb/index.ts`): both implement the same exact-or-descendant
|
|
6
|
+
// contract (`path = prefix OR path startsWith prefix + separator`) with the
|
|
7
|
+
// same separator-boundary and trailing-separator normalization, so `/foo/bar`
|
|
8
|
+
// matches `/foo/bar` and `/foo/bar/x.md` but not `/foo/barista`. Both reference
|
|
9
|
+
// #146's boundary rules — a change to one must be mirrored in the other.
|
|
10
|
+
import { isAbsolute, sep as PATH_SEP } from 'node:path';
|
|
11
|
+
// Derive the boundary separator from the prefix, mirroring `buildPrefixPredicate`:
|
|
12
|
+
// a `\`-style prefix uses `\`, a `/`-style prefix uses `/`, otherwise the
|
|
13
|
+
// platform separator. (Caveat inherited from the SQL side: on posix, `\` is a
|
|
14
|
+
// legal filename char, so a `/`-path containing `\` mis-derives the separator.)
|
|
15
|
+
function deriveSeparator(prefix) {
|
|
16
|
+
return prefix.includes('\\') ? '\\' : prefix.includes('/') ? '/' : PATH_SEP;
|
|
17
|
+
}
|
|
18
|
+
// Strip trailing separators so `/a/b`, `/a/b/`, `/a/b//` normalize alike. A
|
|
19
|
+
// prefix of only separators (e.g. a lone posix root `/`) is kept as a single
|
|
20
|
+
// separator so its descendant boundary is `/<sep>` rather than empty.
|
|
21
|
+
function stripTrailingSeparators(prefix, separator) {
|
|
22
|
+
let end = prefix.length;
|
|
23
|
+
while (end > 0 && prefix[end - 1] === separator) {
|
|
24
|
+
end--;
|
|
25
|
+
}
|
|
26
|
+
if (end === 0) {
|
|
27
|
+
return separator;
|
|
28
|
+
}
|
|
29
|
+
return prefix.slice(0, end);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* True when `path` equals `prefix` or is a descendant of it, using a separator
|
|
33
|
+
* boundary so `/foo/bar` does not match `/foo/barista`. The separator is derived
|
|
34
|
+
* from `prefix`; trailing separators on `prefix` are normalized so `/a/b`,
|
|
35
|
+
* `/a/b/`, and `/a/b//` are equivalent. `path` is compared verbatim, matching
|
|
36
|
+
* the SQL contract in `buildPrefixPredicate`.
|
|
37
|
+
*/
|
|
38
|
+
export function isUnderOrEqual(path, prefix) {
|
|
39
|
+
const separator = deriveSeparator(prefix);
|
|
40
|
+
const normalized = stripTrailingSeparators(prefix, separator);
|
|
41
|
+
const descendant = normalized.endsWith(separator) ? normalized : normalized + separator;
|
|
42
|
+
return path === normalized || path.startsWith(descendant);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* True when `path` is under-or-equal any prefix in `prefixes` (union). Empty or
|
|
46
|
+
* undefined `prefixes` semantics are the caller's concern; an empty list yields
|
|
47
|
+
* false (membership against no prefixes).
|
|
48
|
+
*/
|
|
49
|
+
export function matchesAnyScope(path, prefixes) {
|
|
50
|
+
return prefixes.some((prefix) => isUnderOrEqual(path, prefix));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Return the prefixes in `scope` that are NOT absolute paths (server-OS path
|
|
54
|
+
* style, via `node:path` `isAbsolute` — the same path style scope matching
|
|
55
|
+
* uses). A non-absolute prefix matches nothing under the exact-or-descendant
|
|
56
|
+
* contract, so both list surfaces surface these as non-fatal warnings while
|
|
57
|
+
* preserving the "matches nothing" result semantics. Input order is preserved.
|
|
58
|
+
*/
|
|
59
|
+
export function nonAbsolutePrefixes(scope) {
|
|
60
|
+
return scope.filter((prefix) => !isAbsolute(prefix));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Directory-visit predicate for the scoped BFS walk, shared by both walkers so
|
|
64
|
+
* the boundary semantics live in one place. Visit `dir` when there is no scope,
|
|
65
|
+
* when `dir` is in-scope (under-or-equal a prefix), or when `dir` is an ancestor
|
|
66
|
+
* of some prefix (must be descended to reach the scoped subtree). An absent or
|
|
67
|
+
* empty `scope` visits every directory (traversal unchanged).
|
|
68
|
+
*/
|
|
69
|
+
export function shouldVisitDir(dir, scope) {
|
|
70
|
+
if (!scope || scope.length === 0)
|
|
71
|
+
return true;
|
|
72
|
+
return matchesAnyScope(dir, scope) || scope.some((prefix) => isUnderOrEqual(prefix, dir));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* File-collect predicate for the scoped BFS walk, shared by both walkers.
|
|
76
|
+
* Collect `path` when there is no scope, or when `path` is in-scope. An absent
|
|
77
|
+
* or empty `scope` collects every supported file (collection unchanged).
|
|
78
|
+
*/
|
|
79
|
+
export function isInScope(path, scope) {
|
|
80
|
+
return !scope || scope.length === 0 || matchesAnyScope(path, scope);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=scope-match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-match.js","sourceRoot":"","sources":["../../src/utils/scope-match.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,wEAAwE;AACxE,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,gFAAgF;AAChF,yEAAyE;AAEzE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEvD,mFAAmF;AACnF,0EAA0E;AAC1E,8EAA8E;AAC9E,gFAAgF;AAChF,SAAS,eAAe,CAAC,MAAc;IACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC7E,CAAC;AAED,4EAA4E;AAC5E,6EAA6E;AAC7E,sEAAsE;AACtE,SAAS,uBAAuB,CAAC,MAAc,EAAE,SAAiB;IAChE,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAA;IACvB,OAAO,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAChD,GAAG,EAAE,CAAA;IACP,CAAC;IACD,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAAc;IACzD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,SAAS,CAAA;IACvF,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAkB;IAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,KAAgB;IAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC7C,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;AAC3F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAAgB;IACtD,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACrE,CAAC"}
|
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@ description: Search, ingest, expand chunk context, or manage local documents via
|
|
|
13
13
|
| `ingest_data` | — | Raw content (HTML, text) with source URL |
|
|
14
14
|
| `query_documents` | `npx mcp-local-rag query <text>` | Semantic + keyword hybrid search; optional `scope` to limit to a path prefix |
|
|
15
15
|
| `delete_file` | `npx mcp-local-rag delete <path>` | Remove ingested content |
|
|
16
|
-
| `list_files` | `npx mcp-local-rag list` | File ingestion status |
|
|
16
|
+
| `list_files` | `npx mcp-local-rag list [--scope <prefix>]` | File ingestion status; optional `scope` to limit to a path prefix (reachable scan path) |
|
|
17
17
|
| `status` | `npx mcp-local-rag status` | Database stats |
|
|
18
18
|
| `read_chunk_neighbors` | `npx mcp-local-rag read-neighbors` | Read N chunks adjacent to a known chunkIndex (context expansion; call after `query_documents` or grep) |
|
|
19
19
|
|
|
@@ -73,12 +73,13 @@ Output: JSON array to stdout.
|
|
|
73
73
|
### list
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
npx mcp-local-rag [global-options] list [--base-dir <path>]...
|
|
76
|
+
npx mcp-local-rag [global-options] list [--base-dir <path>]... [--scope <prefix>]...
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
| Option | Env Var | Default | Description |
|
|
80
80
|
|--------|---------|---------|-------------|
|
|
81
81
|
| `--base-dir <path>` | `BASE_DIR` / `BASE_DIRS` | cwd | Base directory to scan. Repeatable; CLI roots replace env roots. |
|
|
82
|
+
| `--scope <prefix>` | — | — | Restrict the listing to files whose scan path is equal to or under an absolute prefix. Repeat for multiple prefixes (unioned). Relative prefixes match nothing. `ingest_data` `sources` are always listed regardless of scope. |
|
|
82
83
|
|
|
83
84
|
Output: JSON to stdout. The result includes `baseDirs: string[]` (all effective roots) plus a legacy `baseDir: string` (first effective root after normalization and nested-root pruning). Each file entry is annotated with the `baseDir` that produced it. Raw-data/orphaned entries remain under `sources` without a root annotation.
|
|
84
85
|
|