@google/gemini-cli-core 0.15.0-preview.3 → 0.16.0-nightly.20251113.ad1f0d99

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 (144) hide show
  1. package/dist/google-gemini-cli-core-0.16.0-nightly.20251112.c961f274.tgz +0 -0
  2. package/dist/src/agents/codebase-investigator.test.d.ts +6 -0
  3. package/dist/src/agents/codebase-investigator.test.js +35 -0
  4. package/dist/src/agents/codebase-investigator.test.js.map +1 -0
  5. package/dist/src/agents/executor.test.js +181 -1
  6. package/dist/src/agents/executor.test.js.map +1 -1
  7. package/dist/src/code_assist/codeAssist.test.d.ts +6 -0
  8. package/dist/src/code_assist/codeAssist.test.js +99 -0
  9. package/dist/src/code_assist/codeAssist.test.js.map +1 -0
  10. package/dist/src/code_assist/experiments/client_metadata.js +2 -1
  11. package/dist/src/code_assist/experiments/client_metadata.js.map +1 -1
  12. package/dist/src/code_assist/experiments/client_metadata.test.d.ts +6 -0
  13. package/dist/src/code_assist/experiments/client_metadata.test.js +99 -0
  14. package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -0
  15. package/dist/src/code_assist/experiments/experiments.test.d.ts +6 -0
  16. package/dist/src/code_assist/experiments/experiments.test.js +92 -0
  17. package/dist/src/code_assist/experiments/experiments.test.js.map +1 -0
  18. package/dist/src/code_assist/oauth-credential-storage.test.js +49 -0
  19. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -1
  20. package/dist/src/code_assist/server.js +5 -8
  21. package/dist/src/code_assist/server.js.map +1 -1
  22. package/dist/src/code_assist/server.test.js +109 -28
  23. package/dist/src/code_assist/server.test.js.map +1 -1
  24. package/dist/src/config/defaultModelConfigs.js +6 -0
  25. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  26. package/dist/src/confirmation-bus/message-bus.d.ts +1 -1
  27. package/dist/src/confirmation-bus/message-bus.js +2 -2
  28. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  29. package/dist/src/confirmation-bus/message-bus.test.js +30 -24
  30. package/dist/src/confirmation-bus/message-bus.test.js.map +1 -1
  31. package/dist/src/core/loggingContentGenerator.test.d.ts +6 -0
  32. package/dist/src/core/loggingContentGenerator.test.js +180 -0
  33. package/dist/src/core/loggingContentGenerator.test.js.map +1 -0
  34. package/dist/src/core/tokenLimits.test.d.ts +6 -0
  35. package/dist/src/core/tokenLimits.test.js +26 -0
  36. package/dist/src/core/tokenLimits.test.js.map +1 -0
  37. package/dist/src/generated/git-commit.d.ts +2 -2
  38. package/dist/src/generated/git-commit.js +2 -2
  39. package/dist/src/generated/git-commit.js.map +1 -1
  40. package/dist/src/hooks/hookAggregator.d.ts +68 -0
  41. package/dist/src/hooks/hookAggregator.js +262 -0
  42. package/dist/src/hooks/hookAggregator.js.map +1 -0
  43. package/dist/src/hooks/hookAggregator.test.d.ts +6 -0
  44. package/dist/src/hooks/hookAggregator.test.js +387 -0
  45. package/dist/src/hooks/hookAggregator.test.js.map +1 -0
  46. package/dist/src/hooks/types.js +1 -1
  47. package/dist/src/hooks/types.js.map +1 -1
  48. package/dist/src/hooks/types.test.js +280 -2
  49. package/dist/src/hooks/types.test.js.map +1 -1
  50. package/dist/src/ide/ide-client.test.js +159 -0
  51. package/dist/src/ide/ide-client.test.js.map +1 -1
  52. package/dist/src/mcp/oauth-provider.test.js +177 -0
  53. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  54. package/dist/src/policy/config.js +3 -1
  55. package/dist/src/policy/config.js.map +1 -1
  56. package/dist/src/policy/config.test.js +118 -1
  57. package/dist/src/policy/config.test.js.map +1 -1
  58. package/dist/src/policy/policies/write.toml +10 -0
  59. package/dist/src/policy/policy-engine.d.ts +12 -3
  60. package/dist/src/policy/policy-engine.js +61 -7
  61. package/dist/src/policy/policy-engine.js.map +1 -1
  62. package/dist/src/policy/policy-engine.test.js +422 -86
  63. package/dist/src/policy/policy-engine.test.js.map +1 -1
  64. package/dist/src/policy/toml-loader.d.ts +2 -1
  65. package/dist/src/policy/toml-loader.js +103 -6
  66. package/dist/src/policy/toml-loader.js.map +1 -1
  67. package/dist/src/policy/toml-loader.test.js +32 -88
  68. package/dist/src/policy/toml-loader.test.js.map +1 -1
  69. package/dist/src/policy/types.d.ts +65 -0
  70. package/dist/src/policy/types.js +4 -0
  71. package/dist/src/policy/types.js.map +1 -1
  72. package/dist/src/prompts/mcp-prompts.test.d.ts +6 -0
  73. package/dist/src/prompts/mcp-prompts.test.js +40 -0
  74. package/dist/src/prompts/mcp-prompts.test.js.map +1 -0
  75. package/dist/src/prompts/prompt-registry.test.d.ts +6 -0
  76. package/dist/src/prompts/prompt-registry.test.js +111 -0
  77. package/dist/src/prompts/prompt-registry.test.js.map +1 -0
  78. package/dist/src/safety/built-in.d.ts +21 -0
  79. package/dist/src/safety/built-in.js +106 -0
  80. package/dist/src/safety/built-in.js.map +1 -0
  81. package/dist/src/safety/built-in.test.d.ts +6 -0
  82. package/dist/src/safety/built-in.test.js +199 -0
  83. package/dist/src/safety/built-in.test.js.map +1 -0
  84. package/dist/src/safety/checker-runner.d.ts +48 -0
  85. package/dist/src/safety/checker-runner.js +208 -0
  86. package/dist/src/safety/checker-runner.js.map +1 -0
  87. package/dist/src/safety/checker-runner.test.d.ts +6 -0
  88. package/dist/src/safety/checker-runner.test.js +238 -0
  89. package/dist/src/safety/checker-runner.test.js.map +1 -0
  90. package/dist/src/safety/context-builder.d.ts +23 -0
  91. package/dist/src/safety/context-builder.js +47 -0
  92. package/dist/src/safety/context-builder.js.map +1 -0
  93. package/dist/src/safety/context-builder.test.d.ts +6 -0
  94. package/dist/src/safety/context-builder.test.js +49 -0
  95. package/dist/src/safety/context-builder.test.js.map +1 -0
  96. package/dist/src/safety/protocol.d.ts +88 -0
  97. package/dist/src/safety/protocol.js +15 -0
  98. package/dist/src/safety/protocol.js.map +1 -0
  99. package/dist/src/safety/registry.d.ts +26 -0
  100. package/dist/src/safety/registry.js +65 -0
  101. package/dist/src/safety/registry.js.map +1 -0
  102. package/dist/src/safety/registry.test.d.ts +6 -0
  103. package/dist/src/safety/registry.test.js +31 -0
  104. package/dist/src/safety/registry.test.js.map +1 -0
  105. package/dist/src/services/loopDetectionService.d.ts +3 -0
  106. package/dist/src/services/loopDetectionService.js +81 -41
  107. package/dist/src/services/loopDetectionService.js.map +1 -1
  108. package/dist/src/services/loopDetectionService.test.js +96 -4
  109. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  110. package/dist/src/services/test-data/resolved-aliases.golden.json +7 -0
  111. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +4 -2
  112. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +29 -0
  113. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  114. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +31 -0
  115. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  116. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  117. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +12 -1
  118. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  119. package/dist/src/telemetry/loggers.d.ts +2 -1
  120. package/dist/src/telemetry/loggers.js +11 -0
  121. package/dist/src/telemetry/loggers.js.map +1 -1
  122. package/dist/src/telemetry/types.d.ts +15 -2
  123. package/dist/src/telemetry/types.js +42 -3
  124. package/dist/src/telemetry/types.js.map +1 -1
  125. package/dist/src/tools/base-tool-invocation.test.js +2 -2
  126. package/dist/src/tools/base-tool-invocation.test.js.map +1 -1
  127. package/dist/src/tools/memoryTool.js +1 -1
  128. package/dist/src/tools/memoryTool.js.map +1 -1
  129. package/dist/src/tools/memoryTool.test.js +1 -1
  130. package/dist/src/tools/memoryTool.test.js.map +1 -1
  131. package/dist/src/tools/ripGrep.d.ts +24 -7
  132. package/dist/src/tools/ripGrep.js +125 -145
  133. package/dist/src/tools/ripGrep.js.map +1 -1
  134. package/dist/src/tools/ripGrep.test.js +144 -20
  135. package/dist/src/tools/ripGrep.test.js.map +1 -1
  136. package/dist/src/tools/tools.js +1 -1
  137. package/dist/src/tools/tools.js.map +1 -1
  138. package/dist/src/tools/write-todos.js +1 -1
  139. package/dist/src/tools/write-todos.js.map +1 -1
  140. package/dist/src/utils/llm-edit-fixer.test.js +8 -1
  141. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -1
  142. package/dist/tsconfig.tsbuildinfo +1 -1
  143. package/package.json +1 -1
  144. package/dist/google-gemini-cli-core-0.15.0-preview.2.tgz +0 -0
