@google/gemini-cli-core 0.1.20 → 0.1.22

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 (260) hide show
  1. package/README.md +27 -29
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/code_assist/converter.d.ts +1 -0
  6. package/dist/src/code_assist/converter.js +1 -0
  7. package/dist/src/code_assist/converter.js.map +1 -1
  8. package/dist/src/code_assist/oauth2.d.ts +1 -0
  9. package/dist/src/code_assist/oauth2.js +37 -20
  10. package/dist/src/code_assist/oauth2.js.map +1 -1
  11. package/dist/src/code_assist/oauth2.test.js +51 -8
  12. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  13. package/dist/src/code_assist/server.js +1 -1
  14. package/dist/src/code_assist/server.js.map +1 -1
  15. package/dist/src/code_assist/setup.js +47 -16
  16. package/dist/src/code_assist/setup.js.map +1 -1
  17. package/dist/src/code_assist/setup.test.js +114 -8
  18. package/dist/src/code_assist/setup.test.js.map +1 -1
  19. package/dist/src/config/config.d.ts +8 -3
  20. package/dist/src/config/config.js +25 -12
  21. package/dist/src/config/config.js.map +1 -1
  22. package/dist/src/config/config.test.js +83 -1
  23. package/dist/src/config/config.test.js.map +1 -1
  24. package/dist/src/core/client.d.ts +7 -12
  25. package/dist/src/core/client.js +67 -30
  26. package/dist/src/core/client.js.map +1 -1
  27. package/dist/src/core/client.test.js +354 -0
  28. package/dist/src/core/client.test.js.map +1 -1
  29. package/dist/src/core/contentGenerator.js +19 -11
  30. package/dist/src/core/contentGenerator.js.map +1 -1
  31. package/dist/src/core/contentGenerator.test.js +39 -15
  32. package/dist/src/core/contentGenerator.test.js.map +1 -1
  33. package/dist/src/core/coreToolScheduler.js +6 -2
  34. package/dist/src/core/coreToolScheduler.js.map +1 -1
  35. package/dist/src/core/coreToolScheduler.test.js +46 -65
  36. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  37. package/dist/src/core/logger.d.ts +22 -1
  38. package/dist/src/core/logger.js +103 -17
  39. package/dist/src/core/logger.js.map +1 -1
  40. package/dist/src/core/logger.test.js +86 -20
  41. package/dist/src/core/logger.test.js.map +1 -1
  42. package/dist/src/core/nonInteractiveToolExecutor.js +1 -1
  43. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  44. package/dist/src/core/nonInteractiveToolExecutor.test.js +79 -36
  45. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  46. package/dist/src/core/prompts.js +4 -4
  47. package/dist/src/core/prompts.js.map +1 -1
  48. package/dist/src/generated/git-commit.d.ts +7 -0
  49. package/dist/src/generated/git-commit.js +10 -0
  50. package/dist/src/generated/git-commit.js.map +1 -0
  51. package/dist/src/ide/constants.d.ts +6 -0
  52. package/dist/src/ide/constants.js +7 -0
  53. package/dist/src/ide/constants.js.map +1 -0
  54. package/dist/src/ide/detect-ide.d.ts +2 -0
  55. package/dist/src/ide/detect-ide.js +22 -6
  56. package/dist/src/ide/detect-ide.js.map +1 -1
  57. package/dist/src/ide/detect-ide.test.d.ts +6 -0
  58. package/dist/src/ide/detect-ide.test.js +65 -0
  59. package/dist/src/ide/detect-ide.test.js.map +1 -0
  60. package/dist/src/ide/ide-client.d.ts +5 -1
  61. package/dist/src/ide/ide-client.js +57 -21
  62. package/dist/src/ide/ide-client.js.map +1 -1
  63. package/dist/src/ide/ide-client.test.d.ts +6 -0
  64. package/dist/src/ide/ide-client.test.js +43 -0
  65. package/dist/src/ide/ide-client.test.js.map +1 -0
  66. package/dist/src/ide/ide-installer.js +5 -4
  67. package/dist/src/ide/ide-installer.js.map +1 -1
  68. package/dist/src/ide/process-utils.d.ts +14 -0
  69. package/dist/src/ide/process-utils.js +57 -0
  70. package/dist/src/ide/process-utils.js.map +1 -0
  71. package/dist/src/index.d.ts +2 -0
  72. package/dist/src/index.js +2 -0
  73. package/dist/src/index.js.map +1 -1
  74. package/dist/src/mcp/oauth-provider.d.ts +0 -1
  75. package/dist/src/mcp/oauth-provider.js +176 -59
  76. package/dist/src/mcp/oauth-provider.js.map +1 -1
  77. package/dist/src/mcp/oauth-provider.test.js +132 -62
  78. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  79. package/dist/src/mcp/oauth-utils.d.ts +3 -1
  80. package/dist/src/mcp/oauth-utils.js +50 -12
  81. package/dist/src/mcp/oauth-utils.js.map +1 -1
  82. package/dist/src/mcp/oauth-utils.test.js +17 -2
  83. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  84. package/dist/src/services/loopDetectionService.js +5 -5
  85. package/dist/src/services/loopDetectionService.js.map +1 -1
  86. package/dist/src/services/shellExecutionService.test.js +13 -3
  87. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  88. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +23 -4
  89. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +84 -33
  90. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  91. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +11 -0
  92. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +143 -29
  93. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  94. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +8 -2
  95. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +17 -9
  96. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  97. package/dist/src/telemetry/constants.d.ts +1 -0
  98. package/dist/src/telemetry/constants.js +1 -0
  99. package/dist/src/telemetry/constants.js.map +1 -1
  100. package/dist/src/telemetry/index.d.ts +2 -2
  101. package/dist/src/telemetry/index.js +2 -2
  102. package/dist/src/telemetry/index.js.map +1 -1
  103. package/dist/src/telemetry/integration.test.circular.js +1 -0
  104. package/dist/src/telemetry/integration.test.circular.js.map +1 -1
  105. package/dist/src/telemetry/loggers.d.ts +3 -1
  106. package/dist/src/telemetry/loggers.js +37 -4
  107. package/dist/src/telemetry/loggers.js.map +1 -1
  108. package/dist/src/telemetry/loggers.test.js +27 -2
  109. package/dist/src/telemetry/loggers.test.js.map +1 -1
  110. package/dist/src/telemetry/metrics.d.ts +4 -0
  111. package/dist/src/telemetry/metrics.js +21 -8
  112. package/dist/src/telemetry/metrics.js.map +1 -1
  113. package/dist/src/telemetry/metrics.test.js +31 -1
  114. package/dist/src/telemetry/metrics.test.js.map +1 -1
  115. package/dist/src/telemetry/sdk.js +64 -36
  116. package/dist/src/telemetry/sdk.js.map +1 -1
  117. package/dist/src/telemetry/sdk.test.d.ts +6 -0
  118. package/dist/src/telemetry/sdk.test.js +82 -0
  119. package/dist/src/telemetry/sdk.test.js.map +1 -0
  120. package/dist/src/telemetry/types.d.ts +40 -14
  121. package/dist/src/telemetry/types.js +46 -23
  122. package/dist/src/telemetry/types.js.map +1 -1
  123. package/dist/src/test-utils/tools.d.ts +21 -6
  124. package/dist/src/test-utils/tools.js +78 -13
  125. package/dist/src/test-utils/tools.js.map +1 -1
  126. package/dist/src/tools/edit.js +2 -2
  127. package/dist/src/tools/edit.js.map +1 -1
  128. package/dist/src/tools/glob.js +2 -2
  129. package/dist/src/tools/glob.js.map +1 -1
  130. package/dist/src/tools/grep.js +2 -2
  131. package/dist/src/tools/grep.js.map +1 -1
  132. package/dist/src/tools/ls.d.ts +3 -22
  133. package/dist/src/tools/ls.js +81 -77
  134. package/dist/src/tools/ls.js.map +1 -1
  135. package/dist/src/tools/ls.test.js +62 -34
  136. package/dist/src/tools/ls.test.js.map +1 -1
  137. package/dist/src/tools/mcp-client.js +40 -10
  138. package/dist/src/tools/mcp-client.js.map +1 -1
  139. package/dist/src/tools/mcp-client.test.js +31 -1
  140. package/dist/src/tools/mcp-client.test.js.map +1 -1
  141. package/dist/src/tools/mcp-tool.d.ts +3 -5
  142. package/dist/src/tools/mcp-tool.js +62 -21
  143. package/dist/src/tools/mcp-tool.js.map +1 -1
  144. package/dist/src/tools/mcp-tool.test.js +110 -51
  145. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  146. package/dist/src/tools/memoryTool.d.ts +9 -13
  147. package/dist/src/tools/memoryTool.js +124 -117
  148. package/dist/src/tools/memoryTool.js.map +1 -1
  149. package/dist/src/tools/memoryTool.test.js +28 -17
  150. package/dist/src/tools/memoryTool.test.js.map +1 -1
  151. package/dist/src/tools/read-file.js +2 -2
  152. package/dist/src/tools/read-file.js.map +1 -1
  153. package/dist/src/tools/read-many-files.d.ts +4 -5
  154. package/dist/src/tools/read-many-files.js +112 -100
  155. package/dist/src/tools/read-many-files.js.map +1 -1
  156. package/dist/src/tools/read-many-files.test.js +60 -37
  157. package/dist/src/tools/read-many-files.test.js.map +1 -1
  158. package/dist/src/tools/shell.d.ts +4 -6
  159. package/dist/src/tools/shell.js +116 -105
  160. package/dist/src/tools/shell.js.map +1 -1
  161. package/dist/src/tools/shell.test.js +52 -46
  162. package/dist/src/tools/shell.test.js.map +1 -1
  163. package/dist/src/tools/tool-error.d.ts +1 -0
  164. package/dist/src/tools/tool-error.js +1 -0
  165. package/dist/src/tools/tool-error.js.map +1 -1
  166. package/dist/src/tools/tool-registry.d.ts +8 -3
  167. package/dist/src/tools/tool-registry.js +56 -30
  168. package/dist/src/tools/tool-registry.js.map +1 -1
  169. package/dist/src/tools/tools.d.ts +28 -86
  170. package/dist/src/tools/tools.js +67 -122
  171. package/dist/src/tools/tools.js.map +1 -1
  172. package/dist/src/tools/tools.test.js +91 -2
  173. package/dist/src/tools/tools.test.js.map +1 -1
  174. package/dist/src/tools/web-fetch.d.ts +4 -7
  175. package/dist/src/tools/web-fetch.js +62 -62
  176. package/dist/src/tools/web-fetch.js.map +1 -1
  177. package/dist/src/tools/web-fetch.test.js +8 -4
  178. package/dist/src/tools/web-fetch.test.js.map +1 -1
  179. package/dist/src/tools/web-search.d.ts +4 -5
  180. package/dist/src/tools/web-search.js +51 -50
  181. package/dist/src/tools/web-search.js.map +1 -1
  182. package/dist/src/tools/web-search.test.d.ts +6 -0
  183. package/dist/src/tools/web-search.test.js +139 -0
  184. package/dist/src/tools/web-search.test.js.map +1 -0
  185. package/dist/src/tools/write-file.d.ts +15 -10
  186. package/dist/src/tools/write-file.js +133 -141
  187. package/dist/src/tools/write-file.js.map +1 -1
  188. package/dist/src/tools/write-file.test.js +57 -88
  189. package/dist/src/tools/write-file.test.js.map +1 -1
  190. package/dist/src/utils/browser.js +4 -3
  191. package/dist/src/utils/browser.js.map +1 -1
  192. package/dist/src/utils/editCorrector.js +13 -13
  193. package/dist/src/utils/editCorrector.js.map +1 -1
  194. package/dist/src/utils/editor.js +1 -1
  195. package/dist/src/utils/editor.js.map +1 -1
  196. package/dist/src/utils/editor.test.js +10 -10
  197. package/dist/src/utils/editor.test.js.map +1 -1
  198. package/dist/src/utils/errorParsing.d.ts +8 -0
  199. package/dist/src/utils/errorParsing.js +93 -0
  200. package/dist/src/utils/errorParsing.js.map +1 -0
  201. package/dist/src/utils/errorParsing.test.d.ts +6 -0
  202. package/dist/src/utils/errorParsing.test.js +172 -0
  203. package/dist/src/utils/errorParsing.test.js.map +1 -0
  204. package/dist/src/utils/filesearch/crawler.d.ts +15 -0
  205. package/dist/src/utils/filesearch/crawler.js +50 -0
  206. package/dist/src/utils/filesearch/crawler.js.map +1 -0
  207. package/dist/src/utils/filesearch/crawler.test.d.ts +6 -0
  208. package/dist/src/utils/filesearch/crawler.test.js +468 -0
  209. package/dist/src/utils/filesearch/crawler.test.js.map +1 -0
  210. package/dist/src/utils/filesearch/fileSearch.d.ts +9 -53
  211. package/dist/src/utils/filesearch/fileSearch.js +63 -118
  212. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  213. package/dist/src/utils/filesearch/fileSearch.test.js +95 -197
  214. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
  215. package/dist/src/utils/filesearch/ignore.d.ts +7 -0
  216. package/dist/src/utils/filesearch/ignore.js +25 -0
  217. package/dist/src/utils/filesearch/ignore.js.map +1 -1
  218. package/dist/src/utils/filesearch/ignore.test.js +89 -2
  219. package/dist/src/utils/filesearch/ignore.test.js.map +1 -1
  220. package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
  221. package/dist/src/utils/filesearch/result-cache.js +1 -3
  222. package/dist/src/utils/filesearch/result-cache.js.map +1 -1
  223. package/dist/src/utils/filesearch/result-cache.test.js +3 -4
  224. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -1
  225. package/dist/src/utils/memoryDiscovery.js +3 -3
  226. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  227. package/dist/src/utils/memoryDiscovery.test.js +3 -2
  228. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  229. package/dist/src/utils/memoryImportProcessor.js +3 -7
  230. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  231. package/dist/src/utils/memoryImportProcessor.test.js +17 -20
  232. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  233. package/dist/src/utils/paths.d.ts +7 -0
  234. package/dist/src/utils/paths.js +15 -0
  235. package/dist/src/utils/paths.js.map +1 -1
  236. package/dist/src/utils/paths.test.js +74 -2
  237. package/dist/src/utils/paths.test.js.map +1 -1
  238. package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
  239. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  240. package/dist/src/utils/secure-browser-launcher.js +4 -3
  241. package/dist/src/utils/secure-browser-launcher.js.map +1 -1
  242. package/dist/src/utils/shell-utils.d.ts +39 -0
  243. package/dist/src/utils/shell-utils.js +72 -2
  244. package/dist/src/utils/shell-utils.js.map +1 -1
  245. package/dist/src/utils/shell-utils.test.js +132 -4
  246. package/dist/src/utils/shell-utils.test.js.map +1 -1
  247. package/dist/src/utils/systemEncoding.js +1 -1
  248. package/dist/src/utils/systemEncoding.js.map +1 -1
  249. package/dist/src/utils/systemEncoding.test.js +23 -23
  250. package/dist/src/utils/systemEncoding.test.js.map +1 -1
  251. package/dist/src/utils/workspaceContext.d.ts +22 -7
  252. package/dist/src/utils/workspaceContext.js +81 -55
  253. package/dist/src/utils/workspaceContext.js.map +1 -1
  254. package/dist/src/utils/workspaceContext.test.js +221 -137
  255. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  256. package/dist/tsconfig.tsbuildinfo +1 -1
  257. package/package.json +5 -2
  258. package/dist/src/core/modelCheck.d.ts +0 -14
  259. package/dist/src/core/modelCheck.js +0 -62
  260. package/dist/src/core/modelCheck.js.map +0 -1
