@j0hanz/fs-context-mcp 2.1.5 → 2.2.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 CHANGED
@@ -150,6 +150,7 @@ Notes:
150
150
  - Windows drive-relative paths like `C:path` are rejected. Use `C:\path` or `C:/path`.
151
151
  - Reserved Windows device names (e.g., `CON`, `NUL`) are blocked.
152
152
  - If multiple roots are configured, tools require an explicit `path` to disambiguate.
153
+ - When multiple roots are configured, relative paths are rejected; provide an absolute path within the desired root.
153
154
 
154
155
  ## Configuration
155
156
 
@@ -181,6 +182,8 @@ You can customize with:
181
182
  - `FS_CONTEXT_DENYLIST` to add extra deny patterns (comma-separated globs using `*`).
182
183
  - `FS_CONTEXT_ALLOWLIST` to allow specific paths even if they match the denylist.
183
184
 
185
+ Sensitive denylist patterns also filter `ls`, `find`, `tree`, and `stat` results by default to avoid revealing secret filenames.
186
+
184
187
  ## Resources
185
188
 
186
189
  This server exposes standard MCP resources to provide static documentation and handle large content efficiently.
@@ -1,4 +1,6 @@
1
- # fs-context Instructions
1
+ # FS-Context MCP Server Instructions
2
+
3
+ <!-- path: src/instructions.md -->
2
4
 
3
5
  > Guidance for the Agent: These instructions are available as a resource (`internal://instructions`) or prompt (`get-help`). Load them when you are unsure about tool usage.
4
6
 
@@ -22,7 +24,7 @@ _Describe the standard order of operations using ONLY tools that exist._
22
24
  1. Call `find` to locate files by name/glob pattern.
23
25
  2. Call `grep` to find code by content/regex.
24
26
  3. Call `read` (single) or `read_many` (batch) to inspect specific files.
25
- > Constraint: Large readings return incomplete previews with resource URIs (`fs-context://result/...`).
27
+ > Constraint: Large readings return incomplete previews with resource URIs.
26
28
 
27
29
  ## 3. Tool Nuances & Gotchas
28
30
 
@@ -31,44 +33,31 @@ _Do NOT repeat JSON schema. Focus on behavior and pitfalls._
31
33
  - **`ls`**
32
34
  - **Purpose:** Non-recursive directory listing.
33
35
  - **Inputs:** `path` (relative to root). default: root.
34
- - **Multi-root:** If multiple roots are configured, you must provide `path`.
35
- - **Default filters:** Excludes common ignored directories (node_modules, dist, .git, etc). Set `includeIgnored=true` to include them.
36
- - **Latency:** Fast.
37
- - **Common failure modes:** `E_NOT_FOUND` if path incorrect.
36
+ - **Limits:** Not recursive; use `tree` or `find` for depth.
37
+ - **Multi-root:** When multiple roots are configured, pass an absolute path to disambiguate (relative paths are rejected).
38
38
 
39
39
  - **`find`**
40
40
  - **Purpose:** Recursive file search by globs.
41
41
  - **Inputs:** `pattern` (glob like `**/*.ts`), `path` (base dir).
42
- - **Multi-root:** If multiple roots are configured, you must provide `path`.
43
- - **Side effects:** None.
44
42
  - **Latency:** Scans disk; bounded by `maxResults` (default 100).
45
- - **Gitignore scope:** Only the root `.gitignore` is applied (nested `.gitignore` is not parsed).
46
43
 
47
44
  - **`grep`**
48
45
  - **Purpose:** Content search using RE2 regex.
49
46
  - **Inputs:** `pattern` (regex), `path` (base).
50
47
  - **Limits:** Skips binaries & files >1MB. Truncates results >50 matches.
51
- - **Multi-root:** If multiple roots are configured, you must provide `path`.
52
- - **Sensitive files:** Access to common secret files is blocked by default. Override with `FS_CONTEXT_ALLOW_SENSITIVE=1` or add `FS_CONTEXT_ALLOWLIST`.
53
48
 
