@vybestack/llxprt-code-core 0.1.18 → 0.1.19-beta

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 (270) hide show
  1. package/README.md +1 -0
  2. package/dist/src/code_assist/converter.d.ts +2 -1
  3. package/dist/src/code_assist/converter.js +1 -1
  4. package/dist/src/code_assist/converter.js.map +1 -1
  5. package/dist/src/code_assist/converter.test.js +48 -1
  6. package/dist/src/code_assist/converter.test.js.map +1 -1
  7. package/dist/src/code_assist/oauth2.js +2 -1
  8. package/dist/src/code_assist/oauth2.js.map +1 -1
  9. package/dist/src/code_assist/server.test.js +4 -1
  10. package/dist/src/code_assist/server.test.js.map +1 -1
  11. package/dist/src/config/config.alwaysAllow.test.d.ts +6 -0
  12. package/dist/src/config/config.alwaysAllow.test.js +84 -0
  13. package/dist/src/config/config.alwaysAllow.test.js.map +1 -0
  14. package/dist/src/config/config.d.ts +80 -1
  15. package/dist/src/config/config.ephemeral.test.d.ts +6 -0
  16. package/dist/src/config/config.ephemeral.test.js +152 -0
  17. package/dist/src/config/config.ephemeral.test.js.map +1 -0
  18. package/dist/src/config/config.js +135 -0
  19. package/dist/src/config/config.js.map +1 -1
  20. package/dist/src/config/config.test.js +8 -0
  21. package/dist/src/config/config.test.js.map +1 -1
  22. package/dist/src/core/client.d.ts +0 -2
  23. package/dist/src/core/client.js +10 -85
  24. package/dist/src/core/client.js.map +1 -1
  25. package/dist/src/core/client.test.js +7 -2
  26. package/dist/src/core/client.test.js.map +1 -1
  27. package/dist/src/core/contentGenerator.js +1 -1
  28. package/dist/src/core/contentGenerator.js.map +1 -1
  29. package/dist/src/core/coreToolScheduler.d.ts +17 -7
  30. package/dist/src/core/coreToolScheduler.js +121 -18
  31. package/dist/src/core/coreToolScheduler.js.map +1 -1
  32. package/dist/src/core/coreToolScheduler.test.js +25 -37
  33. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  34. package/dist/src/core/geminiChat.d.ts +3 -0
  35. package/dist/src/core/geminiChat.js +17 -13
  36. package/dist/src/core/geminiChat.js.map +1 -1
  37. package/dist/src/core/logger.d.ts +1 -0
  38. package/dist/src/core/logger.js +18 -0
  39. package/dist/src/core/logger.js.map +1 -1
  40. package/dist/src/core/logger.test.js +29 -0
  41. package/dist/src/core/logger.test.js.map +1 -1
  42. package/dist/src/core/loggingContentGenerator.d.ts +24 -0
  43. package/dist/src/core/loggingContentGenerator.js +89 -0
  44. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  45. package/dist/src/core/nonInteractiveToolExecutor.js +21 -1
  46. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  47. package/dist/src/core/nonInteractiveToolExecutor.test.js +8 -31
  48. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  49. package/dist/src/core/subagent.d.ts +230 -0
  50. package/dist/src/core/subagent.js +453 -0
  51. package/dist/src/core/subagent.js.map +1 -0
  52. package/dist/src/core/subagent.test.d.ts +6 -0
  53. package/dist/src/core/subagent.test.js +519 -0
  54. package/dist/src/core/subagent.test.js.map +1 -0
  55. package/dist/src/hooks/tool-render-suppression-hook.d.ts +16 -0
  56. package/dist/src/hooks/tool-render-suppression-hook.js +26 -0
  57. package/dist/src/hooks/tool-render-suppression-hook.js.map +1 -0
  58. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +6 -0
  59. package/dist/src/hooks/tool-render-suppression-hook.test.js +59 -0
  60. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +1 -0
  61. package/dist/src/ide/ide-client.d.ts +22 -1
  62. package/dist/src/ide/ide-client.js +161 -17
  63. package/dist/src/ide/ide-client.js.map +1 -1
  64. package/dist/src/ide/ideContext.d.ts +127 -32
  65. package/dist/src/ide/ideContext.js +45 -0
  66. package/dist/src/ide/ideContext.js.map +1 -1
  67. package/dist/src/index.d.ts +5 -0
  68. package/dist/src/index.js +6 -0
  69. package/dist/src/index.js.map +1 -1
  70. package/dist/src/integration-tests/todo-system.test.js +38 -602
  71. package/dist/src/integration-tests/todo-system.test.js.map +1 -1
  72. package/dist/src/providers/IProviderManager.d.ts +5 -0
  73. package/dist/src/providers/LoggingProviderWrapper.d.ts +53 -0
  74. package/dist/src/providers/LoggingProviderWrapper.js +347 -0
  75. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -0
  76. package/dist/src/providers/ProviderManager.d.ts +20 -0
  77. package/dist/src/providers/ProviderManager.js +214 -1
  78. package/dist/src/providers/ProviderManager.js.map +1 -1
  79. package/dist/src/providers/gemini/GeminiProvider.js +5 -5
  80. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  81. package/dist/src/providers/logging/ProviderContentExtractor.d.ts +27 -0
  82. package/dist/src/providers/logging/ProviderContentExtractor.js +198 -0
  83. package/dist/src/providers/logging/ProviderContentExtractor.js.map +1 -0
  84. package/dist/src/providers/logging/ProviderPerformanceTracker.d.ts +43 -0
  85. package/dist/src/providers/logging/ProviderPerformanceTracker.js +98 -0
  86. package/dist/src/providers/logging/ProviderPerformanceTracker.js.map +1 -0
  87. package/dist/src/providers/openai/OpenAIProvider.js +8 -1
  88. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  89. package/dist/src/providers/openai/OpenAIProvider.test.js +106 -0
  90. package/dist/src/providers/openai/OpenAIProvider.test.js.map +1 -1
  91. package/dist/src/providers/types/IProviderConfig.d.ts +5 -0
  92. package/dist/src/providers/types.d.ts +47 -0
  93. package/dist/src/services/git-stats-service.d.ts +32 -0
  94. package/dist/src/services/git-stats-service.js +22 -0
  95. package/dist/src/services/git-stats-service.js.map +1 -0
  96. package/dist/src/services/loopDetectionService.js +10 -6
  97. package/dist/src/services/loopDetectionService.js.map +1 -1
  98. package/dist/src/services/loopDetectionService.test.js +139 -0
  99. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  100. package/dist/src/services/shellExecutionService.js +69 -9
  101. package/dist/src/services/shellExecutionService.js.map +1 -1
  102. package/dist/src/services/shellExecutionService.test.js +8 -0
  103. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  104. package/dist/src/services/todo-context-tracker.d.ts +31 -0
  105. package/dist/src/services/todo-context-tracker.js +45 -0
  106. package/dist/src/services/todo-context-tracker.js.map +1 -0
  107. package/dist/src/services/tool-call-tracker-service.d.ts +52 -0
  108. package/dist/src/services/tool-call-tracker-service.js +170 -0
  109. package/dist/src/services/tool-call-tracker-service.js.map +1 -0
  110. package/dist/src/services/tool-call-tracker-service.test.d.ts +6 -0
  111. package/dist/src/services/tool-call-tracker-service.test.js +99 -0
  112. package/dist/src/services/tool-call-tracker-service.test.js.map +1 -0
  113. package/dist/src/storage/ConversationFileWriter.d.ts +16 -0
  114. package/dist/src/storage/ConversationFileWriter.js +69 -0
  115. package/dist/src/storage/ConversationFileWriter.js.map +1 -0
  116. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +8 -0
  117. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +56 -3
  118. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  119. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +6 -0
  120. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +187 -0
  121. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
  122. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  123. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +11 -0
  124. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  125. package/dist/src/telemetry/constants.d.ts +5 -0
  126. package/dist/src/telemetry/constants.js +5 -0
  127. package/dist/src/telemetry/constants.js.map +1 -1
  128. package/dist/src/telemetry/loggers.d.ts +5 -1
  129. package/dist/src/telemetry/loggers.js +87 -1
  130. package/dist/src/telemetry/loggers.js.map +1 -1
  131. package/dist/src/telemetry/loggers.test.circular.js +7 -2
  132. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  133. package/dist/src/telemetry/loggers.test.js +7 -2
  134. package/dist/src/telemetry/loggers.test.js.map +1 -1
  135. package/dist/src/telemetry/metrics.d.ts +3 -2
  136. package/dist/src/telemetry/metrics.js +7 -1
  137. package/dist/src/telemetry/metrics.js.map +1 -1
  138. package/dist/src/telemetry/metrics.test.js +50 -0
  139. package/dist/src/telemetry/metrics.test.js.map +1 -1
  140. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  141. package/dist/src/telemetry/tool-call-decision.js +29 -0
  142. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  143. package/dist/src/telemetry/types.d.ts +58 -2
  144. package/dist/src/telemetry/types.js +126 -1
  145. package/dist/src/telemetry/types.js.map +1 -1
  146. package/dist/src/telemetry/uiTelemetry.d.ts +4 -1
  147. package/dist/src/telemetry/uiTelemetry.js +3 -1
  148. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  149. package/dist/src/telemetry/uiTelemetry.test.js +13 -2
  150. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  151. package/dist/src/test-utils/tools.d.ts +23 -0
  152. package/dist/src/test-utils/tools.js +41 -0
  153. package/dist/src/test-utils/tools.js.map +1 -0
  154. package/dist/src/tools/diffOptions.d.ts +2 -0
  155. package/dist/src/tools/diffOptions.js +28 -0
  156. package/dist/src/tools/diffOptions.js.map +1 -1
  157. package/dist/src/tools/diffOptions.test.d.ts +6 -0
  158. package/dist/src/tools/diffOptions.test.js +119 -0
  159. package/dist/src/tools/diffOptions.test.js.map +1 -0
  160. package/dist/src/tools/edit.d.ts +9 -33
  161. package/dist/src/tools/edit.js +167 -132
  162. package/dist/src/tools/edit.js.map +1 -1
  163. package/dist/src/tools/edit.test.js +124 -50
  164. package/dist/src/tools/edit.test.js.map +1 -1
  165. package/dist/src/tools/glob.d.ts +3 -10
  166. package/dist/src/tools/glob.js +97 -99
  167. package/dist/src/tools/glob.js.map +1 -1
  168. package/dist/src/tools/glob.test.js +37 -26
  169. package/dist/src/tools/glob.test.js.map +1 -1
  170. package/dist/src/tools/grep.d.ts +3 -35
  171. package/dist/src/tools/grep.js +117 -88
  172. package/dist/src/tools/grep.js.map +1 -1
  173. package/dist/src/tools/grep.test.js +36 -22
  174. package/dist/src/tools/grep.test.js.map +1 -1
  175. package/dist/src/tools/mcp-client.d.ts +14 -3
  176. package/dist/src/tools/mcp-client.js +82 -6
  177. package/dist/src/tools/mcp-client.js.map +1 -1
  178. package/dist/src/tools/mcp-client.test.js +337 -2
  179. package/dist/src/tools/mcp-client.test.js.map +1 -1
  180. package/dist/src/tools/memoryTool.d.ts +2 -2
  181. package/dist/src/tools/memoryTool.js +1 -0
  182. package/dist/src/tools/memoryTool.js.map +1 -1
  183. package/dist/src/tools/modifiable-tool.d.ts +8 -5
  184. package/dist/src/tools/modifiable-tool.js +4 -1
  185. package/dist/src/tools/modifiable-tool.js.map +1 -1
  186. package/dist/src/tools/modifiable-tool.test.js +3 -3
  187. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  188. package/dist/src/tools/read-file.d.ts +4 -6
  189. package/dist/src/tools/read-file.js +87 -46
  190. package/dist/src/tools/read-file.js.map +1 -1
  191. package/dist/src/tools/read-file.test.js +207 -126
  192. package/dist/src/tools/read-file.test.js.map +1 -1
  193. package/dist/src/tools/read-many-files.js +8 -2
  194. package/dist/src/tools/read-many-files.js.map +1 -1
  195. package/dist/src/tools/read-many-files.test.js +16 -0
  196. package/dist/src/tools/read-many-files.test.js.map +1 -1
  197. package/dist/src/tools/shell.test.js +17 -0
  198. package/dist/src/tools/shell.test.js.map +1 -1
  199. package/dist/src/tools/todo-events.d.ts +22 -0
  200. package/dist/src/tools/todo-events.js +24 -0
  201. package/dist/src/tools/todo-events.js.map +1 -0
  202. package/dist/src/tools/todo-pause.d.ts +22 -0
  203. package/dist/src/tools/todo-pause.js +93 -0
  204. package/dist/src/tools/todo-pause.js.map +1 -0
  205. package/dist/src/tools/todo-pause.spec.d.ts +6 -0
  206. package/dist/src/tools/todo-pause.spec.js +287 -0
  207. package/dist/src/tools/todo-pause.spec.js.map +1 -0
  208. package/dist/src/tools/todo-read.js.map +1 -1
  209. package/dist/src/tools/todo-schemas.d.ts +232 -4
  210. package/dist/src/tools/todo-schemas.js +13 -0
  211. package/dist/src/tools/todo-schemas.js.map +1 -1
  212. package/dist/src/tools/todo-schemas.test.js +190 -1
  213. package/dist/src/tools/todo-schemas.test.js.map +1 -1
  214. package/dist/src/tools/todo-store.d.ts +1 -4
  215. package/dist/src/tools/todo-store.js +41 -40
  216. package/dist/src/tools/todo-store.js.map +1 -1
  217. package/dist/src/tools/todo-store.test.js +34 -40
  218. package/dist/src/tools/todo-store.test.js.map +1 -1
  219. package/dist/src/tools/todo-write.d.ts +1 -1
  220. package/dist/src/tools/todo-write.js +84 -47
  221. package/dist/src/tools/todo-write.js.map +1 -1
  222. package/dist/src/tools/todo-write.test.js +23 -9
  223. package/dist/src/tools/todo-write.test.js.map +1 -1
  224. package/dist/src/tools/tool-context.d.ts +2 -0
  225. package/dist/src/tools/tool-error.d.ts +4 -0
  226. package/dist/src/tools/tool-error.js +4 -0
  227. package/dist/src/tools/tool-error.js.map +1 -1
  228. package/dist/src/tools/tool-registry.d.ts +12 -6
  229. package/dist/src/tools/tool-registry.js +19 -4
  230. package/dist/src/tools/tool-registry.js.map +1 -1
  231. package/dist/src/tools/tool-registry.test.js +3 -20
  232. package/dist/src/tools/tool-registry.test.js.map +1 -1
  233. package/dist/src/tools/tools.d.ts +134 -39
  234. package/dist/src/tools/tools.js +115 -10
  235. package/dist/src/tools/tools.js.map +1 -1
  236. package/dist/src/tools/web-search.test.js +1 -0
  237. package/dist/src/tools/web-search.test.js.map +1 -1
  238. package/dist/src/tools/write-file.d.ts +6 -2
  239. package/dist/src/tools/write-file.js +106 -16
  240. package/dist/src/tools/write-file.js.map +1 -1
  241. package/dist/src/tools/write-file.test.js +25 -7
  242. package/dist/src/tools/write-file.test.js.map +1 -1
  243. package/dist/src/types/modelParams.d.ts +4 -0
  244. package/dist/src/utils/environmentContext.d.ts +21 -0
  245. package/dist/src/utils/environmentContext.js +90 -0
  246. package/dist/src/utils/environmentContext.js.map +1 -0
  247. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  248. package/dist/src/utils/environmentContext.test.js +139 -0
  249. package/dist/src/utils/environmentContext.test.js.map +1 -0
  250. package/dist/src/utils/errors.d.ts +3 -0
  251. package/dist/src/utils/errors.js +6 -0
  252. package/dist/src/utils/errors.js.map +1 -1
  253. package/dist/src/utils/fileUtils.d.ts +7 -0
  254. package/dist/src/utils/fileUtils.js +11 -10
  255. package/dist/src/utils/fileUtils.js.map +1 -1
  256. package/dist/src/utils/fileUtils.test.js +1 -4
  257. package/dist/src/utils/fileUtils.test.js.map +1 -1
  258. package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
  259. package/dist/src/utils/filesearch/fileSearch.js +27 -5
  260. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  261. package/dist/src/utils/filesearch/fileSearch.test.js +21 -1
  262. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
  263. package/dist/src/utils/memoryDiscovery.js +4 -1
  264. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  265. package/dist/src/utils/shell-utils.js +14 -2
  266. package/dist/src/utils/shell-utils.js.map +1 -1
  267. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +6 -0
  268. package/dist/src/utils/shell-utils.shellReplacement.test.js +149 -0
  269. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +1 -0
  270. package/package.json +2 -1
