@vybestack/llxprt-code-core 0.1.18-nightly.250807.306d1939 → 0.1.18-nightly.250811.b0db22c6

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 (323) hide show
  1. package/README.md +1 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.js +3 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/auth/auth-integration.spec.d.ts +6 -0
  6. package/dist/src/auth/auth-integration.spec.js +384 -0
  7. package/dist/src/auth/auth-integration.spec.js.map +1 -0
  8. package/dist/src/auth/precedence.d.ts +55 -0
  9. package/dist/src/auth/precedence.js +211 -0
  10. package/dist/src/auth/precedence.js.map +1 -0
  11. package/dist/src/auth/precedence.test.d.ts +6 -0
  12. package/dist/src/auth/precedence.test.js +374 -0
  13. package/dist/src/auth/precedence.test.js.map +1 -0
  14. package/dist/src/auth/qwen-device-flow.d.ts +45 -0
  15. package/dist/src/auth/qwen-device-flow.js +179 -0
  16. package/dist/src/auth/qwen-device-flow.js.map +1 -0
  17. package/dist/src/auth/qwen-device-flow.spec.d.ts +6 -0
  18. package/dist/src/auth/qwen-device-flow.spec.js +793 -0
  19. package/dist/src/auth/qwen-device-flow.spec.js.map +1 -0
  20. package/dist/src/auth/token-store.d.ts +66 -0
  21. package/dist/src/auth/token-store.js +147 -0
  22. package/dist/src/auth/token-store.js.map +1 -0
  23. package/dist/src/auth/token-store.spec.d.ts +6 -0
  24. package/dist/src/auth/token-store.spec.js +405 -0
  25. package/dist/src/auth/token-store.spec.js.map +1 -0
  26. package/dist/src/auth/types.d.ts +130 -0
  27. package/dist/src/auth/types.js +60 -0
  28. package/dist/src/auth/types.js.map +1 -0
  29. package/dist/src/code_assist/converter.d.ts +2 -1
  30. package/dist/src/code_assist/converter.js +1 -1
  31. package/dist/src/code_assist/converter.js.map +1 -1
  32. package/dist/src/code_assist/converter.test.js +48 -1
  33. package/dist/src/code_assist/converter.test.js.map +1 -1
  34. package/dist/src/code_assist/oauth2.js +2 -1
  35. package/dist/src/code_assist/oauth2.js.map +1 -1
  36. package/dist/src/code_assist/server.test.js +4 -1
  37. package/dist/src/code_assist/server.test.js.map +1 -1
  38. package/dist/src/config/config.alwaysAllow.test.d.ts +6 -0
  39. package/dist/src/config/config.alwaysAllow.test.js +84 -0
  40. package/dist/src/config/config.alwaysAllow.test.js.map +1 -0
  41. package/dist/src/config/config.d.ts +80 -1
  42. package/dist/src/config/config.ephemeral.test.d.ts +6 -0
  43. package/dist/src/config/config.ephemeral.test.js +152 -0
  44. package/dist/src/config/config.ephemeral.test.js.map +1 -0
  45. package/dist/src/config/config.js +135 -0
  46. package/dist/src/config/config.js.map +1 -1
  47. package/dist/src/config/config.test.js +8 -0
  48. package/dist/src/config/config.test.js.map +1 -1
  49. package/dist/src/config/endpoints.d.ts +60 -0
  50. package/dist/src/config/endpoints.js +126 -0
  51. package/dist/src/config/endpoints.js.map +1 -0
  52. package/dist/src/config/endpoints.test.d.ts +6 -0
  53. package/dist/src/config/endpoints.test.js +196 -0
  54. package/dist/src/config/endpoints.test.js.map +1 -0
  55. package/dist/src/core/client.d.ts +0 -2
  56. package/dist/src/core/client.js +19 -97
  57. package/dist/src/core/client.js.map +1 -1
  58. package/dist/src/core/client.test.js +13 -7
  59. package/dist/src/core/client.test.js.map +1 -1
  60. package/dist/src/core/contentGenerator.d.ts +3 -1
  61. package/dist/src/core/contentGenerator.js +3 -1
  62. package/dist/src/core/contentGenerator.js.map +1 -1
  63. package/dist/src/core/coreToolScheduler.d.ts +17 -7
  64. package/dist/src/core/coreToolScheduler.js +121 -18
  65. package/dist/src/core/coreToolScheduler.js.map +1 -1
  66. package/dist/src/core/coreToolScheduler.test.js +25 -37
  67. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  68. package/dist/src/core/geminiChat.d.ts +3 -0
  69. package/dist/src/core/geminiChat.js +17 -13
  70. package/dist/src/core/geminiChat.js.map +1 -1
  71. package/dist/src/core/logger.d.ts +1 -0
  72. package/dist/src/core/logger.js +18 -0
  73. package/dist/src/core/logger.js.map +1 -1
  74. package/dist/src/core/logger.test.js +29 -0
  75. package/dist/src/core/logger.test.js.map +1 -1
  76. package/dist/src/core/loggingContentGenerator.d.ts +24 -0
  77. package/dist/src/core/loggingContentGenerator.js +89 -0
  78. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  79. package/dist/src/core/nonInteractiveToolExecutor.js +21 -1
  80. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  81. package/dist/src/core/nonInteractiveToolExecutor.test.js +8 -31
  82. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  83. package/dist/src/core/subagent.d.ts +230 -0
  84. package/dist/src/core/subagent.js +455 -0
  85. package/dist/src/core/subagent.js.map +1 -0
  86. package/dist/src/core/subagent.test.d.ts +6 -0
  87. package/dist/src/core/subagent.test.js +510 -0
  88. package/dist/src/core/subagent.test.js.map +1 -0
  89. package/dist/src/hooks/tool-render-suppression-hook.d.ts +16 -0
  90. package/dist/src/hooks/tool-render-suppression-hook.js +26 -0
  91. package/dist/src/hooks/tool-render-suppression-hook.js.map +1 -0
  92. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +6 -0
  93. package/dist/src/hooks/tool-render-suppression-hook.test.js +59 -0
  94. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +1 -0
  95. package/dist/src/ide/ide-client.d.ts +22 -1
  96. package/dist/src/ide/ide-client.js +161 -17
  97. package/dist/src/ide/ide-client.js.map +1 -1
  98. package/dist/src/ide/ideContext.d.ts +127 -32
  99. package/dist/src/ide/ideContext.js +45 -0
  100. package/dist/src/ide/ideContext.js.map +1 -1
  101. package/dist/src/index.d.ts +8 -0
  102. package/dist/src/index.js +10 -0
  103. package/dist/src/index.js.map +1 -1
  104. package/dist/src/integration-tests/oauth-integration.spec.d.ts +6 -0
  105. package/dist/src/integration-tests/oauth-integration.spec.js +518 -0
  106. package/dist/src/integration-tests/oauth-integration.spec.js.map +1 -0
  107. package/dist/src/integration-tests/oauth-simple-test.spec.d.ts +1 -0
  108. package/dist/src/integration-tests/oauth-simple-test.spec.js +88 -0
  109. package/dist/src/integration-tests/oauth-simple-test.spec.js.map +1 -0
  110. package/dist/src/integration-tests/todo-system.test.js +38 -602
  111. package/dist/src/integration-tests/todo-system.test.js.map +1 -1
  112. package/dist/src/providers/BaseProvider.d.ts +98 -0
  113. package/dist/src/providers/BaseProvider.js +180 -0
  114. package/dist/src/providers/BaseProvider.js.map +1 -0
  115. package/dist/src/providers/BaseProvider.test.d.ts +6 -0
  116. package/dist/src/providers/BaseProvider.test.js +472 -0
  117. package/dist/src/providers/BaseProvider.test.js.map +1 -0
  118. package/dist/src/providers/IProviderManager.d.ts +5 -0
  119. package/dist/src/providers/LoggingProviderWrapper.d.ts +53 -0
  120. package/dist/src/providers/LoggingProviderWrapper.js +347 -0
  121. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -0
  122. package/dist/src/providers/ProviderManager.d.ts +20 -0
  123. package/dist/src/providers/ProviderManager.js +214 -1
  124. package/dist/src/providers/ProviderManager.js.map +1 -1
  125. package/dist/src/providers/gemini/GeminiProvider.d.ts +12 -7
  126. package/dist/src/providers/gemini/GeminiProvider.js +135 -152
  127. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  128. package/dist/src/providers/integration/multi-provider.integration.test.js +18 -2
  129. package/dist/src/providers/integration/multi-provider.integration.test.js.map +1 -1
  130. package/dist/src/providers/logging/ProviderContentExtractor.d.ts +27 -0
  131. package/dist/src/providers/logging/ProviderContentExtractor.js +198 -0
  132. package/dist/src/providers/logging/ProviderContentExtractor.js.map +1 -0
  133. package/dist/src/providers/logging/ProviderPerformanceTracker.d.ts +43 -0
  134. package/dist/src/providers/logging/ProviderPerformanceTracker.js +98 -0
  135. package/dist/src/providers/logging/ProviderPerformanceTracker.js.map +1 -0
  136. package/dist/src/providers/openai/OpenAIProvider.d.ts +21 -6
  137. package/dist/src/providers/openai/OpenAIProvider.js +180 -27
  138. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  139. package/dist/src/providers/openai/OpenAIProvider.test.js +109 -2
  140. package/dist/src/providers/openai/OpenAIProvider.test.js.map +1 -1
  141. package/dist/src/providers/openai/openai-oauth.spec.d.ts +16 -0
  142. package/dist/src/providers/openai/openai-oauth.spec.js +544 -0
  143. package/dist/src/providers/openai/openai-oauth.spec.js.map +1 -0
  144. package/dist/src/providers/types/IProviderConfig.d.ts +5 -0
  145. package/dist/src/providers/types.d.ts +47 -0
  146. package/dist/src/services/git-stats-service.d.ts +32 -0
  147. package/dist/src/services/git-stats-service.js +22 -0
  148. package/dist/src/services/git-stats-service.js.map +1 -0
  149. package/dist/src/services/loopDetectionService.js +10 -6
  150. package/dist/src/services/loopDetectionService.js.map +1 -1
  151. package/dist/src/services/loopDetectionService.test.js +139 -0
  152. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  153. package/dist/src/services/shellExecutionService.js +69 -9
  154. package/dist/src/services/shellExecutionService.js.map +1 -1
  155. package/dist/src/services/shellExecutionService.test.js +8 -0
  156. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  157. package/dist/src/services/todo-context-tracker.d.ts +31 -0
  158. package/dist/src/services/todo-context-tracker.js +45 -0
  159. package/dist/src/services/todo-context-tracker.js.map +1 -0
  160. package/dist/src/services/tool-call-tracker-service.d.ts +52 -0
  161. package/dist/src/services/tool-call-tracker-service.js +170 -0
  162. package/dist/src/services/tool-call-tracker-service.js.map +1 -0
  163. package/dist/src/services/tool-call-tracker-service.test.d.ts +6 -0
  164. package/dist/src/services/tool-call-tracker-service.test.js +99 -0
  165. package/dist/src/services/tool-call-tracker-service.test.js.map +1 -0
  166. package/dist/src/storage/ConversationFileWriter.d.ts +16 -0
  167. package/dist/src/storage/ConversationFileWriter.js +69 -0
  168. package/dist/src/storage/ConversationFileWriter.js.map +1 -0
  169. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +8 -0
  170. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +56 -3
  171. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  172. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +6 -0
  173. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +187 -0
  174. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
  175. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  176. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +11 -0
  177. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  178. package/dist/src/telemetry/constants.d.ts +5 -0
  179. package/dist/src/telemetry/constants.js +5 -0
  180. package/dist/src/telemetry/constants.js.map +1 -1
  181. package/dist/src/telemetry/loggers.d.ts +5 -1
  182. package/dist/src/telemetry/loggers.js +87 -1
  183. package/dist/src/telemetry/loggers.js.map +1 -1
  184. package/dist/src/telemetry/loggers.test.circular.js +7 -2
  185. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  186. package/dist/src/telemetry/loggers.test.js +7 -2
  187. package/dist/src/telemetry/loggers.test.js.map +1 -1
  188. package/dist/src/telemetry/metrics.d.ts +3 -2
  189. package/dist/src/telemetry/metrics.js +7 -1
  190. package/dist/src/telemetry/metrics.js.map +1 -1
  191. package/dist/src/telemetry/metrics.test.js +50 -0
  192. package/dist/src/telemetry/metrics.test.js.map +1 -1
  193. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  194. package/dist/src/telemetry/tool-call-decision.js +29 -0
  195. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  196. package/dist/src/telemetry/types.d.ts +58 -2
  197. package/dist/src/telemetry/types.js +126 -1
  198. package/dist/src/telemetry/types.js.map +1 -1
  199. package/dist/src/telemetry/uiTelemetry.d.ts +4 -1
  200. package/dist/src/telemetry/uiTelemetry.js +3 -1
  201. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  202. package/dist/src/telemetry/uiTelemetry.test.js +13 -2
  203. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  204. package/dist/src/test-utils/tools.d.ts +23 -0
  205. package/dist/src/test-utils/tools.js +41 -0
  206. package/dist/src/test-utils/tools.js.map +1 -0
  207. package/dist/src/tools/diffOptions.d.ts +2 -0
  208. package/dist/src/tools/diffOptions.js +28 -0
  209. package/dist/src/tools/diffOptions.js.map +1 -1
  210. package/dist/src/tools/diffOptions.test.d.ts +6 -0
  211. package/dist/src/tools/diffOptions.test.js +119 -0
  212. package/dist/src/tools/diffOptions.test.js.map +1 -0
  213. package/dist/src/tools/edit.d.ts +9 -33
  214. package/dist/src/tools/edit.js +167 -132
  215. package/dist/src/tools/edit.js.map +1 -1
  216. package/dist/src/tools/edit.test.js +124 -50
  217. package/dist/src/tools/edit.test.js.map +1 -1
  218. package/dist/src/tools/glob.d.ts +3 -10
  219. package/dist/src/tools/glob.js +97 -99
  220. package/dist/src/tools/glob.js.map +1 -1
  221. package/dist/src/tools/glob.test.js +37 -26
  222. package/dist/src/tools/glob.test.js.map +1 -1
  223. package/dist/src/tools/grep.d.ts +3 -35
  224. package/dist/src/tools/grep.js +117 -88
  225. package/dist/src/tools/grep.js.map +1 -1
  226. package/dist/src/tools/grep.test.js +36 -22
  227. package/dist/src/tools/grep.test.js.map +1 -1
  228. package/dist/src/tools/mcp-client.d.ts +14 -3
  229. package/dist/src/tools/mcp-client.js +82 -6
  230. package/dist/src/tools/mcp-client.js.map +1 -1
  231. package/dist/src/tools/mcp-client.test.js +337 -2
  232. package/dist/src/tools/mcp-client.test.js.map +1 -1
  233. package/dist/src/tools/memoryTool.d.ts +2 -2
  234. package/dist/src/tools/memoryTool.js +1 -0
  235. package/dist/src/tools/memoryTool.js.map +1 -1
  236. package/dist/src/tools/modifiable-tool.d.ts +8 -5
  237. package/dist/src/tools/modifiable-tool.js +4 -1
  238. package/dist/src/tools/modifiable-tool.js.map +1 -1
  239. package/dist/src/tools/modifiable-tool.test.js +3 -3
  240. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  241. package/dist/src/tools/read-file.d.ts +4 -6
  242. package/dist/src/tools/read-file.js +87 -46
  243. package/dist/src/tools/read-file.js.map +1 -1
  244. package/dist/src/tools/read-file.test.js +207 -126
  245. package/dist/src/tools/read-file.test.js.map +1 -1
  246. package/dist/src/tools/read-many-files.js +8 -2
  247. package/dist/src/tools/read-many-files.js.map +1 -1
  248. package/dist/src/tools/read-many-files.test.js +16 -0
  249. package/dist/src/tools/read-many-files.test.js.map +1 -1
  250. package/dist/src/tools/shell.test.js +17 -0
  251. package/dist/src/tools/shell.test.js.map +1 -1
  252. package/dist/src/tools/todo-events.d.ts +22 -0
  253. package/dist/src/tools/todo-events.js +24 -0
  254. package/dist/src/tools/todo-events.js.map +1 -0
  255. package/dist/src/tools/todo-pause.d.ts +22 -0
  256. package/dist/src/tools/todo-pause.js +93 -0
  257. package/dist/src/tools/todo-pause.js.map +1 -0
  258. package/dist/src/tools/todo-pause.spec.d.ts +6 -0
  259. package/dist/src/tools/todo-pause.spec.js +287 -0
  260. package/dist/src/tools/todo-pause.spec.js.map +1 -0
  261. package/dist/src/tools/todo-read.js.map +1 -1
  262. package/dist/src/tools/todo-schemas.d.ts +232 -4
  263. package/dist/src/tools/todo-schemas.js +13 -0
  264. package/dist/src/tools/todo-schemas.js.map +1 -1
  265. package/dist/src/tools/todo-schemas.test.js +190 -1
  266. package/dist/src/tools/todo-schemas.test.js.map +1 -1
  267. package/dist/src/tools/todo-store.d.ts +1 -4
  268. package/dist/src/tools/todo-store.js +41 -40
  269. package/dist/src/tools/todo-store.js.map +1 -1
  270. package/dist/src/tools/todo-store.test.js +34 -40
  271. package/dist/src/tools/todo-store.test.js.map +1 -1
  272. package/dist/src/tools/todo-write.d.ts +1 -1
  273. package/dist/src/tools/todo-write.js +84 -47
  274. package/dist/src/tools/todo-write.js.map +1 -1
  275. package/dist/src/tools/todo-write.test.js +23 -9
  276. package/dist/src/tools/todo-write.test.js.map +1 -1
  277. package/dist/src/tools/tool-context.d.ts +2 -0
  278. package/dist/src/tools/tool-error.d.ts +4 -0
  279. package/dist/src/tools/tool-error.js +4 -0
  280. package/dist/src/tools/tool-error.js.map +1 -1
  281. package/dist/src/tools/tool-registry.d.ts +12 -6
  282. package/dist/src/tools/tool-registry.js +19 -4
  283. package/dist/src/tools/tool-registry.js.map +1 -1
  284. package/dist/src/tools/tool-registry.test.js +3 -20
  285. package/dist/src/tools/tool-registry.test.js.map +1 -1
  286. package/dist/src/tools/tools.d.ts +134 -39
  287. package/dist/src/tools/tools.js +115 -10
  288. package/dist/src/tools/tools.js.map +1 -1
  289. package/dist/src/tools/web-search.test.js +1 -0
  290. package/dist/src/tools/web-search.test.js.map +1 -1
  291. package/dist/src/tools/write-file.d.ts +6 -2
  292. package/dist/src/tools/write-file.js +106 -16
  293. package/dist/src/tools/write-file.js.map +1 -1
  294. package/dist/src/tools/write-file.test.js +25 -7
  295. package/dist/src/tools/write-file.test.js.map +1 -1
  296. package/dist/src/types/modelParams.d.ts +4 -0
  297. package/dist/src/utils/environmentContext.d.ts +21 -0
  298. package/dist/src/utils/environmentContext.js +90 -0
  299. package/dist/src/utils/environmentContext.js.map +1 -0
  300. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  301. package/dist/src/utils/environmentContext.test.js +139 -0
  302. package/dist/src/utils/environmentContext.test.js.map +1 -0
  303. package/dist/src/utils/errors.d.ts +3 -0
  304. package/dist/src/utils/errors.js +6 -0
  305. package/dist/src/utils/errors.js.map +1 -1
  306. package/dist/src/utils/fileUtils.d.ts +7 -0
  307. package/dist/src/utils/fileUtils.js +11 -10
  308. package/dist/src/utils/fileUtils.js.map +1 -1
  309. package/dist/src/utils/fileUtils.test.js +1 -4
  310. package/dist/src/utils/fileUtils.test.js.map +1 -1
  311. package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
  312. package/dist/src/utils/filesearch/fileSearch.js +27 -5
  313. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  314. package/dist/src/utils/filesearch/fileSearch.test.js +21 -1
  315. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
  316. package/dist/src/utils/memoryDiscovery.js +4 -1
  317. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  318. package/dist/src/utils/shell-utils.js +14 -2
  319. package/dist/src/utils/shell-utils.js.map +1 -1
  320. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +6 -0
  321. package/dist/src/utils/shell-utils.shellReplacement.test.js +149 -0
  322. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +1 -0
  323. package/package.json +2 -1
