@vybestack/llxprt-code-tools 0.10.0-nightly.260613.1adad3b34

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 (364) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +294 -0
  3. package/dist/.last_build +0 -0
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +2 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/__tests__/fixtures/filesystem-tool-fixtures.d.ts +29 -0
  8. package/dist/src/__tests__/fixtures/filesystem-tool-fixtures.js +30 -0
  9. package/dist/src/__tests__/fixtures/filesystem-tool-fixtures.js.map +1 -0
  10. package/dist/src/__tests__/fixtures/key-storage-fixtures.d.ts +39 -0
  11. package/dist/src/__tests__/fixtures/key-storage-fixtures.js +53 -0
  12. package/dist/src/__tests__/fixtures/key-storage-fixtures.js.map +1 -0
  13. package/dist/src/__tests__/fixtures/provider-formatting-fixtures.d.ts +140 -0
  14. package/dist/src/__tests__/fixtures/provider-formatting-fixtures.js +157 -0
  15. package/dist/src/__tests__/fixtures/provider-formatting-fixtures.js.map +1 -0
  16. package/dist/src/__tests__/red-test-helpers.d.ts +14 -0
  17. package/dist/src/__tests__/red-test-helpers.js +18 -0
  18. package/dist/src/__tests__/red-test-helpers.js.map +1 -0
  19. package/dist/src/formatters/IToolFormatter.d.ts +84 -0
  20. package/dist/src/formatters/IToolFormatter.js +6 -0
  21. package/dist/src/formatters/IToolFormatter.js.map +1 -0
  22. package/dist/src/formatters/ToolFormatter.d.ts +94 -0
  23. package/dist/src/formatters/ToolFormatter.js +379 -0
  24. package/dist/src/formatters/ToolFormatter.js.map +1 -0
  25. package/dist/src/formatters/ToolIdStrategy.d.ts +79 -0
  26. package/dist/src/formatters/ToolIdStrategy.js +173 -0
  27. package/dist/src/formatters/ToolIdStrategy.js.map +1 -0
  28. package/dist/src/formatters/doubleEscapeUtils.d.ts +46 -0
  29. package/dist/src/formatters/doubleEscapeUtils.js +223 -0
  30. package/dist/src/formatters/doubleEscapeUtils.js.map +1 -0
  31. package/dist/src/formatters/index.d.ts +21 -0
  32. package/dist/src/formatters/index.js +12 -0
  33. package/dist/src/formatters/index.js.map +1 -0
  34. package/dist/src/formatters/toolIdNormalization.d.ts +28 -0
  35. package/dist/src/formatters/toolIdNormalization.js +97 -0
  36. package/dist/src/formatters/toolIdNormalization.js.map +1 -0
  37. package/dist/src/formatters/toolNameUtils.d.ts +43 -0
  38. package/dist/src/formatters/toolNameUtils.js +143 -0
  39. package/dist/src/formatters/toolNameUtils.js.map +1 -0
  40. package/dist/src/index.d.ts +88 -0
  41. package/dist/src/index.js +68 -0
  42. package/dist/src/index.js.map +1 -0
  43. package/dist/src/interfaces/IAsyncTaskService.d.ts +57 -0
  44. package/dist/src/interfaces/IAsyncTaskService.js +6 -0
  45. package/dist/src/interfaces/IAsyncTaskService.js.map +1 -0
  46. package/dist/src/interfaces/IIdeService.d.ts +62 -0
  47. package/dist/src/interfaces/IIdeService.js +6 -0
  48. package/dist/src/interfaces/IIdeService.js.map +1 -0
  49. package/dist/src/interfaces/ILspService.d.ts +54 -0
  50. package/dist/src/interfaces/ILspService.js +6 -0
  51. package/dist/src/interfaces/ILspService.js.map +1 -0
  52. package/dist/src/interfaces/IMcpToolService.d.ts +47 -0
  53. package/dist/src/interfaces/IMcpToolService.js +6 -0
  54. package/dist/src/interfaces/IMcpToolService.js.map +1 -0
  55. package/dist/src/interfaces/IPromptRegistryService.d.ts +51 -0
  56. package/dist/src/interfaces/IPromptRegistryService.js +6 -0
  57. package/dist/src/interfaces/IPromptRegistryService.js.map +1 -0
  58. package/dist/src/interfaces/ISettingsService.d.ts +50 -0
  59. package/dist/src/interfaces/ISettingsService.js +6 -0
  60. package/dist/src/interfaces/ISettingsService.js.map +1 -0
  61. package/dist/src/interfaces/IShellExecutionService.d.ts +55 -0
  62. package/dist/src/interfaces/IShellExecutionService.js +6 -0
  63. package/dist/src/interfaces/IShellExecutionService.js.map +1 -0
  64. package/dist/src/interfaces/IShellToolHost.d.ts +176 -0
  65. package/dist/src/interfaces/IShellToolHost.js +6 -0
  66. package/dist/src/interfaces/IShellToolHost.js.map +1 -0
  67. package/dist/src/interfaces/ISkillService.d.ts +69 -0
  68. package/dist/src/interfaces/ISkillService.js +6 -0
  69. package/dist/src/interfaces/ISkillService.js.map +1 -0
  70. package/dist/src/interfaces/IStorageService.d.ts +42 -0
  71. package/dist/src/interfaces/IStorageService.js +6 -0
  72. package/dist/src/interfaces/IStorageService.js.map +1 -0
  73. package/dist/src/interfaces/ISubagentService.d.ts +112 -0
  74. package/dist/src/interfaces/ISubagentService.js +6 -0
  75. package/dist/src/interfaces/ISubagentService.js.map +1 -0
  76. package/dist/src/interfaces/ITaskToolHost.d.ts +185 -0
  77. package/dist/src/interfaces/ITaskToolHost.js +6 -0
  78. package/dist/src/interfaces/ITaskToolHost.js.map +1 -0
  79. package/dist/src/interfaces/ITodoService.d.ts +79 -0
  80. package/dist/src/interfaces/ITodoService.js +6 -0
  81. package/dist/src/interfaces/ITodoService.js.map +1 -0
  82. package/dist/src/interfaces/IToolHost.d.ts +91 -0
  83. package/dist/src/interfaces/IToolHost.js +6 -0
  84. package/dist/src/interfaces/IToolHost.js.map +1 -0
  85. package/dist/src/interfaces/IToolKeyStorage.d.ts +62 -0
  86. package/dist/src/interfaces/IToolKeyStorage.js +6 -0
  87. package/dist/src/interfaces/IToolKeyStorage.js.map +1 -0
  88. package/dist/src/interfaces/IToolMessageBus.d.ts +63 -0
  89. package/dist/src/interfaces/IToolMessageBus.js +6 -0
  90. package/dist/src/interfaces/IToolMessageBus.js.map +1 -0
  91. package/dist/src/interfaces/IToolRegistryHost.d.ts +43 -0
  92. package/dist/src/interfaces/IToolRegistryHost.js +6 -0
  93. package/dist/src/interfaces/IToolRegistryHost.js.map +1 -0
  94. package/dist/src/interfaces/IWebSearchService.d.ts +16 -0
  95. package/dist/src/interfaces/IWebSearchService.js +7 -0
  96. package/dist/src/interfaces/IWebSearchService.js.map +1 -0
  97. package/dist/src/interfaces/index.d.ts +33 -0
  98. package/dist/src/interfaces/index.js +6 -0
  99. package/dist/src/interfaces/index.js.map +1 -0
  100. package/dist/src/tools/activate-skill.d.ts +26 -0
  101. package/dist/src/tools/activate-skill.js +121 -0
  102. package/dist/src/tools/activate-skill.js.map +1 -0
  103. package/dist/src/tools/apply-patch.d.ts +65 -0
  104. package/dist/src/tools/apply-patch.js +528 -0
  105. package/dist/src/tools/apply-patch.js.map +1 -0
  106. package/dist/src/tools/ast-edit/ast-config.d.ts +67 -0
  107. package/dist/src/tools/ast-edit/ast-config.js +72 -0
  108. package/dist/src/tools/ast-edit/ast-config.js.map +1 -0
  109. package/dist/src/tools/ast-edit/ast-edit-invocation.d.ts +40 -0
  110. package/dist/src/tools/ast-edit/ast-edit-invocation.js +410 -0
  111. package/dist/src/tools/ast-edit/ast-edit-invocation.js.map +1 -0
  112. package/dist/src/tools/ast-edit/ast-query-extractor.d.ts +21 -0
  113. package/dist/src/tools/ast-edit/ast-query-extractor.js +178 -0
  114. package/dist/src/tools/ast-edit/ast-query-extractor.js.map +1 -0
  115. package/dist/src/tools/ast-edit/ast-read-file-invocation.d.ts +26 -0
  116. package/dist/src/tools/ast-edit/ast-read-file-invocation.js +149 -0
  117. package/dist/src/tools/ast-edit/ast-read-file-invocation.js.map +1 -0
  118. package/dist/src/tools/ast-edit/constants.d.ts +30 -0
  119. package/dist/src/tools/ast-edit/constants.js +36 -0
  120. package/dist/src/tools/ast-edit/constants.js.map +1 -0
  121. package/dist/src/tools/ast-edit/context-collector.d.ts +25 -0
  122. package/dist/src/tools/ast-edit/context-collector.js +115 -0
  123. package/dist/src/tools/ast-edit/context-collector.js.map +1 -0
  124. package/dist/src/tools/ast-edit/context-optimizer.d.ts +29 -0
  125. package/dist/src/tools/ast-edit/context-optimizer.js +86 -0
  126. package/dist/src/tools/ast-edit/context-optimizer.js.map +1 -0
  127. package/dist/src/tools/ast-edit/cross-file-analyzer.d.ts +41 -0
  128. package/dist/src/tools/ast-edit/cross-file-analyzer.js +294 -0
  129. package/dist/src/tools/ast-edit/cross-file-analyzer.js.map +1 -0
  130. package/dist/src/tools/ast-edit/edit-calculator.d.ts +71 -0
  131. package/dist/src/tools/ast-edit/edit-calculator.js +249 -0
  132. package/dist/src/tools/ast-edit/edit-calculator.js.map +1 -0
  133. package/dist/src/tools/ast-edit/edit-helpers.d.ts +22 -0
  134. package/dist/src/tools/ast-edit/edit-helpers.js +36 -0
  135. package/dist/src/tools/ast-edit/edit-helpers.js.map +1 -0
  136. package/dist/src/tools/ast-edit/language-analysis.d.ts +19 -0
  137. package/dist/src/tools/ast-edit/language-analysis.js +123 -0
  138. package/dist/src/tools/ast-edit/language-analysis.js.map +1 -0
  139. package/dist/src/tools/ast-edit/local-context-analyzer.d.ts +84 -0
  140. package/dist/src/tools/ast-edit/local-context-analyzer.js +267 -0
  141. package/dist/src/tools/ast-edit/local-context-analyzer.js.map +1 -0
  142. package/dist/src/tools/ast-edit/repository-context-provider.d.ts +22 -0
  143. package/dist/src/tools/ast-edit/repository-context-provider.js +139 -0
  144. package/dist/src/tools/ast-edit/repository-context-provider.js.map +1 -0
  145. package/dist/src/tools/ast-edit/types.d.ts +155 -0
  146. package/dist/src/tools/ast-edit/types.js +7 -0
  147. package/dist/src/tools/ast-edit/types.js.map +1 -0
  148. package/dist/src/tools/ast-edit/workspace-context-provider.d.ts +22 -0
  149. package/dist/src/tools/ast-edit/workspace-context-provider.js +39 -0
  150. package/dist/src/tools/ast-edit/workspace-context-provider.js.map +1 -0
  151. package/dist/src/tools/ast-edit.d.ts +43 -0
  152. package/dist/src/tools/ast-edit.js +183 -0
  153. package/dist/src/tools/ast-edit.js.map +1 -0
  154. package/dist/src/tools/ast-grep.d.ts +22 -0
  155. package/dist/src/tools/ast-grep.js +291 -0
  156. package/dist/src/tools/ast-grep.js.map +1 -0
  157. package/dist/src/tools/check-async-tasks.d.ts +46 -0
  158. package/dist/src/tools/check-async-tasks.js +241 -0
  159. package/dist/src/tools/check-async-tasks.js.map +1 -0
  160. package/dist/src/tools/codesearch.d.ts +25 -0
  161. package/dist/src/tools/codesearch.js +153 -0
  162. package/dist/src/tools/codesearch.js.map +1 -0
  163. package/dist/src/tools/delete_line_range.d.ts +41 -0
  164. package/dist/src/tools/delete_line_range.js +238 -0
  165. package/dist/src/tools/delete_line_range.js.map +1 -0
  166. package/dist/src/tools/direct-web-fetch.d.ts +22 -0
  167. package/dist/src/tools/direct-web-fetch.js +215 -0
  168. package/dist/src/tools/direct-web-fetch.js.map +1 -0
  169. package/dist/src/tools/edit-utils.d.ts +53 -0
  170. package/dist/src/tools/edit-utils.js +250 -0
  171. package/dist/src/tools/edit-utils.js.map +1 -0
  172. package/dist/src/tools/edit.d.ts +70 -0
  173. package/dist/src/tools/edit.js +816 -0
  174. package/dist/src/tools/edit.js.map +1 -0
  175. package/dist/src/tools/exa-web-search.d.ts +27 -0
  176. package/dist/src/tools/exa-web-search.js +153 -0
  177. package/dist/src/tools/exa-web-search.js.map +1 -0
  178. package/dist/src/tools/glob.d.ts +55 -0
  179. package/dist/src/tools/glob.js +284 -0
  180. package/dist/src/tools/glob.js.map +1 -0
  181. package/dist/src/tools/google-web-fetch.d.ts +34 -0
  182. package/dist/src/tools/google-web-fetch.js +417 -0
  183. package/dist/src/tools/google-web-fetch.js.map +1 -0
  184. package/dist/src/tools/google-web-search-invocation.d.ts +53 -0
  185. package/dist/src/tools/google-web-search-invocation.js +180 -0
  186. package/dist/src/tools/google-web-search-invocation.js.map +1 -0
  187. package/dist/src/tools/google-web-search.d.ts +16 -0
  188. package/dist/src/tools/google-web-search.js +34 -0
  189. package/dist/src/tools/google-web-search.js.map +1 -0
  190. package/dist/src/tools/grep.d.ts +56 -0
  191. package/dist/src/tools/grep.js +883 -0
  192. package/dist/src/tools/grep.js.map +1 -0
  193. package/dist/src/tools/insert_at_line.d.ts +41 -0
  194. package/dist/src/tools/insert_at_line.js +287 -0
  195. package/dist/src/tools/insert_at_line.js.map +1 -0
  196. package/dist/src/tools/list-subagents.d.ts +31 -0
  197. package/dist/src/tools/list-subagents.js +122 -0
  198. package/dist/src/tools/list-subagents.js.map +1 -0
  199. package/dist/src/tools/ls.d.ts +71 -0
  200. package/dist/src/tools/ls.js +238 -0
  201. package/dist/src/tools/ls.js.map +1 -0
  202. package/dist/src/tools/memoryTool.d.ts +66 -0
  203. package/dist/src/tools/memoryTool.js +435 -0
  204. package/dist/src/tools/memoryTool.js.map +1 -0
  205. package/dist/src/tools/modifiable-tool.d.ts +37 -0
  206. package/dist/src/tools/modifiable-tool.js +120 -0
  207. package/dist/src/tools/modifiable-tool.js.map +1 -0
  208. package/dist/src/tools/read-file.d.ts +49 -0
  209. package/dist/src/tools/read-file.js +279 -0
  210. package/dist/src/tools/read-file.js.map +1 -0
  211. package/dist/src/tools/read-many-files.d.ts +60 -0
  212. package/dist/src/tools/read-many-files.js +529 -0
  213. package/dist/src/tools/read-many-files.js.map +1 -0
  214. package/dist/src/tools/read_line_range.d.ts +47 -0
  215. package/dist/src/tools/read_line_range.js +248 -0
  216. package/dist/src/tools/read_line_range.js.map +1 -0
  217. package/dist/src/tools/ripGrep.d.ts +41 -0
  218. package/dist/src/tools/ripGrep.js +395 -0
  219. package/dist/src/tools/ripGrep.js.map +1 -0
  220. package/dist/src/tools/shell.d.ts +60 -0
  221. package/dist/src/tools/shell.js +735 -0
  222. package/dist/src/tools/shell.js.map +1 -0
  223. package/dist/src/tools/structural-analysis.d.ts +27 -0
  224. package/dist/src/tools/structural-analysis.js +1089 -0
  225. package/dist/src/tools/structural-analysis.js.map +1 -0
  226. package/dist/src/tools/stubs.d.ts +10 -0
  227. package/dist/src/tools/stubs.js +6 -0
  228. package/dist/src/tools/stubs.js.map +1 -0
  229. package/dist/src/tools/task.d.ts +41 -0
  230. package/dist/src/tools/task.js +195 -0
  231. package/dist/src/tools/task.js.map +1 -0
  232. package/dist/src/tools/todo-events.d.ts +22 -0
  233. package/dist/src/tools/todo-events.js +24 -0
  234. package/dist/src/tools/todo-events.js.map +1 -0
  235. package/dist/src/tools/todo-pause.d.ts +29 -0
  236. package/dist/src/tools/todo-pause.js +172 -0
  237. package/dist/src/tools/todo-pause.js.map +1 -0
  238. package/dist/src/tools/todo-read.d.ts +18 -0
  239. package/dist/src/tools/todo-read.js +98 -0
  240. package/dist/src/tools/todo-read.js.map +1 -0
  241. package/dist/src/tools/todo-store.d.ts +35 -0
  242. package/dist/src/tools/todo-store.js +124 -0
  243. package/dist/src/tools/todo-store.js.map +1 -0
  244. package/dist/src/tools/todo-write.d.ts +29 -0
  245. package/dist/src/tools/todo-write.js +366 -0
  246. package/dist/src/tools/todo-write.js.map +1 -0
  247. package/dist/src/tools/tool-registry.d.ts +156 -0
  248. package/dist/src/tools/tool-registry.js +623 -0
  249. package/dist/src/tools/tool-registry.js.map +1 -0
  250. package/dist/src/tools/tools.d.ts +403 -0
  251. package/dist/src/tools/tools.js +519 -0
  252. package/dist/src/tools/tools.js.map +1 -0
  253. package/dist/src/tools/write-file.d.ts +45 -0
  254. package/dist/src/tools/write-file.js +320 -0
  255. package/dist/src/tools/write-file.js.map +1 -0
  256. package/dist/src/types/index.d.ts +17 -0
  257. package/dist/src/types/index.js +9 -0
  258. package/dist/src/types/index.js.map +1 -0
  259. package/dist/src/types/provider-content-types.d.ts +56 -0
  260. package/dist/src/types/provider-content-types.js +6 -0
  261. package/dist/src/types/provider-content-types.js.map +1 -0
  262. package/dist/src/types/todo-schemas.d.ts +263 -0
  263. package/dist/src/types/todo-schemas.js +32 -0
  264. package/dist/src/types/todo-schemas.js.map +1 -0
  265. package/dist/src/types/tool-confirmation-types.d.ts +34 -0
  266. package/dist/src/types/tool-confirmation-types.js +29 -0
  267. package/dist/src/types/tool-confirmation-types.js.map +1 -0
  268. package/dist/src/types/tool-context.d.ts +31 -0
  269. package/dist/src/types/tool-context.js +6 -0
  270. package/dist/src/types/tool-context.js.map +1 -0
  271. package/dist/src/types/tool-error.d.ts +69 -0
  272. package/dist/src/types/tool-error.js +94 -0
  273. package/dist/src/types/tool-error.js.map +1 -0
  274. package/dist/src/types/tool-names.d.ts +57 -0
  275. package/dist/src/types/tool-names.js +64 -0
  276. package/dist/src/types/tool-names.js.map +1 -0
  277. package/dist/src/utils/EmojiFilter.d.ts +134 -0
  278. package/dist/src/utils/EmojiFilter.js +370 -0
  279. package/dist/src/utils/EmojiFilter.js.map +1 -0
  280. package/dist/src/utils/ast-grep-utils.d.ts +42 -0
  281. package/dist/src/utils/ast-grep-utils.js +140 -0
  282. package/dist/src/utils/ast-grep-utils.js.map +1 -0
  283. package/dist/src/utils/debugLogger.d.ts +11 -0
  284. package/dist/src/utils/debugLogger.js +16 -0
  285. package/dist/src/utils/debugLogger.js.map +1 -0
  286. package/dist/src/utils/diffOptions.d.ts +14 -0
  287. package/dist/src/utils/diffOptions.js +46 -0
  288. package/dist/src/utils/diffOptions.js.map +1 -0
  289. package/dist/src/utils/editor.d.ts +39 -0
  290. package/dist/src/utils/editor.js +212 -0
  291. package/dist/src/utils/editor.js.map +1 -0
  292. package/dist/src/utils/ensure-dirs.d.ts +10 -0
  293. package/dist/src/utils/ensure-dirs.js +16 -0
  294. package/dist/src/utils/ensure-dirs.js.map +1 -0
  295. package/dist/src/utils/errors.d.ts +59 -0
  296. package/dist/src/utils/errors.js +178 -0
  297. package/dist/src/utils/errors.js.map +1 -0
  298. package/dist/src/utils/fetch.d.ts +11 -0
  299. package/dist/src/utils/fetch.js +74 -0
  300. package/dist/src/utils/fetch.js.map +1 -0
  301. package/dist/src/utils/fileUtils.d.ts +32 -0
  302. package/dist/src/utils/fileUtils.js +363 -0
  303. package/dist/src/utils/fileUtils.js.map +1 -0
  304. package/dist/src/utils/fuzzy-replacer.d.ts +61 -0
  305. package/dist/src/utils/fuzzy-replacer.js +492 -0
  306. package/dist/src/utils/fuzzy-replacer.js.map +1 -0
  307. package/dist/src/utils/gitLineChanges.d.ts +12 -0
  308. package/dist/src/utils/gitLineChanges.js +171 -0
  309. package/dist/src/utils/gitLineChanges.js.map +1 -0
  310. package/dist/src/utils/gitUtils.d.ts +6 -0
  311. package/dist/src/utils/gitUtils.js +31 -0
  312. package/dist/src/utils/gitUtils.js.map +1 -0
  313. package/dist/src/utils/lsp-diagnostics-helper.d.ts +27 -0
  314. package/dist/src/utils/lsp-diagnostics-helper.js +62 -0
  315. package/dist/src/utils/lsp-diagnostics-helper.js.map +1 -0
  316. package/dist/src/utils/mediaUtils.d.ts +38 -0
  317. package/dist/src/utils/mediaUtils.js +22 -0
  318. package/dist/src/utils/mediaUtils.js.map +1 -0
  319. package/dist/src/utils/pathValidation.d.ts +7 -0
  320. package/dist/src/utils/pathValidation.js +39 -0
  321. package/dist/src/utils/pathValidation.js.map +1 -0
  322. package/dist/src/utils/paths.d.ts +7 -0
  323. package/dist/src/utils/paths.js +158 -0
  324. package/dist/src/utils/paths.js.map +1 -0
  325. package/dist/src/utils/resolveTextSearchTarget.d.ts +17 -0
  326. package/dist/src/utils/resolveTextSearchTarget.js +45 -0
  327. package/dist/src/utils/resolveTextSearchTarget.js.map +1 -0
  328. package/dist/src/utils/retry.d.ts +17 -0
  329. package/dist/src/utils/retry.js +185 -0
  330. package/dist/src/utils/retry.js.map +1 -0
  331. package/dist/src/utils/ripgrepPathResolver.d.ts +23 -0
  332. package/dist/src/utils/ripgrepPathResolver.js +179 -0
  333. package/dist/src/utils/ripgrepPathResolver.js.map +1 -0
  334. package/dist/src/utils/safeJsonStringify.d.ts +9 -0
  335. package/dist/src/utils/safeJsonStringify.js +21 -0
  336. package/dist/src/utils/safeJsonStringify.js.map +1 -0
  337. package/dist/src/utils/schemaValidator.d.ts +13 -0
  338. package/dist/src/utils/schemaValidator.js +275 -0
  339. package/dist/src/utils/schemaValidator.js.map +1 -0
  340. package/dist/src/utils/terminalSerializer.d.ts +33 -0
  341. package/dist/src/utils/terminalSerializer.js +6 -0
  342. package/dist/src/utils/terminalSerializer.js.map +1 -0
  343. package/dist/src/utils/todoContextTracker.d.ts +12 -0
  344. package/dist/src/utils/todoContextTracker.js +28 -0
  345. package/dist/src/utils/todoContextTracker.js.map +1 -0
  346. package/dist/src/utils/todoFormatter.d.ts +24 -0
  347. package/dist/src/utils/todoFormatter.js +157 -0
  348. package/dist/src/utils/todoFormatter.js.map +1 -0
  349. package/dist/src/utils/todoReminderService.d.ts +22 -0
  350. package/dist/src/utils/todoReminderService.js +43 -0
  351. package/dist/src/utils/todoReminderService.js.map +1 -0
  352. package/dist/src/utils/tool-key-storage-facade.d.ts +32 -0
  353. package/dist/src/utils/tool-key-storage-facade.js +56 -0
  354. package/dist/src/utils/tool-key-storage-facade.js.map +1 -0
  355. package/dist/src/utils/tool-key-storage-types.d.ts +56 -0
  356. package/dist/src/utils/tool-key-storage-types.js +56 -0
  357. package/dist/src/utils/tool-key-storage-types.js.map +1 -0
  358. package/dist/src/utils/toolOutputLimiter.d.ts +29 -0
  359. package/dist/src/utils/toolOutputLimiter.js +107 -0
  360. package/dist/src/utils/toolOutputLimiter.js.map +1 -0
  361. package/dist/src/utils/unicodeUtils.d.ts +55 -0
  362. package/dist/src/utils/unicodeUtils.js +129 -0
  363. package/dist/src/utils/unicodeUtils.js.map +1 -0
  364. package/package.json +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/tools/edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ *
