@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,519 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { randomUUID } from 'node:crypto';
7
+ import { SchemaValidator } from '../utils/schemaValidator.js';
8
+ import { ToolConfirmationOutcome, } from '../types/tool-confirmation-types.js';
9
+ import { ToolErrorType } from '../types/tool-error.js';
10
+ export { ToolConfirmationOutcome } from '../types/tool-confirmation-types.js';
11
+ /**
12
+ * A convenience base class for ToolInvocation.
13
+ */
14
+ export class BaseToolInvocation {
15
+ params;
16
+ messageBus;
17
+ _toolName;
18
+ _toolDisplayName;
19
+ _serverName;
20
+ constructor(params, messageBus, _toolName, _toolDisplayName, _serverName) {
21
+ this.params = params;
22
+ this.messageBus = messageBus;
23
+ this._toolName = _toolName;
24
+ this._toolDisplayName = _toolDisplayName;
25
+ this._serverName = _serverName;
26
+ }
27
+ requireMessageBus() {
28
+ if (!this.messageBus) {
29
+ throw new Error('MessageBus is required for this invocation.');
30
+ }
31
+ return this.messageBus;
32
+ }
33
+ toolLocations() {
34
+ return [];
35
+ }
36
+ /**
37
+ * Returns confirmation details for this tool invocation.
38
+ * Tools that require confirmation should override this method.
39
+ * @returns Confirmation details or null if no confirmation needed.
40
+ */
41
+ /**
42
+ * Returns tool-specific options for policy updates.
43
+ * Subclasses can override this to provide additional options like
44
+ * commandPrefix (for shell) or mcpName (for MCP tools).
45
+ */
46
+ getPolicyUpdateOptions(_outcome) {
47
+ return undefined;
48
+ }
49
+ /**
50
+ * Helper method to publish a policy update when user selects
51
+ * ProceedAlways or ProceedAlwaysAndSave.
52
+ */
53
+ async publishPolicyUpdate(outcome) {
54
+ if ((outcome === ToolConfirmationOutcome.ProceedAlways ||
55
+ outcome === ToolConfirmationOutcome.ProceedAlwaysAndSave) &&
56
+ this.messageBus &&
57
+ this._toolName) {
58
+ const options = this.getPolicyUpdateOptions(outcome);
59
+ const policyUpdate = {
60
+ toolName: this._toolName,
61
+ persist: outcome === ToolConfirmationOutcome.ProceedAlwaysAndSave,
62
+ ...options,
63
+ };
64
+ if (typeof this.messageBus.publishPolicyUpdate === 'function') {
65
+ await this.messageBus.publishPolicyUpdate(outcome, policyUpdate);
66
+ return;
67
+ }
68
+ const bus = this.messageBus;
69
+ await bus.publish?.({
70
+ type: 'update-policy',
71
+ ...policyUpdate,
72
+ });
73
+ }
74
+ }
75
+ getConfirmationDetails() {
76
+ return null;
77
+ }
78
+ /**
79
+ * Attempts to obtain a policy decision via message bus.
80
+ *
81
+ * Semantics:
82
+ * - `'ALLOW'`: auto-proceed
83
+ * - `'DENY'`: tool must not execute
84
+ * - `'ASK_USER'`: fall back to legacy tool confirmation UI
85
+ */
86
+ getMessageBusDecision(abortSignal) {
87
+ if (!this.messageBus) {
88
+ // No bus wired: allow and let per-tool legacy confirmation logic decide.
89
+ return Promise.resolve('ALLOW');
90
+ }
91
+ if (abortSignal.aborted) {
92
+ return Promise.resolve('DENY');
93
+ }
94
+ const bus = this.messageBus;
95
+ if (typeof bus.publish !== 'function' ||
96
+ typeof bus.subscribe !== 'function') {
97
+ return this.getInterfaceMessageBusDecision(abortSignal);
98
+ }
99
+ const correlationId = randomUUID();
100
+ const toolCall = {
101
+ name: this.getToolName(),
102
+ args: this.params,
103
+ };
104
+ return new Promise((resolve) => {
105
+ let timeoutId;
106
+ const cleanup = () => {
107
+ if (timeoutId) {
108
+ clearTimeout(timeoutId);
109
+ timeoutId = undefined;
110
+ }
111
+ abortSignal.removeEventListener('abort', abortHandler);
112
+ if (typeof bus.unsubscribe === 'function') {
113
+ bus.unsubscribe('tool-confirmation-response', responseHandler);
114
+ }
115
+ };
116
+ const abortHandler = () => {
117
+ cleanup();
118
+ resolve('DENY');
119
+ };
120
+ const responseHandler = (response) => {
121
+ if (response.correlationId !== correlationId) {
122
+ return;
123
+ }
124
+ cleanup();
125
+ if (response.requiresUserConfirmation === true) {
126
+ resolve('ASK_USER');
127
+ return;
128
+ }
129
+ const confirmed = response.confirmed ??
130
+ (response.outcome !== undefined
131
+ ? response.outcome !== ToolConfirmationOutcome.Cancel &&
132
+ response.outcome !== ToolConfirmationOutcome.ModifyWithEditor &&
133
+ response.outcome !== ToolConfirmationOutcome.SuggestEdit
134
+ : false);
135
+ resolve(confirmed ? 'ALLOW' : 'DENY');
136
+ };
137
+ abortSignal.addEventListener('abort', abortHandler);
138
+ // Default to ASK_USER if the bus doesn't answer promptly.
139
+ timeoutId = setTimeout(() => {
140
+ cleanup();
141
+ resolve('ASK_USER');
142
+ }, 30000);
143
+ bus.subscribe('tool-confirmation-response', responseHandler);
144
+ try {
145
+ bus.publish({
146
+ type: 'tool-confirmation-request',
147
+ toolCall,
148
+ correlationId,
149
+ serverName: this.getServerName(),
150
+ });
151
+ }
152
+ catch {
153
+ cleanup();
154
+ resolve('ALLOW');
155
+ }
156
+ });
157
+ }
158
+ async getInterfaceMessageBusDecision(abortSignal) {
159
+ if (!this.messageBus) {
160
+ return 'ALLOW';
161
+ }
162
+ try {
163
+ const outcome = await this.messageBus.requestConfirmation({
164
+ toolName: this.getToolName(),
165
+ args: this.params,
166
+ serverName: this.getServerName(),
167
+ }, abortSignal);
168
+ if (outcome === ToolConfirmationOutcome.Cancel) {
169
+ return 'DENY';
170
+ }
171
+ if (outcome === ToolConfirmationOutcome.ModifyWithEditor ||
172
+ outcome === ToolConfirmationOutcome.SuggestEdit) {
173
+ return 'ASK_USER';
174
+ }
175
+ return 'ALLOW';
176
+ }
177
+ catch {
178
+ return 'ALLOW';
179
+ }
180
+ }
181
+ /**
182
+ * Returns the tool name for this invocation.
183
+ * Subclasses can override to provide a specific tool name.
184
+ */
185
+ getToolName() {
186
+ return this._toolName ?? 'unknown';
187
+ }
188
+ /**
189
+ * Returns the server name for MCP tools.
190
+ * Regular tools should return undefined.
191
+ */
192
+ getServerName() {
193
+ return this._serverName;
194
+ }
195
+ /**
196
+ * Returns metadata used by the policy engine/message bus.
197
+ */
198
+ getPolicyContext() {
199
+ return {
200
+ toolName: this.getToolName(),
201
+ args: this.params,
202
+ serverName: this.getServerName(),
203
+ };
204
+ }
205
+ shouldConfirmExecute(_abortSignal) {
206
+ return Promise.resolve(false);
207
+ }
208
+ }
209
+ /**
210
+ * New base class for tools that separates validation from execution.
211
+ * New tools should extend this class.
212
+ */
213
+ export class DeclarativeTool {
214
+ name;
215
+ displayName;
216
+ description;
217
+ kind;
218
+ parameterSchema;
219
+ isOutputMarkdown;
220
+ canUpdateOutput;
221
+ messageBus;
222
+ constructor(name, displayName, description, kind, parameterSchema, isOutputMarkdown = true, canUpdateOutput = false, messageBus) {
223
+ this.name = name;
224
+ this.displayName = displayName;
225
+ this.description = description;
226
+ this.kind = kind;
227
+ this.parameterSchema = parameterSchema;
228
+ this.isOutputMarkdown = isOutputMarkdown;
229
+ this.canUpdateOutput = canUpdateOutput;
230
+ this.messageBus = messageBus;
231
+ }
232
+ /**
233
+ * @plan PLAN-20260309-MESSAGEBUS-DI-REMEDIATION.P11
234
+ * @requirement REQ-D01-002
235
+ * @requirement REQ-D01-003
236
+ * @pseudocode lines 122-133
237
+ */
238
+ requireMessageBus() {
239
+ if (!this.messageBus) {
240
+ throw new Error(`MessageBus is required to build tool invocations for ${this.name}.`);
241
+ }
242
+ return this.messageBus;
243
+ }
244
+ get schema() {
245
+ // Strip requireOne from the schema before sending to the model
246
+ // The requireOne property is used internally for validation but not sent to the model
247
+ if (this.parameterSchema !== null &&
248
+ this.parameterSchema !== undefined &&
249
+ typeof this.parameterSchema === 'object') {
250
+ const schemaClone = {
251
+ ...this.parameterSchema,
252
+ };
253
+ delete schemaClone.requireOne;
254
+ return {
255
+ name: this.name,
256
+ description: this.description,
257
+ parametersJsonSchema: schemaClone,
258
+ };
259
+ }
260
+ return {
261
+ name: this.name,
262
+ description: this.description,
263
+ parametersJsonSchema: this.parameterSchema,
264
+ };
265
+ }
266
+ /**
267
+ * Validates the raw tool parameters.
268
+ * Subclasses should override this to add custom validation logic
269
+ * beyond the JSON schema check.
270
+ * @param params The raw parameters from the model.
271
+ * @returns An error message string if invalid, null otherwise.
272
+ */
273
+ validateToolParams(_params) {
274
+ // Base implementation can be extended by subclasses.
275
+ return null;
276
+ }
277
+ /**
278
+ * A convenience method that builds and executes the tool in one step.
279
+ * Throws an error if validation fails.
280
+ * @param params The raw, untrusted parameters from the model.
281
+ * @param signal AbortSignal for tool cancellation.
282
+ * @param updateOutput Optional callback to stream output.
283
+ * @returns The result of the tool execution.
284
+ */
285
+ async buildAndExecute(params, signal, updateOutput) {
286
+ const invocation = this.build(params);
287
+ return invocation.execute(signal, updateOutput);
288
+ }
289
+ /**
290
+ * Similar to `build` but never throws.
291
+ * @param params The raw, untrusted parameters from the model.
292
+ * @returns A `ToolInvocation` instance.
293
+ */
294
+ silentBuild(params) {
295
+ try {
296
+ return this.build(params);
297
+ }
298
+ catch (e) {
299
+ if (e instanceof Error) {
300
+ return e;
301
+ }
302
+ return new Error(String(e));
303
+ }
304
+ }
305
+ /**
306
+ * A convenience method that builds and executes the tool in one step.
307
+ * Never throws.
308
+ * @param params The raw, untrusted parameters from the model.
309
+ * @param abortSignal a signal to abort.
310
+ * @returns The result of the tool execution.
311
+ */
312
+ async validateBuildAndExecute(params, abortSignal) {
313
+ const invocationOrError = this.silentBuild(params);
314
+ if (invocationOrError instanceof Error) {
315
+ const errorMessage = invocationOrError.message;
316
+ return {
317
+ llmContent: `Error: Invalid parameters provided. Reason: ${errorMessage}`,
318
+ returnDisplay: errorMessage,
319
+ error: {
320
+ message: errorMessage,
321
+ type: ToolErrorType.INVALID_TOOL_PARAMS,
322
+ },
323
+ };
324
+ }
325
+ try {
326
+ return await invocationOrError.execute(abortSignal);
327
+ }
328
+ catch (error) {
329
+ const errorMessage = error instanceof Error ? error.message : String(error);
330
+ return {
331
+ llmContent: `Error: Tool call execution failed. Reason: ${errorMessage}`,
332
+ returnDisplay: errorMessage,
333
+ error: {
334
+ message: errorMessage,
335
+ type: ToolErrorType.EXECUTION_FAILED,
336
+ },
337
+ };
338
+ }
339
+ }
340
+ }
341
+ /**
342
+ * New base class for declarative tools that separates validation from execution.
343
+ * New tools should extend this class, which provides a `build` method that
344
+ * validates parameters before deferring to a `createInvocation` method for
345
+ * the final `ToolInvocation` object instantiation.
346
+ */
347
+ export class BaseDeclarativeTool extends DeclarativeTool {
348
+ build(params) {
349
+ const validationError = this.validateToolParams(params);
350
+ if (validationError) {
351
+ throw new Error(validationError);
352
+ }
353
+ return this.createInvocation(params, this.messageBus);
354
+ }
355
+ validateToolParams(params) {
356
+ const errors = SchemaValidator.validate(this.schema.parametersJsonSchema, params);
357
+ if (errors) {
358
+ return errors;
359
+ }
360
+ return this.validateToolParamValues(params);
361
+ }
362
+ validateToolParamValues(_params) {
363
+ // Base implementation can be extended by subclasses.
364
+ return null;
365
+ }
366
+ }
367
+ /**
368
+ * Type guard to check if an object is a Tool.
369
+ * @param obj The object to check.
370
+ * @returns True if the object is a Tool, false otherwise.
371
+ */
372
+ export function isTool(obj) {
373
+ return (
374
+ // eslint-disable-next-line sonarjs/expression-complexity -- Existing structure is intentionally preserved; refactoring this boundary is outside the lint slice.
375
+ typeof obj === 'object' &&
376
+ obj !== null &&
377
+ 'name' in obj &&
378
+ 'build' in obj &&
379
+ typeof obj.build === 'function');
380
+ }
381
+ /**
382
+ * Detects cycles in a JSON schemas due to `$ref`s.
383
+ * @param schema The root of the JSON schema.
384
+ * @returns `true` if a cycle is detected, `false` otherwise.
385
+ */
386
+ export function hasCycleInSchema(schema) {
387
+ function resolveRef(ref) {
388
+ if (!ref.startsWith('#/')) {
389
+ return null;
390
+ }
391
+ const path = ref.substring(2).split('/');
392
+ let current = schema;
393
+ for (const segment of path) {
394
+ if (typeof current !== 'object' ||
395
+ current === null ||
396
+ !Object.prototype.hasOwnProperty.call(current, segment)) {
397
+ return null;
398
+ }
399
+ current = current[segment];
400
+ }
401
+ return current;
402
+ }
403
+ function traverse(node, visitedRefs, pathRefs) {
404
+ if (typeof node !== 'object' || node === null) {
405
+ return false;
406
+ }
407
+ if (Array.isArray(node)) {
408
+ for (const item of node) {
409
+ if (traverse(item, visitedRefs, pathRefs)) {
410
+ return true;
411
+ }
412
+ }
413
+ return false;
414
+ }
415
+ if ('$ref' in node && typeof node.$ref === 'string') {
416
+ const ref = node.$ref;
417
+ if (ref === '#/' || pathRefs.has(ref)) {
418
+ // A ref to just '#/' is always a cycle.
419
+ return true; // Cycle detected!
420
+ }
421
+ if (visitedRefs.has(ref)) {
422
+ return false; // Bail early, we have checked this ref before.
423
+ }
424
+ const resolvedNode = resolveRef(ref);
425
+ if (resolvedNode) {
426
+ // Add it to both visited and the current path
427
+ visitedRefs.add(ref);
428
+ pathRefs.add(ref);
429
+ const hasCycle = traverse(resolvedNode, visitedRefs, pathRefs);
430
+ pathRefs.delete(ref); // Backtrack, leaving it in visited
431
+ return hasCycle;
432
+ }
433
+ }
434
+ // Crawl all the properties of node
435
+ for (const key in node) {
436
+ if (Object.prototype.hasOwnProperty.call(node, key) &&
437
+ traverse(node[key], visitedRefs, pathRefs)) {
438
+ return true;
439
+ }
440
+ }
441
+ return false;
442
+ }
443
+ return traverse(schema, new Set(), new Set());
444
+ }
445
+ export var Kind;
446
+ (function (Kind) {
447
+ Kind["Read"] = "read";
448
+ Kind["Edit"] = "edit";
449
+ Kind["Delete"] = "delete";
450
+ Kind["Move"] = "move";
451
+ Kind["Search"] = "search";
452
+ Kind["Execute"] = "execute";
453
+ Kind["Think"] = "think";
454
+ Kind["Fetch"] = "fetch";
455
+ Kind["Other"] = "other";
456
+ })(Kind || (Kind = {}));
457
+ /**
458
+ * Legacy BaseTool class for backward compatibility with existing LLxprt tools.
459
+ * New tools should use BaseDeclarativeTool instead.
460
+ * @deprecated Use BaseDeclarativeTool for new tools
461
+ */
462
+ export class BaseTool extends DeclarativeTool {
463
+ context;
464
+ constructor(name, displayName, description, kind, parameterSchema, isOutputMarkdown = true, canUpdateOutput = false, messageBus) {
465
+ super(name, displayName, description, kind, parameterSchema, isOutputMarkdown, canUpdateOutput, messageBus);
466
+ }
467
+ /**
468
+ * Get the schema for this tool. Maintains backward compatibility.
469
+ */
470
+ get schema() {
471
+ return super.schema;
472
+ }
473
+ /**
474
+ * Legacy method signature for getDescription.
475
+ * Subclasses can override this method.
476
+ */
477
+ getDescription(_params) {
478
+ return `Execute ${this.displayName}`;
479
+ }
480
+ /**
481
+ * Legacy method signature for validateToolParams.
482
+ * Subclasses can override this method.
483
+ * Note: The base class expects TParams, but legacy tools pass unknown.
484
+ */
485
+ validateToolParams(params) {
486
+ return super.validateToolParams(params);
487
+ }
488
+ /**
489
+ * Implementation of the new declarative pattern.
490
+ * Creates a tool invocation that bridges to the legacy execute method.
491
+ */
492
+ build(params) {
493
+ const validationError = this.validateToolParams(params);
494
+ if (validationError) {
495
+ throw new Error(validationError);
496
+ }
497
+ return new BaseToolLegacyInvocation(this, params, this.messageBus);
498
+ }
499
+ }
500
+ /**
501
+ * Tool invocation wrapper for BaseTool legacy API.
502
+ */
503
+ class BaseToolLegacyInvocation extends BaseToolInvocation {
504
+ tool;
505
+ constructor(tool, params, messageBus) {
506
+ super(params, messageBus);
507
+ this.tool = tool;
508
+ }
509
+ getDescription() {
510
+ return this.tool.getDescription(this.params);
511
+ }
512
+ getToolName() {
513
+ return this.tool.name;
514
+ }
515
+ async execute(signal, updateOutput, _terminalColumns, _terminalRows, _setPidCallback) {
516
+ return this.tool.execute(this.params, signal, updateOutput);
517
+ }
518
+ }
519
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseDeclarativeTool, type ToolResult, type ToolInvocation } from './tools.js';
7
+ import type { IToolHost, IToolMessageBus } from '../interfaces/index.js';
8
+ import { type ModifiableDeclarativeTool, type ModifyContext } from './modifiable-tool.js';
9
+ /**
10
+ * Parameters for the WriteFile tool
11
+ */
12
+ export interface WriteFileToolParams {
13
+ /**
14
+ * The absolute path to the file to write to
15
+ */
16
+ absolute_path?: string;
17
+ /**
18
+ * Alternative parameter name for absolute_path (for compatibility)
19
+ * Not shown in schema - internal use only
20
+ */
21
+ file_path?: string;
22
+ /**
23
+ * The content to write to the file
24
+ */
25
+ content: string;
26
+ /**
27
+ * Whether the proposed content was modified by the user.
28
+ */
29
+ modified_by_user?: boolean;
30
+ /**
31
+ * Initially proposed content.
32
+ */
33
+ ai_proposed_content?: string;
34
+ }
35
+ /**
36
+ * Implementation of the WriteFile tool logic
37
+ */
38
+ export declare class WriteFileTool extends BaseDeclarativeTool<WriteFileToolParams, ToolResult> implements ModifiableDeclarativeTool<WriteFileToolParams> {
39
+ private host;
40
+ static readonly Name: string;
41
+ constructor(host: IToolHost, messageBus?: IToolMessageBus);
42
+ protected validateToolParamValues(params: WriteFileToolParams): string | null;
43
+ protected createInvocation(params: WriteFileToolParams, messageBus?: IToolMessageBus, toolName?: string, displayName?: string): ToolInvocation<WriteFileToolParams, ToolResult>;
44
+ getModifyContext(_abortSignal: AbortSignal): ModifyContext<WriteFileToolParams>;
45
+ }