@j0hanz/filesystem-context-mcp 1.0.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +20 -5
  2. package/dist/__tests__/schemas/validators.test.js +32 -5
  3. package/dist/__tests__/schemas/validators.test.js.map +1 -1
  4. package/dist/config/types.d.ts +28 -0
  5. package/dist/config/types.d.ts.map +1 -1
  6. package/dist/config/types.js.map +1 -1
  7. package/dist/index.js +0 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/constants.d.ts +7 -7
  10. package/dist/lib/constants.d.ts.map +1 -1
  11. package/dist/lib/constants.js +24 -37
  12. package/dist/lib/constants.js.map +1 -1
  13. package/dist/lib/directory-helpers.d.ts +1 -2
  14. package/dist/lib/directory-helpers.d.ts.map +1 -1
  15. package/dist/lib/directory-helpers.js +2 -5
  16. package/dist/lib/directory-helpers.js.map +1 -1
  17. package/dist/lib/errors.d.ts +2 -0
  18. package/dist/lib/errors.d.ts.map +1 -1
  19. package/dist/lib/errors.js +22 -33
  20. package/dist/lib/errors.js.map +1 -1
  21. package/dist/lib/file-operations.d.ts +2 -1
  22. package/dist/lib/file-operations.d.ts.map +1 -1
  23. package/dist/lib/file-operations.js +249 -146
  24. package/dist/lib/file-operations.js.map +1 -1
  25. package/dist/lib/formatters.d.ts +1 -12
  26. package/dist/lib/formatters.d.ts.map +1 -1
  27. package/dist/lib/formatters.js +11 -14
  28. package/dist/lib/formatters.js.map +1 -1
  29. package/dist/lib/fs-helpers.d.ts.map +1 -1
  30. package/dist/lib/fs-helpers.js +41 -66
  31. package/dist/lib/fs-helpers.js.map +1 -1
  32. package/dist/lib/image-parsing.d.ts.map +1 -1
  33. package/dist/lib/image-parsing.js +27 -19
  34. package/dist/lib/image-parsing.js.map +1 -1
  35. package/dist/lib/mcp-logger.d.ts.map +1 -1
  36. package/dist/lib/mcp-logger.js +16 -12
  37. package/dist/lib/mcp-logger.js.map +1 -1
  38. package/dist/lib/path-utils.d.ts.map +1 -1
  39. package/dist/lib/path-utils.js +0 -2
  40. package/dist/lib/path-utils.js.map +1 -1
  41. package/dist/lib/path-validation.d.ts.map +1 -1
  42. package/dist/lib/path-validation.js +45 -24
  43. package/dist/lib/path-validation.js.map +1 -1
  44. package/dist/lib/search-helpers.d.ts +3 -0
  45. package/dist/lib/search-helpers.d.ts.map +1 -1
  46. package/dist/lib/search-helpers.js +44 -56
  47. package/dist/lib/search-helpers.js.map +1 -1
  48. package/dist/schemas/inputs.d.ts +3 -2
  49. package/dist/schemas/inputs.d.ts.map +1 -1
  50. package/dist/schemas/inputs.js +22 -4
  51. package/dist/schemas/inputs.js.map +1 -1
  52. package/dist/schemas/outputs.d.ts +31 -12
  53. package/dist/schemas/outputs.d.ts.map +1 -1
  54. package/dist/schemas/outputs.js +16 -0
  55. package/dist/schemas/outputs.js.map +1 -1
  56. package/dist/server.d.ts.map +1 -1
  57. package/dist/server.js +39 -17
  58. package/dist/server.js.map +1 -1
  59. package/dist/tools/analyze-directory.d.ts.map +1 -1
  60. package/dist/tools/analyze-directory.js +6 -6
  61. package/dist/tools/analyze-directory.js.map +1 -1
  62. package/dist/tools/list-allowed-dirs.d.ts.map +1 -1
  63. package/dist/tools/list-allowed-dirs.js +20 -1
  64. package/dist/tools/list-allowed-dirs.js.map +1 -1
  65. package/dist/tools/list-directory.d.ts.map +1 -1
  66. package/dist/tools/list-directory.js +11 -3
  67. package/dist/tools/list-directory.js.map +1 -1
  68. package/dist/tools/read-file.d.ts.map +1 -1
  69. package/dist/tools/read-file.js +7 -4
  70. package/dist/tools/read-file.js.map +1 -1
  71. package/dist/tools/read-multiple-files.d.ts.map +1 -1
  72. package/dist/tools/read-multiple-files.js +4 -4
  73. package/dist/tools/read-multiple-files.js.map +1 -1
  74. package/dist/tools/search-content.d.ts.map +1 -1
  75. package/dist/tools/search-content.js +5 -10
  76. package/dist/tools/search-content.js.map +1 -1
  77. package/dist/tools/search-files.d.ts.map +1 -1
  78. package/dist/tools/search-files.js +6 -5
  79. package/dist/tools/search-files.js.map +1 -1
  80. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"path-validation.d.ts","sourceRoot":"","sources":["../../src/lib/path-validation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM/D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAG1D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AA2HD,wBAAsB,4BAA4B,CAChD,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAED,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAGD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAiCnB"}