54
49
  - **`read` / `read_many`**
55
50
  - **Purpose:** Read file contents.
56
51
  - **Inputs:** `path`/`paths`. Optional: `head` (first N lines) OR `startLine`/`endLine`.
57
52
  - **Gotchas:** `head` is mutually exclusive with `startLine`/`endLine`. Large content returns `resourceUri` link.
58
- - **Sensitive files:** Access to common secret files (e.g., `.env`, `.npmrc`) is blocked by default. Override with `FS_CONTEXT_ALLOW_SENSITIVE=1` or add `FS_CONTEXT_ALLOWLIST`.
59
-
60
- - **`stat` / `stat_many`**
61
- - **Purpose:** Metadata (size, modified, type) without content.
62
- - **Inputs:** `path`/`paths`.
63
53
 
64
54
  - **`tree`**
65
55
  - **Purpose:** ASCII + JSON tree visualization.
66
56
  - **Limits:** Max depth/entries apply. Good for high-level "glance".
67
- - **Multi-root:** If multiple roots are configured, you must provide `path`.
68
57
 
69
58
  ## 4. Error Handling Strategy
70
59
 
71
- - `E_ACCESS_DENIED`: You are trying to access a path outside allowed `roots`.
72
- - `E_NOT_FOUND`: Re-run `ls` or `find` to verify the path exists.
73
- - `E_TIMEOUT` / `E_UNKNOWN`: Reduce scope (subdir) or batch size.
74
- - Resource Links (`fs-context://...`): Content was too large for inline. Read the provided URI to get full content.
60
+ - **`E_ACCESS_DENIED`**: You are trying to access a path outside allowed `roots`.
61
+ - **`E_NOT_FOUND`**: Re-run `ls` or `find` to verify the path exists.
62
+ - **`E_TIMEOUT`**: Reduce scope (subdir) or batch size.
63
+ - **Resource Links**: Content was too large for inline. Read the provided URI to get full content.
@@ -1 +1 @@
1
- {"version":3,"file":"file-info.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/file-info.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,yBAAyB,EAE1B,MAAM,iBAAiB,CAAC;AA6EzB,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAChE,OAAO,CAAC,QAAQ,CAAC,CA0BnB;AAqBD,UAAU,0BAA0B;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAsGD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,yBAAyB,CAAC,CAYpC"}
1
+ {"version":3,"file":"file-info.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/file-info.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,yBAAyB,EAE1B,MAAM,iBAAiB,CAAC;AA8EzB,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAChE,OAAO,CAAC,QAAQ,CAAC,CA2BnB;AAqBD,UAAU,0BAA0B;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAsGD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,yBAAyB,CAAC,CAYpC"}
@@ -3,6 +3,7 @@ import * as path from 'node:path';
3
3
  import { PARALLEL_CONCURRENCY } from '../constants.js';
4
4
  import { getMimeType } from '../constants.js';
5
5
  import { assertNotAborted, getFileType, isHidden, processInParallel, withAbort, } from '../fs-helpers.js';
6
+ import { assertAllowedFileAccess } from '../path-policy.js';
6
7
  import { validateExistingPathDetailed } from '../path-validation.js';