6
+ * Portions of this code are derived from opencode (https://github.com/sst/opencode)
7
+ * Copyright (c) 2025 opencode
8
+ * Licensed under the MIT License.
9
+ */
10
+ import type { IToolKeyStorage } from '../interfaces/index.js';
11
+ import { BaseDeclarativeTool, type ToolInvocation, type ToolResult } from './tools.js';
12
+ export interface ExaWebSearchToolParams {
13
+ query: string;
14
+ numResults?: number;
15
+ livecrawl?: 'fallback' | 'preferred';
16
+ type?: 'auto' | 'fast' | 'deep';
17
+ contextMaxCharacters?: number;
18
+ }
19
+ export interface ExaWebSearchToolDependencies {
20
+ keyStorage?: Pick<IToolKeyStorage, 'resolveKey'>;
21
+ }
22
+ export declare class ExaWebSearchTool extends BaseDeclarativeTool<ExaWebSearchToolParams, ToolResult> {
23
+ private readonly dependencies;
24
+ static readonly Name = "exa_web_search";
25
+ constructor(dependencies?: ExaWebSearchToolDependencies);
26
+ protected createInvocation(params: ExaWebSearchToolParams, messageBus?: import('../interfaces/index.js').IToolMessageBus): ToolInvocation<ExaWebSearchToolParams, ToolResult>;
27
+ }
@@ -0,0 +1,153 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ *
6
+ * Portions of this code are derived from opencode (https://github.com/sst/opencode)
7
+ * Copyright (c) 2025 opencode
8
+ * Licensed under the MIT License.
9
+ */
10
+ /* eslint-disable complexity, sonarjs/cognitive-complexity -- Existing tool flow preserved during package migration. */
11
+ import fetch from 'node-fetch';
12
+ import { ToolErrorType } from '../types/tool-error.js';
13
+ import { ensureJsonSafe } from '../utils/unicodeUtils.js';
14
+ import { BaseDeclarativeTool, BaseToolInvocation, Kind, } from './tools.js';
15
+ const API_CONFIG = {
16
+ BASE_URL: 'https://mcp.exa.ai',
17
+ ENDPOINTS: {
18
+ SEARCH: '/mcp',
19
+ },
20
+ DEFAULT_NUM_RESULTS: 8,
21
+ };
22
+ export class ExaWebSearchTool extends BaseDeclarativeTool {
23
+ dependencies;
24
+ static Name = 'exa_web_search';
25
+ constructor(dependencies = {}) {
26
+ super(ExaWebSearchTool.Name, 'ExaWebSearch', 'Search the web using Exa AI - performs real-time web searches and can scrape content from specific URLs. Provides up-to-date information for current events and recent data.', Kind.Search, {
27
+ type: 'object',
28
+ properties: {
29
+ query: {
30
+ type: 'string',
31
+ description: 'Websearch query',
32
+ },
33
+ numResults: {
34
+ type: 'number',
35
+ description: 'Number of search results to return (default: 8)',
36
+ },
37
+ livecrawl: {
38
+ type: 'string',
39
+ enum: ['fallback', 'preferred'],
40
+ description: "Live crawl mode - 'fallback': use live crawling as backup if cached content unavailable, 'preferred': prioritize live crawling (default: 'fallback')",
41
+ },
42
+ type: {
43
+ type: 'string',
44
+ enum: ['auto', 'fast', 'deep'],
45
+ description: "Search type - 'auto': balanced search (default), 'fast': quick results, 'deep': comprehensive search",
46
+ },
47
+ contextMaxCharacters: {
48
+ type: 'number',
49
+ description: 'Maximum characters for context string optimized for LLMs (default: 10000)',
50
+ },
51
+ },
52
+ required: ['query'],
53
+ });
54
+ this.dependencies = dependencies;
55
+ }
56
+ createInvocation(params, messageBus) {
57
+ return new ExaWebSearchToolInvocation(this.dependencies, params, messageBus);
58
+ }
59
+ }
60
+ class ExaWebSearchToolInvocation extends BaseToolInvocation {
61
+ dependencies;
62
+ constructor(dependencies, params, messageBus) {
63
+ super(params, messageBus);
64
+ this.dependencies = dependencies;
65
+ }
66
+ getDescription() {
67
+ return `Search web for: ${this.params.query}`;
68
+ }
69
+ async buildEndpointUrl() {
70
+ const baseUrl = `${API_CONFIG.BASE_URL}${API_CONFIG.ENDPOINTS.SEARCH}`;
71
+ const key = await this.dependencies.keyStorage?.resolveKey('exa');
72
+ if (key !== undefined && key !== null) {
73
+ return `${baseUrl}?exaApiKey=${encodeURIComponent(key)}`;
74
+ }
75
+ return baseUrl;
76
+ }
77
+ async execute(signal, _updateOutput) {
78
+ const searchRequest = {
79
+ jsonrpc: '2.0',
80
+ id: 1,
81
+ method: 'tools/call',
82
+ params: {
83
+ name: 'web_search_exa',
84
+ arguments: {
85
+ query: this.params.query,
86
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- intentional falsy coalescing: string fallback for optional enum property
87
+ type: this.params.type || 'auto',
88
+ numResults: this.params.numResults !== undefined &&
89
+ this.params.numResults !== 0 &&
90
+ !Number.isNaN(this.params.numResults)
91
+ ? this.params.numResults
92
+ : API_CONFIG.DEFAULT_NUM_RESULTS,
93
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- intentional falsy coalescing: string fallback for optional enum property
94
+ livecrawl: this.params.livecrawl || 'fallback',
95
+ contextMaxCharacters: this.params.contextMaxCharacters ?? 10000,
96
+ },
97
+ },
98
+ };
99
+ try {
100
+ const headers = {
101
+ accept: 'application/json, text/event-stream',
102
+ 'content-type': 'application/json',
103
+ };
104
+ const endpointUrl = await this.buildEndpointUrl();
105
+ const response = await fetch(endpointUrl, {
106
+ method: 'POST',
107
+ headers,
108
+ body: JSON.stringify(searchRequest),
109
+ signal,
110
+ });
111
+ if (!response.ok) {
112
+ const errorText = await response.text();
113
+ throw new Error(`Search error (${response.status}): ${errorText}`);
114
+ }
115
+ const responseText = await response.text();
116
+ const lines = responseText.split('\n');
117
+ for (const line of lines) {
118
+ if (line.startsWith('data: ')) {
119
+ try {
120
+ const data = JSON.parse(line.substring(6));
121
+ if (data.result?.content !== undefined &&
122
+ data.result.content.length > 0) {
123
+ const content = ensureJsonSafe(data.result.content[0].text);
124
+ return {
125
+ llmContent: content,
126
+ returnDisplay: content,
127
+ };
128
+ }
129
+ }
130
+ catch {
131
+ // Ignore parse errors
132
+ }
133
+ }
134
+ }
135
+ return {
136
+ llmContent: 'No search results found. Please try a different query.',
137
+ returnDisplay: 'No results found.',
138
+ };
139
+ }
140
+ catch (error) {
141
+ const errorMessage = error instanceof Error ? error.message : String(error);
142
+ return {
143
+ llmContent: `Error performing web search: ${errorMessage}`,
144
+ returnDisplay: `Error: ${errorMessage}`,
145
+ error: {
146
+ message: errorMessage,
147
+ type: ToolErrorType.WEB_SEARCH_FAILED,
148
+ },
149
+ };
150
+ }
151
+ }
152
+ }
153
+ //# sourceMappingURL=exa-web-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exa-web-search.js","sourceRoot":"","sources":["../../../src/tools/exa-web-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseDeclarativeTool, type ToolInvocation, type ToolResult } from './tools.js';
7
+ import type { IToolHost, IToolMessageBus } from '../interfaces/index.js';
8
+ export interface GlobPath {
9
+ fullpath(): string;
10
+ mtimeMs?: number;
11
+ }
12
+ /**
13
+ * Sorts file entries based on recency and then alphabetically.
14
+ * Recent files (modified within recencyThresholdMs) are listed first, newest to oldest.
15
+ * Older files are listed after recent ones, sorted alphabetically by path.
16
+ */
17
+ export declare function sortFileEntries(entries: GlobPath[], nowTimestamp: number, recencyThresholdMs: number): GlobPath[];
18
+ /**
19
+ * Parameters for the GlobTool
20
+ */
21
+ export interface GlobToolParams {
22
+ /**
23
+ * The glob pattern to match files against
24
+ */
25
+ pattern: string;
26
+ /**
27
+ * The directory to search in (optional, defaults to current directory)
28
+ */
29
+ dir_path?: string;
30
+ /**
31
+ * Alternative parameter name for dir_path (for backward compatibility)
32
+ */
33
+ path?: string;
34
+ /**
35
+ * Whether the search should be case-sensitive (optional, defaults to false)
36
+ */
37
+ case_sensitive?: boolean;
38
+ /**
39
+ * Whether to respect .gitignore patterns (optional, defaults to true)
40
+ */
41
+ respect_git_ignore?: boolean;
42
+ }
43
+ /**
44
+ * Implementation of the Glob tool logic
45
+ */
46
+ export declare class GlobTool extends BaseDeclarativeTool<GlobToolParams, ToolResult> {
47
+ private readonly host;
48
+ static readonly Name = "glob";
49
+ constructor(host: IToolHost);
50
+ /**
51
+ * Validates the parameters for the tool.
52
+ */
53
+ protected validateToolParamValues(params: GlobToolParams): string | null;
54
+ protected createInvocation(params: GlobToolParams, messageBus: IToolMessageBus): ToolInvocation<GlobToolParams, ToolResult>;
55
+ }
@@ -0,0 +1,284 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /* eslint-disable complexity, sonarjs/cognitive-complexity -- Phase 5: legacy core boundary retained while larger decomposition continues. */
7
+ import fs from 'fs';
8
+ import path from 'path';
9
+ import { glob, escape } from 'glob';
10
+ import { BaseDeclarativeTool, BaseToolInvocation, Kind, } from './tools.js';
11
+ import { ToolErrorType } from '../types/tool-error.js';
12
+ import { shortenPath, makeRelative } from '../utils/paths.js';
13
+ import { debugLogger } from '../utils/debugLogger.js';
14
+ import { validatePathWithinWorkspace } from '../utils/pathValidation.js';
15
+ /**
16
+ * Sorts file entries based on recency and then alphabetically.
17
+ * Recent files (modified within recencyThresholdMs) are listed first, newest to oldest.
18
+ * Older files are listed after recent ones, sorted alphabetically by path.
19
+ */
20
+ export function sortFileEntries(entries, nowTimestamp, recencyThresholdMs) {
21
+ const sortedEntries = [...entries];
22
+ sortedEntries.sort((a, b) => {
23
+ const mtimeA = a.mtimeMs ?? 0;
24
+ const mtimeB = b.mtimeMs ?? 0;
25
+ const aIsRecent = nowTimestamp - mtimeA < recencyThresholdMs;
26
+ const bIsRecent = nowTimestamp - mtimeB < recencyThresholdMs;
27
+ if (aIsRecent && bIsRecent) {
28
+ return mtimeB - mtimeA;
29
+ }
30
+ else if (aIsRecent) {
31
+ return -1;
32
+ }
33
+ else if (bIsRecent) {
34
+ return 1;
35
+ }
36
+ return a.fullpath().localeCompare(b.fullpath());
37
+ });
38
+ return sortedEntries;
39
+ }
40
+ class GlobToolInvocation extends BaseToolInvocation {
41
+ host;
42
+ constructor(host, params, messageBus) {
43
+ super(params, messageBus);
44
+ this.host = host;
45
+ }
46
+ getDirPath() {
47
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- intentional falsy coalescing: empty string should fall through
48
+ return this.params.dir_path || this.params.path;
49
+ }
50
+ getDescription() {
51
+ let description = `'${this.params.pattern}'`;
52
+ const dirPath = this.getDirPath();
53
+ if (dirPath) {
54
+ const searchDir = path.resolve(this.host.getTargetDir(), dirPath || '.');
55
+ const relativePath = makeRelative(searchDir, this.host.getTargetDir());
56
+ description += ` within ${shortenPath(relativePath)}`;
57
+ }
58
+ return description;
59
+ }
60
+ async execute(signal) {
61
+ try {
62
+ const ephemeralSettings = this.host.getEphemeralSettings();
63
+ const maxItems = ephemeralSettings['tool-output-max-items'] ??
64
+ 50;
65
+ const searchDirectoriesResult = this.resolveSearchDirectories(this.host.getWorkspaceRoots());
66
+ if (searchDirectoriesResult.error)
67
+ return searchDirectoriesResult.error;
68
+ const searchDirectories = searchDirectoriesResult.directories;
69
+ const respectGitIgnore = this.params.respect_git_ignore ??
70
+ this.host.getFileFilteringOptions().respectGitIgnore;
71
+ const fileDiscovery = this.host.getFileService();
72
+ const allEntries = await this.collectGlobEntries(searchDirectories, signal);
73
+ const { filteredEntries, ignoredCount } = this.applyGitIgnoreFilter(allEntries, respectGitIgnore, fileDiscovery);
74
+ if (filteredEntries.length === 0) {
75
+ return this.buildNoFilesResult(searchDirectories, ignoredCount);
76
+ }
77
+ return this.buildFileListResult(filteredEntries, searchDirectories, ignoredCount, maxItems);
78
+ }
79
+ catch (error) {
80
+ const errorMessage = error instanceof Error ? error.message : String(error);
81
+ debugLogger.error(`GlobLogic execute Error: ${errorMessage}`, error);
82
+ const rawError = `Error during glob search operation: ${errorMessage}`;
83
+ return {
84
+ llmContent: rawError,
85
+ returnDisplay: `Error: An unexpected error occurred.`,
86
+ error: {
87
+ message: rawError,
88
+ type: ToolErrorType.GLOB_EXECUTION_ERROR,
89
+ },
90
+ };
91
+ }
92
+ }
93
+ resolveSearchDirectories(workspaceRoots) {
94
+ const dirPath = this.getDirPath();
95
+ if (dirPath) {
96
+ const searchDirAbsolute = path.resolve(this.host.getTargetDir(), dirPath);
97
+ const pathError = validatePathWithinWorkspace(workspaceRoots, searchDirAbsolute, 'Search path');
98
+ if (pathError) {
99
+ return {
100
+ directories: [],
101
+ error: {
102
+ llmContent: pathError,
103
+ returnDisplay: 'Path is not within workspace',
104
+ error: {
105
+ message: pathError,
106
+ type: ToolErrorType.PATH_NOT_IN_WORKSPACE,
107
+ },
108
+ },
109
+ };
110
+ }
111
+ return { directories: [searchDirAbsolute] };
112
+ }
113
+ return { directories: workspaceRoots };
114
+ }
115
+ async collectGlobEntries(searchDirectories, signal) {
116
+ let allEntries = [];
117
+ for (const searchDir of searchDirectories) {
118
+ let pattern = this.params.pattern;
119
+ const fullPath = path.join(searchDir, pattern);
120
+ if (fs.existsSync(fullPath)) {
121
+ pattern = escape(pattern);
122
+ }
123
+ const entries = (await glob(pattern, {
124
+ cwd: searchDir,
125
+ withFileTypes: true,
126
+ nodir: true,
127
+ stat: true,
128
+ nocase: this.params.case_sensitive !== true,
129
+ dot: true,
130
+ ignore: this.host.getFileExclusions(),
131
+ follow: false,
132
+ signal,
133
+ }));
134
+ allEntries = allEntries.concat(entries);
135
+ }
136
+ return allEntries;
137
+ }
138
+ applyGitIgnoreFilter(entries, respectGitIgnore, fileDiscovery) {
139
+ if (!respectGitIgnore) {
140
+ return { filteredEntries: entries, ignoredCount: 0 };
141
+ }
142
+ const toCanonicalPath = (filePath) => {
143
+ try {
144
+ return fs.realpathSync(filePath);
145
+ }
146
+ catch {
147
+ return path.normalize(filePath);
148
+ }
149
+ };
150
+ const canonicalPaths = entries.map((entry) => toCanonicalPath(entry.fullpath()));
151
+ const filteredCanonicalPaths = new Set(fileDiscovery
152
+ .filterFiles(canonicalPaths, {
153
+ respectGitIgnore,
154
+ respectLlxprtIgnore: false,
155
+ })
156
+ .map((p) => toCanonicalPath(p)));
157
+ const filteredEntries = entries.filter((entry) => filteredCanonicalPaths.has(toCanonicalPath(entry.fullpath())));
158
+ return {
159
+ filteredEntries,
160
+ ignoredCount: entries.length - filteredEntries.length,
161
+ };
162
+ }
163
+ buildNoFilesResult(searchDirectories, ignoredCount) {
164
+ let message = `No files found matching pattern "${this.params.pattern}"`;
165
+ if (searchDirectories.length === 1) {
166
+ message += ` within ${searchDirectories[0]}`;
167
+ }
168
+ else {
169
+ message += ` within ${searchDirectories.length} workspace directories`;
170
+ }
171
+ if (ignoredCount > 0) {
172
+ message += ` (${ignoredCount} files were ignored)`;
173
+ }
174
+ return { llmContent: message, returnDisplay: `No files found` };
175
+ }
176
+ buildFileListResult(filteredEntries, searchDirectories, ignoredCount, maxItems) {
177
+ const oneDayInMs = 24 * 60 * 60 * 1000;
178
+ const nowTimestamp = new Date().getTime();
179
+ const sortedEntries = sortFileEntries(filteredEntries, nowTimestamp, oneDayInMs);
180
+ const sortedAbsolutePaths = sortedEntries.map((entry) => entry.fullpath());
181
+ const totalFileCount = sortedAbsolutePaths.length;
182
+ let fileListToShow = sortedAbsolutePaths;
183
+ let truncatedMessage = '';
184
+ if (totalFileCount > maxItems) {
185
+ fileListToShow = sortedAbsolutePaths.slice(0, maxItems);
186
+ truncatedMessage = `\n\n**Note: Output limited to ${maxItems} files out of ${totalFileCount} total matches. Use more specific patterns or adjust 'tool-output-max-items' setting to see more.**`;
187
+ }
188
+ const fileListDescription = fileListToShow.join('\n');
189
+ let resultMessage = `Found ${totalFileCount} file(s) matching "${this.params.pattern}"`;
190
+ if (searchDirectories.length === 1) {
191
+ resultMessage += ` within ${searchDirectories[0]}`;
192
+ }
193
+ else {
194
+ resultMessage += ` across ${searchDirectories.length} workspace directories`;
195
+ }
196
+ if (ignoredCount > 0) {
197
+ resultMessage += ` (${ignoredCount} additional files were ignored)`;
198
+ }
199
+ if (totalFileCount > 0) {
200
+ resultMessage += `, sorted by modification time (newest first):\n${fileListDescription}`;
201
+ }
202
+ resultMessage += truncatedMessage;
203
+ return {
204
+ llmContent: resultMessage,
205
+ returnDisplay: `Found ${totalFileCount} matching file(s)`,
206
+ };
207
+ }
208
+ }
209
+ /**
210
+ * Implementation of the Glob tool logic
211
+ */
212
+ export class GlobTool extends BaseDeclarativeTool {
213
+ host;
214
+ static Name = 'glob';
215
+ constructor(host) {
216
+ super(GlobTool.Name, 'FindFiles', 'Efficiently finds files matching specific glob patterns (e.g., `src/**/*.ts`, `**/*.md`), returning absolute paths sorted by modification time (newest first). Ideal for quickly locating files based on their name or path structure, especially in large codebases.', Kind.Search, {
217
+ properties: {
218
+ pattern: {
219
+ description: "The glob pattern to match against (e.g., '**/*.py', 'docs/*.md').",
220
+ type: 'string',
221
+ },
222
+ dir_path: {
223
+ description: 'Optional: The absolute path to the directory to search within. If omitted, searches the root directory. Relative paths are resolved against the working directory.',
224
+ type: 'string',
225
+ },
226
+ path: {
227
+ description: 'Alternative parameter name for dir_path (for backward compatibility).',
228
+ type: 'string',
229
+ },
230
+ case_sensitive: {
231
+ description: 'Optional: Whether the search should be case-sensitive. Defaults to false.',
232
+ type: 'boolean',
233
+ },
234
+ respect_git_ignore: {
235
+ description: 'Optional: Whether to respect .gitignore patterns when finding files. Only available in git repositories. Defaults to true.',
236
+ type: 'boolean',
237
+ },
238
+ },
239
+ required: ['pattern'],
240
+ type: 'object',
241
+ });
242
+ this.host = host;
243
+ }
244
+ /**
245
+ * Validates the parameters for the tool.
246
+ */
247
+ validateToolParamValues(params) {
248
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- intentional falsy coalescing: empty string should fall through
249
+ const dirPath = params.dir_path || params.path;
250
+ const searchDirAbsolute = path.resolve(this.host.getTargetDir(),
251
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- intentional falsy coalescing: empty string should use current dir
252
+ dirPath || '.');
253
+ const pathError = validatePathWithinWorkspace(this.host.getWorkspaceRoots(), searchDirAbsolute, 'Search path');
254
+ if (pathError) {
255
+ return pathError;
256
+ }
257
+ const targetDir = searchDirAbsolute || this.host.getTargetDir();
258
+ try {
259
+ if (!fs.existsSync(targetDir)) {
260
+ return `Search path does not exist ${targetDir}`;
261
+ }
262
+ if (!fs.statSync(targetDir).isDirectory()) {
263
+ return `Search path is not a directory: ${targetDir}`;
264
+ }
265
+ }
266
+ catch (e) {
267
+ return `Error accessing search path: ${e}`;
268
+ }
269
+ if (!params.pattern ||
270
+ typeof params.pattern !== 'string' ||
271
+ params.pattern.trim() === '') {
272
+ return "The 'pattern' parameter cannot be empty.";
273
+ }
274
+ return null;
275
+ }
276
+ createInvocation(params, messageBus) {
277
+ const normalizedParams = { ...params };
278
+ if (!normalizedParams.dir_path && normalizedParams.path) {
279
+ normalizedParams.dir_path = normalizedParams.path;
280
+ }
281
+ return new GlobToolInvocation(this.host, normalizedParams, messageBus);
282
+ }
283
+ }
284
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../src/tools/glob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseDeclarativeTool, type ToolInvocation, type ToolResult } from './tools.js';
7
+ import type { IToolHost, IToolMessageBus } from '../interfaces/index.js';
8
+ /**
9
+ * Parses a prompt to extract valid URLs and identify malformed ones.
10
+ * Strips common trailing punctuation from tokens before URL validation.
11
+ */
12
+ export declare function parsePrompt(text: string): {
13
+ validUrls: string[];
14
+ errors: string[];
15
+ };
16
+ /**
17
+ * Parameters for the WebFetch tool
18
+ */
19
+ export interface GoogleWebFetchToolParams {
20
+ /**
21
+ * The prompt containing URL(s) (up to 20) and instructions for processing their content.
22
+ */
23
+ prompt: string;
24
+ }
25
+ /**
26
+ * Implementation of the WebFetch tool logic
27
+ */
28
+ export declare class GoogleWebFetchTool extends BaseDeclarativeTool<GoogleWebFetchToolParams, ToolResult> {
29
+ private readonly host;
30
+ static readonly Name: string;
31
+ constructor(host: IToolHost, messageBus: IToolMessageBus);
32
+ protected validateToolParamValues(params: GoogleWebFetchToolParams): string | null;
33
+ protected createInvocation(params: GoogleWebFetchToolParams, messageBus: IToolMessageBus, toolName?: string, displayName?: string): ToolInvocation<GoogleWebFetchToolParams, ToolResult>;
34
+ }