1
+ {"version":3,"file":"path-validation.d.ts","sourceRoot":"","sources":["../../src/lib/path-validation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM/D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAG1D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAoKD,wBAAsB,4BAA4B,CAChD,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAED,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CA8BnB"}
@@ -1,5 +1,3 @@
1
- // Path validation and security module - the SECURITY BOUNDARY of this server.
2
- // All filesystem operations MUST call validateExistingPath() before accessing any path.
3
1
  import * as fs from 'node:fs/promises';
4
2
  import { fileURLToPath } from 'node:url';
5
3
  import { ErrorCode, McpError } from './errors.js';
@@ -20,15 +18,51 @@ function isPathWithinAllowedDirectories(normalizedPath) {
20
18
  const candidate = normalizeForComparison(normalizedPath);
21
19
  return allowedDirectories.some((allowedDir) => {
22
20
  const allowed = normalizeForComparison(allowedDir);
23
- // Exact match or is a child path
24
21
  return (candidate === allowed || candidate.startsWith(allowed + PATH_SEPARATOR));
25
22
  });
26
23
  }
24
+ const RESERVED_DEVICE_NAMES = new Set([
25
+ 'CON',
26
+ 'PRN',
27
+ 'AUX',
28
+ 'NUL',
29
+ 'COM1',
30
+ 'COM2',
31
+ 'COM3',
32
+ 'COM4',
33
+ 'COM5',
34
+ 'COM6',
35
+ 'COM7',
36
+ 'COM8',
37
+ 'COM9',
38
+ 'LPT1',
39
+ 'LPT2',
40
+ 'LPT3',
41
+ 'LPT4',
42
+ 'LPT5',
43
+ 'LPT6',
44
+ 'LPT7',
45
+ 'LPT8',
46
+ 'LPT9',
47
+ ]);
27
48
  async function validateExistingPathDetailsInternal(requestedPath) {
28
- // Validate input is not empty or only whitespace
29
49
  if (!requestedPath || requestedPath.trim().length === 0) {
30
50
  throw new McpError(ErrorCode.E_INVALID_INPUT, 'Path cannot be empty or whitespace', requestedPath);
31
51
  }
52
+ // Check for null bytes (path truncation attack prevention)
53
+ if (requestedPath.includes('\0')) {
54
+ throw new McpError(ErrorCode.E_INVALID_INPUT, 'Path contains null bytes', requestedPath);
55
+ }
56
+ // Check for Windows reserved device names
57
+ if (process.platform === 'win32') {
58
+ const segments = requestedPath.split(/[\\/]/);
59
+ for (const segment of segments) {
60
+ const baseName = segment.split('.')[0]?.toUpperCase();
61
+ if (baseName && RESERVED_DEVICE_NAMES.has(baseName)) {
62
+ throw new McpError(ErrorCode.E_INVALID_INPUT, `Windows reserved device name not allowed: ${baseName}`, requestedPath);
63
+ }
64
+ }
65
+ }
32
66
  const normalizedRequested = normalizePath(requestedPath);
33
67
  if (!isPathWithinAllowedDirectories(normalizedRequested)) {
34
68
  throw new McpError(ErrorCode.E_ACCESS_DENIED, `Access denied: Path '${requestedPath}' is outside allowed directories`, requestedPath, { normalizedPath: normalizedRequested });
@@ -38,7 +72,6 @@ async function validateExistingPathDetailsInternal(requestedPath) {
38
72
  realPath = await fs.realpath(normalizedRequested);
39
73
  }
40
74
  catch (error) {
41
- // Distinguish between different error types for better error messages
42
75
  const nodeError = error;
43
76
  if (nodeError.code === 'ENOENT') {
44
77
  throw new McpError(ErrorCode.E_NOT_FOUND, `Path does not exist: ${requestedPath}`, requestedPath, { originalCode: nodeError.code }, error);
@@ -47,30 +80,22 @@ async function validateExistingPathDetailsInternal(requestedPath) {
47
80
  throw new McpError(ErrorCode.E_PERMISSION_DENIED, `Permission denied accessing path: ${requestedPath}`, requestedPath, { originalCode: nodeError.code }, error);
48
81
  }
49
82
  if (nodeError.code === 'ELOOP') {
50
- throw new McpError(ErrorCode.E_SYMLINK_NOT_ALLOWED, `Too many symbolic links in path: ${requestedPath}`, requestedPath, { originalCode: nodeError.code }, error);
83
+ throw new McpError(ErrorCode.E_SYMLINK_NOT_ALLOWED, `Too many symbolic links in path (possible circular reference): ${requestedPath}`, requestedPath, { originalCode: nodeError.code }, error);
51
84
  }
52
85
  if (nodeError.code === 'ENAMETOOLONG') {
53
86
  throw new McpError(ErrorCode.E_INVALID_INPUT, `Path name too long: ${requestedPath}`, requestedPath, { originalCode: nodeError.code }, error);
54
87
  }
55
- // Generic fallback for other errors
56
88
  throw new McpError(ErrorCode.E_NOT_FOUND, `Path is not accessible: ${requestedPath}`, requestedPath, { originalCode: nodeError.code, originalMessage: nodeError.message }, error);
57
89
  }
58
90
  const normalizedReal = normalizePath(realPath);
59
91
  if (!isPathWithinAllowedDirectories(normalizedReal)) {
60
- throw new McpError(ErrorCode.E_ACCESS_DENIED, `Access denied: Path '${requestedPath}' resolves to '${realPath}' which is outside allowed directories (symlink escape attempt)`, requestedPath, { resolvedPath: realPath, normalizedResolvedPath: normalizedReal });
61
- }
62
- // Detect if the *requested* path is a symlink without following it.
63
- // Note: lstat runs after the allowed-directory string check above.
64
- let isSymlink = false;
65
- try {
66
- const lstats = await fs.lstat(normalizedRequested);
67
- isSymlink = lstats.isSymbolicLink();
68
- }
69
- catch {
70
- // If lstat fails but realpath succeeded, treat as non-symlink.
71
- // This can happen on some platforms/filesystems; safe default.
72
- isSymlink = false;
92
+ const allowedDirs = getAllowedDirectories();
93
+ const suggestion = allowedDirs.length > 0
94
+ ? `Allowed directories:\n${allowedDirs.map((d) => ` - ${d}`).join('\n')}`
95
+ : 'No allowed directories configured. Use CLI arguments or MCP roots protocol.';
96
+ throw new McpError(ErrorCode.E_ACCESS_DENIED, `Access denied: Path '${requestedPath}' is outside allowed directories.\n\n${suggestion}`, requestedPath, { resolvedPath: realPath, normalizedResolvedPath: normalizedReal });
73
97
  }
98
+ const isSymlink = normalizedRequested !== normalizedReal;
74
99
  return {
75
100
  requestedPath: normalizedRequested,
76
101
  resolvedPath: normalizedReal,
@@ -84,21 +109,17 @@ export async function validateExistingPath(requestedPath) {
84
109
  const details = await validateExistingPathDetailsInternal(requestedPath);
85
110
  return details.resolvedPath;
86
111
  }
87
- // Extract valid directory paths from MCP Root objects (file:// URIs only)
88
112
  export async function getValidRootDirectories(roots) {
89
113
  const validDirs = [];
90
114
  for (const root of roots) {
91
- // Only accept file:// URIs
92
115
  if (!root.uri.startsWith('file://')) {
93
116
  continue;
94
117
  }
95
118
  try {
96
119
  const dirPath = fileURLToPath(root.uri);
97
120
  const normalizedPath = normalizePath(dirPath);
98
- // Verify the directory exists and is accessible
99
121
  const stats = await fs.stat(normalizedPath);
100
122
  if (stats.isDirectory()) {
101
- // Resolve symlinks to get the real path
102
123
  try {
103
124
  const realPath = await fs.realpath(normalizedPath);
104
125
  validDirs.push(normalizePath(realPath));
@@ -1 +1 @@
1
- {"version":3,"file":"path-validation.js","sourceRoot":"","sources":["../../src/lib/path-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path-validation.js","sourceRoot":"","sources":["../../src/lib/path-validation.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,8 @@ export declare function scanFileForContent(filePath: string, regex: RegExp, opti
9
9
  contextLines: number;
10
10
  deadlineMs?: number;
11
11
  currentMatchCount: number;
12
+ isLiteral?: boolean;
13
+ searchString?: string;
14
+ caseSensitive?: boolean;
12
15
  }): Promise<ScanFileResult>;
13
16
  //# sourceMappingURL=search-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/search-helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAwFvE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA2B5D;AA0BD,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GACpD,MAAM,CAYR;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC,cAAc,CAAC,CAkEzB"}
1
+ {"version":3,"file":"search-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/search-helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,oBAAoB,CAAC;AA4E5B,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAuB5D;AAsBD,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GACpD,MAAM,CAYR;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACA,OAAO,CAAC,cAAc,CAAC,CAkFzB"}
@@ -1,63 +1,51 @@
1
1
  import * as readline from 'node:readline';
2
2
  import { createReadStream } from 'node:fs';
3
3
  import { MAX_LINE_CONTENT_LENGTH, REGEX_MATCH_TIMEOUT_MS, } from './constants.js';
4
- // Circular buffer to hold context lines before a match
5
- class CircularLineBuffer {
6
- capacity;
7
- buffer;
8
- writeIndex = 0;
9
- count = 0;
10
- constructor(capacity) {
11
- this.capacity = capacity;
12
- this.buffer = new Array(capacity);
13
- }
14
- push(line) {
15
- this.buffer[this.writeIndex] = line;
16
- this.writeIndex = (this.writeIndex + 1) % this.capacity;
17
- if (this.count < this.capacity)
18
- this.count++;
19
- }
20
- toArray() {
21
- if (this.count === 0)
22
- return [];
23
- if (this.count < this.capacity) {
24
- return this.buffer.slice(0, this.count);
25
- }
26
- // Buffer is full - return in correct order starting from writeIndex
27
- return [
28
- ...this.buffer.slice(this.writeIndex),
29
- ...this.buffer.slice(0, this.writeIndex),
30
- ];
31
- }
32
- clear() {
33
- this.count = 0;
34
- this.writeIndex = 0;
4
+ function countLiteralMatches(line, searchString, caseSensitive) {
5
+ if (line.length === 0 || searchString.length === 0)
6
+ return 0;
7
+ const haystack = caseSensitive ? line : line.toLowerCase();
8
+ const needle = caseSensitive ? searchString : searchString.toLowerCase();
9
+ let count = 0;
10
+ let pos = 0;
11
+ while ((pos = haystack.indexOf(needle, pos)) !== -1) {
12
+ count++;
13
+ pos += needle.length;
35
14
  }
15
+ return count;
36
16
  }
37
- // Count regex matches with timeout protection (returns -1 on timeout)
38
17
  function countRegexMatches(line, regex, timeoutMs = REGEX_MATCH_TIMEOUT_MS) {
39
- // Safety check for empty line
40
18
  if (line.length === 0)
41
19
  return 0;
42
20
  regex.lastIndex = 0;
43
21
  let count = 0;
44
22
  const deadline = Date.now() + timeoutMs;
45
- const maxIterations = line.length * 2; // Prevent infinite loops
23
+ const maxIterations = Math.min(line.length * 2, 10000);
46
24
  let iterations = 0;
25
+ let lastIndex = 0;
47
26
  let match;
48
27
  while ((match = regex.exec(line)) !== null) {
49
28
  count++;
50
29
  iterations++;
51
- // Prevent infinite loops on zero-width matches
52
30
  if (match[0] === '') {
31
+ const { lastIndex: newIndex } = regex;
53
32
  regex.lastIndex++;
54
- // Prevent advancing beyond string length
33
+ lastIndex = newIndex + 1;
55
34
  if (regex.lastIndex > line.length)
56
35
  break;
57
36
  }
58
- // Check timeout periodically
59
- if (count % 100 === 0 && Date.now() > deadline) {
60
- return -1; // Signal timeout
37
+ else {
38
+ const { lastIndex: currentIndex } = regex;
39
+ // Detect if regex is stuck (lastIndex not advancing)
40
+ if (currentIndex === lastIndex) {
41
+ return -1; // Regex not making progress
42
+ }
43
+ lastIndex = currentIndex;
44
+ }
45
+ const shouldCheckTimeout = (count > 0 && count % 10 === 0) ||
46
+ (iterations > 0 && iterations % 50 === 0);
47
+ if (shouldCheckTimeout && Date.now() > deadline) {
48
+ return -1;
61
49
  }
62
50
  // Safety check for runaway regex
63
51
  if (iterations > maxIterations) {
@@ -66,18 +54,14 @@ function countRegexMatches(line, regex, timeoutMs = REGEX_MATCH_TIMEOUT_MS) {
66
54
  }
67
55
  return count;
68
56
  }
69
- // Check if regex is simple enough to be safe without full ReDoS check
70
57
  export function isSimpleSafePattern(pattern) {
71
- // Validate input
72
58
  if (typeof pattern !== 'string' || pattern.length === 0) {
73
59
  return false;
74
60
  }
75
- // Patterns with nested quantifiers are the main ReDoS concern
76
61
  const nestedQuantifierPattern = /[+*?}]\s*\)\s*[+*?{]/;
77
62
  if (nestedQuantifierPattern.test(pattern)) {
78
63
  return false;
79
64
  }
80
- // Check for high repetition counts that safe-regex2 would flag (default limit is 25)
81
65
  const highRepetitionPattern = /\{(\d+)(?:,\d*)?\}/g;
82
66
  let match;
83
67
  while ((match = highRepetitionPattern.exec(pattern)) !== null) {
@@ -85,14 +69,12 @@ export function isSimpleSafePattern(pattern) {
85
69
  if (countStr === undefined)
86
70
  continue;
87
71
  const count = parseInt(countStr, 10);
88
- // Check for NaN and high values
89
72
  if (Number.isNaN(count) || count >= 25) {
90
73
  return false;
91
74
  }
92
75
  }
93
76
  return true;
94
77
  }
95
- // Process pending matches to add context-after lines
96
78
  function updatePendingMatches(pendingMatches, trimmedLine) {
97
79
  for (const pending of pendingMatches) {
98
80
  if (pending.afterNeeded > 0) {
@@ -101,16 +83,13 @@ function updatePendingMatches(pendingMatches, trimmedLine) {
101
83
  pending.afterNeeded--;
102
84
  }
103
85
  }
104
- // Remove completed pending matches from the front
105
86
  while (pendingMatches.length > 0 && pendingMatches[0]?.afterNeeded === 0) {
106
87
  pendingMatches.shift();
107
88
  }
108
89
  }
109
- // Trim and truncate line content for storage
110
90
  function prepareTrimmedLine(line) {
111
91
  return line.trim().substring(0, MAX_LINE_CONTENT_LENGTH);
112
92
  }
113
- // Prepare final search pattern with optional literal escaping and word boundaries
114
93
  export function prepareSearchPattern(searchPattern, options) {
115
94
  let finalPattern = searchPattern;
116
95
  if (options.isLiteral) {
@@ -122,7 +101,7 @@ export function prepareSearchPattern(searchPattern, options) {
122
101
  return finalPattern;
123
102
  }
124
103
  export async function scanFileForContent(filePath, regex, options) {
125
- const { maxResults, contextLines, deadlineMs, currentMatchCount } = options;
104
+ const { maxResults, contextLines, deadlineMs, currentMatchCount, isLiteral, searchString, caseSensitive, } = options;
126
105
  const matches = [];
127
106
  let linesSkippedDueToRegexTimeout = 0;
128
107
  let fileHadMatches = false;
@@ -132,7 +111,7 @@ export async function scanFileForContent(filePath, regex, options) {
132
111
  crlfDelay: Infinity,
133
112
  });
134
113
  let lineNumber = 0;
135
- const lineBuffer = contextLines > 0 ? new CircularLineBuffer(contextLines) : null;
114
+ const contextBuffer = [];
136
115
  const pendingMatches = [];
137
116
  try {
138
117
  for await (const line of rl) {
@@ -143,10 +122,16 @@ export async function scanFileForContent(filePath, regex, options) {
143
122
  break;
144
123
  const trimmedLine = prepareTrimmedLine(line);
145
124
  updatePendingMatches(pendingMatches, trimmedLine);
146
- const matchCount = countRegexMatches(line, regex);
125
+ const matchCount = isLiteral && searchString
126
+ ? countLiteralMatches(line, searchString, caseSensitive ?? false)
127
+ : countRegexMatches(line, regex);
147
128
  if (matchCount < 0) {
148
129
  linesSkippedDueToRegexTimeout++;
149
- lineBuffer?.push(trimmedLine);
130
+ if (contextLines > 0) {
131
+ contextBuffer.push(trimmedLine);
132
+ if (contextBuffer.length > contextLines)
133
+ contextBuffer.shift();
134
+ }
150
135
  continue;
151
136
  }
152
137
  if (matchCount > 0) {
@@ -157,9 +142,8 @@ export async function scanFileForContent(filePath, regex, options) {
157
142
  content: trimmedLine,
158
143
  matchCount,
159
144
  };
160
- const contextBefore = lineBuffer?.toArray();
161
- if (contextBefore?.length) {
162
- newMatch.contextBefore = contextBefore;
145
+ if (contextBuffer.length > 0) {
146
+ newMatch.contextBefore = [...contextBuffer];
163
147
  }
164
148
  matches.push(newMatch);
165
149
  if (contextLines > 0) {
@@ -169,7 +153,11 @@ export async function scanFileForContent(filePath, regex, options) {
169
153
  });
170
154
  }
171
155
  }
172
- lineBuffer?.push(trimmedLine);
156
+ if (contextLines > 0) {
157
+ contextBuffer.push(trimmedLine);
158
+ if (contextBuffer.length > contextLines)
159
+ contextBuffer.shift();
160
+ }
173
161
  }
174
162
  }
175
163
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"search-helpers.js","sourceRoot":"","sources":["../../src/lib/search-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-helpers.js","sourceRoot":"","sources":["../../src/lib/search-helpers.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export declare const ListDirectoryInputSchema: {
11
11
  export declare const SearchFilesInputSchema: {
12
12
  path: z.ZodString;
13
13
  pattern: z.ZodEffects<z.ZodString, string, string>;
14
- excludePatterns: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
14
+ excludePatterns: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>>;
15
15
  maxResults: z.ZodOptional<z.ZodNumber>;
16
16
  sortBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["name", "size", "modified", "path"]>>>;
17
17
  maxDepth: z.ZodOptional<z.ZodNumber>;
@@ -29,6 +29,7 @@ export declare const ReadMultipleFilesInputSchema: {
29
29
  paths: z.ZodArray<z.ZodString, "many">;
30
30
  encoding: z.ZodDefault<z.ZodOptional<z.ZodEnum<["utf-8", "utf8", "ascii", "base64", "hex", "latin1"]>>>;
31
31
  maxSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
32
+ maxTotalSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
32
33
  head: z.ZodOptional<z.ZodNumber>;
33
34
  tail: z.ZodOptional<z.ZodNumber>;
34
35
  };
@@ -39,7 +40,7 @@ export declare const SearchContentInputSchema: {
39
40
  path: z.ZodString;
40
41
  pattern: z.ZodString;
41
42
  filePattern: z.ZodDefault<z.ZodOptional<z.ZodString>>;
42
- excludePatterns: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
43
+ excludePatterns: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>>;
43
44
  caseSensitive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
44
45
  maxResults: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
45
46
  maxFileSize: z.ZodOptional<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,wBAAwB;;;;;;;;CA0CpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;CAoDlC,CAAC;AA2DF,eAAO,MAAM,mBAAmB;;;;;;;;CAA2B,CAAC;AAsC5D,eAAO,MAAM,4BAA4B;;;;;;CAAoC,CAAC;AAE9E,eAAO,MAAM,sBAAsB;;CAKlC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;CAwFpC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;CAgCvC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;CAoCpC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;CAapC,CAAC"}
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,wBAAwB;;;;;;;;CA4CpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;CA6DlC,CAAC;AA2DF,eAAO,MAAM,mBAAmB;;;;;;;;CAA2B,CAAC;AAgD5D,eAAO,MAAM,4BAA4B;;;;;;;CAAoC,CAAC;AAE9E,eAAO,MAAM,sBAAsB;;CAKlC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;CA+FpC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;CAgCvC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;CAoCpC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;CAapC,CAAC"}
@@ -22,7 +22,7 @@ export const ListDirectoryInputSchema = {
22
22
  .max(100, 'maxDepth cannot exceed 100')
23
23
  .optional()
24
24
  .default(DEFAULT_MAX_DEPTH)
25
- .describe('Maximum depth for recursive listing'),
25
+ .describe('Maximum depth for recursive listing (higher values may impact performance)'),
26
26
  maxEntries: z
27
27
  .number()
28
28
  .int('maxEntries must be an integer')
@@ -65,7 +65,12 @@ export const SearchFilesInputSchema = {
65
65
  }, { message: 'Invalid glob pattern syntax' })
66
66
  .describe('Glob pattern to match files. Examples: "**/*.ts" (all TypeScript files), "src/**/*.js" (JS files in src), "*.json" (JSON files in current dir)'),
67
67
  excludePatterns: z
68
- .array(z.string().max(500, 'Individual exclude pattern is too long'))
68
+ .array(z
69
+ .string()
70
+ .max(500, 'Individual exclude pattern is too long')
71
+ .refine((val) => !val.includes('**/**/**'), {
72
+ message: 'Pattern too deeply nested (max 2 levels of **)',
73
+ }))
69
74
  .max(100, 'Too many exclude patterns (max 100)')
70
75
  .optional()
71
76
  .default([])
@@ -88,7 +93,7 @@ export const SearchFilesInputSchema = {
88
93
  .min(1, 'maxDepth must be at least 1')
89
94
  .max(100, 'maxDepth cannot exceed 100')
90
95
  .optional()
91
- .describe('Maximum directory depth to search'),
96
+ .describe('Maximum directory depth to search (lower values improve performance)'),
92
97
  };
93
98
  // Base schema for reading a file with various options.
94
99
  const ReadFileBaseSchema = z.object({
@@ -159,6 +164,14 @@ const ReadMultipleFilesBaseSchema = z.object({
159
164
  .optional()
160
165
  .default(MAX_TEXT_FILE_SIZE)
161
166
  .describe('Maximum file size in bytes per file (default 10MB)'),
167
+ maxTotalSize: z
168
+ .number()
169
+ .int('maxTotalSize must be an integer')
170
+ .min(1, 'maxTotalSize must be at least 1 byte')
171
+ .max(1024 * 1024 * 1024, 'maxTotalSize cannot exceed 1GB')
172
+ .optional()
173
+ .default(100 * 1024 * 1024)
174
+ .describe('Maximum total size in bytes for all files combined (default 100MB)'),
162
175
  head: z
163
176
  .number()
164
177
  .int('head must be an integer')
@@ -199,7 +212,12 @@ export const SearchContentInputSchema = {
199
212
  .default('**/*')
200
213
  .describe('Glob pattern to filter files'),
201
214
  excludePatterns: z
202
- .array(z.string().max(500, 'Individual exclude pattern is too long'))
215
+ .array(z
216
+ .string()
217
+ .max(500, 'Individual exclude pattern is too long')
218
+ .refine((val) => !val.includes('**/**/**'), {
219
+ message: 'Pattern too deeply nested (max 2 levels of **)',
220
+ }))
203
221
  .max(100, 'Too many exclude patterns (max 100)')
204
222
  .optional()
205
223
  .default([])
@@ -1 +1 @@
1
- {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"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"}