@google/gemini-cli-core 0.1.13 → 0.1.15-nightly.250731.0c6f7884

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 (304) hide show
  1. package/README.md +50 -1
  2. package/dist/google-gemini-cli-core-0.1.15.tgz +0 -0
  3. package/dist/src/code_assist/codeAssist.js +2 -2
  4. package/dist/src/code_assist/codeAssist.js.map +1 -1
  5. package/dist/src/code_assist/oauth2.js +9 -2
  6. package/dist/src/code_assist/oauth2.js.map +1 -1
  7. package/dist/src/code_assist/oauth2.test.js +99 -7
  8. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  9. package/dist/src/code_assist/server.d.ts +4 -6
  10. package/dist/src/code_assist/server.js +4 -69
  11. package/dist/src/code_assist/server.js.map +1 -1
  12. package/dist/src/code_assist/setup.d.ts +6 -1
  13. package/dist/src/code_assist/setup.js +4 -1
  14. package/dist/src/code_assist/setup.js.map +1 -1
  15. package/dist/src/code_assist/setup.test.js +4 -1
  16. package/dist/src/code_assist/setup.test.js.map +1 -1
  17. package/dist/src/code_assist/types.d.ts +2 -2
  18. package/dist/src/config/config.d.ts +43 -11
  19. package/dist/src/config/config.js +79 -27
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/config.test.js +34 -23
  22. package/dist/src/config/config.test.js.map +1 -1
  23. package/dist/src/config/flashFallback.test.js +24 -48
  24. package/dist/src/config/flashFallback.test.js.map +1 -1
  25. package/dist/src/config/models.d.ts +1 -0
  26. package/dist/src/config/models.js +1 -0
  27. package/dist/src/config/models.js.map +1 -1
  28. package/dist/src/core/client.d.ts +5 -2
  29. package/dist/src/core/client.js +64 -22
  30. package/dist/src/core/client.js.map +1 -1
  31. package/dist/src/core/client.test.js +199 -2
  32. package/dist/src/core/client.test.js.map +1 -1
  33. package/dist/src/core/contentGenerator.d.ts +1 -1
  34. package/dist/src/core/contentGenerator.js +1 -1
  35. package/dist/src/core/contentGenerator.js.map +1 -1
  36. package/dist/src/core/coreToolScheduler.d.ts +1 -3
  37. package/dist/src/core/coreToolScheduler.js +1 -3
  38. package/dist/src/core/coreToolScheduler.js.map +1 -1
  39. package/dist/src/core/coreToolScheduler.test.js +76 -1
  40. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  41. package/dist/src/core/geminiChat.d.ts +4 -3
  42. package/dist/src/core/geminiChat.js +9 -11
  43. package/dist/src/core/geminiChat.js.map +1 -1
  44. package/dist/src/core/geminiRequest.js +2 -37
  45. package/dist/src/core/geminiRequest.js.map +1 -1
  46. package/dist/src/core/logger.d.ts +1 -0
  47. package/dist/src/core/logger.js +24 -4
  48. package/dist/src/core/logger.js.map +1 -1
  49. package/dist/src/core/logger.test.js +61 -10
  50. package/dist/src/core/logger.test.js.map +1 -1
  51. package/dist/src/core/nonInteractiveToolExecutor.test.js +5 -5
  52. package/dist/src/core/prompts.js +43 -19
  53. package/dist/src/core/prompts.js.map +1 -1
  54. package/dist/src/core/prompts.test.js +121 -4
  55. package/dist/src/core/prompts.test.js.map +1 -1
  56. package/dist/src/core/tokenLimits.js +1 -0
  57. package/dist/src/core/tokenLimits.js.map +1 -1
  58. package/dist/src/core/turn.d.ts +7 -2
  59. package/dist/src/core/turn.js +9 -0
  60. package/dist/src/core/turn.js.map +1 -1
  61. package/dist/src/core/turn.test.js +129 -0
  62. package/dist/src/core/turn.test.js.map +1 -1
  63. package/dist/src/ide/detect-ide.d.ts +10 -0
  64. package/dist/src/ide/detect-ide.js +24 -0
  65. package/dist/src/ide/detect-ide.js.map +1 -0
  66. package/dist/src/ide/ide-client.d.ts +40 -0
  67. package/dist/src/ide/ide-client.js +152 -0
  68. package/dist/src/ide/ide-client.js.map +1 -0
  69. package/dist/src/ide/ide-installer.d.ts +15 -0
  70. package/dist/src/ide/ide-installer.js +111 -0
  71. package/dist/src/ide/ide-installer.js.map +1 -0
  72. package/dist/src/ide/ide-installer.test.js +78 -0
  73. package/dist/src/ide/ide-installer.test.js.map +1 -0
  74. package/dist/src/ide/ideContext.d.ts +279 -0
  75. package/dist/src/ide/ideContext.js +102 -0
  76. package/dist/src/ide/ideContext.js.map +1 -0
  77. package/dist/src/ide/ideContext.test.js +265 -0
  78. package/dist/src/ide/ideContext.test.js.map +1 -0
  79. package/dist/src/index.d.ts +11 -1
  80. package/dist/src/index.js +14 -1
  81. package/dist/src/index.js.map +1 -1
  82. package/dist/src/mcp/google-auth-provider.d.ts +23 -0
  83. package/dist/src/mcp/google-auth-provider.js +63 -0
  84. package/dist/src/mcp/google-auth-provider.js.map +1 -0
  85. package/dist/src/mcp/google-auth-provider.test.d.ts +6 -0
  86. package/dist/src/mcp/google-auth-provider.test.js +54 -0
  87. package/dist/src/mcp/google-auth-provider.test.js.map +1 -0
  88. package/dist/src/mcp/oauth-provider.d.ts +5 -1
  89. package/dist/src/mcp/oauth-provider.js +36 -11
  90. package/dist/src/mcp/oauth-provider.js.map +1 -1
  91. package/dist/src/mcp/oauth-provider.test.js +2 -2
  92. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  93. package/dist/src/mcp/oauth-token-storage.d.ts +3 -1
  94. package/dist/src/mcp/oauth-token-storage.js +3 -1
  95. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  96. package/dist/src/mcp/oauth-utils.js +2 -2
  97. package/dist/src/mcp/oauth-utils.js.map +1 -1
  98. package/dist/src/mcp/oauth-utils.test.js +1 -1
  99. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  100. package/dist/src/prompts/mcp-prompts.d.ts +8 -0
  101. package/dist/src/prompts/mcp-prompts.js +13 -0
  102. package/dist/src/prompts/mcp-prompts.js.map +1 -0
  103. package/dist/src/prompts/prompt-registry.d.ts +26 -0
  104. package/dist/src/prompts/prompt-registry.js +47 -0
  105. package/dist/src/prompts/prompt-registry.js.map +1 -0
  106. package/dist/src/services/fileDiscoveryService.test.js +101 -60
  107. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  108. package/dist/src/services/gitService.test.js +67 -86
  109. package/dist/src/services/gitService.test.js.map +1 -1
  110. package/dist/src/services/loopDetectionService.d.ts +51 -5
  111. package/dist/src/services/loopDetectionService.js +140 -36
  112. package/dist/src/services/loopDetectionService.js.map +1 -1
  113. package/dist/src/services/loopDetectionService.test.js +105 -99
  114. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  115. package/dist/src/services/shellExecutionService.d.ts +70 -0
  116. package/dist/src/services/shellExecutionService.js +152 -0
  117. package/dist/src/services/shellExecutionService.js.map +1 -0
  118. package/dist/src/services/shellExecutionService.test.d.ts +6 -0
  119. package/dist/src/services/shellExecutionService.test.js +258 -0
  120. package/dist/src/services/shellExecutionService.test.js.map +1 -0
  121. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +3 -1
  122. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +75 -33
  123. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  124. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +3 -1
  125. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +7 -0
  126. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  127. package/dist/src/telemetry/constants.d.ts +2 -0
  128. package/dist/src/telemetry/constants.js +2 -0
  129. package/dist/src/telemetry/constants.js.map +1 -1
  130. package/dist/src/telemetry/file-exporters.d.ts +28 -0
  131. package/dist/src/telemetry/file-exporters.js +62 -0
  132. package/dist/src/telemetry/file-exporters.js.map +1 -0
  133. package/dist/src/telemetry/index.d.ts +2 -2
  134. package/dist/src/telemetry/index.js +2 -2
  135. package/dist/src/telemetry/index.js.map +1 -1
  136. package/dist/src/telemetry/loggers.d.ts +3 -1
  137. package/dist/src/telemetry/loggers.js +33 -1
  138. package/dist/src/telemetry/loggers.js.map +1 -1
  139. package/dist/src/telemetry/sdk.js +17 -6
  140. package/dist/src/telemetry/sdk.js.map +1 -1
  141. package/dist/src/telemetry/telemetry.test.js +2 -0
  142. package/dist/src/telemetry/telemetry.test.js.map +1 -1
  143. package/dist/src/telemetry/types.d.ts +16 -2
  144. package/dist/src/telemetry/types.js +25 -1
  145. package/dist/src/telemetry/types.js.map +1 -1
  146. package/dist/src/test-utils/mockWorkspaceContext.d.ts +13 -0
  147. package/dist/src/test-utils/mockWorkspaceContext.js +24 -0
  148. package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -0
  149. package/dist/src/tools/edit.js +14 -7
  150. package/dist/src/tools/edit.js.map +1 -1
  151. package/dist/src/tools/edit.test.js +37 -1
  152. package/dist/src/tools/edit.test.js.map +1 -1
  153. package/dist/src/tools/glob.js +53 -17
  154. package/dist/src/tools/glob.js.map +1 -1
  155. package/dist/src/tools/glob.test.js +32 -6
  156. package/dist/src/tools/glob.test.js.map +1 -1
  157. package/dist/src/tools/grep.d.ts +1 -1
  158. package/dist/src/tools/grep.js +81 -29
  159. package/dist/src/tools/grep.js.map +1 -1
  160. package/dist/src/tools/grep.test.js +77 -10
  161. package/dist/src/tools/grep.test.js.map +1 -1
  162. package/dist/src/tools/ls.d.ts +5 -2
  163. package/dist/src/tools/ls.js +43 -13
  164. package/dist/src/tools/ls.js.map +1 -1
  165. package/dist/src/tools/ls.test.d.ts +6 -0
  166. package/dist/src/tools/ls.test.js +356 -0
  167. package/dist/src/tools/ls.test.js.map +1 -0
  168. package/dist/src/tools/mcp-client.d.ts +31 -3
  169. package/dist/src/tools/mcp-client.js +467 -38
  170. package/dist/src/tools/mcp-client.js.map +1 -1
  171. package/dist/src/tools/mcp-client.test.js +99 -7
  172. package/dist/src/tools/mcp-client.test.js.map +1 -1
  173. package/dist/src/tools/mcp-tool.js +1 -1
  174. package/dist/src/tools/mcp-tool.js.map +1 -1
  175. package/dist/src/tools/mcp-tool.test.js +34 -0
  176. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  177. package/dist/src/tools/memoryTool.d.ts +17 -2
  178. package/dist/src/tools/memoryTool.js +130 -13
  179. package/dist/src/tools/memoryTool.js.map +1 -1
  180. package/dist/src/tools/memoryTool.test.js +88 -3
  181. package/dist/src/tools/memoryTool.test.js.map +1 -1
  182. package/dist/src/tools/modifiable-tool.test.js +51 -62
  183. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  184. package/dist/src/tools/read-file.js +8 -6
  185. package/dist/src/tools/read-file.js.map +1 -1
  186. package/dist/src/tools/read-file.test.js +125 -68
  187. package/dist/src/tools/read-file.test.js.map +1 -1
  188. package/dist/src/tools/read-many-files.d.ts +5 -3
  189. package/dist/src/tools/read-many-files.js +83 -33
  190. package/dist/src/tools/read-many-files.js.map +1 -1
  191. package/dist/src/tools/read-many-files.test.js +40 -4
  192. package/dist/src/tools/read-many-files.test.js.map +1 -1
  193. package/dist/src/tools/shell.d.ts +3 -23
  194. package/dist/src/tools/shell.js +173 -300
  195. package/dist/src/tools/shell.js.map +1 -1
  196. package/dist/src/tools/shell.test.js +278 -384
  197. package/dist/src/tools/shell.test.js.map +1 -1
  198. package/dist/src/tools/tool-registry.d.ts +13 -1
  199. package/dist/src/tools/tool-registry.js +46 -2
  200. package/dist/src/tools/tool-registry.js.map +1 -1
  201. package/dist/src/tools/tool-registry.test.js +13 -5
  202. package/dist/src/tools/tool-registry.test.js.map +1 -1
  203. package/dist/src/tools/write-file.js +5 -3
  204. package/dist/src/tools/write-file.js.map +1 -1
  205. package/dist/src/tools/write-file.test.js +36 -2
  206. package/dist/src/tools/write-file.test.js.map +1 -1
  207. package/dist/src/utils/bfsFileSearch.d.ts +2 -0
  208. package/dist/src/utils/bfsFileSearch.js +51 -24
  209. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  210. package/dist/src/utils/bfsFileSearch.test.js +163 -103
  211. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  212. package/dist/src/utils/editCorrector.js +4 -4
  213. package/dist/src/utils/editCorrector.js.map +1 -1
  214. package/dist/src/utils/editCorrector.test.js +1 -1
  215. package/dist/src/utils/editor.js +16 -10
  216. package/dist/src/utils/editor.js.map +1 -1
  217. package/dist/src/utils/editor.test.js +128 -28
  218. package/dist/src/utils/editor.test.js.map +1 -1
  219. package/dist/src/utils/errorReporting.d.ts +1 -1
  220. package/dist/src/utils/errorReporting.js +2 -2
  221. package/dist/src/utils/errorReporting.js.map +1 -1
  222. package/dist/src/utils/errorReporting.test.js +44 -38
  223. package/dist/src/utils/errorReporting.test.js.map +1 -1
  224. package/dist/src/utils/fileUtils.d.ts +4 -4
  225. package/dist/src/utils/fileUtils.js +31 -15
  226. package/dist/src/utils/fileUtils.js.map +1 -1
  227. package/dist/src/utils/fileUtils.test.js +37 -37
  228. package/dist/src/utils/fileUtils.test.js.map +1 -1
  229. package/dist/src/utils/flashFallback.integration.test.js +8 -0
  230. package/dist/src/utils/flashFallback.integration.test.js.map +1 -1
  231. package/dist/src/utils/formatters.d.ts +6 -0
  232. package/dist/src/utils/formatters.js +16 -0
  233. package/dist/src/utils/formatters.js.map +1 -0
  234. package/dist/src/utils/getFolderStructure.d.ts +3 -2
  235. package/dist/src/utils/getFolderStructure.js +27 -28
  236. package/dist/src/utils/getFolderStructure.js.map +1 -1
  237. package/dist/src/utils/getFolderStructure.test.js +169 -187
  238. package/dist/src/utils/getFolderStructure.test.js.map +1 -1
  239. package/dist/src/utils/gitIgnoreParser.js +4 -7
  240. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  241. package/dist/src/utils/gitIgnoreParser.test.js +70 -61
  242. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  243. package/dist/src/utils/memoryDiscovery.d.ts +2 -1
  244. package/dist/src/utils/memoryDiscovery.js +11 -5
  245. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  246. package/dist/src/utils/memoryDiscovery.test.js +160 -371
  247. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  248. package/dist/src/utils/nextSpeakerChecker.js +2 -2
  249. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  250. package/dist/src/utils/nextSpeakerChecker.test.js +2 -2
  251. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  252. package/dist/src/utils/partUtils.d.ts +14 -0
  253. package/dist/src/utils/partUtils.js +65 -0
  254. package/dist/src/utils/partUtils.js.map +1 -0
  255. package/dist/src/utils/partUtils.test.d.ts +6 -0
  256. package/dist/src/utils/partUtils.test.js +130 -0
  257. package/dist/src/utils/partUtils.test.js.map +1 -0
  258. package/dist/src/utils/paths.d.ts +11 -0
  259. package/dist/src/utils/paths.js +17 -1
  260. package/dist/src/utils/paths.js.map +1 -1
  261. package/dist/src/utils/quotaErrorDetection.js +0 -2
  262. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  263. package/dist/src/utils/retry.d.ts +3 -0
  264. package/dist/src/utils/retry.js +1 -1
  265. package/dist/src/utils/retry.js.map +1 -1
  266. package/dist/src/utils/retry.test.js.map +1 -1
  267. package/dist/src/utils/schemaValidator.d.ts +1 -1
  268. package/dist/src/utils/schemaValidator.js +6 -3
  269. package/dist/src/utils/schemaValidator.js.map +1 -1
  270. package/dist/src/utils/shell-utils.d.ts +78 -0
  271. package/dist/src/utils/shell-utils.js +306 -0
  272. package/dist/src/utils/shell-utils.js.map +1 -0
  273. package/dist/src/utils/shell-utils.test.d.ts +6 -0
  274. package/dist/src/utils/shell-utils.test.js +200 -0
  275. package/dist/src/utils/shell-utils.test.js.map +1 -0
  276. package/dist/src/utils/summarizer.js +1 -30
  277. package/dist/src/utils/summarizer.js.map +1 -1
  278. package/dist/src/utils/systemEncoding.d.ts +40 -0
  279. package/dist/src/utils/systemEncoding.js +149 -0
  280. package/dist/src/utils/systemEncoding.js.map +1 -0
  281. package/dist/src/utils/systemEncoding.test.d.ts +6 -0
  282. package/dist/src/utils/systemEncoding.test.js +368 -0
  283. package/dist/src/utils/systemEncoding.test.js.map +1 -0
  284. package/dist/src/utils/textUtils.d.ts +13 -0
  285. package/dist/src/utils/textUtils.js +28 -0
  286. package/dist/src/utils/textUtils.js.map +1 -0
  287. package/dist/src/utils/workspaceContext.d.ts +47 -0
  288. package/dist/src/utils/workspaceContext.js +106 -0
  289. package/dist/src/utils/workspaceContext.js.map +1 -0
  290. package/dist/src/utils/workspaceContext.test.d.ts +6 -0
  291. package/dist/src/utils/workspaceContext.test.js +209 -0
  292. package/dist/src/utils/workspaceContext.test.js.map +1 -0
  293. package/dist/tsconfig.tsbuildinfo +1 -1
  294. package/package.json +2 -1
  295. package/dist/google-gemini-cli-core-0.1.12.tgz +0 -0
  296. package/dist/src/core/geminiRequest.test.js +0 -72
  297. package/dist/src/core/geminiRequest.test.js.map +0 -1
  298. package/dist/src/services/ideContext.d.ts +0 -126
  299. package/dist/src/services/ideContext.js +0 -98
  300. package/dist/src/services/ideContext.js.map +0 -1
  301. package/dist/src/services/ideContext.test.js +0 -111
  302. package/dist/src/services/ideContext.test.js.map +0 -1
  303. /package/dist/src/{core/geminiRequest.test.d.ts → ide/ide-installer.test.d.ts} +0 -0
  304. /package/dist/src/{services → ide}/ideContext.test.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-utils.js","sourceRoot":"","sources":["../../../src/mcp/oauth-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-utils.js","sourceRoot":"","sources":["../../../src/mcp/oauth-utils.ts"],"names":[],"mappings":"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"}