@@ -3,11 +3,8 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
7
- import * as fs from 'fs/promises';
8
- import * as path from 'path';
9
- import * as cache from './crawlCache.js';
10
- import { FileSearch, AbortError, filter } from './fileSearch.js';
6
+ import { describe, it, expect, afterEach, vi } from 'vitest';
7
+ import { FileSearchFactory, AbortError, filter } from './fileSearch.js';
11
8
  import { createTmpDir, cleanupTmpDir } from '@google/gemini-cli-test-utils';
12
9
  describe('FileSearch', () => {
13
10
  let tmpDir;
@@ -23,13 +20,14 @@ describe('FileSearch', () => {
23
20
  dist: ['ignored.js'],
24
21
  src: ['not-ignored.js'],
25
22
  });
26
- const fileSearch = new FileSearch({
23
+ const fileSearch = FileSearchFactory.create({
27
24
  projectRoot: tmpDir,
28
25
  useGitignore: false,
29
26
  useGeminiignore: true,
30
27
  ignoreDirs: [],
31
28
  cache: false,
32
29
  cacheTtl: 0,
30
+ enableRecursiveFileSearch: true,
33
31
  });
34
32
  await fileSearch.initialize();
35
33
  const results = await fileSearch.search('');
@@ -43,13 +41,14 @@ describe('FileSearch', () => {
43
41
  build: ['ignored-by-gemini.js'],
44
42
  src: ['not-ignored.js'],
45
43
  });
46
- const fileSearch = new FileSearch({
44
+ const fileSearch = FileSearchFactory.create({
47
45
  projectRoot: tmpDir,
48
46
  useGitignore: true,
49
47
  useGeminiignore: true,
50
48
  ignoreDirs: [],
51
49
  cache: false,
52
50
  cacheTtl: 0,
51
+ enableRecursiveFileSearch: true,
53
52
  });
54
53
  await fileSearch.initialize();
55
54
  const results = await fileSearch.search('');
@@ -65,13 +64,14 @@ describe('FileSearch', () => {
65
64
  logs: ['some.log'],
66
65
  src: ['main.js'],
67
66
  });
68
- const fileSearch = new FileSearch({
67
+ const fileSearch = FileSearchFactory.create({
69
68
  projectRoot: tmpDir,
70
69
  useGitignore: false,
71
70
  useGeminiignore: false,
72
71
  ignoreDirs: ['logs'],
73
72
  cache: false,
74
73
  cacheTtl: 0,
74
+ enableRecursiveFileSearch: true,
75
75
  });
76
76
  await fileSearch.initialize();
77
77
  const results = await fileSearch.search('');
@@ -86,13 +86,14 @@ describe('FileSearch', () => {
86
86
  },
87
87
  src: ['main.js'],
88
88
  });
89
- const fileSearch = new FileSearch({
89
+ const fileSearch = FileSearchFactory.create({
90
90
  projectRoot: tmpDir,
91
91
  useGitignore: true,
92
92
  useGeminiignore: false,
93
93
  ignoreDirs: [],
94
94
  cache: false,
95
95
  cacheTtl: 0,
96
+ enableRecursiveFileSearch: true,
96
97
  });
97
98
  await fileSearch.initialize();
98
99
  const results = await fileSearch.search('');
@@ -113,13 +114,14 @@ describe('FileSearch', () => {
113
114
  'style.css': '',
114
115
  },
115
116
  });
116
- const fileSearch = new FileSearch({
117
+ const fileSearch = FileSearchFactory.create({
117
118
  projectRoot: tmpDir,
118
119
  useGitignore: false,
119
120
  useGeminiignore: false,
120
121
  ignoreDirs: [],
121
122
  cache: false,
122
123
  cacheTtl: 0,
124
+ enableRecursiveFileSearch: true,
123
125
  });
124
126
  await fileSearch.initialize();
125
127
  const results = await fileSearch.search('**/*.js');
@@ -131,13 +133,14 @@ describe('FileSearch', () => {
131
133
  'bar.mk': '',
132
134
  'Foo.mk': '',
133
135
  });
134
- const fileSearch = new FileSearch({
136
+ const fileSearch = FileSearchFactory.create({
135
137
  projectRoot: tmpDir,
136
138
  useGitignore: true,
137
139
  useGeminiignore: false,
138
140
  ignoreDirs: [],
139
141
  cache: false,
140
142
  cacheTtl: 0,
143
+ enableRecursiveFileSearch: true,
141
144
  });
142
145
  await fileSearch.initialize();
143
146
  const results = await fileSearch.search('');
@@ -160,13 +163,14 @@ describe('FileSearch', () => {
160
163
  ignore_this: '',
161
164
  },
162
165
  });
163
- const fileSearch = new FileSearch({
166
+ const fileSearch = FileSearchFactory.create({
164
167
  projectRoot: tmpDir,
165
168
  useGitignore: true,
166
169
  useGeminiignore: false,
167
170
  ignoreDirs: [],
168
171
  cache: false,
169
172
  cacheTtl: 0,
173
+ enableRecursiveFileSearch: true,
170
174
  });
171
175
  await fileSearch.initialize();
172
176
  const results = await fileSearch.search('');
@@ -184,13 +188,14 @@ describe('FileSearch', () => {
184
188
  dist: ['ignore.js', 'keep.js'],
185
189
  src: ['main.js'],
186
190
  });
187
- const fileSearch = new FileSearch({
191
+ const fileSearch = FileSearchFactory.create({
188
192
  projectRoot: tmpDir,
189
193
  useGitignore: true,
190
194
  useGeminiignore: false,
191
195
  ignoreDirs: [],
192
196
  cache: false,
193
197
  cacheTtl: 0,
198
+ enableRecursiveFileSearch: true,
194
199
  });
195
200
  await fileSearch.initialize();
196
201
  const results = await fileSearch.search('');
@@ -207,13 +212,14 @@ describe('FileSearch', () => {
207
212
  tmpDir = await createTmpDir({
208
213
  src: ['file1.js'],
209
214
  });
210
- const fileSearch = new FileSearch({
215
+ const fileSearch = FileSearchFactory.create({
211
216
  projectRoot: tmpDir,
212
217
  useGitignore: true,
213
218
  useGeminiignore: true,
214
219
  ignoreDirs: [],
215
220
  cache: false,
216
221
  cacheTtl: 0,
222
+ enableRecursiveFileSearch: true,
217
223
  });
218
224
  // Expect no errors to be thrown during initialization
219
225
  await expect(fileSearch.initialize()).resolves.toBeUndefined();
@@ -229,13 +235,14 @@ describe('FileSearch', () => {
229
235
  'file4.js': '',
230
236
  },
231
237
  });
232
- const fileSearch = new FileSearch({
238
+ const fileSearch = FileSearchFactory.create({
233
239
  projectRoot: tmpDir,
234
240
  useGitignore: false,
235
241
  useGeminiignore: false,
236
242
  ignoreDirs: [],
237
243
  cache: false,
238
244
  cacheTtl: 0,
245
+ enableRecursiveFileSearch: true,
239
246
  });
240
247
  await fileSearch.initialize();
241
248
  const results = await fileSearch.search('**/*.js', { maxResults: 2 });
@@ -249,13 +256,14 @@ describe('FileSearch', () => {
249
256
  'style.css': '',
250
257
  },
251
258
  });
252
- const fileSearch = new FileSearch({
259
+ const fileSearch = FileSearchFactory.create({
253
260
  projectRoot: tmpDir,
254
261
  useGitignore: false,
255
262
  useGeminiignore: false,
256
263
  ignoreDirs: [],
257
264
  cache: false,
258
265
  cacheTtl: 0,
266
+ enableRecursiveFileSearch: true,
259
267
  });
260
268
  await fileSearch.initialize();
261
269
  const results = await fileSearch.search('sst');
@@ -265,13 +273,14 @@ describe('FileSearch', () => {
265
273
  tmpDir = await createTmpDir({
266
274
  src: ['file1.js'],
267
275
  });
268
- const fileSearch = new FileSearch({
276
+ const fileSearch = FileSearchFactory.create({
269
277
  projectRoot: tmpDir,
270
278
  useGitignore: false,
271
279
  useGeminiignore: false,
272
280
  ignoreDirs: [],
273
281
  cache: false,
274
282
  cacheTtl: 0,
283
+ enableRecursiveFileSearch: true,
275
284
  });
276
285
  await fileSearch.initialize();
277
286
  const results = await fileSearch.search('nonexistent-file.xyz');
@@ -285,138 +294,32 @@ describe('FileSearch', () => {
285
294
  setTimeout(() => controller.abort(), 1);
286
295
  await expect(filterPromise).rejects.toThrow(AbortError);
287
296
  });
288
- describe('with in-memory cache', () => {
289
- beforeEach(() => {
290
- cache.clear();
291
- });
292
- afterEach(() => {
293
- vi.useRealTimers();
294
- });
295
- it('should throw an error if search is called before initialization', async () => {
296
- tmpDir = await createTmpDir({});
297
- const fileSearch = new FileSearch({
298
- projectRoot: tmpDir,
299
- useGitignore: false,
300
- useGeminiignore: false,
301
- ignoreDirs: [],
302
- cache: false,
303
- cacheTtl: 0,
304
- });
305
- await expect(fileSearch.search('')).rejects.toThrow('Engine not initialized. Call initialize() first.');
306
- });
307
- it('should hit the cache for subsequent searches', async () => {
308
- tmpDir = await createTmpDir({ 'file1.js': '' });
309
- const getOptions = () => ({
310
- projectRoot: tmpDir,
311
- useGitignore: false,
312
- useGeminiignore: false,
313
- ignoreDirs: [],
314
- cache: true,
315
- cacheTtl: 10,
316
- });
317
- const fs1 = new FileSearch(getOptions());
318
- const crawlSpy1 = vi.spyOn(fs1, 'performCrawl');
319
- await fs1.initialize();
320
- expect(crawlSpy1).toHaveBeenCalledTimes(1);
321
- // Second search should hit the cache because the options are identical
322
- const fs2 = new FileSearch(getOptions());
323
- const crawlSpy2 = vi.spyOn(fs2, 'performCrawl');
324
- await fs2.initialize();
325
- expect(crawlSpy2).not.toHaveBeenCalled();
326
- });
327
- it('should miss the cache when ignore rules change', async () => {
328
- tmpDir = await createTmpDir({
329
- '.gitignore': 'a.txt',
330
- 'a.txt': '',
331
- 'b.txt': '',
332
- });
333
- const options = {
334
- projectRoot: tmpDir,
335
- useGitignore: true,
336
- useGeminiignore: false,
337
- ignoreDirs: [],
338
- cache: true,
339
- cacheTtl: 10000,
340
- };
341
- // Initial search to populate the cache
342
- const fs1 = new FileSearch(options);
343
- const crawlSpy1 = vi.spyOn(fs1, 'performCrawl');
344
- await fs1.initialize();
345
- const results1 = await fs1.search('');
346
- expect(crawlSpy1).toHaveBeenCalledTimes(1);
347
- expect(results1).toEqual(['.gitignore', 'b.txt']);
348
- // Modify the ignore file
349
- await fs.writeFile(path.join(tmpDir, '.gitignore'), 'b.txt');
350
- // Second search should miss the cache and trigger a recrawl
351
- const fs2 = new FileSearch(options);
352
- const crawlSpy2 = vi.spyOn(fs2, 'performCrawl');
353
- await fs2.initialize();
354
- const results2 = await fs2.search('');
355
- expect(crawlSpy2).toHaveBeenCalledTimes(1);
356
- expect(results2).toEqual(['.gitignore', 'a.txt']);
357
- });
358
- it('should miss the cache after TTL expires', async () => {
359
- vi.useFakeTimers();
360
- tmpDir = await createTmpDir({ 'file1.js': '' });
361
- const options = {
362
- projectRoot: tmpDir,
363
- useGitignore: false,
364
- useGeminiignore: false,
365
- ignoreDirs: [],
366
- cache: true,
367
- cacheTtl: 10, // 10 seconds
368
- };
369
- // Initial search to populate the cache
370
- const fs1 = new FileSearch(options);
371
- await fs1.initialize();
372
- // Advance time past the TTL
373
- await vi.advanceTimersByTimeAsync(11000);
374
- // Second search should miss the cache and trigger a recrawl
375
- const fs2 = new FileSearch(options);
376
- const crawlSpy = vi.spyOn(fs2, 'performCrawl');
377
- await fs2.initialize();
378
- expect(crawlSpy).toHaveBeenCalledTimes(1);
379
- });
380
- it('should miss the cache when maxDepth changes', async () => {
381
- tmpDir = await createTmpDir({ 'file1.js': '' });
382
- const getOptions = (maxDepth) => ({
383
- projectRoot: tmpDir,
384
- useGitignore: false,
385
- useGeminiignore: false,
386
- ignoreDirs: [],
387
- cache: true,
388
- cacheTtl: 10000,
389
- maxDepth,
390
- });
391
- // 1. First search with maxDepth: 1, should trigger a crawl.
392
- const fs1 = new FileSearch(getOptions(1));
393
- const crawlSpy1 = vi.spyOn(fs1, 'performCrawl');
394
- await fs1.initialize();
395
- expect(crawlSpy1).toHaveBeenCalledTimes(1);
396
- // 2. Second search with maxDepth: 2, should be a cache miss and trigger a crawl.
397
- const fs2 = new FileSearch(getOptions(2));
398
- const crawlSpy2 = vi.spyOn(fs2, 'performCrawl');
399
- await fs2.initialize();
400
- expect(crawlSpy2).toHaveBeenCalledTimes(1);
401
- // 3. Third search with maxDepth: 1 again, should be a cache hit.
402
- const fs3 = new FileSearch(getOptions(1));
403
- const crawlSpy3 = vi.spyOn(fs3, 'performCrawl');
404
- await fs3.initialize();
405
- expect(crawlSpy3).not.toHaveBeenCalled();
297
+ it('should throw an error if search is called before initialization', async () => {
298
+ tmpDir = await createTmpDir({});
299
+ const fileSearch = FileSearchFactory.create({
300
+ projectRoot: tmpDir,
301
+ useGitignore: false,
302
+ useGeminiignore: false,
303
+ ignoreDirs: [],
304
+ cache: false,
305
+ cacheTtl: 0,
306
+ enableRecursiveFileSearch: true,
406
307
  });
308
+ await expect(fileSearch.search('')).rejects.toThrow('Engine not initialized. Call initialize() first.');
407
309
  });
408
310
  it('should handle empty or commented-only ignore files', async () => {
409
311
  tmpDir = await createTmpDir({
410
312
  '.gitignore': '# This is a comment\n\n \n',
411
313
  src: ['main.js'],
412
314
  });
413
- const fileSearch = new FileSearch({
315
+ const fileSearch = FileSearchFactory.create({
414
316
  projectRoot: tmpDir,
415
317
  useGitignore: true,
416
318
  useGeminiignore: false,
417
319
  ignoreDirs: [],
418
320
  cache: false,
419
321
  cacheTtl: 0,
322
+ enableRecursiveFileSearch: true,
420
323
  });
421
324
  await fileSearch.initialize();
422
325
  const results = await fileSearch.search('');
@@ -427,13 +330,14 @@ describe('FileSearch', () => {
427
330
  '.git': ['config', 'HEAD'],
428
331
  src: ['main.js'],
429
332
  });
430
- const fileSearch = new FileSearch({
333
+ const fileSearch = FileSearchFactory.create({
431
334
  projectRoot: tmpDir,
432
335
  useGitignore: false, // Explicitly disable .gitignore to isolate this rule
433
336
  useGeminiignore: false,
434
337
  ignoreDirs: [],
435
338
  cache: false,
436
339
  cacheTtl: 0,
340
+ enableRecursiveFileSearch: true,
437
341
  });
438
342
  await fileSearch.initialize();
439
343
  const results = await fileSearch.search('');
@@ -445,13 +349,14 @@ describe('FileSearch', () => {
445
349
  largeDir[`file${i}.js`] = '';
446
350
  }
447
351
  tmpDir = await createTmpDir(largeDir);
448
- const fileSearch = new FileSearch({
352
+ const fileSearch = FileSearchFactory.create({
449
353
  projectRoot: tmpDir,
450
354
  useGitignore: false,
451
355
  useGeminiignore: false,
452
356
  ignoreDirs: [],
453
357
  cache: false,
454
358
  cacheTtl: 0,
359
+ enableRecursiveFileSearch: true,
455
360
  });
456
361
  await fileSearch.initialize();
457
362
  const controller = new AbortController();
@@ -473,13 +378,14 @@ describe('FileSearch', () => {
473
378
  },
474
379
  },
475
380
  });
476
- const fileSearch = new FileSearch({
381
+ const fileSearch = FileSearchFactory.create({
477
382
  projectRoot: tmpDir,
478
383
  useGitignore: false,
479
384
  useGeminiignore: false,
480
385
  ignoreDirs: [],
481
386
  cache: true, // Enable caching for this test
482
387
  cacheTtl: 0,
388
+ enableRecursiveFileSearch: true,
483
389
  });
484
390
  await fileSearch.initialize();
485
391
  // Perform a broad search to prime the cache
@@ -505,13 +411,14 @@ describe('FileSearch', () => {
505
411
  'FILE3.JS': '',
506
412
  'other.txt': '',
507
413
  });
508
- const fileSearch = new FileSearch({
414
+ const fileSearch = FileSearchFactory.create({
509
415
  projectRoot: tmpDir,
510
416
  useGitignore: false,
511
417
  useGeminiignore: false,
512
418
  ignoreDirs: [],
513
419
  cache: false,
514
420
  cacheTtl: 0,
421
+ enableRecursiveFileSearch: true,
515
422
  });
516
423
  await fileSearch.initialize();
517
424
  // Search with a lowercase pattern
@@ -535,13 +442,14 @@ describe('FileSearch', () => {
535
442
  'file4.js': '',
536
443
  'file5.js': '',
537
444
  });
538
- const fileSearch = new FileSearch({
445
+ const fileSearch = FileSearchFactory.create({
539
446
  projectRoot: tmpDir,
540
447
  useGitignore: false,
541
448
  useGeminiignore: false,
542
449
  ignoreDirs: [],
543
450
  cache: true, // Ensure caching is enabled
544
451
  cacheTtl: 10000,
452
+ enableRecursiveFileSearch: true,
545
453
  });
546
454
  await fileSearch.initialize();
547
455
  // 1. Perform a broad search to populate the cache with an exact match.
@@ -558,96 +466,86 @@ describe('FileSearch', () => {
558
466
  // 3. Assert that the maxResults limit was respected, even with a cache hit.
559
467
  expect(limitedResults).toEqual(['file1.js', 'file2.js']);
560
468
  });
561
- describe('with maxDepth', () => {
562
- beforeEach(async () => {
469
+ describe('DirectoryFileSearch', () => {
470
+ it('should search for files in the current directory', async () => {
563
471
  tmpDir = await createTmpDir({
564
- 'file-root.txt': '',
565
- level1: {
566
- 'file-level1.txt': '',
567
- level2: {
568
- 'file-level2.txt': '',
569
- level3: {
570
- 'file-level3.txt': '',
571
- },
572
- },
573
- },
472
+ 'file1.js': '',
473
+ 'file2.ts': '',
474
+ 'file3.js': '',
574
475
  });
575
- });
576
- it('should only search top-level files when maxDepth is 0', async () => {
577
- const fileSearch = new FileSearch({
476
+ const fileSearch = FileSearchFactory.create({
578
477
  projectRoot: tmpDir,
579
478
  useGitignore: false,
580
479
  useGeminiignore: false,
581
480
  ignoreDirs: [],
582
481
  cache: false,
583
482
  cacheTtl: 0,
584
- maxDepth: 0,
483
+ enableRecursiveFileSearch: false,
585
484
  });
586
485
  await fileSearch.initialize();
587
- const results = await fileSearch.search('');
588
- expect(results).toEqual(['level1/', 'file-root.txt']);
486
+ const results = await fileSearch.search('*.js');
487
+ expect(results).toEqual(['file1.js', 'file3.js']);
589
488
  });
590
- it('should search one level deep when maxDepth is 1', async () => {
591
- const fileSearch = new FileSearch({
489
+ it('should search for files in a subdirectory', async () => {
490
+ tmpDir = await createTmpDir({
491
+ 'file1.js': '',
492
+ src: {
493
+ 'file2.js': '',
494
+ 'file3.ts': '',
495
+ },
496
+ });
497
+ const fileSearch = FileSearchFactory.create({
592
498
  projectRoot: tmpDir,
593
499
  useGitignore: false,
594
500
  useGeminiignore: false,
595
501
  ignoreDirs: [],
596
502
  cache: false,
597
503
  cacheTtl: 0,
598
- maxDepth: 1,
504
+ enableRecursiveFileSearch: false,
599
505
  });
600
506
  await fileSearch.initialize();
601
- const results = await fileSearch.search('');
602
- expect(results).toEqual([
603
- 'level1/',
604
- 'level1/level2/',
605
- 'file-root.txt',
606
- 'level1/file-level1.txt',
607
- ]);
608
- });
609
- it('should search two levels deep when maxDepth is 2', async () => {
610
- const fileSearch = new FileSearch({
507
+ const results = await fileSearch.search('src/*.js');
508
+ expect(results).toEqual(['src/file2.js']);
509
+ });
510
+ it('should list all files in a directory', async () => {
511
+ tmpDir = await createTmpDir({
512
+ 'file1.js': '',
513
+ src: {
514
+ 'file2.js': '',
515
+ 'file3.ts': '',
516
+ },
517
+ });
518
+ const fileSearch = FileSearchFactory.create({
611
519
  projectRoot: tmpDir,
612
520
  useGitignore: false,
613
521
  useGeminiignore: false,
614
522
  ignoreDirs: [],
615
523
  cache: false,
616
524
  cacheTtl: 0,
617
- maxDepth: 2,
525
+ enableRecursiveFileSearch: false,
618
526
  });
619
527
  await fileSearch.initialize();
620
- const results = await fileSearch.search('');
621
- expect(results).toEqual([
622
- 'level1/',
623
- 'level1/level2/',
624
- 'level1/level2/level3/',
625
- 'file-root.txt',
626
- 'level1/file-level1.txt',
627
- 'level1/level2/file-level2.txt',
628
- ]);
629
- });
630
- it('should perform a full recursive search when maxDepth is undefined', async () => {
631
- const fileSearch = new FileSearch({
528
+ const results = await fileSearch.search('src/');
529
+ expect(results).toEqual(['src/file2.js', 'src/file3.ts']);
530
+ });
531
+ it('should respect ignore rules', async () => {
532
+ tmpDir = await createTmpDir({
533
+ '.gitignore': '*.js',
534
+ 'file1.js': '',
535
+ 'file2.ts': '',
536
+ });
537
+ const fileSearch = FileSearchFactory.create({
632
538
  projectRoot: tmpDir,
633
- useGitignore: false,
539
+ useGitignore: true,
634
540
  useGeminiignore: false,
635
541
  ignoreDirs: [],
636
542
  cache: false,
637
543
  cacheTtl: 0,
638
- maxDepth: undefined, // Explicitly undefined
544
+ enableRecursiveFileSearch: false,
639
545
  });
640
546
  await fileSearch.initialize();
641
- const results = await fileSearch.search('');
642
- expect(results).toEqual([
643
- 'level1/',
644
- 'level1/level2/',
645
- 'level1/level2/level3/',
646
- 'file-root.txt',
647
- 'level1/file-level1.txt',
648
- 'level1/level2/file-level2.txt',
649
- 'level1/level2/level3/file-level3.txt',
650
- ]);
547
+ const results = await fileSearch.search('*');
548
+ expect(results).toEqual(['.gitignore', 'file2.ts']);
651
549
  });
652
550
  });
653
551
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fileSearch.test.js","sourceRoot":"","sources":["../../../../src/utils/filesearch/fileSearch.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileSearch.test.js","sourceRoot":"","sources":["../../../../src/utils/filesearch/fileSearch.test.ts"],"names":[],"mappings":"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"}