@machina.ai/cell-cli-core 1.11.0-rc1 → 1.13.0-rc2

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 (432) hide show
  1. package/dist/index.d.ts +5 -0
  2. package/dist/index.js +4 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/package.json +9 -3
  5. package/dist/src/agents/executor.d.ts +19 -0
  6. package/dist/src/agents/executor.js +226 -32
  7. package/dist/src/agents/executor.js.map +1 -1
  8. package/dist/src/agents/executor.test.js +335 -9
  9. package/dist/src/agents/executor.test.js.map +1 -1
  10. package/dist/src/agents/subagent-tool-wrapper.test.js +2 -4
  11. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  12. package/dist/src/agents/types.d.ts +2 -1
  13. package/dist/src/agents/types.js +1 -0
  14. package/dist/src/agents/types.js.map +1 -1
  15. package/dist/src/code_assist/experiments/client_metadata.d.ts +12 -0
  16. package/dist/src/code_assist/experiments/client_metadata.js +49 -0
  17. package/dist/src/code_assist/experiments/client_metadata.js.map +1 -0
  18. package/dist/src/code_assist/experiments/experiments.d.ts +17 -0
  19. package/dist/src/code_assist/experiments/experiments.js +36 -0
  20. package/dist/src/code_assist/experiments/experiments.js.map +1 -0
  21. package/dist/src/code_assist/experiments/types.d.ts +35 -0
  22. package/dist/src/code_assist/experiments/types.js +7 -0
  23. package/dist/src/code_assist/experiments/types.js.map +1 -0
  24. package/dist/src/code_assist/oauth-credential-storage.js +5 -4
  25. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  26. package/dist/src/code_assist/oauth-credential-storage.test.js +15 -3
  27. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -1
  28. package/dist/src/code_assist/oauth2.d.ts +2 -2
  29. package/dist/src/code_assist/oauth2.js +53 -41
  30. package/dist/src/code_assist/oauth2.js.map +1 -1
  31. package/dist/src/code_assist/oauth2.test.js +65 -33
  32. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  33. package/dist/src/code_assist/server.d.ts +6 -4
  34. package/dist/src/code_assist/server.js +11 -0
  35. package/dist/src/code_assist/server.js.map +1 -1
  36. package/dist/src/code_assist/server.test.js +17 -0
  37. package/dist/src/code_assist/server.test.js.map +1 -1
  38. package/dist/src/code_assist/setup.d.ts +2 -2
  39. package/dist/src/code_assist/setup.js.map +1 -1
  40. package/dist/src/code_assist/types.d.ts +1 -1
  41. package/dist/src/code_assist/types.js.map +1 -1
  42. package/dist/src/commands/extensions.d.ts +7 -0
  43. package/dist/src/commands/extensions.js +9 -0
  44. package/dist/src/commands/extensions.js.map +1 -0
  45. package/dist/src/commands/extensions.test.d.ts +6 -0
  46. package/dist/src/commands/extensions.test.js +19 -0
  47. package/dist/src/commands/extensions.test.js.map +1 -0
  48. package/dist/src/config/config.d.ts +72 -24
  49. package/dist/src/config/config.js +168 -55
  50. package/dist/src/config/config.js.map +1 -1
  51. package/dist/src/config/config.test.js +59 -23
  52. package/dist/src/config/config.test.js.map +1 -1
  53. package/dist/src/config/models.d.ts +1 -1
  54. package/dist/src/config/models.js +2 -2
  55. package/dist/src/config/models.js.map +1 -1
  56. package/dist/src/config/storage.d.ts +3 -0
  57. package/dist/src/config/storage.js +20 -0
  58. package/dist/src/config/storage.js.map +1 -1
  59. package/dist/src/core/apiKeyCredentialStorage.d.ts +17 -0
  60. package/dist/src/core/apiKeyCredentialStorage.js +64 -0
  61. package/dist/src/core/apiKeyCredentialStorage.js.map +1 -0
  62. package/dist/src/core/apiKeyCredentialStorage.test.d.ts +6 -0
  63. package/dist/src/core/apiKeyCredentialStorage.test.js +71 -0
  64. package/dist/src/core/apiKeyCredentialStorage.test.js.map +1 -0
  65. package/dist/src/core/client.d.ts +2 -11
  66. package/dist/src/core/client.js +28 -168
  67. package/dist/src/core/client.js.map +1 -1
  68. package/dist/src/core/client.test.js +107 -409
  69. package/dist/src/core/client.test.js.map +1 -1
  70. package/dist/src/core/contentGenerator.js +64 -59
  71. package/dist/src/core/contentGenerator.js.map +1 -1
  72. package/dist/src/core/contentGenerator.test.js +38 -4
  73. package/dist/src/core/contentGenerator.test.js.map +1 -1
  74. package/dist/src/core/coreToolScheduler.d.ts +7 -8
  75. package/dist/src/core/coreToolScheduler.js +316 -187
  76. package/dist/src/core/coreToolScheduler.js.map +1 -1
  77. package/dist/src/core/coreToolScheduler.test.js +240 -10
  78. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  79. package/dist/src/core/fakeContentGenerator.d.ts +33 -0
  80. package/dist/src/core/fakeContentGenerator.js +58 -0
  81. package/dist/src/core/fakeContentGenerator.js.map +1 -0
  82. package/dist/src/core/fakeContentGenerator.test.d.ts +6 -0
  83. package/dist/src/core/fakeContentGenerator.test.js +127 -0
  84. package/dist/src/core/fakeContentGenerator.test.js.map +1 -0
  85. package/dist/src/core/geminiChat.d.ts +2 -0
  86. package/dist/src/core/geminiChat.js +6 -2
  87. package/dist/src/core/geminiChat.js.map +1 -1
  88. package/dist/src/core/geminiChat.test.js +15 -3
  89. package/dist/src/core/geminiChat.test.js.map +1 -1
  90. package/dist/src/core/logger.js +10 -9
  91. package/dist/src/core/logger.js.map +1 -1
  92. package/dist/src/core/loggingContentGenerator.d.ts +1 -0
  93. package/dist/src/core/loggingContentGenerator.js +113 -33
  94. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  95. package/dist/src/core/nonInteractiveToolExecutor.js +5 -4
  96. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  97. package/dist/src/core/prompts.js +104 -55
  98. package/dist/src/core/prompts.js.map +1 -1
  99. package/dist/src/core/prompts.test.js +30 -108
  100. package/dist/src/core/prompts.test.js.map +1 -1
  101. package/dist/src/core/recordingContentGenerator.d.ts +18 -0
  102. package/dist/src/core/recordingContentGenerator.js +77 -0
  103. package/dist/src/core/recordingContentGenerator.js.map +1 -0
  104. package/dist/src/core/recordingContentGenerator.test.d.ts +6 -0
  105. package/dist/src/core/recordingContentGenerator.test.js +101 -0
  106. package/dist/src/core/recordingContentGenerator.test.js.map +1 -0
  107. package/dist/src/fallback/handler.js +2 -0
  108. package/dist/src/fallback/handler.js.map +1 -1
  109. package/dist/src/generated/git-commit.d.ts +2 -2
  110. package/dist/src/generated/git-commit.js +2 -2
  111. package/dist/src/hooks/hookPlanner.d.ts +46 -0
  112. package/dist/src/hooks/hookPlanner.js +108 -0
  113. package/dist/src/hooks/hookPlanner.js.map +1 -0
  114. package/dist/src/hooks/hookPlanner.test.d.ts +6 -0
  115. package/dist/src/hooks/hookPlanner.test.js +255 -0
  116. package/dist/src/hooks/hookPlanner.test.js.map +1 -0
  117. package/dist/src/hooks/hookRegistry.d.ts +87 -0
  118. package/dist/src/hooks/hookRegistry.js +198 -0
  119. package/dist/src/hooks/hookRegistry.js.map +1 -0
  120. package/dist/src/hooks/hookRegistry.test.d.ts +6 -0
  121. package/dist/src/hooks/hookRegistry.test.js +341 -0
  122. package/dist/src/hooks/hookRegistry.test.js.map +1 -0
  123. package/dist/src/hooks/hookTranslator.d.ts +113 -0
  124. package/dist/src/hooks/hookTranslator.js +232 -0
  125. package/dist/src/hooks/hookTranslator.js.map +1 -0
  126. package/dist/src/hooks/hookTranslator.test.d.ts +6 -0
  127. package/dist/src/hooks/hookTranslator.test.js +192 -0
  128. package/dist/src/hooks/hookTranslator.test.js.map +1 -0
  129. package/dist/src/hooks/types.d.ts +384 -0
  130. package/dist/src/hooks/types.js +284 -0
  131. package/dist/src/hooks/types.js.map +1 -0
  132. package/dist/src/hooks/types.test.d.ts +6 -0
  133. package/dist/src/hooks/types.test.js +35 -0
  134. package/dist/src/hooks/types.test.js.map +1 -0
  135. package/dist/src/index.d.ts +11 -0
  136. package/dist/src/index.js +14 -0
  137. package/dist/src/index.js.map +1 -1
  138. package/dist/src/mcp/google-auth-provider.d.ts +2 -0
  139. package/dist/src/mcp/google-auth-provider.js +21 -3
  140. package/dist/src/mcp/google-auth-provider.js.map +1 -1
  141. package/dist/src/mcp/google-auth-provider.test.js +42 -9
  142. package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
  143. package/dist/src/mcp/mcpLauncher.d.ts +26 -0
  144. package/dist/src/mcp/mcpLauncher.js +238 -0
  145. package/dist/src/mcp/mcpLauncher.js.map +1 -0
  146. package/dist/src/mcp/oauth-provider.d.ts +8 -5
  147. package/dist/src/mcp/oauth-provider.js +120 -36
  148. package/dist/src/mcp/oauth-provider.js.map +1 -1
  149. package/dist/src/mcp/oauth-provider.test.js +191 -2
  150. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  151. package/dist/src/mcp/oauth-token-storage.js +5 -4
  152. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  153. package/dist/src/mcp/oauth-token-storage.test.js +17 -11
  154. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
  155. package/dist/src/mcp/oauth-utils.d.ts +7 -0
  156. package/dist/src/mcp/oauth-utils.js +19 -0
  157. package/dist/src/mcp/oauth-utils.js.map +1 -1
  158. package/dist/src/mcp/oauth-utils.test.js +32 -0
  159. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  160. package/dist/src/mcp/sa-impersonation-provider.d.ts +0 -6
  161. package/dist/src/mcp/sa-impersonation-provider.js +6 -23
  162. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -1
  163. package/dist/src/mcp/token-storage/base-token-storage.test.js +75 -84
  164. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -1
  165. package/dist/src/mcp/token-storage/file-token-storage.js +1 -1
  166. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  167. package/dist/src/mcp/token-storage/file-token-storage.test.js +7 -5
  168. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -1
  169. package/dist/src/mcp/token-storage/hybrid-token-storage.js +1 -1
  170. package/dist/src/mcp/token-storage/hybrid-token-storage.js.map +1 -1
  171. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +2 -2
  172. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +1 -1
  173. package/dist/src/mcp/token-storage/keychain-token-storage.d.ts +6 -2
  174. package/dist/src/mcp/token-storage/keychain-token-storage.js +63 -7
  175. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  176. package/dist/src/mcp/token-storage/keychain-token-storage.test.js +54 -3
  177. package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +1 -1
  178. package/dist/src/mcp/token-storage/types.d.ts +6 -0
  179. package/dist/src/mcp/token-storage/types.js.map +1 -1
  180. package/dist/src/policy/config.d.ts +31 -0
  181. package/dist/src/policy/config.js +197 -0
  182. package/dist/src/policy/config.js.map +1 -0
  183. package/dist/src/policy/config.test.d.ts +6 -0
  184. package/dist/src/policy/config.test.js +404 -0
  185. package/dist/src/policy/config.test.js.map +1 -0
  186. package/dist/src/policy/index.d.ts +2 -0
  187. package/dist/src/policy/index.js +2 -0
  188. package/dist/src/policy/index.js.map +1 -1
  189. package/dist/src/policy/policies/read-only.toml +56 -0
  190. package/dist/src/policy/policies/write.toml +63 -0
  191. package/dist/src/policy/policies/yolo.toml +31 -0
  192. package/dist/src/policy/policy-engine.js +4 -0
  193. package/dist/src/policy/policy-engine.js.map +1 -1
  194. package/dist/src/policy/toml-loader.d.ts +46 -0
  195. package/dist/src/policy/toml-loader.js +314 -0
  196. package/dist/src/policy/toml-loader.js.map +1 -0
  197. package/dist/src/policy/toml-loader.test.d.ts +6 -0
  198. package/dist/src/policy/toml-loader.test.js +522 -0
  199. package/dist/src/policy/toml-loader.test.js.map +1 -0
  200. package/dist/src/policy/types.d.ts +18 -0
  201. package/dist/src/policy/types.js +6 -0
  202. package/dist/src/policy/types.js.map +1 -1
  203. package/dist/src/services/chatCompressionService.d.ts +32 -0
  204. package/dist/src/services/chatCompressionService.js +162 -0
  205. package/dist/src/services/chatCompressionService.js.map +1 -0
  206. package/dist/src/services/chatCompressionService.test.d.ts +6 -0
  207. package/dist/src/services/chatCompressionService.test.js +209 -0
  208. package/dist/src/services/chatCompressionService.test.js.map +1 -0
  209. package/dist/src/services/chatRecordingService.js +9 -8
  210. package/dist/src/services/chatRecordingService.js.map +1 -1
  211. package/dist/src/services/fileDiscoveryService.d.ts +2 -14
  212. package/dist/src/services/fileDiscoveryService.js +19 -55
  213. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  214. package/dist/src/services/fileDiscoveryService.test.js +91 -11
  215. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  216. package/dist/src/services/loopDetectionService.d.ts +1 -1
  217. package/dist/src/services/loopDetectionService.js +26 -13
  218. package/dist/src/services/loopDetectionService.js.map +1 -1
  219. package/dist/src/services/loopDetectionService.test.js +119 -11
  220. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  221. package/dist/src/services/shellExecutionService.js +22 -6
  222. package/dist/src/services/shellExecutionService.js.map +1 -1
  223. package/dist/src/services/shellExecutionService.test.js +32 -6
  224. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  225. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +4 -1
  226. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +84 -33
  227. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  228. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +40 -61
  229. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  230. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +4 -1
  231. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +6 -0
  232. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  233. package/dist/src/telemetry/gcp-exporters.js +0 -1
  234. package/dist/src/telemetry/gcp-exporters.js.map +1 -1
  235. package/dist/src/telemetry/gcp-exporters.test.js +1 -1
  236. package/dist/src/telemetry/gcp-exporters.test.js.map +1 -1
  237. package/dist/src/telemetry/index.d.ts +2 -1
  238. package/dist/src/telemetry/index.js +3 -2
  239. package/dist/src/telemetry/index.js.map +1 -1
  240. package/dist/src/telemetry/loggers.d.ts +2 -1
  241. package/dist/src/telemetry/loggers.js +37 -26
  242. package/dist/src/telemetry/loggers.js.map +1 -1
  243. package/dist/src/telemetry/loggers.test.js +199 -44
  244. package/dist/src/telemetry/loggers.test.js.map +1 -1
  245. package/dist/src/telemetry/metrics.d.ts +55 -6
  246. package/dist/src/telemetry/metrics.js +89 -1
  247. package/dist/src/telemetry/metrics.js.map +1 -1
  248. package/dist/src/telemetry/metrics.test.js +172 -213
  249. package/dist/src/telemetry/metrics.test.js.map +1 -1
  250. package/dist/src/telemetry/semantic.d.ts +82 -0
  251. package/dist/src/telemetry/semantic.js +269 -0
  252. package/dist/src/telemetry/semantic.js.map +1 -0
  253. package/dist/src/telemetry/semantic.test.d.ts +6 -0
  254. package/dist/src/telemetry/semantic.test.js +387 -0
  255. package/dist/src/telemetry/semantic.test.js.map +1 -0
  256. package/dist/src/telemetry/telemetry-utils.test.js +29 -28
  257. package/dist/src/telemetry/telemetry-utils.test.js.map +1 -1
  258. package/dist/src/telemetry/trace.d.ts +46 -0
  259. package/dist/src/telemetry/trace.js +121 -0
  260. package/dist/src/telemetry/trace.js.map +1 -0
  261. package/dist/src/telemetry/types.d.ts +64 -28
  262. package/dist/src/telemetry/types.js +163 -55
  263. package/dist/src/telemetry/types.js.map +1 -1
  264. package/dist/src/telemetry/uiTelemetry.js +6 -6
  265. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  266. package/dist/src/telemetry/uiTelemetry.test.js +88 -66
  267. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  268. package/dist/src/tools/edit.d.ts +3 -2
  269. package/dist/src/tools/edit.js +16 -12
  270. package/dist/src/tools/edit.js.map +1 -1
  271. package/dist/src/tools/edit.test.js +78 -1
  272. package/dist/src/tools/edit.test.js.map +1 -1
  273. package/dist/src/tools/glob.js +9 -13
  274. package/dist/src/tools/glob.js.map +1 -1
  275. package/dist/src/tools/glob.test.js +203 -199
  276. package/dist/src/tools/glob.test.js.map +1 -1
  277. package/dist/src/tools/grep.js +2 -2
  278. package/dist/src/tools/grep.js.map +1 -1
  279. package/dist/src/tools/ls.js +7 -13
  280. package/dist/src/tools/ls.js.map +1 -1
  281. package/dist/src/tools/ls.test.js +2 -9
  282. package/dist/src/tools/ls.test.js.map +1 -1
  283. package/dist/src/tools/mcp-client-manager.d.ts +49 -4
  284. package/dist/src/tools/mcp-client-manager.js +209 -23
  285. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  286. package/dist/src/tools/mcp-client-manager.test.js +130 -33
  287. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  288. package/dist/src/tools/mcp-client.d.ts +5 -1
  289. package/dist/src/tools/mcp-client.js +72 -92
  290. package/dist/src/tools/mcp-client.js.map +1 -1
  291. package/dist/src/tools/mcp-client.test.js +65 -6
  292. package/dist/src/tools/mcp-client.test.js.map +1 -1
  293. package/dist/src/tools/mcp-tool.d.ts +4 -2
  294. package/dist/src/tools/mcp-tool.js +14 -10
  295. package/dist/src/tools/mcp-tool.js.map +1 -1
  296. package/dist/src/tools/memoryTool.d.ts +5 -3
  297. package/dist/src/tools/memoryTool.js +10 -8
  298. package/dist/src/tools/memoryTool.js.map +1 -1
  299. package/dist/src/tools/modifiable-tool.js +3 -2
  300. package/dist/src/tools/modifiable-tool.js.map +1 -1
  301. package/dist/src/tools/read-file.js +7 -3
  302. package/dist/src/tools/read-file.js.map +1 -1
  303. package/dist/src/tools/read-file.test.js +25 -2
  304. package/dist/src/tools/read-file.test.js.map +1 -1
  305. package/dist/src/tools/read-many-files.js +8 -29
  306. package/dist/src/tools/read-many-files.js.map +1 -1
  307. package/dist/src/tools/shell.d.ts +6 -4
  308. package/dist/src/tools/shell.js +23 -16
  309. package/dist/src/tools/shell.js.map +1 -1
  310. package/dist/src/tools/shell.test.js +8 -1
  311. package/dist/src/tools/shell.test.js.map +1 -1
  312. package/dist/src/tools/smart-edit.d.ts +3 -2
  313. package/dist/src/tools/smart-edit.js +23 -12
  314. package/dist/src/tools/smart-edit.js.map +1 -1
  315. package/dist/src/tools/smart-edit.test.js +62 -1
  316. package/dist/src/tools/smart-edit.test.js.map +1 -1
  317. package/dist/src/tools/tool-registry.d.ts +6 -19
  318. package/dist/src/tools/tool-registry.js +11 -47
  319. package/dist/src/tools/tool-registry.js.map +1 -1
  320. package/dist/src/tools/tool-registry.test.js +2 -24
  321. package/dist/src/tools/tool-registry.test.js.map +1 -1
  322. package/dist/src/tools/tools.d.ts +8 -1
  323. package/dist/src/tools/tools.js +32 -18
  324. package/dist/src/tools/tools.js.map +1 -1
  325. package/dist/src/tools/web-fetch.js +4 -18
  326. package/dist/src/tools/web-fetch.js.map +1 -1
  327. package/dist/src/tools/web-fetch.test.js +3 -3
  328. package/dist/src/tools/web-fetch.test.js.map +1 -1
  329. package/dist/src/tools/write-file.d.ts +2 -1
  330. package/dist/src/tools/write-file.js +7 -7
  331. package/dist/src/tools/write-file.js.map +1 -1
  332. package/dist/src/tools/write-file.test.js +1 -1
  333. package/dist/src/tools/write-file.test.js.map +1 -1
  334. package/dist/src/tools/write-todos.d.ts +2 -1
  335. package/dist/src/tools/write-todos.js +5 -2
  336. package/dist/src/tools/write-todos.js.map +1 -1
  337. package/dist/src/utils/channel.d.ts +19 -0
  338. package/dist/src/utils/channel.js +49 -0
  339. package/dist/src/utils/channel.js.map +1 -0
  340. package/dist/src/utils/channel.test.d.ts +6 -0
  341. package/dist/src/utils/channel.test.js +170 -0
  342. package/dist/src/utils/channel.test.js.map +1 -0
  343. package/dist/src/utils/environmentContext.d.ts +2 -1
  344. package/dist/src/utils/environmentContext.js +18 -0
  345. package/dist/src/utils/environmentContext.js.map +1 -1
  346. package/dist/src/utils/errorParsing.d.ts +1 -1
  347. package/dist/src/utils/errorParsing.js +5 -33
  348. package/dist/src/utils/errorParsing.js.map +1 -1
  349. package/dist/src/utils/errorParsing.test.js +0 -88
  350. package/dist/src/utils/errorParsing.test.js.map +1 -1
  351. package/dist/src/utils/errors.d.ts +3 -0
  352. package/dist/src/utils/errors.js +6 -0
  353. package/dist/src/utils/errors.js.map +1 -1
  354. package/dist/src/utils/events.d.ts +88 -0
  355. package/dist/src/utils/events.js +77 -0
  356. package/dist/src/utils/events.js.map +1 -0
  357. package/dist/src/utils/events.test.d.ts +6 -0
  358. package/dist/src/utils/events.test.js +131 -0
  359. package/dist/src/utils/events.test.js.map +1 -0
  360. package/dist/src/utils/extensionLoader.d.ts +78 -0
  361. package/dist/src/utils/extensionLoader.js +162 -0
  362. package/dist/src/utils/extensionLoader.js.map +1 -0
  363. package/dist/src/utils/extensionLoader.test.d.ts +6 -0
  364. package/dist/src/utils/extensionLoader.test.js +90 -0
  365. package/dist/src/utils/extensionLoader.test.js.map +1 -0
  366. package/dist/src/utils/fetch.js +1 -6
  367. package/dist/src/utils/fetch.js.map +1 -1
  368. package/dist/src/utils/flashFallback.test.js +26 -45
  369. package/dist/src/utils/flashFallback.test.js.map +1 -1
  370. package/dist/src/utils/getFolderStructure.js +7 -16
  371. package/dist/src/utils/getFolderStructure.js.map +1 -1
  372. package/dist/src/utils/gitIgnoreParser.d.ts +4 -1
  373. package/dist/src/utils/gitIgnoreParser.js +21 -4
  374. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  375. package/dist/src/utils/gitIgnoreParser.test.js +28 -0
  376. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  377. package/dist/src/utils/googleErrors.d.ts +104 -0
  378. package/dist/src/utils/googleErrors.js +152 -0
  379. package/dist/src/utils/googleErrors.js.map +1 -0
  380. package/dist/src/utils/googleErrors.test.d.ts +6 -0
  381. package/dist/src/utils/googleErrors.test.js +301 -0
  382. package/dist/src/utils/googleErrors.test.js.map +1 -0
  383. package/dist/src/utils/googleQuotaErrors.d.ts +36 -0
  384. package/dist/src/utils/googleQuotaErrors.js +149 -0
  385. package/dist/src/utils/googleQuotaErrors.js.map +1 -0
  386. package/dist/src/utils/googleQuotaErrors.test.d.ts +6 -0
  387. package/dist/src/utils/googleQuotaErrors.test.js +311 -0
  388. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -0
  389. package/dist/src/utils/ignorePatterns.test.js +26 -30
  390. package/dist/src/utils/ignorePatterns.test.js.map +1 -1
  391. package/dist/src/utils/installationManager.js +2 -1
  392. package/dist/src/utils/installationManager.js.map +1 -1
  393. package/dist/src/utils/installationManager.test.js +3 -3
  394. package/dist/src/utils/installationManager.test.js.map +1 -1
  395. package/dist/src/utils/llm-edit-fixer.d.ts +1 -1
  396. package/dist/src/utils/llm-edit-fixer.js +27 -3
  397. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  398. package/dist/src/utils/llm-edit-fixer.test.js +21 -0
  399. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -1
  400. package/dist/src/utils/memoryDiscovery.d.ts +11 -2
  401. package/dist/src/utils/memoryDiscovery.js +140 -2
  402. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  403. package/dist/src/utils/memoryDiscovery.test.js +153 -37
  404. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  405. package/dist/src/utils/package.d.ts +12 -0
  406. package/dist/src/utils/package.js +15 -0
  407. package/dist/src/utils/package.js.map +1 -0
  408. package/dist/src/utils/paths.js +126 -26
  409. package/dist/src/utils/paths.js.map +1 -1
  410. package/dist/src/utils/paths.test.js +200 -68
  411. package/dist/src/utils/paths.test.js.map +1 -1
  412. package/dist/src/utils/quotaErrorDetection.d.ts +0 -2
  413. package/dist/src/utils/quotaErrorDetection.js +0 -46
  414. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  415. package/dist/src/utils/retry.js +41 -145
  416. package/dist/src/utils/retry.js.map +1 -1
  417. package/dist/src/utils/retry.test.js +31 -110
  418. package/dist/src/utils/retry.test.js.map +1 -1
  419. package/dist/src/utils/shell-utils.js +29 -1
  420. package/dist/src/utils/shell-utils.js.map +1 -1
  421. package/dist/src/utils/shell-utils.test.js +88 -0
  422. package/dist/src/utils/shell-utils.test.js.map +1 -1
  423. package/dist/src/utils/summarizer.js +2 -1
  424. package/dist/src/utils/summarizer.js.map +1 -1
  425. package/dist/src/utils/summarizer.test.js +0 -1
  426. package/dist/src/utils/summarizer.test.js.map +1 -1
  427. package/dist/src/utils/workspaceContext.js +1 -1
  428. package/dist/src/utils/workspaceContext.js.map +1 -1
  429. package/dist/src/utils/workspaceContext.test.js +2 -2
  430. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  431. package/dist/tsconfig.tsbuildinfo +1 -1
  432. package/package.json +9 -3