@@ -97,7 +97,7 @@ describe('OAuthUtils', () => {
97
97
  });
98
98
  describe('parseWWWAuthenticateHeader', () => {
99
99
  it('should parse resource metadata URI from WWW-Authenticate header', () => {
100
- const header = 'Bearer realm="example", resource_metadata_uri="https://example.com/.well-known/oauth-protected-resource"';
100
+ const header = 'Bearer realm="example", resource_metadata="https://example.com/.well-known/oauth-protected-resource"';
101
101
  const result = OAuthUtils.parseWWWAuthenticateHeader(header);
102
102
  expect(result).toBe('https://example.com/.well-known/oauth-protected-resource');
103
103
  });
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-utils.test.js","sourceRoot":"","sources":["../../../src/mcp/oauth-utils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-utils.test.js","sourceRoot":"","sources":["../../../src/mcp/oauth-utils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Config } from '../config/config.js';
7
+ import { DiscoveredMCPPrompt } from '../tools/mcp-client.js';
8
+ export declare function getMCPServerPrompts(config: Config, serverName: string): DiscoveredMCPPrompt[];
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export function getMCPServerPrompts(config, serverName) {
7
+ const promptRegistry = config.getPromptRegistry();
8
+ if (!promptRegistry) {
9
+ return [];
10
+ }
11
+ return promptRegistry.getPromptsByServer(serverName);
12
+ }
13
+ //# sourceMappingURL=mcp-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-prompts.js","sourceRoot":"","sources":["../../../src/prompts/mcp-prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,UAAkB;IAElB,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAClD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { DiscoveredMCPPrompt } from '../tools/mcp-client.js';
7
+ export declare class PromptRegistry {
8
+ private prompts;
9
+ /**
10
+ * Registers a prompt definition.
11
+ * @param prompt - The prompt object containing schema and execution logic.
12
+ */
13
+ registerPrompt(prompt: DiscoveredMCPPrompt): void;
14
+ /**
15
+ * Returns an array of all registered and discovered prompt instances.
16
+ */
17
+ getAllPrompts(): DiscoveredMCPPrompt[];
18
+ /**
19
+ * Get the definition of a specific prompt.
20
+ */
21
+ getPrompt(name: string): DiscoveredMCPPrompt | undefined;
22
+ /**
23
+ * Returns an array of prompts registered from a specific MCP server.
24
+ */
25
+ getPromptsByServer(serverName: string): DiscoveredMCPPrompt[];
26
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export class PromptRegistry {
7
+ prompts = new Map();
8
+ /**
9
+ * Registers a prompt definition.
10
+ * @param prompt - The prompt object containing schema and execution logic.
11
+ */
12
+ registerPrompt(prompt) {
13
+ if (this.prompts.has(prompt.name)) {
14
+ const newName = `${prompt.serverName}_${prompt.name}`;
15
+ console.warn(`Prompt with name "${prompt.name}" is already registered. Renaming to "${newName}".`);
16
+ this.prompts.set(newName, { ...prompt, name: newName });
17
+ }
18
+ else {
19
+ this.prompts.set(prompt.name, prompt);
20
+ }
21
+ }
22
+ /**
23
+ * Returns an array of all registered and discovered prompt instances.
24
+ */
25
+ getAllPrompts() {
26
+ return Array.from(this.prompts.values()).sort((a, b) => a.name.localeCompare(b.name));
27
+ }
28
+ /**
29
+ * Get the definition of a specific prompt.
30
+ */
31
+ getPrompt(name) {
32
+ return this.prompts.get(name);
33
+ }
34
+ /**
35
+ * Returns an array of prompts registered from a specific MCP server.
36
+ */
37
+ getPromptsByServer(serverName) {
38
+ const serverPrompts = [];
39
+ for (const prompt of this.prompts.values()) {
40
+ if (prompt.serverName === serverName) {
41
+ serverPrompts.push(prompt);
42
+ }
43
+ }
44
+ return serverPrompts.sort((a, b) => a.name.localeCompare(b.name));
45
+ }
46
+ }
47
+ //# sourceMappingURL=prompt-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-registry.js","sourceRoot":"","sources":["../../../src/prompts/prompt-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,OAAO,cAAc;IACjB,OAAO,GAAqC,IAAI,GAAG,EAAE,CAAC;IAE9D;;;OAGG;IACH,cAAc,CAAC,MAA2B;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CACV,qBAAqB,MAAM,CAAC,IAAI,yCAAyC,OAAO,IAAI,CACrF,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACrD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAAkB;QACnC,MAAM,aAAa,GAA0B,EAAE,CAAC;QAChD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -3,99 +3,140 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
6
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
7
+ import * as fs from 'fs/promises';
8
+ import * as os from 'os';
9
+ import * as path from 'path';
7
10
  import { FileDiscoveryService } from './fileDiscoveryService.js';
8
- import { GitIgnoreParser } from '../utils/gitIgnoreParser.js';
9
- import * as gitUtils from '../utils/gitUtils.js';
10
- // Mock the GitIgnoreParser
11
- vi.mock('../utils/gitIgnoreParser.js');
12
- // Mock gitUtils module
13
- vi.mock('../utils/gitUtils.js');
14
11
  describe('FileDiscoveryService', () => {
15
- let service;
16
- let mockGitIgnoreParser;
17
- const mockProjectRoot = '/test/project';
18
- beforeEach(() => {
19
- mockGitIgnoreParser = {
20
- initialize: vi.fn(),
21
- isIgnored: vi.fn(),
22
- loadPatterns: vi.fn(),
23
- loadGitRepoPatterns: vi.fn(),
24
- };
25
- vi.mocked(GitIgnoreParser).mockImplementation(() => mockGitIgnoreParser);
26
- vi.mocked(gitUtils.isGitRepository).mockReturnValue(true);
27
- vi.mocked(gitUtils.findGitRoot).mockReturnValue('/test/project');
28
- vi.clearAllMocks();
12
+ let testRootDir;
13
+ let projectRoot;
14
+ async function createTestFile(filePath, content = '') {
15
+ const fullPath = path.join(projectRoot, filePath);
16
+ await fs.mkdir(path.dirname(fullPath), { recursive: true });
17
+ await fs.writeFile(fullPath, content);
18
+ return fullPath;
19
+ }
20
+ beforeEach(async () => {
21
+ testRootDir = await fs.mkdtemp(path.join(os.tmpdir(), 'file-discovery-test-'));
22
+ projectRoot = path.join(testRootDir, 'project');
23
+ await fs.mkdir(projectRoot, { recursive: true });
29
24
  });
30
- afterEach(() => {
31
- vi.restoreAllMocks();
25
+ afterEach(async () => {
26
+ await fs.rm(testRootDir, { recursive: true, force: true });
32
27
  });
33
28
  describe('initialization', () => {
34
- it('should initialize git ignore parser by default', () => {
35
- service = new FileDiscoveryService(mockProjectRoot);
36
- expect(GitIgnoreParser).toHaveBeenCalledWith(mockProjectRoot);
37
- expect(GitIgnoreParser).toHaveBeenCalledTimes(2);
38
- expect(mockGitIgnoreParser.loadGitRepoPatterns).toHaveBeenCalled();
39
- expect(mockGitIgnoreParser.loadPatterns).toHaveBeenCalled();
29
+ it('should initialize git ignore parser by default in a git repo', async () => {
30
+ await fs.mkdir(path.join(projectRoot, '.git'));
31
+ await createTestFile('.gitignore', 'node_modules/');
32
+ const service = new FileDiscoveryService(projectRoot);
33
+ // Let's check the effect of the parser instead of mocking it.
34
+ expect(service.shouldGitIgnoreFile('node_modules/foo.js')).toBe(true);
35
+ expect(service.shouldGitIgnoreFile('src/foo.js')).toBe(false);
40
36
  });
41
- it('should not initialize git ignore parser when not a git repo', () => {
42
- vi.mocked(gitUtils.isGitRepository).mockReturnValue(false);
43
- service = new FileDiscoveryService(mockProjectRoot);
44
- expect(GitIgnoreParser).toHaveBeenCalledOnce();
45
- expect(mockGitIgnoreParser.loadGitRepoPatterns).not.toHaveBeenCalled();
37
+ it('should not load git repo patterns when not in a git repo', async () => {
38
+ // No .git directory
39
+ await createTestFile('.gitignore', 'node_modules/');
40
+ const service = new FileDiscoveryService(projectRoot);
41
+ // .gitignore is not loaded in non-git repos
42
+ expect(service.shouldGitIgnoreFile('node_modules/foo.js')).toBe(false);
43
+ });
44
+ it('should load .geminiignore patterns even when not in a git repo', async () => {
45
+ await createTestFile('.geminiignore', 'secrets.txt');
46
+ const service = new FileDiscoveryService(projectRoot);
47
+ expect(service.shouldGeminiIgnoreFile('secrets.txt')).toBe(true);
48
+ expect(service.shouldGeminiIgnoreFile('src/index.js')).toBe(false);
46
49
  });
47
50
  });
48
51
  describe('filterFiles', () => {
49
- beforeEach(() => {
50
- mockGitIgnoreParser.isIgnored.mockImplementation((path) => path.includes('node_modules') || path.includes('.git'));
51
- service = new FileDiscoveryService(mockProjectRoot);
52
+ beforeEach(async () => {
53
+ await fs.mkdir(path.join(projectRoot, '.git'));
54
+ await createTestFile('.gitignore', 'node_modules/\n.git/\ndist');
55
+ await createTestFile('.geminiignore', 'logs/');
52
56
  });
53
- it('should filter out git-ignored files by default', () => {
57
+ it('should filter out git-ignored and gemini-ignored files by default', () => {
54
58
  const files = [
55
59
  'src/index.ts',
56
60
  'node_modules/package/index.js',
57
61
  'README.md',
58
62
  '.git/config',
59
63
  'dist/bundle.js',
60
- ];
61
- const filtered = service.filterFiles(files);
62
- expect(filtered).toEqual(['src/index.ts', 'README.md', 'dist/bundle.js']);
64
+ 'logs/latest.log',
65
+ ].map((f) => path.join(projectRoot, f));
66
+ const service = new FileDiscoveryService(projectRoot);
67
+ expect(service.filterFiles(files)).toEqual(['src/index.ts', 'README.md'].map((f) => path.join(projectRoot, f)));
63
68
  });
64
69
  it('should not filter files when respectGitIgnore is false', () => {
65
70
  const files = [
66
71
  'src/index.ts',
67
72
  'node_modules/package/index.js',
68
73
  '.git/config',
69
- ];
70
- const filtered = service.filterFiles(files, { respectGitIgnore: false });
71
- expect(filtered).toEqual(files);
74
+ 'logs/latest.log',
75
+ ].map((f) => path.join(projectRoot, f));
76
+ const service = new FileDiscoveryService(projectRoot);
77
+ const filtered = service.filterFiles(files, {
78
+ respectGitIgnore: false,
79
+ respectGeminiIgnore: true, // still respect this one
80
+ });
81
+ expect(filtered).toEqual(['src/index.ts', 'node_modules/package/index.js', '.git/config'].map((f) => path.join(projectRoot, f)));
82
+ });
83
+ it('should not filter files when respectGeminiIgnore is false', () => {
84
+ const files = [
85
+ 'src/index.ts',
86
+ 'node_modules/package/index.js',
87
+ 'logs/latest.log',
88
+ ].map((f) => path.join(projectRoot, f));
89
+ const service = new FileDiscoveryService(projectRoot);
90
+ const filtered = service.filterFiles(files, {
91
+ respectGitIgnore: true,
92
+ respectGeminiIgnore: false,
93
+ });
94
+ expect(filtered).toEqual(['src/index.ts', 'logs/latest.log'].map((f) => path.join(projectRoot, f)));
72
95
  });
73
96
  it('should handle empty file list', () => {
74
- const filtered = service.filterFiles([]);
75
- expect(filtered).toEqual([]);
97
+ const service = new FileDiscoveryService(projectRoot);
98
+ expect(service.filterFiles([])).toEqual([]);
76
99
  });
77
100
  });
78
- describe('shouldGitIgnoreFile', () => {
79
- beforeEach(() => {
80
- mockGitIgnoreParser.isIgnored.mockImplementation((path) => path.includes('node_modules'));
81
- service = new FileDiscoveryService(mockProjectRoot);
101
+ describe('shouldGitIgnoreFile & shouldGeminiIgnoreFile', () => {
102
+ beforeEach(async () => {
103
+ await fs.mkdir(path.join(projectRoot, '.git'));
104
+ await createTestFile('.gitignore', 'node_modules/');
105
+ await createTestFile('.geminiignore', '*.log');
82
106
  });
83
107
  it('should return true for git-ignored files', () => {
84
- expect(service.shouldGitIgnoreFile('node_modules/package/index.js')).toBe(true);
108
+ const service = new FileDiscoveryService(projectRoot);
109
+ expect(service.shouldGitIgnoreFile(path.join(projectRoot, 'node_modules/package/index.js'))).toBe(true);
110
+ });
111
+ it('should return false for non-git-ignored files', () => {
112
+ const service = new FileDiscoveryService(projectRoot);
113
+ expect(service.shouldGitIgnoreFile(path.join(projectRoot, 'src/index.ts'))).toBe(false);
114
+ });
115
+ it('should return true for gemini-ignored files', () => {
116
+ const service = new FileDiscoveryService(projectRoot);
117
+ expect(service.shouldGeminiIgnoreFile(path.join(projectRoot, 'debug.log'))).toBe(true);
85
118
  });
86
- it('should return false for non-ignored files', () => {
87
- expect(service.shouldGitIgnoreFile('src/index.ts')).toBe(false);
119
+ it('should return false for non-gemini-ignored files', () => {
120
+ const service = new FileDiscoveryService(projectRoot);
121
+ expect(service.shouldGeminiIgnoreFile(path.join(projectRoot, 'src/index.ts'))).toBe(false);
88
122
  });
89
123
  });
90
124
  describe('edge cases', () => {
91
- it('should handle relative project root paths', () => {
92
- const relativeService = new FileDiscoveryService('./relative/path');
93
- expect(relativeService).toBeInstanceOf(FileDiscoveryService);
125
+ it('should handle relative project root paths', async () => {
126
+ await fs.mkdir(path.join(projectRoot, '.git'));
127
+ await createTestFile('.gitignore', 'ignored.txt');
128
+ const service = new FileDiscoveryService(path.relative(process.cwd(), projectRoot));
129
+ expect(service.shouldGitIgnoreFile(path.join(projectRoot, 'ignored.txt'))).toBe(true);
130
+ expect(service.shouldGitIgnoreFile(path.join(projectRoot, 'not-ignored.txt'))).toBe(false);
94
131
  });
95
- it('should handle filterFiles with undefined options', () => {
96
- const files = ['src/index.ts'];
97
- const filtered = service.filterFiles(files, undefined);
98
- expect(filtered).toEqual(files);
132
+ it('should handle filterFiles with undefined options', async () => {
133
+ await fs.mkdir(path.join(projectRoot, '.git'));
134
+ await createTestFile('.gitignore', 'ignored.txt');
135
+ const service = new FileDiscoveryService(projectRoot);
136
+ const files = ['src/index.ts', 'ignored.txt'].map((f) => path.join(projectRoot, f));
137
+ expect(service.filterFiles(files, undefined)).toEqual([
138
+ path.join(projectRoot, 'src/index.ts'),
139
+ ]);
99
140
  });
100
141
  });
101
142
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fileDiscoveryService.test.js","sourceRoot":"","sources":["../../../src/services/fileDiscoveryService.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileDiscoveryService.test.js","sourceRoot":"","sources":["../../../src/services/fileDiscoveryService.test.ts"],"names":[],"mappings":"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"}