@@ -11,6 +11,7 @@ import { DiscoveredMCPTool } from './mcp-tool.js';
11
11
  import { FunctionDeclaration } from '@google/genai';
12
12
  import { ToolRegistry } from './tool-registry.js';
13
13
  import { PromptRegistry } from '../prompts/prompt-registry.js';
14
+ import { WorkspaceContext } from '../utils/workspaceContext.js';
14
15
  export declare const MCP_DEFAULT_TIMEOUT_MSEC: number;
15
16
  export type DiscoveredMCPPrompt = Prompt & {
16
17
  serverName: string;
@@ -76,7 +77,7 @@ export declare function getMCPDiscoveryState(): MCPDiscoveryState;
76
77
  * @param toolRegistry The central registry where discovered tools will be registered.
77
78
  * @returns A promise that resolves when the discovery process has been attempted for all servers.
78
79
  */
79
- export declare function discoverMcpTools(mcpServers: Record<string, MCPServerConfig>, mcpServerCommand: string | undefined, toolRegistry: ToolRegistry, promptRegistry: PromptRegistry, debugMode: boolean): Promise<void>;
80
+ export declare function discoverMcpTools(mcpServers: Record<string, MCPServerConfig>, mcpServerCommand: string | undefined, toolRegistry: ToolRegistry, promptRegistry: PromptRegistry, debugMode: boolean, workspaceContext: WorkspaceContext): Promise<void>;
80
81
  /** Visible for Testing */
81
82
  export declare function populateMcpServerCommand(mcpServers: Record<string, MCPServerConfig>, mcpServerCommand: string | undefined): Record<string, MCPServerConfig>;
82
83
  /**
@@ -89,7 +90,17 @@ export declare function populateMcpServerCommand(mcpServers: Record<string, MCPS
89
90
  * @param toolRegistry The registry to register discovered tools with
90
91
  * @returns Promise that resolves when discovery is complete
91
92
  */
92
- export declare function connectAndDiscover(mcpServerName: string, mcpServerConfig: MCPServerConfig, toolRegistry: ToolRegistry, promptRegistry: PromptRegistry, debugMode: boolean): Promise<void>;
93
+ export declare function connectAndDiscover(mcpServerName: string, mcpServerConfig: MCPServerConfig, toolRegistry: ToolRegistry, promptRegistry: PromptRegistry, debugMode: boolean, workspaceContext: WorkspaceContext): Promise<void>;
94
+ /**
95
+ * Recursively validates that a JSON schema and all its nested properties and
96
+ * items have a `type` defined.
97
+ *
98
+ * @param schema The JSON schema to validate.
99
+ * @returns `true` if the schema is valid, `false` otherwise.
100
+ *
101
+ * @visiblefortesting
102
+ */
103
+ export declare function hasValidTypes(schema: unknown): boolean;
93
104
  /**
94
105
  * Discovers and sanitizes tools from a connected MCP client.
95
106
  * It retrieves function declarations from the client, filters out disabled tools,
@@ -130,7 +141,7 @@ export declare function invokeMcpPrompt(mcpServerName: string, mcpClient: Client
130
141
  * @returns A promise that resolves to a connected MCP `Client` instance.
131
142
  * @throws An error if the connection fails or the configuration is invalid.
132
143
  */
133
- export declare function connectToMcpServer(mcpServerName: string, mcpServerConfig: MCPServerConfig, debugMode: boolean): Promise<Client>;
144
+ export declare function connectToMcpServer(mcpServerName: string, mcpServerConfig: MCPServerConfig, debugMode: boolean, workspaceContext: WorkspaceContext): Promise<Client>;
134
145
  /** Visible for Testing */
135
146
  export declare function createTransport(mcpServerName: string, mcpServerConfig: MCPServerConfig, debugMode: boolean): Promise<Transport>;
136
147
  /** Visible for testing */
@@ -7,7 +7,7 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
7
7
  import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
8
8
  import { SSEClientTransport, } from '@modelcontextprotocol/sdk/client/sse.js';
9
9
  import { StreamableHTTPClientTransport, } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
10
- import { ListPromptsResultSchema, GetPromptResultSchema, } from '@modelcontextprotocol/sdk/types.js';
10
+ import { ListPromptsResultSchema, GetPromptResultSchema, ListRootsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
11
11
  import { parse } from 'shell-quote';
12
12
  import { AuthProviderType } from '../config/config.js';
13
13
  import { GoogleCredentialProvider } from '../mcp/google-auth-provider.js';
@@ -17,6 +17,8 @@ import { MCPOAuthProvider } from '../mcp/oauth-provider.js';
17
17
  import { OAuthUtils } from '../mcp/oauth-utils.js';
18
18
  import { MCPOAuthTokenStorage } from '../mcp/oauth-token-storage.js';
19
19
  import { getErrorMessage } from '../utils/errors.js';
20
+ import { basename } from 'node:path';
21
+ import { pathToFileURL } from 'node:url';
20
22
  export const MCP_DEFAULT_TIMEOUT_MSEC = 10 * 60 * 1000; // default to 10 minutes
21
23
  /**
22
24
  * Enum representing the connection status of an MCP server
@@ -223,11 +225,11 @@ async function createTransportWithOAuth(mcpServerName, mcpServerConfig, accessTo
223
225
  * @param toolRegistry The central registry where discovered tools will be registered.
224
226
  * @returns A promise that resolves when the discovery process has been attempted for all servers.
225
227
  */
226
- export async function discoverMcpTools(mcpServers, mcpServerCommand, toolRegistry, promptRegistry, debugMode) {
228
+ export async function discoverMcpTools(mcpServers, mcpServerCommand, toolRegistry, promptRegistry, debugMode, workspaceContext) {
227
229
  mcpDiscoveryState = MCPDiscoveryState.IN_PROGRESS;
228
230
  try {
229
231
  mcpServers = populateMcpServerCommand(mcpServers, mcpServerCommand);
230
- const discoveryPromises = Object.entries(mcpServers).map(([mcpServerName, mcpServerConfig]) => connectAndDiscover(mcpServerName, mcpServerConfig, toolRegistry, promptRegistry, debugMode));
232
+ const discoveryPromises = Object.entries(mcpServers).map(([mcpServerName, mcpServerConfig]) => connectAndDiscover(mcpServerName, mcpServerConfig, toolRegistry, promptRegistry, debugMode, workspaceContext));
231
233
  await Promise.all(discoveryPromises);
232
234
  }
233
235
  finally {
@@ -260,11 +262,11 @@ export function populateMcpServerCommand(mcpServers, mcpServerCommand) {
260
262
  * @param toolRegistry The registry to register discovered tools with
261
263
  * @returns Promise that resolves when discovery is complete
262
264
  */
263
- export async function connectAndDiscover(mcpServerName, mcpServerConfig, toolRegistry, promptRegistry, debugMode) {
265
+ export async function connectAndDiscover(mcpServerName, mcpServerConfig, toolRegistry, promptRegistry, debugMode, workspaceContext) {
264
266
  updateMCPServerStatus(mcpServerName, MCPServerStatus.CONNECTING);
265
267
  let mcpClient;
266
268
  try {
267
- mcpClient = await connectToMcpServer(mcpServerName, mcpServerConfig, debugMode);
269
+ mcpClient = await connectToMcpServer(mcpServerName, mcpServerConfig, debugMode, workspaceContext);
268
270
  mcpClient.onerror = (error) => {
269
271
  console.error(`MCP ERROR (${mcpServerName}):`, error.toString());
270
272
  updateMCPServerStatus(mcpServerName, MCPServerStatus.DISCONNECTED);
@@ -291,6 +293,59 @@ export async function connectAndDiscover(mcpServerName, mcpServerConfig, toolReg
291
293
  updateMCPServerStatus(mcpServerName, MCPServerStatus.DISCONNECTED);
292
294
  }
293
295
  }
296
+ /**
297
+ * Recursively validates that a JSON schema and all its nested properties and
298
+ * items have a `type` defined.
299
+ *
300
+ * @param schema The JSON schema to validate.
301
+ * @returns `true` if the schema is valid, `false` otherwise.
302
+ *
303
+ * @visiblefortesting
304
+ */
305
+ export function hasValidTypes(schema) {
306
+ if (typeof schema !== 'object' || schema === null) {
307
+ // Not a schema object we can validate, or not a schema at all.
308
+ // Treat as valid as it has no properties to be invalid.
309
+ return true;
310
+ }
311
+ const s = schema;
312
+ if (!s.type) {
313
+ // These keywords contain an array of schemas that should be validated.
314
+ //
315
+ // If no top level type was given, then they must each have a type.
316
+ let hasSubSchema = false;
317
+ const schemaArrayKeywords = ['anyOf', 'allOf', 'oneOf'];
318
+ for (const keyword of schemaArrayKeywords) {
319
+ const subSchemas = s[keyword];
320
+ if (Array.isArray(subSchemas)) {
321
+ hasSubSchema = true;
322
+ for (const subSchema of subSchemas) {
323
+ if (!hasValidTypes(subSchema)) {
324
+ return false;
325
+ }
326
+ }
327
+ }
328
+ }
329
+ // If the node itself is missing a type and had no subschemas, then it isn't valid.
330
+ if (!hasSubSchema)
331
+ return false;
332
+ }
333
+ if (s.type === 'object' && s.properties) {
334
+ if (typeof s.properties === 'object' && s.properties !== null) {
335
+ for (const prop of Object.values(s.properties)) {
336
+ if (!hasValidTypes(prop)) {
337
+ return false;
338
+ }
339
+ }
340
+ }
341
+ }
342
+ if (s.type === 'array' && s.items) {
343
+ if (!hasValidTypes(s.items)) {
344
+ return false;
345
+ }
346
+ }
347
+ return true;
348
+ }
294
349
  /**
295
350
  * Discovers and sanitizes tools from a connected MCP client.
296
351
  * It retrieves function declarations from the client, filters out disabled tools,
@@ -316,6 +371,12 @@ export async function discoverTools(mcpServerName, mcpServerConfig, mcpClient) {
316
371
  if (!isEnabled(funcDecl, mcpServerName, mcpServerConfig)) {
317
372
  continue;
318
373
  }
374
+ if (!hasValidTypes(funcDecl.parametersJsonSchema)) {
375
+ console.warn(`Skipping tool '${funcDecl.name}' from MCP server '${mcpServerName}' ` +
376
+ `because it has missing types in its parameter schema. Please file an ` +
377
+ `issue with the owner of the MCP server.`);
378
+ continue;
379
+ }
319
380
  discoveredTools.push(new DiscoveredMCPTool(mcpCallableTool, mcpServerName, funcDecl.name, funcDecl.description ?? '', funcDecl.parametersJsonSchema ?? { type: 'object', properties: {} }, mcpServerConfig.timeout ?? MCP_DEFAULT_TIMEOUT_MSEC, mcpServerConfig.trust));
320
381
  }
321
382
  catch (error) {
@@ -399,11 +460,26 @@ export async function invokeMcpPrompt(mcpServerName, mcpClient, promptName, prom
399
460
  * @returns A promise that resolves to a connected MCP `Client` instance.
400
461
  * @throws An error if the connection fails or the configuration is invalid.
401
462
  */
402
- export async function connectToMcpServer(mcpServerName, mcpServerConfig, debugMode) {
463
+ export async function connectToMcpServer(mcpServerName, mcpServerConfig, debugMode, workspaceContext) {
403
464
  const mcpClient = new Client({
404
465
  name: 'gemini-cli-mcp-client',
405
466
  version: '0.0.1',
406
467
  });
468
+ mcpClient.registerCapabilities({
469
+ roots: {},
470
+ });
471
+ mcpClient.setRequestHandler(ListRootsRequestSchema, async () => {
472
+ const roots = [];
473
+ for (const dir of workspaceContext.getDirectories()) {
474
+ roots.push({
475
+ uri: pathToFileURL(dir).toString(),
476
+ name: basename(dir),
477
+ });
478
+ }
479
+ return {
480
+ roots,
481
+ };
482
+ });
407
483
  // patch Client.callTool to use request timeout as genai McpCallTool.callTool does not do it
408
484
  // TODO: remove this hack once GenAI SDK does callTool with request options
409
485
  if ('callTool' in mcpClient) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../../src/tools/mcp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../../src/tools/mcp-client.ts"],"names":[],"mappings":"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"}