@@ -10,6 +10,7 @@ import { makeRelative, shortenPath } from '../utils/paths.js';
10
10
  import { DEFAULT_FILE_FILTERING_OPTIONS } from '../config/constants.js';
11
11
  import { ToolErrorType } from './tool-error.js';
12
12
  import { LS_TOOL_NAME } from './tool-names.js';
13
+ import { debugLogger } from '../utils/debugLogger.js';
13
14
  class LSToolInvocation extends BaseToolInvocation {
14
15
  config;
15
16
  constructor(config, params, messageBus, _toolName, _toolDisplayName) {
@@ -84,7 +85,7 @@ class LSToolInvocation extends BaseToolInvocation {
84
85
  }
85
86
  const relativePaths = files.map((file) => path.relative(this.config.getTargetDir(), path.join(this.params.path, file)));
86
87
  const fileDiscovery = this.config.getFileService();
87
- const { filteredPaths, gitIgnoredCount, geminiIgnoredCount } = fileDiscovery.filterFilesWithReport(relativePaths, {
88
+ const { filteredPaths, ignoredCount } = fileDiscovery.filterFilesWithReport(relativePaths, {
88
89
  respectGitIgnore: this.params.file_filtering_options?.respect_git_ignore ??
89
90
  this.config.getFileFilteringOptions().respectGitIgnore ??
90
91
  DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore,
@@ -111,7 +112,7 @@ class LSToolInvocation extends BaseToolInvocation {
111
112
  }
112
113
  catch (error) {
113
114
  // Log error internally but don't fail the whole listing
114
- console.error(`Error accessing ${fullPath}: ${error}`);
115
+ debugLogger.debug(`Error accessing ${fullPath}: ${error}`);
115
116
  }
116
117
  }
117
118
  // Sort entries (directories first, then alphabetically)
@@ -127,19 +128,12 @@ class LSToolInvocation extends BaseToolInvocation {
127
128
  .map((entry) => `${entry.isDirectory ? '[DIR] ' : ''}${entry.name}`)
128
129
  .join('\n');
129
130
  let resultMessage = `Directory listing for ${this.params.path}:\n${directoryContent}`;
130
- const ignoredMessages = [];
131
- if (gitIgnoredCount > 0) {
132
- ignoredMessages.push(`${gitIgnoredCount} git-ignored`);
133
- }
134
- if (geminiIgnoredCount > 0) {
135
- ignoredMessages.push(`${geminiIgnoredCount} gemini-ignored`);
136
- }
137
- if (ignoredMessages.length > 0) {
138
- resultMessage += `\n\n(${ignoredMessages.join(', ')})`;
131
+ if (ignoredCount > 0) {
132
+ resultMessage += `\n\n(${ignoredCount} ignored)`;
139
133
  }
140
134
  let displayMessage = `Listed ${entries.length} item(s).`;
141
- if (ignoredMessages.length > 0) {
142
- displayMessage += ` (${ignoredMessages.join(', ')})`;
135
+ if (ignoredCount > 0) {
136
+ displayMessage += ` (${ignoredCount} ignored)`;
143
137
  }
144
138
  return {
145
139
  llmContent: resultMessage,
@@ -1 +1 @@
1
- {"version":3,"file":"ls.js","sourceRoot":"","sources":["../../../src/tools/ls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ls.js","sourceRoot":"","sources":["../../../src/tools/ls.ts"],"names":[],"mappings":"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"}
@@ -108,7 +108,7 @@ describe('LSTool', () => {
108
108
  expect(result.llmContent).toContain('file1.txt');
109
109
  expect(result.llmContent).not.toContain('file2.log');
110
110
  // .git is always ignored by default.
111
- expect(result.returnDisplay).toBe('Listed 2 item(s). (2 git-ignored)');
111
+ expect(result.returnDisplay).toBe('Listed 2 item(s). (2 ignored)');
112
112
  });
113
113
  it('should respect geminiignore patterns', async () => {
114
114
  await fs.writeFile(path.join(tempRootDir, 'file1.txt'), 'content1');
@@ -118,7 +118,7 @@ describe('LSTool', () => {
118
118
  const result = await invocation.execute(abortSignal);
119
119
  expect(result.llmContent).toContain('file1.txt');
120
120
  expect(result.llmContent).not.toContain('file2.log');
121
- expect(result.returnDisplay).toBe('Listed 2 item(s). (1 gemini-ignored)');
121
+ expect(result.returnDisplay).toBe('Listed 2 item(s). (1 ignored)');
122
122
  });
123
123
  it('should handle non-directory paths', async () => {
124
124
  const testPath = path.join(tempRootDir, 'file1.txt');
@@ -184,20 +184,13 @@ describe('LSTool', () => {
184
184
  }
185
185
  return originalStat(p);
186
186
  });
187
- // Spy on console.error to verify it's called
188
- const consoleErrorSpy = vi
189
- .spyOn(console, 'error')
190
- .mockImplementation(() => { });
191
187
  const invocation = lsTool.build({ path: tempRootDir });
192
188
  const result = await invocation.execute(abortSignal);
193
189
  // Should still list the other files
194
190
  expect(result.llmContent).toContain('file1.txt');
195
191
  expect(result.llmContent).not.toContain('problematic.txt');
196
192
  expect(result.returnDisplay).toBe('Listed 1 item(s).');
197
- // Verify error was logged
198
- expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringMatching(/Error accessing.*problematic\.txt/s));
199
193
  statSpy.mockRestore();
200
- consoleErrorSpy.mockRestore();
201
194
  });
202
195
  });
203
196
  describe('getDescription', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ls.test.js","sourceRoot":"","sources":["../../../src/tools/ls.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,MAAc,CAAC;IACnB,IAAI,WAAmB,CAAC;IACxB,IAAI,gBAAwB,CAAC;IAC7B,IAAI,UAAkB,CAAC;IACvB,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC;IAEjD,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,WAAW,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACxE,gBAAgB,GAAG,MAAM,EAAE,CAAC,OAAO,CACjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAC7C,CAAC;QAEF,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,WAAW,EAAE;YACnE,gBAAgB;SACjB,CAAC,CAAC;QAEH,UAAU,GAAG;YACX,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW;YAC/B,mBAAmB,EAAE,GAAG,EAAE,CAAC,oBAAoB;YAC/C,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,WAAW,CAAC;YAC3D,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC9B,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;aAC1B,CAAC;SACkB,CAAC;QAEvB,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,EAAE,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEzB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEpD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CACnD,8BAA8B,CAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,OAAO,CACzD,yDAAyD,WAAW,KAAK,gBAAgB,EAAE,CAC5F,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACpD,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEzB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEpD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjD,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,EACjD,WAAW,CACZ,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjD,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,EACjD,WAAW,CACZ,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,QAAQ,YAAY,CAAC,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YAEpE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC9B,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,CAAC,OAAO,CAAC;aAClB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrD,qCAAqC;YACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACrD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAEzC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;YAC/D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACrE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;YAC/D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAEhD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,KAAK,GAAG,CACZ,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAC/D;iBACE,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;YAE9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAC3D,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAE9B,0DAA0D;YAC1D,wCAAwC;YACxC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACrD,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAErD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;YAC/D,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,CACxD,mCAAmC,CACpC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAClE,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAEhD,iEAAiE;YACjE,4DAA4D;YAC5D,iEAAiE;YACjE,MAAM,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC;YAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBAClE,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,eAAe,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,CAAC;gBACD,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,6CAA6C;YAC7C,MAAM,eAAe,GAAG,EAAE;iBACvB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;iBACvB,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEhC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,oCAAoC;YACpC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEvD,0BAA0B;YAC1B,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAC1C,MAAM,CAAC,cAAc,CAAC,oCAAoC,CAAC,CAC5D,CAAC;YAEF,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,eAAe,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC;aAC9C,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;YAChD,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;aACzC,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACpD,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CACxC,sDAAsD,CACvD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,EACjD,WAAW,CACZ,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ls.test.js","sourceRoot":"","sources":["../../../src/tools/ls.test.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { Config } from '../config/config.js';
6
+ import type { Config, GeminiCLIExtension, MCPServerConfig } from '../config/config.js';
7
7
  import type { ToolRegistry } from './tool-registry.js';
8
8
  import { MCPDiscoveryState } from './mcp-client.js';
9
9
  import type { EventEmitter } from 'node:events';
@@ -15,19 +15,64 @@ import type { EventEmitter } from 'node:events';
15
15
  export declare class McpClientManager {
16
16
  private clients;
17
17
  private readonly toolRegistry;
18
+ private readonly cliConfig;
19
+ private discoveryPromise;
18
20
  private discoveryState;
19
21
  private readonly eventEmitter?;
20
- constructor(toolRegistry: ToolRegistry, eventEmitter?: EventEmitter);
22
+ private readonly blockedMcpServers;
23
+ constructor(toolRegistry: ToolRegistry, cliConfig: Config, eventEmitter?: EventEmitter);
24
+ getBlockedMcpServers(): {
25
+ name: string;
26
+ extensionName: string;
27
+ }[];
21
28
  /**
22
- * Initiates the tool discovery process for all configured MCP servers.
29
+ * For all the MCP servers associated with this extension:
30
+ *
31
+ * - Removes all its MCP servers from the global configuration object.
32
+ * - Disconnects all MCP clients from their servers.
33
+ * - Updates the Gemini chat configuration to load the new tools.
34
+ */
35
+ stopExtension(extension: GeminiCLIExtension): Promise<void>;
36
+ /**
37
+ * For all the MCP servers associated with this extension:
38
+ *
39
+ * - Adds all its MCP servers to the global configuration object.
40
+ * - Connects MCP clients to each server and discovers their tools.
41
+ * - Updates the Gemini chat configuration to load the new tools.
42
+ */
43
+ startExtension(extension: GeminiCLIExtension): Promise<void>;
44
+ private isAllowedMcpServer;
45
+ private disconnectClient;
46
+ maybeDiscoverMcpServer(name: string, config: MCPServerConfig): Promise<void> | void;
47
+ /**
48
+ * Initiates the tool discovery process for all configured MCP servers (via
49
+ * gemini settings or command line arguments).
50
+ *
23
51
  * It connects to each server, discovers its available tools, and registers
24
52
  * them with the `ToolRegistry`.
53
+ *
54
+ * For any server which is already connected, it will first be disconnected.
55
+ *
56
+ * This does NOT load extension MCP servers - this happens when the
57
+ * ExtensionLoader explicitly calls `loadExtension`.
58
+ */
59
+ startConfiguredMcpServers(): Promise<void>;
60
+ /**
61
+ * Restarts all active MCP Clients.
62
+ */
63
+ restart(): Promise<void>;
64
+ /**
65
+ * Restart a single MCP server by name.
25
66
  */
26
- discoverAllMcpTools(cliConfig: Config): Promise<void>;
67
+ restartServer(name: string): Promise<void>;
27
68
  /**
28
69
  * Stops all running local MCP servers and closes all client connections.
29
70
  * This is the cleanup method to be called on application exit.
30
71
  */
31
72
  stop(): Promise<void>;
32
73
  getDiscoveryState(): MCPDiscoveryState;
74
+ /**
75
+ * All of the MCP server configurations currently loaded.
76
+ */
77
+ getMcpServers(): Record<string, MCPServerConfig>;
33
78
  }
@@ -3,8 +3,11 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { isManagedMcpConfig, getManagedMcpConfig } from '../mcp/mcpLauncher.js';
6
7
  import { McpClient, MCPDiscoveryState, populateMcpServerCommand, } from './mcp-client.js';
7
8
  import { getErrorMessage } from '../utils/errors.js';
9
+ import { coreEvents } from '../utils/events.js';
10
+ import { debugLogger } from '../utils/debugLogger.js';
8
11
  /**
9
12
  * Manages the lifecycle of multiple MCP clients, including local child processes.
10
13
  * This class is responsible for starting, stopping, and discovering tools from
@@ -13,44 +16,217 @@ import { getErrorMessage } from '../utils/errors.js';
13
16
  export class McpClientManager {
14
17
  clients = new Map();
15
18
  toolRegistry;
19
+ cliConfig;
20
+ // If we have ongoing MCP client discovery, this completes once that is done.
21
+ discoveryPromise;
16
22
  discoveryState = MCPDiscoveryState.NOT_STARTED;
17
23
  eventEmitter;
18
- constructor(toolRegistry, eventEmitter) {
24
+ blockedMcpServers = [];
25
+ constructor(toolRegistry, cliConfig, eventEmitter) {
19
26
  this.toolRegistry = toolRegistry;
27
+ this.cliConfig = cliConfig;
20
28
  this.eventEmitter = eventEmitter;
21
29
  }
30
+ getBlockedMcpServers() {
31
+ return this.blockedMcpServers;
32
+ }
33
+ /**
34
+ * For all the MCP servers associated with this extension:
35
+ *
36
+ * - Removes all its MCP servers from the global configuration object.
37
+ * - Disconnects all MCP clients from their servers.
38
+ * - Updates the Gemini chat configuration to load the new tools.
39
+ */
40
+ async stopExtension(extension) {
41
+ debugLogger.log(`Unloading extension: ${extension.name}`);
42
+ await Promise.all(Object.keys(extension.mcpServers ?? {}).map(this.disconnectClient.bind(this)));
43
+ }
44
+ /**
45
+ * For all the MCP servers associated with this extension:
46
+ *
47
+ * - Adds all its MCP servers to the global configuration object.
48
+ * - Connects MCP clients to each server and discovers their tools.
49
+ * - Updates the Gemini chat configuration to load the new tools.
50
+ */
51
+ async startExtension(extension) {
52
+ debugLogger.log(`Loading extension: ${extension.name}`);
53
+ await Promise.all(Object.entries(extension.mcpServers ?? {}).map(([name, config]) => this.maybeDiscoverMcpServer(name, {
54
+ ...config,
55
+ extension,
56
+ })));
57
+ }
58
+ isAllowedMcpServer(name) {
59
+ const allowedNames = this.cliConfig.getAllowedMcpServers();
60
+ if (allowedNames &&
61
+ allowedNames.length > 0 &&
62
+ allowedNames.indexOf(name) === -1) {
63
+ return false;
64
+ }
65
+ const blockedNames = this.cliConfig.getBlockedMcpServers();
66
+ if (blockedNames &&
67
+ blockedNames.length > 0 &&
68
+ blockedNames.indexOf(name) !== -1) {
69
+ return false;
70
+ }
71
+ return true;
72
+ }
73
+ async disconnectClient(name) {
74
+ const existing = this.clients.get(name);
75
+ if (existing) {
76
+ try {
77
+ this.clients.delete(name);
78
+ this.eventEmitter?.emit('mcp-client-update', this.clients);
79
+ await existing.disconnect();
80
+ }
81
+ catch (error) {
82
+ debugLogger.warn(`Error stopping client '${name}': ${getErrorMessage(error)}`);
83
+ }
84
+ finally {
85
+ // This is required to update the content generator configuration with the
86
+ // new tool configuration.
87
+ const geminiClient = this.cliConfig.getGeminiClient();
88
+ if (geminiClient.isInitialized()) {
89
+ await geminiClient.setTools();
90
+ }
91
+ }
92
+ }
93
+ }
94
+ maybeDiscoverMcpServer(name, config) {
95
+ if (!this.isAllowedMcpServer(name)) {
96
+ if (!this.blockedMcpServers.find((s) => s.name === name)) {
97
+ this.blockedMcpServers?.push({
98
+ name,
99
+ extensionName: config.extension?.name ?? '',
100
+ });
101
+ }
102
+ return;
103
+ }
104
+ if (!this.cliConfig.isTrustedFolder()) {
105
+ return;
106
+ }
107
+ if (config.extension && !config.extension.isActive) {
108
+ return;
109
+ }
110
+ const existing = this.clients.get(name);
111
+ if (existing && existing.getServerConfig().extension !== config.extension) {
112
+ const extensionText = config.extension
113
+ ? ` from extension "${config.extension.name}"`
114
+ : '';
115
+ debugLogger.warn(`Skipping MCP config for server with name "${name}"${extensionText} as it already exists.`);
116
+ return;
117
+ }
118
+ const currentDiscoveryPromise = new Promise((resolve, _reject) => {
119
+ (async () => {
120
+ try {
121
+ if (existing) {
122
+ await existing.disconnect();
123
+ }
124
+ const client = existing ??
125
+ new McpClient(name, config, this.toolRegistry, this.cliConfig.getPromptRegistry(), this.cliConfig.getWorkspaceContext(), this.cliConfig.getDebugMode());
126
+ if (!existing) {
127
+ this.clients.set(name, client);
128
+ this.eventEmitter?.emit('mcp-client-update', this.clients);
129
+ }
130
+ try {
131
+ await client.connect();
132
+ await client.discover(this.cliConfig);
133
+ this.eventEmitter?.emit('mcp-client-update', this.clients);
134
+ }
135
+ catch (error) {
136
+ this.eventEmitter?.emit('mcp-client-update', this.clients);
137
+ // Log the error but don't let a single failed server stop the others
138
+ coreEvents.emitFeedback('error', `Error during discovery for server '${name}': ${getErrorMessage(error)}`, error);
139
+ }
140
+ }
141
+ finally {
142
+ // This is required to update the content generator configuration with the
143
+ // new tool configuration.
144
+ const geminiClient = this.cliConfig.getGeminiClient();
145
+ if (geminiClient.isInitialized()) {
146
+ await geminiClient.setTools();
147
+ }
148
+ resolve();
149
+ }
150
+ })();
151
+ });
152
+ if (this.discoveryPromise) {
153
+ this.discoveryPromise = this.discoveryPromise.then(() => currentDiscoveryPromise);
154
+ }
155
+ else {
156
+ this.discoveryState = MCPDiscoveryState.IN_PROGRESS;
157
+ this.discoveryPromise = currentDiscoveryPromise;
158
+ }
159
+ this.eventEmitter?.emit('mcp-client-update', this.clients);
160
+ const currentPromise = this.discoveryPromise;
161
+ currentPromise.then((_) => {
162
+ // If we are the last recorded discoveryPromise, then we are done, reset
163
+ // the world.
164
+ if (currentPromise === this.discoveryPromise) {
165
+ this.discoveryPromise = undefined;
166
+ this.discoveryState = MCPDiscoveryState.COMPLETED;
167
+ }
168
+ });
169
+ return currentPromise;
170
+ }
22
171
  /**
23
- * Initiates the tool discovery process for all configured MCP servers.
172
+ * Initiates the tool discovery process for all configured MCP servers (via
173
+ * gemini settings or command line arguments).
174
+ *
24
175
  * It connects to each server, discovers its available tools, and registers
25
176
  * them with the `ToolRegistry`.
177
+ *
178
+ * For any server which is already connected, it will first be disconnected.
179
+ *
180
+ * This does NOT load extension MCP servers - this happens when the
181
+ * ExtensionLoader explicitly calls `loadExtension`.
26
182
  */
27
- async discoverAllMcpTools(cliConfig) {
28
- if (!cliConfig.isTrustedFolder()) {
183
+ async startConfiguredMcpServers() {
184
+ if (!this.cliConfig.isTrustedFolder()) {
29
185
  return;
30
186
  }
31
- await this.stop();
32
- const servers = populateMcpServerCommand(cliConfig.getMcpServers() || {}, cliConfig.getMcpServerCommand());
33
- this.discoveryState = MCPDiscoveryState.IN_PROGRESS;
187
+ const servers = populateMcpServerCommand(this.cliConfig.getMcpServers() || {}, this.cliConfig.getMcpServerCommand());
188
+ for (const name in servers) {
189
+ if (Object.hasOwn(servers, name)) {
190
+ const config = servers[name];
191
+ if (isManagedMcpConfig(config) && config.managed) {
192
+ try {
193
+ servers[name] = await getManagedMcpConfig(name);
194
+ }
195
+ catch (error) {
196
+ const errorMessage = error instanceof Error
197
+ ? error.message
198
+ : `Failed to bootstrap managed MCP server '${name}'. See logs for details.`;
199
+ coreEvents.emitFeedback('error', errorMessage, error);
200
+ delete servers[name]; // Don't try to start a failed server.
201
+ }
202
+ }
203
+ }
204
+ }
34
205
  this.eventEmitter?.emit('mcp-client-update', this.clients);
35
- const discoveryPromises = Object.entries(servers)
36
- .filter(([_, config]) => !config.extension || config.extension.isActive)
37
- .map(async ([name, config]) => {
38
- const client = new McpClient(name, config, this.toolRegistry, cliConfig.getPromptRegistry(), cliConfig.getWorkspaceContext(), cliConfig.getDebugMode());
39
- this.clients.set(name, client);
40
- this.eventEmitter?.emit('mcp-client-update', this.clients);
206
+ await Promise.all(Object.entries(servers).map(([name, config]) => this.maybeDiscoverMcpServer(name, config)));
207
+ }
208
+ /**
209
+ * Restarts all active MCP Clients.
210
+ */
211
+ async restart() {
212
+ await Promise.all(Array.from(this.clients.entries()).map(async ([name, client]) => {
41
213
  try {
42
- await client.connect();
43
- await client.discover(cliConfig);
44
- this.eventEmitter?.emit('mcp-client-update', this.clients);
214
+ await this.maybeDiscoverMcpServer(name, client.getServerConfig());
45
215
  }
46
216
  catch (error) {
47
- this.eventEmitter?.emit('mcp-client-update', this.clients);
48
- // Log the error but don't let a single failed server stop the others
49
- console.error(`Error during discovery for server '${name}': ${getErrorMessage(error)}`);
217
+ debugLogger.error(`Error restarting client '${name}': ${getErrorMessage(error)}`);
50
218
  }
51
- });
52
- await Promise.all(discoveryPromises);
53
- this.discoveryState = MCPDiscoveryState.COMPLETED;
219
+ }));
220
+ }
221
+ /**
222
+ * Restart a single MCP server by name.
223
+ */
224
+ async restartServer(name) {
225
+ const client = this.clients.get(name);
226
+ if (!client) {
227
+ throw new Error(`No MCP server registered with the name "${name}"`);
228
+ }
229
+ await this.maybeDiscoverMcpServer(name, client.getServerConfig());
54
230
  }
55
231
  /**
56
232
  * Stops all running local MCP servers and closes all client connections.
@@ -62,7 +238,7 @@ export class McpClientManager {
62
238
  await client.disconnect();
63
239
  }
64
240
  catch (error) {
65
- console.error(`Error stopping client '${name}': ${getErrorMessage(error)}`);
241
+ coreEvents.emitFeedback('error', `Error stopping client '${name}':`, error);
66
242
  }
67
243
  });
68
244
  await Promise.all(disconnectionPromises);
@@ -71,5 +247,15 @@ export class McpClientManager {
71
247
  getDiscoveryState() {
72
248
  return this.discoveryState;
73
249
  }
250
+ /**
251
+ * All of the MCP server configurations currently loaded.
252
+ */
253
+ getMcpServers() {
254
+ const mcpServers = {};
255
+ for (const [name, client] of this.clients.entries()) {
256
+ mcpServers[name] = client.getServerConfig();
257
+ }
258
+ return mcpServers;
259
+ }
74
260
  }
75
261
  //# sourceMappingURL=mcp-client-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client-manager.js","sourceRoot":"","sources":["../../../src/tools/mcp-client-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-client-manager.js","sourceRoot":"","sources":["../../../src/tools/mcp-client-manager.ts"],"names":[],"mappings":"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"}