7
8
  const PERM_STRINGS = [
8
9
  '---',
@@ -56,6 +57,7 @@ export async function getFileInfo(filePath, options = {}) {
56
57
  const { signal } = options;
57
58
  assertNotAborted(signal);
58
59
  const { requestedPath, resolvedPath, isSymlink } = await validateExistingPathDetailed(filePath, signal);
60
+ assertAllowedFileAccess(requestedPath, resolvedPath);
59
61
  const name = path.basename(requestedPath);
60
62
  const ext = path.extname(name).toLowerCase();
61
63
  const includeMimeType = options.includeMimeType !== false;
@@ -1 +1 @@
1
- {"version":3,"file":"file-info.js","sourceRoot":"","sources":["../../../src/lib/file-operations/file-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-info.js","sourceRoot":"","sources":["../../../src/lib/file-operations/file-info.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-directory.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/list-directory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAW3E,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IAC/C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAqSD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAkB9B"}
1
+ {"version":3,"file":"list-directory.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/list-directory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAe3E,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IAC/C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAyZD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAkB9B"}
@@ -1,8 +1,9 @@
1
1
  import * as fsp from 'node:fs/promises';
2
2
  import * as path from 'node:path';
3
3
  import { DEFAULT_LIST_MAX_ENTRIES, DEFAULT_MAX_DEPTH, DEFAULT_SEARCH_TIMEOUT_MS, PARALLEL_CONCURRENCY, } from '../constants.js';
4
- import { createTimedAbortSignal } from '../fs-helpers.js';
5
- import { validateExistingDirectory } from '../path-validation.js';
4
+ import { createTimedAbortSignal, withAbort } from '../fs-helpers.js';
5
+ import { isSensitivePath } from '../path-policy.js';
6
+ import { validateExistingDirectory, validateExistingPathDetailed, } from '../path-validation.js';
6
7
  import { globEntries } from './glob-engine.js';
7
8
  function normalizePattern(pattern) {
8
9
  if (!pattern || pattern.length === 0)
@@ -52,7 +53,31 @@ function shouldStopScan(signal, entryCount, maxEntries) {
52
53
  }
53
54
  return { stop: false };
54
55
  }
55
- function createEntryStream(basePath, normalized, maxDepth, needsStats) {
56
+ async function* readDirectoryEntries(basePath, normalized, needsStats, signal) {
57
+ const dirents = await withAbort(fsp.readdir(basePath, { withFileTypes: true }), signal);
58
+ for (const dirent of dirents) {
59
+ if (!normalized.includeHidden && dirent.name.startsWith('.')) {
60
+ continue;
61
+ }
62
+ const entryPath = path.join(basePath, dirent.name);
63
+ let stats;
64
+ if (needsStats) {
65
+ stats = await withAbort(fsp.lstat(entryPath), signal);
66
+ }
67
+ yield {
68
+ path: entryPath,
69
+ dirent,
70
+ ...(stats ? { stats } : {}),
71
+ };
72
+ }
73
+ }
74
+ function createEntryStream(basePath, normalized, maxDepth, needsStats, signal) {
75
+ const canUseFastPath = !normalized.pattern &&
76
+ normalized.excludePatterns.length === 0 &&
77
+ maxDepth === 1;
78
+ if (canUseFastPath) {
79
+ return readDirectoryEntries(basePath, normalized, needsStats, signal);
80
+ }
56
81
  return globEntries({
57
82
  cwd: basePath,
58
83
  pattern: normalized.pattern ?? '*',
@@ -103,13 +128,43 @@ function buildDirectoryEntry(basePath, entry, entryType, needsStats, symlinkTarg
103
128
  ...(symlinkTarget !== undefined ? { symlinkTarget } : {}),
104
129
  };
105
130
  }
131
+ function trackSymlink(entryType, includeSymlinkTargets, counters) {
132
+ if (entryType === 'symlink' && !includeSymlinkTargets) {
133
+ counters.symlinksNotFollowed += 1;
134
+ }
135
+ }
136
+ async function isEntryAccessible(entryPath, signal, counters) {
137
+ try {
138
+ const validated = await validateExistingPathDetailed(entryPath, signal);
139
+ if (isSensitivePath(validated.requestedPath, validated.resolvedPath)) {
140
+ counters.skippedInaccessible += 1;
141
+ return false;
142
+ }
143
+ return true;
144
+ }
145
+ catch {
146
+ counters.skippedInaccessible += 1;
147
+ return false;
148
+ }
149
+ }
150
+ async function appendEntryWithQueue(basePath, entry, normalized, needsStats, totals, entries, pending, flushPending) {
151
+ const task = appendEntry(basePath, entry, normalized, needsStats, totals, entries);
152
+ if (normalized.includeSymlinkTargets) {
153
+ pending.push(task);
154
+ if (pending.length >= PARALLEL_CONCURRENCY) {
155
+ await flushPending();
156
+ }
157
+ return;
158
+ }
159
+ await task;
160
+ }
106
161
  async function appendEntry(basePath, entry, options, needsStats, totals, entries) {
107
162
  const entryType = resolveEntryType(entry.dirent);
108
163
  const symlinkTarget = await resolveSymlinkTarget(entryType, options.includeSymlinkTargets, entry.path);
109
164
  updateTotals(entryType, totals);
110
165
  entries.push(buildDirectoryEntry(basePath, entry, entryType, needsStats, symlinkTarget));
111
166
  }
112
- function buildSummary(entries, totals, maxDepth, truncated, stoppedReason) {
167
+ function buildSummary(entries, totals, maxDepth, truncated, stoppedReason, extra) {
113
168
  const baseSummary = {
114
169
  totalEntries: entries.length,
115
170
  entriesScanned: entries.length,
@@ -118,8 +173,8 @@ function buildSummary(entries, totals, maxDepth, truncated, stoppedReason) {
118
173
  totalDirectories: totals.directories,
119
174
  maxDepthReached: maxDepth,
120
175
  truncated,
121
- skippedInaccessible: 0,
122
- symlinksNotFollowed: 0,
176
+ skippedInaccessible: extra.skippedInaccessible,
177
+ symlinksNotFollowed: extra.symlinksNotFollowed,
123
178
  };
124
179
  return {
125
180
  ...baseSummary,
@@ -131,9 +186,10 @@ async function collectEntries(basePath, normalized, signal, needsStats, maxDepth
131
186
  const totals = { files: 0, directories: 0 };
132
187
  let truncated = false;
133
188
  let stoppedReason;
189
+ const counters = { skippedInaccessible: 0, symlinksNotFollowed: 0 };
134
190
  const pending = [];
135
191
  let scheduledCount = 0;
136
- const stream = createEntryStream(basePath, normalized, maxDepth, needsStats);
192
+ const stream = createEntryStream(basePath, normalized, maxDepth, needsStats, signal);
137
193
  const flushPending = async () => {
138
194
  if (pending.length === 0)
139
195
  return;
@@ -146,31 +202,38 @@ async function collectEntries(basePath, normalized, signal, needsStats, maxDepth
146
202
  stoppedReason = stop.reason;
147
203
  break;
148
204
  }
149
- scheduledCount += 1;
150
- const task = appendEntry(basePath, entry, normalized, needsStats, totals, entries);
151
- if (normalized.includeSymlinkTargets) {
152
- pending.push(task);
153
- if (pending.length >= PARALLEL_CONCURRENCY) {
154
- await flushPending();
155
- }
156
- }
157
- else {
158
- await task;
205
+ const entryType = resolveEntryType(entry.dirent);
206
+ trackSymlink(entryType, normalized.includeSymlinkTargets, counters);
207
+ const accessible = await isEntryAccessible(entry.path, signal, counters);
208
+ if (!accessible) {
209
+ continue;
159
210
  }
211
+ scheduledCount += 1;
212
+ await appendEntryWithQueue(basePath, entry, normalized, needsStats, totals, entries, pending, flushPending);
160
213
  }
161
214
  if (normalized.includeSymlinkTargets) {
162
215
  await flushPending();
163
216
  }
164
- return { entries, totals, truncated, stoppedReason };
217
+ return {
218
+ entries,
219
+ totals,
220
+ truncated,
221
+ stoppedReason,
222
+ skippedInaccessible: counters.skippedInaccessible,
223
+ symlinksNotFollowed: counters.symlinksNotFollowed,
224
+ };
165
225
  }
166
226
  async function executeListDirectory(basePath, normalized, signal) {
167
227
  const needsStats = needsStatsForSort(normalized.sortBy);
168
228
  const maxDepth = resolveMaxDepth(normalized);
169
- const { entries, totals, truncated, stoppedReason } = await collectEntries(basePath, normalized, signal, needsStats, maxDepth);
229
+ const { entries, totals, truncated, stoppedReason, skippedInaccessible, symlinksNotFollowed, } = await collectEntries(basePath, normalized, signal, needsStats, maxDepth);
170
230
  sortEntries(entries, normalized.sortBy);
171
231
  return {
172
232
  entries,
173
- summary: buildSummary(entries, totals, maxDepth, truncated, stoppedReason),
233
+ summary: buildSummary(entries, totals, maxDepth, truncated, stoppedReason, {
234
+ skippedInaccessible,
235
+ symlinksNotFollowed,
236
+ }),
174
237
  };
175
238
  }
176
239
  export async function listDirectory(dirPath, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"list-directory.js","sourceRoot":"","sources":["../../../src/lib/file-operations/list-directory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-directory.js","sourceRoot":"","sources":["../../../src/lib/file-operations/list-directory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-multiple-files.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/read-multiple-files.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA+TD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAgC/B"}
1
+ {"version":3,"file":"read-multiple-files.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/read-multiple-files.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA2UD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAgC/B"}
@@ -111,22 +111,9 @@ async function tryValidateFile(filePath, index, signal) {
111
111
  return undefined;
112
112
  }
113
113
  }
114
- async function validateFilesInParallel(filePaths, signal) {
115
- const tasks = filePaths
116
- .map((filePath, index) => ({ filePath, index }))
117
- .filter((task) => task.filePath);
118
- const { results } = await processInParallel(tasks, async (task) => tryValidateFile(task.filePath, task.index, signal), PARALLEL_CONCURRENCY, signal);
119
- const validated = new Map();
120
- for (const info of results) {
121
- if (!info)
122
- continue;
123
- validated.set(info.index, info);
124
- }
125
- return validated;
126
- }
127
114
  async function collectFileBudget(filePaths, partialRead, maxTotalSize, maxSize, signal) {
128
115
  const skippedBudget = new Set();
129
- const validated = await validateFilesInParallel(filePaths, signal);
116
+ const validated = new Map();
130
117
  const estimateSize = partialRead
131
118
  ? (stats) => estimatePartialSize(stats, maxSize)
132
119
  : estimateFullSize;
@@ -135,19 +122,34 @@ async function collectFileBudget(filePaths, partialRead, maxTotalSize, maxSize,
135
122
  const filePath = filePaths[index];
136
123
  if (!filePath)
137
124
  continue;
138
- const info = validated.get(index);
125
+ const info = await resolveValidatedInfo(filePath, index, validated, signal);
139
126
  if (!info)
140
127
  continue;
141
- const estimatedSize = estimateSize(info.stats);
142
- if (totalSize + estimatedSize > maxTotalSize) {
143
- skippedBudget.add(index);
144
- markRemainingSkipped(index + 1, filePaths.length, skippedBudget);
128
+ const { exceeded, totalSize: nextTotalSize } = applyBudget(totalSize, estimateSize(info.stats), maxTotalSize, index, filePaths.length, skippedBudget);
129
+ if (exceeded) {
145
130
  return { skippedBudget, validated };
146
131
  }
147
- totalSize += estimatedSize;
132
+ totalSize = nextTotalSize;
148
133
  }
149
134
  return { skippedBudget, validated };
150
135
  }
136
+ async function resolveValidatedInfo(filePath, index, validated, signal) {
137
+ if (!validated.has(index)) {
138
+ const info = await tryValidateFile(filePath, index, signal);
139
+ if (info) {
140
+ validated.set(index, info);
141
+ }
142
+ }
143
+ return validated.get(index);
144
+ }
145
+ function applyBudget(totalSize, estimatedSize, maxTotalSize, index, totalFiles, skippedBudget) {
146
+ if (totalSize + estimatedSize > maxTotalSize) {
147
+ skippedBudget.add(index);
148
+ markRemainingSkipped(index + 1, totalFiles, skippedBudget);
149
+ return { totalSize, exceeded: true };
150
+ }
151
+ return { totalSize: totalSize + estimatedSize, exceeded: false };
152
+ }
151
153
  function buildOutput(filePaths) {
152
154
  return filePaths.map((filePath) => ({ path: filePath }));
153
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"read-multiple-files.js","sourceRoot":"","sources":["../../../src/lib/file-operations/read-multiple-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-multiple-files.js","sourceRoot":"","sources":["../../../src/lib/file-operations/read-multiple-files.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-content.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/search-content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-content.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/search-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAUxC,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AA8BzE,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,oBAAqB,SAAQ,OAAO,CAAC,aAAa,CAAC;IAClE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACtE;AA6BD,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAoED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB,OAAO,CAgBT;AAyFD,KAAK,cAAc,GAAG,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,CAAC,UAAU,EACtB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC;AAkQtB,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,OAAO,EAC1B,gBAAgB,EAAE,cAAc,GAC/B,OAAO,CAAC;IACT,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC,CAAC,CAcD;AA6QD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QACN,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,EAAE,OAAO,CAAC;QACzB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,CAAC;AAuwBpD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA+C9B"}
@@ -10,7 +10,7 @@ import { ErrorCode, McpError } from '../errors.js';
10
10
  import { assertNotAborted, createTimedAbortSignal, isProbablyBinary, withAbort, } from '../fs-helpers.js';
11
11
  import { publishOpsTraceEnd, publishOpsTraceError, publishOpsTraceStart, shouldPublishOpsTrace, } from '../observability.js';
12
12
  import { assertAllowedFileAccess, isSensitivePath } from '../path-policy.js';
13
- import { getAllowedDirectories, isPathWithinDirectories, normalizePath, toAccessDeniedWithHint, validateExistingDirectory, validateExistingPathDetailed, } from '../path-validation.js';
13
+ import { validateExistingDirectory, validateExistingPathDetailed, } from '../path-validation.js';
14
14
  import { globEntries } from './glob-engine.js';
15
15
  const INTERNAL_MAX_RESULTS = 500;
16
16
  const DEFAULTS = {
@@ -202,9 +202,11 @@ function appendMatch(matches, requestedPath, line, trimmedLine, lineNo, count, c
202
202
  }
203
203
  }
204
204
  function recordLineMatch(line, matcher, options, requestedPath, lineNo, matches, ctx) {
205
- const contextBefore = options.contextLines > 0 ? snapshotContextBefore(ctx) : undefined;
206
- const trimmedLine = updateContext(line, options.contextLines, ctx);
207
205
  const count = matcher(line);
206
+ const contextBefore = count > 0 && options.contextLines > 0
207
+ ? snapshotContextBefore(ctx)
208
+ : undefined;
209
+ const trimmedLine = updateContext(line, options.contextLines, ctx);
208
210
  if (count > 0) {
209
211
  appendMatch(matches, requestedPath, line, trimmedLine, lineNo, count, options.contextLines, ctx, contextBefore);
210
212
  }
@@ -315,13 +317,6 @@ async function executeSearchSingleFile(file, baseDir, pattern, opts, signal) {
315
317
  return buildSearchResult(baseDir, pattern, path.basename(file.requestedPath), matches, summary);
316
318
  });
317
319
  }
318
- function resolveNonSymlinkPath(entryPath, allowedDirs) {
319
- const normalized = normalizePath(entryPath);
320
- if (!isPathWithinDirectories(normalized, allowedDirs)) {
321
- throw toAccessDeniedWithHint(entryPath, normalized, normalized);
322
- }
323
- return { resolvedPath: normalized, requestedPath: normalized };
324
- }
325
320
  function createScanSummary() {
326
321
  return {
327
322
  filesScanned: 0,
@@ -344,24 +339,26 @@ function shouldStopCollecting(summary, maxFilesScanned, signal) {
344
339
  }
345
340
  return false;
346
341
  }
347
- async function resolveEntryPath(entry, allowedDirs, signal) {
342
+ async function resolveEntryPath(entry, signal) {
348
343
  try {
349
- return entry.dirent.isSymbolicLink()
350
- ? await validateExistingPathDetailed(entry.path, signal)
351
- : resolveNonSymlinkPath(entry.path, allowedDirs);
344
+ const details = await validateExistingPathDetailed(entry.path, signal);
345
+ return {
346
+ resolvedPath: details.resolvedPath,
347
+ requestedPath: details.requestedPath,
348
+ };
352
349
  }
353
350
  catch {
354
351
  return null;
355
352
  }
356
353
  }
357
- async function* collectFromStream(stream, opts, allowedDirs, signal, summary, onProgress) {
354
+ async function* collectFromStream(stream, opts, signal, summary, onProgress) {
358
355
  for await (const entry of stream) {
359
356
  if (!entry.dirent.isFile())
360
357
  continue;
361
358
  if (shouldStopCollecting(summary, opts.maxFilesScanned, signal)) {
362
359
  break;
363
360
  }
364
- const resolved = await resolveEntryPath(entry, allowedDirs, signal);
361
+ const resolved = await resolveEntryPath(entry, signal);
365
362
  if (!resolved) {
366
363
  summary.skippedInaccessible++;
367
364
  continue;
@@ -377,7 +374,7 @@ async function* collectFromStream(stream, opts, allowedDirs, signal, summary, on
377
374
  yield resolved;
378
375
  }
379
376
  }
380
- function collectFilesStream(root, opts, allowedDirs, signal, onProgress) {
377
+ function collectFilesStream(root, opts, signal, onProgress) {
381
378
  const summary = createScanSummary();
382
379
  const stream = globEntries({
383
380
  cwd: root,
@@ -392,7 +389,7 @@ function collectFilesStream(root, opts, allowedDirs, signal, onProgress) {
392
389
  suppressErrors: true,
393
390
  });
394
391
  return {
395
- stream: collectFromStream(stream, opts, allowedDirs, signal, summary, onProgress),
392
+ stream: collectFromStream(stream, opts, signal, summary, onProgress),
396
393
  summary,
397
394
  };
398
395
  }
@@ -922,9 +919,9 @@ function buildSearchResult(root, pattern, filePattern, matches, summary) {
922
919
  summary: buildSummary(summary, matches),
923
920
  };
924
921
  }
925
- async function executeSearch(root, pattern, opts, allowedDirs, signal, onProgress) {
922
+ async function executeSearch(root, pattern, opts, signal, onProgress) {
926
923
  return await withSearchExecution(pattern, opts, async (context) => {
927
- const { stream, summary } = collectFilesStream(root, opts, allowedDirs, signal, onProgress);
924
+ const { stream, summary } = collectFilesStream(root, opts, signal, onProgress);
928
925
  const matches = await scanMatches(stream, pattern, context.matcherOptions, context.scanOptions, opts.maxResults, signal, summary);
929
926
  return buildSearchResult(root, pattern, opts.filePattern, matches, summary);
930
927
  });
@@ -932,13 +929,12 @@ async function executeSearch(root, pattern, opts, allowedDirs, signal, onProgres
932
929
  export async function searchContent(basePath, pattern, options = {}) {
933
930
  const opts = mergeOptions(options);
934
931
  const { signal, cleanup } = createTimedAbortSignal(options.signal, opts.timeoutMs);
935
- const allowedDirs = getAllowedDirectories();
936
932
  try {
937
933
  const details = await validateExistingPathDetailed(basePath, signal);
938
934
  const stats = await withAbort(fsp.stat(details.resolvedPath), signal);
939
935
  if (stats.isDirectory()) {
940
936
  const root = await validateExistingDirectory(details.resolvedPath, signal);
941
- return await executeSearch(root, pattern, opts, allowedDirs, signal, options.onProgress);
937
+ return await executeSearch(root, pattern, opts, signal, options.onProgress);
942
938
  }
943
939
  if (stats.isFile()) {
944
940
  const baseDir = path.dirname(details.requestedPath);