@@ -7,6 +7,7 @@
7
7
  const mockEnsureCorrectEdit = vi.hoisted(() => vi.fn());
8
8
  const mockGenerateJson = vi.hoisted(() => vi.fn());
9
9
  const mockOpenDiff = vi.hoisted(() => vi.fn());
10
+ import { IDEConnectionStatus } from '../ide/ide-client.js';
10
11
  vi.mock('../utils/editCorrector.js', () => ({
11
12
  ensureCorrectEdit: mockEnsureCorrectEdit,
12
13
  }));
@@ -19,7 +20,8 @@ vi.mock('../utils/editor.js', () => ({
19
20
  openDiff: mockOpenDiff,
20
21
  }));
21
22
  import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
22
- import { EditTool } from './edit.js';
23
+ import { applyReplacement, EditTool } from './edit.js';
24
+ import { ToolConfirmationOutcome } from './tools.js';
23
25
  import { ToolErrorType } from './tool-error.js';
24
26
  import path from 'path';
25
27
  import fs from 'fs';
@@ -46,6 +48,9 @@ describe('EditTool', () => {
46
48
  getApprovalMode: vi.fn(),
47
49
  setApprovalMode: vi.fn(),
48
50
  getWorkspaceContext: () => createMockWorkspaceContext(rootDir),
51
+ getIdeClient: () => undefined,
52
+ getIdeMode: () => false,
53
+ getIdeModeFeature: () => false,
49
54
  // getGeminiConfig: () => ({ apiKey: 'test-api-key' }), // This was not a real Config method
50
55
  // Add other properties/methods of Config if EditTool uses them
51
56
  // Minimal other methods to satisfy Config type if needed by EditTool constructor or other direct uses:
@@ -64,6 +69,7 @@ describe('EditTool', () => {
64
69
  setUserMemory: vi.fn(),
65
70
  getLlxprtMdFileCount: () => 0,
66
71
  setLlxprtMdFileCount: vi.fn(),
72
+ getConversationLoggingEnabled: () => false,
67
73
  getToolRegistry: () => ({}), // Minimal mock for ToolRegistry
68
74
  };
69
75
  // Reset mocks before each test
@@ -122,24 +128,23 @@ describe('EditTool', () => {
122
128
  afterEach(() => {
123
129
  fs.rmSync(tempDir, { recursive: true, force: true });
124
130
  });
125
- describe('_applyReplacement', () => {
126
- // Access private method for testing
127
- // Note: `tool` is initialized in `beforeEach` of the parent describe block
131
+ describe('applyReplacement', () => {
132
+ // Test the exported applyReplacement function
128
133
  it('should return newString if isNewFile is true', () => {
129
- expect(tool._applyReplacement(null, 'old', 'new', true)).toBe('new');
130
- expect(tool._applyReplacement('existing', 'old', 'new', true)).toBe('new');
134
+ expect(applyReplacement(null, 'old', 'new', true)).toBe('new');
135
+ expect(applyReplacement('existing', 'old', 'new', true)).toBe('new');
131
136
  });
132
137
  it('should return newString if currentContent is null and oldString is empty (defensive)', () => {
133
- expect(tool._applyReplacement(null, '', 'new', false)).toBe('new');
138
+ expect(applyReplacement(null, '', 'new', false)).toBe('new');
134
139
  });
135
140
  it('should return empty string if currentContent is null and oldString is not empty (defensive)', () => {
136
- expect(tool._applyReplacement(null, 'old', 'new', false)).toBe('');
141
+ expect(applyReplacement(null, 'old', 'new', false)).toBe('');
137
142
  });
138
143
  it('should replace oldString with newString in currentContent', () => {
139
- expect(tool._applyReplacement('hello old world old', 'old', 'new', false)).toBe('hello new world new');
144
+ expect(applyReplacement('hello old world old', 'old', 'new', false)).toBe('hello new world new');
140
145
  });
141
146
  it('should return currentContent if oldString is empty and not a new file', () => {
142
- expect(tool._applyReplacement('hello world', '', 'new', false)).toBe('hello world');
147
+ expect(applyReplacement('hello world', '', 'new', false)).toBe('hello world');
143
148
  });
144
149
  });
145
150
  describe('validateToolParams', () => {
@@ -149,7 +154,8 @@ describe('EditTool', () => {
149
154
  old_string: 'old',
150
155
  new_string: 'new',
151
156
  };
152
- expect(tool.validateToolParams(params)).toBeNull();
157
+ // No error should be thrown when building with valid params
158
+ expect(() => tool.build(params)).not.toThrow();
153
159
  });
154
160
  it('should return error for relative path', () => {
155
161
  const params = {
@@ -157,7 +163,7 @@ describe('EditTool', () => {
157
163
  old_string: 'old',
158
164
  new_string: 'new',
159
165
  };
160
- expect(tool.validateToolParams(params)).toMatch(/File path must be absolute/);
166
+ expect(() => tool.build(params)).toThrow(/File path must be absolute/);
161
167
  });
162
168
  it('should return error for path outside root', () => {
163
169
  const params = {
@@ -165,8 +171,7 @@ describe('EditTool', () => {
165
171
  old_string: 'old',
166
172
  new_string: 'new',
167
173
  };
168
- const error = tool.validateToolParams(params);
169
- expect(error).toContain('File path must be within one of the workspace directories');
174
+ expect(() => tool.build(params)).toThrow(/File path must be within one of the workspace directories/);
170
175
  });
171
176
  });
172
177
  describe('shouldConfirmExecute', () => {
@@ -181,7 +186,8 @@ describe('EditTool', () => {
181
186
  old_string: 'old',
182
187
  new_string: 'new',
183
188
  };
184
- expect(await tool.shouldConfirmExecute(params, new AbortController().signal)).toBe(false);
189
+ // Invalid params should throw during build
190
+ expect(() => tool.build(params)).toThrow(/File path must be absolute/);
185
191
  });
186
192
  it('should request confirmation for valid edit', async () => {
187
193
  fs.writeFileSync(filePath, 'some old content here');
@@ -192,7 +198,8 @@ describe('EditTool', () => {
192
198
  };
193
199
  // ensureCorrectEdit will be called by shouldConfirmExecute
194
200
  mockEnsureCorrectEdit.mockResolvedValueOnce({ params, occurrences: 1 });
195
- const confirmation = await tool.shouldConfirmExecute(params, new AbortController().signal);
201
+ const invocation = tool.build(params);
202
+ const confirmation = await invocation.shouldConfirmExecute(new AbortController().signal);
196
203
  expect(confirmation).toEqual(expect.objectContaining({
197
204
  title: `Confirm Edit: ${testFile}`,
198
205
  fileName: testFile,
@@ -207,7 +214,8 @@ describe('EditTool', () => {
207
214
  new_string: 'new',
208
215
  };
209
216
  mockEnsureCorrectEdit.mockResolvedValueOnce({ params, occurrences: 0 });
210
- expect(await tool.shouldConfirmExecute(params, new AbortController().signal)).toBe(false);
217
+ const invocation = tool.build(params);
218
+ expect(await invocation.shouldConfirmExecute(new AbortController().signal)).toBe(false);
211
219
  });
212
220
  it('should return false if multiple occurrences of old_string are found (ensureCorrectEdit returns > 1)', async () => {
213
221
  fs.writeFileSync(filePath, 'old old content here');
@@ -217,7 +225,8 @@ describe('EditTool', () => {
217
225
  new_string: 'new',
218
226
  };
219
227
  mockEnsureCorrectEdit.mockResolvedValueOnce({ params, occurrences: 2 });
220
- expect(await tool.shouldConfirmExecute(params, new AbortController().signal)).toBe(false);
228
+ const invocation = tool.build(params);
229
+ expect(await invocation.shouldConfirmExecute(new AbortController().signal)).toBe(false);
221
230
  });
222
231
  it('should request confirmation for creating a new file (empty old_string)', async () => {
223
232
  const newFileName = 'new_file.txt';
@@ -231,7 +240,8 @@ describe('EditTool', () => {
231
240
  // as shouldConfirmExecute handles this for diff generation.
232
241
  // If it is called, it should return 0 occurrences for a new file.
233
242
  mockEnsureCorrectEdit.mockResolvedValueOnce({ params, occurrences: 0 });
234
- const confirmation = await tool.shouldConfirmExecute(params, new AbortController().signal);
243
+ const invocation = tool.build(params);
244
+ const confirmation = await invocation.shouldConfirmExecute(new AbortController().signal);
235
245
  expect(confirmation).toEqual(expect.objectContaining({
236
246
  title: `Confirm Edit: ${newFileName}`,
237
247
  fileName: newFileName,
@@ -268,7 +278,8 @@ describe('EditTool', () => {
268
278
  occurrences: 1,
269
279
  };
270
280
  });
271
- const confirmation = (await tool.shouldConfirmExecute(params, new AbortController().signal));
281
+ const invocation = tool.build(params);
282
+ const confirmation = (await invocation.shouldConfirmExecute(new AbortController().signal));
272
283
  expect(mockCalled).toBe(true); // Check if the mock implementation was run
273
284
  // expect(mockEnsureCorrectEdit).toHaveBeenCalledWith(originalContent, params, expect.anything()); // Keep this commented for now
274
285
  expect(confirmation).toEqual(expect.objectContaining({
@@ -312,9 +323,8 @@ describe('EditTool', () => {
312
323
  old_string: 'old',
313
324
  new_string: 'new',
314
325
  };
315
- const result = await tool.execute(params, new AbortController().signal);
316
- expect(result.llmContent).toMatch(/Error: Invalid parameters provided/);
317
- expect(result.returnDisplay).toMatch(/Error: File path must be absolute/);
326
+ // Invalid params should throw during build
327
+ expect(() => tool.build(params)).toThrow(/File path must be absolute/);
318
328
  });
319
329
  it('should edit an existing file and return diff with fileName', async () => {
320
330
  const initialContent = 'This is some old text.';
@@ -330,7 +340,8 @@ describe('EditTool', () => {
330
340
  // So, the default mockEnsureCorrectEdit should correctly return 1 occurrence for 'old' in initialContent
331
341
  // Simulate confirmation by setting shouldAlwaysEdit
332
342
  tool.shouldAlwaysEdit = true;
333
- const result = await tool.execute(params, new AbortController().signal);
343
+ const invocation = tool.build(params);
344
+ const result = await invocation.execute(new AbortController().signal);
334
345
  tool.shouldAlwaysEdit = false; // Reset for other tests
335
346
  expect(result.llmContent).toMatch(/Successfully modified file/);
336
347
  expect(fs.readFileSync(filePath, 'utf8')).toBe(newContent);
@@ -349,7 +360,8 @@ describe('EditTool', () => {
349
360
  new_string: fileContent,
350
361
  };
351
362
  mockConfig.getApprovalMode.mockReturnValueOnce(ApprovalMode.AUTO_EDIT);
352
- const result = await tool.execute(params, new AbortController().signal);
363
+ const invocation = tool.build(params);
364
+ const result = await invocation.execute(new AbortController().signal);
353
365
  expect(result.llmContent).toMatch(/Created new file/);
354
366
  expect(fs.existsSync(newFilePath)).toBe(true);
355
367
  expect(fs.readFileSync(newFilePath, 'utf8')).toBe(fileContent);
@@ -363,7 +375,8 @@ describe('EditTool', () => {
363
375
  new_string: 'replacement',
364
376
  };
365
377
  // The default mockEnsureCorrectEdit will return 0 occurrences for 'nonexistent'
366
- const result = await tool.execute(params, new AbortController().signal);
378
+ const invocation = tool.build(params);
379
+ const result = await invocation.execute(new AbortController().signal);
367
380
  expect(result.llmContent).toMatch(/0 occurrences found for old_string in/);
368
381
  expect(result.returnDisplay).toMatch(/Failed to edit, could not find the string to replace./);
369
382
  });
@@ -375,7 +388,8 @@ describe('EditTool', () => {
375
388
  new_string: 'new',
376
389
  };
377
390
  // The default mockEnsureCorrectEdit will return 2 occurrences for 'old'
378
- const result = await tool.execute(params, new AbortController().signal);
391
+ const invocation = tool.build(params);
392
+ const result = await invocation.execute(new AbortController().signal);
379
393
  expect(result.llmContent).toMatch(/Expected 1 occurrence but found 2 for old_string in file/);
380
394
  expect(result.returnDisplay).toMatch(/Failed to edit, expected 1 occurrence but found 2/);
381
395
  });
@@ -389,7 +403,8 @@ describe('EditTool', () => {
389
403
  };
390
404
  // Simulate confirmation by setting shouldAlwaysEdit
391
405
  tool.shouldAlwaysEdit = true;
392
- const result = await tool.execute(params, new AbortController().signal);
406
+ const invocation = tool.build(params);
407
+ const result = await invocation.execute(new AbortController().signal);
393
408
  tool.shouldAlwaysEdit = false; // Reset for other tests
394
409
  expect(result.llmContent).toMatch(/Successfully modified file/);
395
410
  expect(fs.readFileSync(filePath, 'utf8')).toBe('new text new text new text');
@@ -406,7 +421,8 @@ describe('EditTool', () => {
406
421
  new_string: 'new',
407
422
  expected_replacements: 3, // Expecting 3 but only 2 exist
408
423
  };
409
- const result = await tool.execute(params, new AbortController().signal);
424
+ const invocation = tool.build(params);
425
+ const result = await invocation.execute(new AbortController().signal);
410
426
  expect(result.llmContent).toMatch(/Expected 3 occurrences but found 2 for old_string in file/);
411
427
  expect(result.returnDisplay).toMatch(/Failed to edit, expected 3 occurrences but found 2/);
412
428
  });
@@ -417,7 +433,8 @@ describe('EditTool', () => {
417
433
  old_string: '',
418
434
  new_string: 'new content',
419
435
  };
420
- const result = await tool.execute(params, new AbortController().signal);
436
+ const invocation = tool.build(params);
437
+ const result = await invocation.execute(new AbortController().signal);
421
438
  expect(result.llmContent).toMatch(/File already exists, cannot create/);
422
439
  expect(result.returnDisplay).toMatch(/Attempted to create a file that already exists/);
423
440
  });
@@ -431,7 +448,8 @@ describe('EditTool', () => {
431
448
  modified_by_user: true,
432
449
  };
433
450
  mockConfig.getApprovalMode.mockReturnValueOnce(ApprovalMode.AUTO_EDIT);
434
- const result = await tool.execute(params, new AbortController().signal);
451
+ const invocation = tool.build(params);
452
+ const result = await invocation.execute(new AbortController().signal);
435
453
  expect(result.llmContent).toMatch(/User modified the `new_string` content/);
436
454
  });
437
455
  it('should not include modification message when proposed content is not modified', async () => {
@@ -444,7 +462,8 @@ describe('EditTool', () => {
444
462
  modified_by_user: false,
445
463
  };
446
464
  mockConfig.getApprovalMode.mockReturnValueOnce(ApprovalMode.AUTO_EDIT);
447
- const result = await tool.execute(params, new AbortController().signal);
465
+ const invocation = tool.build(params);
466
+ const result = await invocation.execute(new AbortController().signal);
448
467
  expect(result.llmContent).not.toMatch(/User modified the `new_string` content/);
449
468
  });
450
469
  it('should not include modification message when modified_by_user is not provided', async () => {
@@ -456,7 +475,8 @@ describe('EditTool', () => {
456
475
  new_string: 'new',
457
476
  };
458
477
  mockConfig.getApprovalMode.mockReturnValueOnce(ApprovalMode.AUTO_EDIT);
459
- const result = await tool.execute(params, new AbortController().signal);
478
+ const invocation = tool.build(params);
479
+ const result = await invocation.execute(new AbortController().signal);
460
480
  expect(result.llmContent).not.toMatch(/User modified the `new_string` content/);
461
481
  });
462
482
  it('should return error if old_string and new_string are identical', async () => {
@@ -467,7 +487,8 @@ describe('EditTool', () => {
467
487
  old_string: 'identical',
468
488
  new_string: 'identical',
469
489
  };
470
- const result = await tool.execute(params, new AbortController().signal);
490
+ const invocation = tool.build(params);
491
+ const result = await invocation.execute(new AbortController().signal);
471
492
  expect(result.llmContent).toMatch(/No changes to apply/);
472
493
  expect(result.returnDisplay).toMatch(/No changes to apply/);
473
494
  });
@@ -484,7 +505,8 @@ describe('EditTool', () => {
484
505
  old_string: 'any',
485
506
  new_string: 'new',
486
507
  };
487
- const result = await tool.execute(params, new AbortController().signal);
508
+ const invocation = tool.build(params);
509
+ const result = await invocation.execute(new AbortController().signal);
488
510
  expect(result.error?.type).toBe(ToolErrorType.FILE_NOT_FOUND);
489
511
  });
490
512
  it('should return ATTEMPT_TO_CREATE_EXISTING_FILE error', async () => {
@@ -494,7 +516,8 @@ describe('EditTool', () => {
494
516
  old_string: '',
495
517
  new_string: 'new content',
496
518
  };
497
- const result = await tool.execute(params, new AbortController().signal);
519
+ const invocation = tool.build(params);
520
+ const result = await invocation.execute(new AbortController().signal);
498
521
  expect(result.error?.type).toBe(ToolErrorType.ATTEMPT_TO_CREATE_EXISTING_FILE);
499
522
  });
500
523
  it('should return NO_OCCURRENCE_FOUND error', async () => {
@@ -504,7 +527,8 @@ describe('EditTool', () => {
504
527
  old_string: 'not-found',
505
528
  new_string: 'new',
506
529
  };
507
- const result = await tool.execute(params, new AbortController().signal);
530
+ const invocation = tool.build(params);
531
+ const result = await invocation.execute(new AbortController().signal);
508
532
  expect(result.error?.type).toBe(ToolErrorType.EDIT_NO_OCCURRENCE_FOUND);
509
533
  });
510
534
  it('should return EXPECTED_OCCURRENCE_MISMATCH error', async () => {
@@ -515,7 +539,8 @@ describe('EditTool', () => {
515
539
  new_string: 'new',
516
540
  expected_replacements: 3,
517
541
  };
518
- const result = await tool.execute(params, new AbortController().signal);
542
+ const invocation = tool.build(params);
543
+ const result = await invocation.execute(new AbortController().signal);
519
544
  expect(result.error?.type).toBe(ToolErrorType.EDIT_EXPECTED_OCCURRENCE_MISMATCH);
520
545
  });
521
546
  it('should return NO_CHANGE error', async () => {
@@ -525,7 +550,8 @@ describe('EditTool', () => {
525
550
  old_string: 'content',
526
551
  new_string: 'content',
527
552
  };
528
- const result = await tool.execute(params, new AbortController().signal);
553
+ const invocation = tool.build(params);
554
+ const result = await invocation.execute(new AbortController().signal);
529
555
  expect(result.error?.type).toBe(ToolErrorType.EDIT_NO_CHANGE);
530
556
  });
531
557
  it('should return INVALID_PARAMETERS error for relative path', async () => {
@@ -534,8 +560,8 @@ describe('EditTool', () => {
534
560
  old_string: 'a',
535
561
  new_string: 'b',
536
562
  };
537
- const result = await tool.execute(params, new AbortController().signal);
538
- expect(result.error?.type).toBe(ToolErrorType.INVALID_TOOL_PARAMS);
563
+ // Invalid params should throw during build
564
+ expect(() => tool.build(params)).toThrow(/File path must be absolute/);
539
565
  });
540
566
  it('should return FILE_WRITE_FAILURE on write error', async () => {
541
567
  fs.writeFileSync(filePath, 'content', 'utf8');
@@ -546,7 +572,8 @@ describe('EditTool', () => {
546
572
  old_string: 'content',
547
573
  new_string: 'new content',
548
574
  };
549
- const result = await tool.execute(params, new AbortController().signal);
575
+ const invocation = tool.build(params);
576
+ const result = await invocation.execute(new AbortController().signal);
550
577
  expect(result.error?.type).toBe(ToolErrorType.FILE_WRITE_FAILURE);
551
578
  });
552
579
  });
@@ -559,7 +586,8 @@ describe('EditTool', () => {
559
586
  new_string: 'identical_string',
560
587
  };
561
588
  // shortenPath will be called internally, resulting in just the file name
562
- expect(tool.getDescription(params)).toBe(`No file changes to ${testFileName}`);
589
+ const invocation = tool.build(params);
590
+ expect(invocation.getDescription()).toBe(`No file changes to ${testFileName}`);
563
591
  });
564
592
  it('should return a snippet of old and new strings if they are different', () => {
565
593
  const testFileName = 'test.txt';
@@ -570,7 +598,8 @@ describe('EditTool', () => {
570
598
  };
571
599
  // shortenPath will be called internally, resulting in just the file name
572
600
  // The snippets are truncated at 30 chars + '...'
573
- expect(tool.getDescription(params)).toBe(`${testFileName}: this is the old string value => this is the new string value`);
601
+ const invocation = tool.build(params);
602
+ expect(invocation.getDescription()).toBe(`${testFileName}: this is the old string value => this is the new string value`);
574
603
  });
575
604
  it('should handle very short strings correctly in the description', () => {
576
605
  const testFileName = 'short.txt';
@@ -579,7 +608,8 @@ describe('EditTool', () => {
579
608
  old_string: 'old',
580
609
  new_string: 'new',
581
610
  };
582
- expect(tool.getDescription(params)).toBe(`${testFileName}: old => new`);
611
+ const invocation = tool.build(params);
612
+ expect(invocation.getDescription()).toBe(`${testFileName}: old => new`);
583
613
  });
584
614
  it('should truncate long strings in the description', () => {
585
615
  const testFileName = 'long.txt';
@@ -588,7 +618,8 @@ describe('EditTool', () => {
588
618
  old_string: 'this is a very long old string that will definitely be truncated',
589
619
  new_string: 'this is a very long new string that will also be truncated',
590
620
  };
591
- expect(tool.getDescription(params)).toBe(`${testFileName}: this is a very long old string... => this is a very long new string...`);
621
+ const invocation = tool.build(params);
622
+ expect(invocation.getDescription()).toBe(`${testFileName}: this is a very long old string... => this is a very long new string...`);
592
623
  });
593
624
  });
594
625
  describe('workspace boundary validation', () => {
@@ -598,7 +629,8 @@ describe('EditTool', () => {
598
629
  old_string: 'old',
599
630
  new_string: 'new',
600
631
  };
601
- expect(tool.validateToolParams(validPath)).toBeNull();
632
+ // Valid params should not throw
633
+ expect(() => tool.build(validPath)).not.toThrow();
602
634
  });
603
635
  it('should reject paths outside workspace root', () => {
604
636
  const invalidPath = {
@@ -606,9 +638,51 @@ describe('EditTool', () => {
606
638
  old_string: 'root',
607
639
  new_string: 'hacked',
608
640
  };
609
- const error = tool.validateToolParams(invalidPath);
610
- expect(error).toContain('File path must be within one of the workspace directories');
611
- expect(error).toContain(rootDir);
641
+ expect(() => tool.build(invalidPath)).toThrow(/File path must be within one of the workspace directories/);
642
+ });
643
+ });
644
+ describe('IDE mode', () => {
645
+ const testFile = 'edit_me.txt';
646
+ let filePath;
647
+ let ideClient;
648
+ beforeEach(() => {
649
+ filePath = path.join(rootDir, testFile);
650
+ ideClient = {
651
+ openDiff: vi.fn(),
652
+ getConnectionStatus: vi.fn().mockReturnValue({
653
+ status: IDEConnectionStatus.Connected,
654
+ }),
655
+ };
656
+ mockConfig.getIdeMode = () => true;
657
+ mockConfig.getIdeModeFeature = () => true;
658
+ mockConfig.getIdeClient = () => ideClient;
659
+ });
660
+ it('should call ideClient.openDiff and update params on confirmation', async () => {
661
+ const initialContent = 'some old content here';
662
+ const newContent = 'some new content here';
663
+ const modifiedContent = 'some modified content here';
664
+ fs.writeFileSync(filePath, initialContent);
665
+ const params = {
666
+ file_path: filePath,
667
+ old_string: 'old',
668
+ new_string: 'new',
669
+ };
670
+ mockEnsureCorrectEdit.mockResolvedValueOnce({
671
+ params: { ...params, old_string: 'old', new_string: 'new' },
672
+ occurrences: 1,
673
+ });
674
+ ideClient.openDiff.mockResolvedValueOnce({
675
+ status: 'accepted',
676
+ content: modifiedContent,
677
+ });
678
+ const invocation = tool.build(params);
679
+ const confirmation = await invocation.shouldConfirmExecute(new AbortController().signal);
680
+ expect(ideClient.openDiff).toHaveBeenCalledWith(filePath, newContent);
681
+ if (confirmation && 'onConfirm' in confirmation) {
682
+ await confirmation.onConfirm(ToolConfirmationOutcome.ProceedOnce);
683
+ }
684
+ expect(params.old_string).toBe(initialContent);
685
+ expect(params.new_string).toBe(modifiedContent);
612
686
  });
613
687
  });
614
688
  });
@@ -1 +1 @@
1
- {"version":3,"file":"edit.test.js","sourceRoot":"","sources":["../../../src/tools/edit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit.test.js","sourceRoot":"","sources":["../../../src/tools/edit.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 { BaseTool, ToolResult } from './tools.js';
6
+ import { BaseDeclarativeTool, ToolInvocation, ToolResult } from './tools.js';
7
7
  import { Config } from '../config/config.js';
8
8
  export interface GlobPath {
9
9
  fullpath(): string;
@@ -43,7 +43,7 @@ export interface GlobToolParams {
43
43
  /**
44
44
  * Implementation of the Glob tool logic
45
45
  */
46
- export declare class GlobTool extends BaseTool<GlobToolParams, ToolResult> {
46
+ export declare class GlobTool extends BaseDeclarativeTool<GlobToolParams, ToolResult> {
47
47
  private config;
48
48
  static readonly Name = "glob";
49
49
  constructor(config: Config);
@@ -51,12 +51,5 @@ export declare class GlobTool extends BaseTool<GlobToolParams, ToolResult> {
51
51
  * Validates the parameters for the tool.
52
52
  */
53
53
  validateToolParams(params: GlobToolParams): string | null;
54
- /**
55
- * Gets a description of the glob operation.
56
- */
57
- getDescription(params: GlobToolParams): string;
58
- /**
59
- * Executes the glob search with the given parameters
60
- */
61
- execute(params: GlobToolParams, signal: AbortSignal): Promise<ToolResult>;
54
+ protected createInvocation(params: GlobToolParams): ToolInvocation<GlobToolParams, ToolResult>;
62
55
  }