@@ -31,6 +31,30 @@ export interface RipGrepToolParams {
31
31
  * File pattern to include in the search (e.g. "*.js", "*.{ts,tsx}")
32
32
  */
33
33
  include?: string;
34
+ /**
35
+ * If true, searches case-sensitively. Defaults to false.
36
+ */
37
+ case_sensitive?: boolean;
38
+ /**
39
+ * If true, treats pattern as a literal string. Defaults to false.
40
+ */
41
+ fixed_strings?: boolean;
42
+ /**
43
+ * Show num lines of context around each match.
44
+ */
45
+ context?: number;
46
+ /**
47
+ * Show num lines after each match.
48
+ */
49
+ after?: number;
50
+ /**
51
+ * Show num lines before each match.
52
+ */
53
+ before?: number;
54
+ /**
55
+ * If true, does not respect .gitignore or default ignores (like build/dist).
56
+ */
57
+ no_ignore?: boolean;
34
58
  }
35
59
  /**
36
60
  * Implementation of the Grep tool logic (moved from CLI)
@@ -39,13 +63,6 @@ export declare class RipGrepTool extends BaseDeclarativeTool<RipGrepToolParams,
39
63
  private readonly config;
40
64
  static readonly Name = "search_file_content";
41
65
  constructor(config: Config, messageBus?: MessageBus);
42
- /**
43
- * Checks if a path is within the root directory and resolves it.
44
- * @param relativePath Path relative to the root directory (or undefined for root).
45
- * @returns The absolute path if valid and exists, or null if no path specified (to search all directories).
46
- * @throws {Error} If path is outside root, doesn't exist, or isn't a directory.
47
- */
48
- private resolveAndValidatePath;
49
66
  /**
50
67
  * Validates the parameters for the tool
51
68
  * @param params Parameters to validate
@@ -15,6 +15,7 @@ import { fileExists } from '../utils/fileUtils.js';
15
15
  import { Storage } from '../config/storage.js';
16
16
  import { GREP_TOOL_NAME } from './tool-names.js';
17
17
  import { debugLogger } from '../utils/debugLogger.js';
18
+ import { FileExclusions, COMMON_DIRECTORY_EXCLUDES, } from '../utils/ignorePatterns.js';
18
19
  const DEFAULT_TOTAL_MAX_MATCHES = 20000;
19
20
  function getRgCandidateFilenames() {
20
21
  return process.platform === 'win32' ? ['rg.exe', 'rg'] : ['rg'];
@@ -64,95 +65,73 @@ export async function ensureRgPath() {
64
65
  }
65
66
  throw new Error('Cannot use ripgrep.');
66
67
  }
68
+ /**
69
+ * Checks if a path is within the root directory and resolves it.
70
+ * @param config The configuration object.
71
+ * @param relativePath Path relative to the root directory (or undefined for root).
72
+ * @returns The absolute path if valid and exists, or null if no path specified.
73
+ * @throws {Error} If path is outside root, doesn't exist, or isn't a directory/file.
74
+ */
75
+ function resolveAndValidatePath(config, relativePath) {
76
+ if (!relativePath) {
77
+ return null;
78
+ }
79
+ const targetDir = config.getTargetDir();
80
+ const targetPath = path.resolve(targetDir, relativePath);
81
+ // Ensure the resolved path is within workspace boundaries
82
+ const workspaceContext = config.getWorkspaceContext();
83
+ if (!workspaceContext.isPathWithinWorkspace(targetPath)) {
84
+ const directories = workspaceContext.getDirectories();
85
+ throw new Error(`Path validation failed: Attempted path "${relativePath}" resolves outside the allowed workspace directories: ${directories.join(', ')}`);
86
+ }
87
+ // Check existence and type after resolving
88
+ try {
89
+ const stats = fs.statSync(targetPath);
90
+ if (!stats.isDirectory() && !stats.isFile()) {
91
+ throw new Error(`Path is not a valid directory or file: ${targetPath} (CWD: ${targetDir})`);
92
+ }
93
+ }
94
+ catch (error) {
95
+ if (isNodeError(error) && error.code === 'ENOENT') {
96
+ throw new Error(`Path does not exist: ${targetPath} (CWD: ${targetDir})`);
97
+ }
98
+ throw new Error(`Failed to access path stats for ${targetPath}: ${error}`);
99
+ }
100
+ return targetPath;
101
+ }
67
102
  class GrepToolInvocation extends BaseToolInvocation {
68
103
  config;
69
104
  constructor(config, params, messageBus, _toolName, _toolDisplayName) {
70
105
  super(params, messageBus, _toolName, _toolDisplayName);
71
106
  this.config = config;
72
107
  }
73
- /**
74
- * Checks if a path is within the root directory and resolves it.
75
- * @param relativePath Path relative to the root directory (or undefined for root).
76
- * @returns The absolute path if valid and exists, or null if no path specified (to search all directories).
77
- * @throws {Error} If path is outside root, doesn't exist, or isn't a directory.
78
- */
79
- resolveAndValidatePath(relativePath) {
80
- // If no path specified, return null to indicate searching all workspace directories
81
- if (!relativePath) {
82
- return null;
83
- }
84
- const targetPath = path.resolve(this.config.getTargetDir(), relativePath);
85
- // Security Check: Ensure the resolved path is within workspace boundaries
86
- const workspaceContext = this.config.getWorkspaceContext();
87
- if (!workspaceContext.isPathWithinWorkspace(targetPath)) {
88
- const directories = workspaceContext.getDirectories();
89
- throw new Error(`Path validation failed: Attempted path "${relativePath}" resolves outside the allowed workspace directories: ${directories.join(', ')}`);
90
- }
91
- // Check existence and type after resolving
92
- try {
93
- const stats = fs.statSync(targetPath);
94
- if (!stats.isDirectory()) {
95
- throw new Error(`Path is not a directory: ${targetPath}`);
96
- }
97
- }
98
- catch (error) {
99
- if (isNodeError(error) && error.code !== 'ENOENT') {
100
- throw new Error(`Path does not exist: ${targetPath}`);
101
- }
102
- throw new Error(`Failed to access path stats for ${targetPath}: ${error}`);
103
- }
104
- return targetPath;
105
- }
106
108
  async execute(signal) {
107
109
  try {
108
- const workspaceContext = this.config.getWorkspaceContext();
109
- const searchDirAbs = this.resolveAndValidatePath(this.params.dir_path);
110
- const searchDirDisplay = this.params.dir_path || '.';
111
- // Determine which directories to search
112
- let searchDirectories;
113
- if (searchDirAbs === null) {
114
- // No path specified - search all workspace directories
115
- searchDirectories = workspaceContext.getDirectories();
116
- }
117
- else {
118
- // Specific path provided - search only that directory
119
- searchDirectories = [searchDirAbs];
120
- }
121
- let allMatches = [];
110
+ // Default to '.' if path is explicitly undefined/null.
111
+ // This forces CWD search instead of 'all workspaces' search by default.
112
+ const pathParam = this.params.dir_path || '.';
113
+ const searchDirAbs = resolveAndValidatePath(this.config, pathParam);
114
+ const searchDirDisplay = pathParam;
122
115
  const totalMaxMatches = DEFAULT_TOTAL_MAX_MATCHES;
123
116
  if (this.config.getDebugMode()) {
124
117
  debugLogger.log(`[GrepTool] Total result limit: ${totalMaxMatches}`);
125
118
  }
126
- for (const searchDir of searchDirectories) {
127
- const searchResult = await this.performRipgrepSearch({
128
- pattern: this.params.pattern,
129
- path: searchDir,
130
- include: this.params.include,
131
- signal,
132
- });
133
- if (searchDirectories.length > 1) {
134
- const dirName = path.basename(searchDir);
135
- searchResult.forEach((match) => {
136
- match.filePath = path.join(dirName, match.filePath);
137
- });
138
- }
139
- allMatches = allMatches.concat(searchResult);
140
- if (allMatches.length >= totalMaxMatches) {
141
- allMatches = allMatches.slice(0, totalMaxMatches);
142
- break;
143
- }
144
- }
145
- let searchLocationDescription;
146
- if (searchDirAbs === null) {
147
- const numDirs = workspaceContext.getDirectories().length;
148
- searchLocationDescription =
149
- numDirs > 1
150
- ? `across ${numDirs} workspace directories`
151
- : `in the workspace directory`;
152
- }
153
- else {
154
- searchLocationDescription = `in path "${searchDirDisplay}"`;
119
+ let allMatches = await this.performRipgrepSearch({
120
+ pattern: this.params.pattern,
121
+ path: searchDirAbs,
122
+ include: this.params.include,
123
+ case_sensitive: this.params.case_sensitive,
124
+ fixed_strings: this.params.fixed_strings,
125
+ context: this.params.context,
126
+ after: this.params.after,
127
+ before: this.params.before,
128
+ no_ignore: this.params.no_ignore,
129
+ signal,
130
+ });
131
+ if (allMatches.length >= totalMaxMatches) {
132
+ allMatches = allMatches.slice(0, totalMaxMatches);
155
133
  }
134
+ const searchLocationDescription = `in path "${searchDirDisplay}"`;
156
135
  if (allMatches.length === 0) {
157
136
  const noMatchMsg = `No matches found for pattern "${this.params.pattern}" ${searchLocationDescription}${this.params.include ? ` (filter: "${this.params.include}")` : ''}.`;
158
137
  return { llmContent: noMatchMsg, returnDisplay: `No matches found` };
@@ -231,24 +210,44 @@ class GrepToolInvocation extends BaseToolInvocation {
231
210
  return results;
232
211
  }
233
212
  async performRipgrepSearch(options) {
234
- const { pattern, path: absolutePath, include } = options;
235
- const rgArgs = ['--json', '--ignore-case', '--regexp', pattern];
213
+ const { pattern, path: absolutePath, include, case_sensitive, fixed_strings, context, after, before, no_ignore, } = options;
214
+ const rgArgs = ['--json'];
215
+ if (!case_sensitive) {
216
+ rgArgs.push('--ignore-case');
217
+ }
218
+ if (fixed_strings) {
219
+ rgArgs.push('--fixed-strings');
220
+ rgArgs.push(pattern);
221
+ }
222
+ else {
223
+ rgArgs.push('--regexp', pattern);
224
+ }
225
+ if (context) {
226
+ rgArgs.push('--context', context.toString());
227
+ }
228
+ if (after) {
229
+ rgArgs.push('--after-context', after.toString());
230
+ }
231
+ if (before) {
232
+ rgArgs.push('--before-context', before.toString());
233
+ }
234
+ if (no_ignore) {
235
+ rgArgs.push('--no-ignore');
236
+ }
236
237
  if (include) {
237
238
  rgArgs.push('--glob', include);
238
239
  }
239
- const excludes = [
240
- '.git',
241
- 'node_modules',
242
- 'bower_components',
243
- '*.log',
244
- '*.tmp',
245
- 'build',
246
- 'dist',
247
- 'coverage',
248
- ];
249
- excludes.forEach((exclude) => {
250
- rgArgs.push('--glob', `!${exclude}`);
251
- });
240
+ if (!no_ignore) {
241
+ const fileExclusions = new FileExclusions(this.config);
242
+ const excludes = fileExclusions.getGlobExcludes([
243
+ ...COMMON_DIRECTORY_EXCLUDES,
244
+ '*.log',
245
+ '*.tmp',
246
+ ]);
247
+ excludes.forEach((exclude) => {
248
+ rgArgs.push('--glob', `!${exclude}`);
249
+ });
250
+ }
252
251
  rgArgs.push('--threads', '4');
253
252
  rgArgs.push(absolutePath);
254
253
  try {
@@ -303,24 +302,14 @@ class GrepToolInvocation extends BaseToolInvocation {
303
302
  if (this.params.include) {
304
303
  description += ` in ${this.params.include}`;
305
304
  }
306
- if (this.params.dir_path) {
307
- const resolvedPath = path.resolve(this.config.getTargetDir(), this.params.dir_path);
308
- if (resolvedPath === this.config.getTargetDir() ||
309
- this.params.dir_path === '.') {
310
- description += ` within ./`;
311
- }
312
- else {
313
- const relativePath = makeRelative(resolvedPath, this.config.getTargetDir());
314
- description += ` within ${shortenPath(relativePath)}`;
315
- }
305
+ const pathParam = this.params.dir_path || '.';
306
+ const resolvedPath = path.resolve(this.config.getTargetDir(), pathParam);
307
+ if (resolvedPath === this.config.getTargetDir() || pathParam === '.') {
308
+ description += ` within ./`;
316
309
  }
317
310
  else {
318
- // When no path is specified, indicate searching all workspace directories
319
- const workspaceContext = this.config.getWorkspaceContext();
320
- const directories = workspaceContext.getDirectories();
321
- if (directories.length > 1) {
322
- description += ` across all workspace directories`;
323
- }
311
+ const relativePath = makeRelative(resolvedPath, this.config.getTargetDir());
312
+ description += ` within ${shortenPath(relativePath)}`;
324
313
  }
325
314
  return description;
326
315
  }
@@ -332,20 +321,44 @@ export class RipGrepTool extends BaseDeclarativeTool {
332
321
  config;
333
322
  static Name = GREP_TOOL_NAME;
334
323
  constructor(config, messageBus) {
335
- super(RipGrepTool.Name, 'SearchText', 'Searches for a regular expression pattern within the content of files in a specified directory (or current working directory). Can filter files by a glob pattern. Returns the lines containing matches, along with their file paths and line numbers. Total results limited to 20,000 matches like VSCode.', Kind.Search, {
324
+ super(RipGrepTool.Name, 'SearchText', 'FAST, optimized search powered by `ripgrep`. PREFERRED over standard `run_shell_command("grep ...")` due to better performance and automatic output limiting (max 20k matches).', Kind.Search, {
336
325
  properties: {
337
326
  pattern: {
338
- description: "The regular expression (regex) pattern to search for within file contents (e.g., 'function\\s+myFunction', 'import\\s+\\{.*\\}\\s+from\\s+.*').",
327
+ description: "The pattern to search for. By default, treated as a Rust-flavored regular expression. Use '\\b' for precise symbol matching (e.g., '\\bMatchMe\\b').",
339
328
  type: 'string',
340
329
  },
341
330
  dir_path: {
342
- description: 'Optional: The absolute path to the directory to search within. If omitted, searches the current working directory.',
331
+ description: "Directory or file to search. Directories are searched recursively. Relative paths are resolved against current working directory. Defaults to current working directory ('.') if omitted.",
343
332
  type: 'string',
344
333
  },
345
334
  include: {
346
- description: "Optional: A glob pattern to filter which files are searched (e.g., '*.js', '*.{ts,tsx}', 'src/**'). If omitted, searches all files (respecting potential global ignores).",
335
+ description: "Glob pattern to filter files (e.g., '*.ts', 'src/**'). Recommended for large repositories to reduce noise. Defaults to all files if omitted.",
347
336
  type: 'string',
348
337
  },
338
+ case_sensitive: {
339
+ description: 'If true, search is case-sensitive. Defaults to false (ignore case) if omitted.',
340
+ type: 'boolean',
341
+ },
342
+ fixed_strings: {
343
+ description: 'If true, treats the `pattern` as a literal string instead of a regular expression. Defaults to false (basic regex) if omitted.',
344
+ type: 'boolean',
345
+ },
346
+ context: {
347
+ description: 'Show this many lines of context around each match (equivalent to grep -C). Defaults to 0 if omitted.',
348
+ type: 'integer',
349
+ },
350
+ after: {
351
+ description: 'Show this many lines after each match (equivalent to grep -A). Defaults to 0 if omitted.',
352
+ type: 'integer',
353
+ },
354
+ before: {
355
+ description: 'Show this many lines before each match (equivalent to grep -B). Defaults to 0 if omitted.',
356
+ type: 'integer',
357
+ },
358
+ no_ignore: {
359
+ description: 'If true, searches all files including those usually ignored (like in .gitignore, build/, dist/, etc). Defaults to false if omitted.',
360
+ type: 'boolean',
361
+ },
349
362
  },
350
363
  required: ['pattern'],
351
364
  type: 'object',
@@ -354,39 +367,6 @@ export class RipGrepTool extends BaseDeclarativeTool {
354
367
  messageBus);
355
368
  this.config = config;
356
369
  }
357
- /**
358
- * Checks if a path is within the root directory and resolves it.
359
- * @param relativePath Path relative to the root directory (or undefined for root).
360
- * @returns The absolute path if valid and exists, or null if no path specified (to search all directories).
361
- * @throws {Error} If path is outside root, doesn't exist, or isn't a directory.
362
- */
363
- resolveAndValidatePath(relativePath) {
364
- // If no path specified, return null to indicate searching all workspace directories
365
- if (!relativePath) {
366
- return null;
367
- }
368
- const targetPath = path.resolve(this.config.getTargetDir(), relativePath);
369
- // Security Check: Ensure the resolved path is within workspace boundaries
370
- const workspaceContext = this.config.getWorkspaceContext();
371
- if (!workspaceContext.isPathWithinWorkspace(targetPath)) {
372
- const directories = workspaceContext.getDirectories();
373
- throw new Error(`Path validation failed: Attempted path "${relativePath}" resolves outside the allowed workspace directories: ${directories.join(', ')}`);
374
- }
375
- // Check existence and type after resolving
376
- try {
377
- const stats = fs.statSync(targetPath);
378
- if (!stats.isDirectory()) {
379
- throw new Error(`Path is not a directory: ${targetPath}`);
380
- }
381
- }
382
- catch (error) {
383
- if (isNodeError(error) && error.code !== 'ENOENT') {
384
- throw new Error(`Path does not exist: ${targetPath}`);
385
- }
386
- throw new Error(`Failed to access path stats for ${targetPath}: ${error}`);
387
- }
388
- return targetPath;
389
- }
390
370
  /**
391
371
  * Validates the parameters for the tool
392
372
  * @param params Parameters to validate
@@ -400,7 +380,7 @@ export class RipGrepTool extends BaseDeclarativeTool {
400
380
  // Only validate path if one is provided
401
381
  if (params.dir_path) {
402
382
  try {
403
- this.resolveAndValidatePath(params.dir_path);
383
+ resolveAndValidatePath(this.config, params.dir_path);
404
384
  }
405
385
  catch (error) {
406
386
  return getErrorMessage(error);
@@ -1 +1 @@
1
- {"version":3,"file":"ripGrep.js","sourceRoot":"","sources":["../../../src/tools/ripGrep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ripGrep.js","sourceRoot":"","sources":["../../../src/tools/ripGrep.ts"],"names":[],"mappings":"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"}