@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,238 @@
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 { BaseDeclarativeTool, BaseToolInvocation, Kind, } from './tools.js';
10
+ import { ToolErrorType } from '../types/tool-error.js';
11
+ import { makeRelative, shortenPath } from '../utils/paths.js';
12
+ import { debugLogger } from '../utils/debugLogger.js';
13
+ import { validatePathWithinWorkspace } from '../utils/pathValidation.js';
14
+ class LSToolInvocation extends BaseToolInvocation {
15
+ host;
16
+ constructor(host, params, messageBus) {
17
+ super(params, messageBus);
18
+ this.host = host;
19
+ }
20
+ getDirPath() {
21
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- intentional falsy coalescing: string fallback chain for optional params
22
+ return this.params.dir_path || this.params.path || '';
23
+ }
24
+ /**
25
+ * Checks whether a filename matches any of the ignore patterns.
26
+ * @param filename Filename to check
27
+ * @param patterns Array of glob patterns to check against
28
+ * @returns True when the filename matches an ignore pattern.
29
+ */
30
+ shouldIgnore(filename, patterns) {
31
+ if (!patterns || patterns.length === 0) {
32
+ return false;
33
+ }
34
+ for (const pattern of patterns) {
35
+ // Convert glob pattern to RegExp
36
+ const regexPattern = pattern
37
+ // eslint-disable-next-line sonarjs/regular-expr -- Static regex reviewed for lint hardening; behavior preserved.
38
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&')
39
+ .replace(/\*/g, '.*')
40
+ .replace(/\?/g, '.');
41
+ const regex = new RegExp(`^${regexPattern}$`);
42
+ if (regex.test(filename)) {
43
+ return true;
44
+ }
45
+ }
46
+ return false;
47
+ }
48
+ /**
49
+ * Gets a description of the file reading operation
50
+ * @returns A string describing the file being read
51
+ */
52
+ getDescription() {
53
+ const dirPath = this.getDirPath();
54
+ const relativePath = makeRelative(dirPath, this.host.getTargetDir());
55
+ return shortenPath(relativePath);
56
+ }
57
+ // Helper for consistent error formatting
58
+ errorResult(llmContent, returnDisplay, type) {
59
+ return {
60
+ llmContent,
61
+ // Keep returnDisplay simpler in core logic
62
+ returnDisplay: `Error: ${returnDisplay}`,
63
+ error: {
64
+ message: llmContent,
65
+ type,
66
+ },
67
+ };
68
+ }
69
+ /**
70
+ * Executes the LS operation with the given parameters
71
+ * @returns Result of the LS operation
72
+ */
73
+ async execute(_signal) {
74
+ try {
75
+ const dirPath = this.getDirPath();
76
+ const stats = fs.statSync(dirPath);
77
+ if (!stats.isDirectory()) {
78
+ return this.errorResult(`Error: Path is not a directory: ${dirPath}`, `Path is not a directory.`, ToolErrorType.PATH_IS_NOT_A_DIRECTORY);
79
+ }
80
+ const files = fs.readdirSync(dirPath);
81
+ if (files.length === 0) {
82
+ return {
83
+ llmContent: `Directory ${dirPath} is empty.`,
84
+ returnDisplay: `Directory is empty.`,
85
+ };
86
+ }
87
+ const { entries, ignoredCount } = this.collectEntries(dirPath, files);
88
+ return this.formatListingResult(dirPath, entries, ignoredCount);
89
+ }
90
+ catch (error) {
91
+ const errorMsg = `Error listing directory: ${error instanceof Error ? error.message : String(error)}`;
92
+ return this.errorResult(errorMsg, 'Failed to list directory.', ToolErrorType.LS_EXECUTION_ERROR);
93
+ }
94
+ }
95
+ collectEntries(dirPath, files) {
96
+ const defaultFileIgnores = this.host.getFileFilteringOptions();
97
+ const fileFilteringOptions = {
98
+ respectGitIgnore: this.params.file_filtering_options?.respect_git_ignore ??
99
+ defaultFileIgnores.respectGitIgnore,
100
+ respectLlxprtIgnore: this.params.file_filtering_options?.respect_llxprt_ignore ??
101
+ defaultFileIgnores.respectLlxprtIgnore,
102
+ };
103
+ const fileDiscovery = this.host.getFileService();
104
+ const entries = [];
105
+ let ignoredCount = 0;
106
+ // eslint-disable-next-line sonarjs/too-many-break-or-continue-in-loop -- Existing structure is intentionally preserved; refactoring this boundary is outside the lint slice.
107
+ for (const file of files) {
108
+ if (this.shouldIgnore(file, this.params.ignore)) {
109
+ continue;
110
+ }
111
+ const fullPath = path.join(dirPath, file);
112
+ const relativePath = path.relative(this.host.getTargetDir(), fullPath);
113
+ if (fileFilteringOptions.respectGitIgnore &&
114
+ fileDiscovery.shouldGitIgnoreFile(relativePath)) {
115
+ ignoredCount++;
116
+ continue;
117
+ }
118
+ if (fileFilteringOptions.respectLlxprtIgnore &&
119
+ fileDiscovery.shouldLlxprtIgnoreFile(relativePath)) {
120
+ ignoredCount++;
121
+ continue;
122
+ }
123
+ try {
124
+ const stats = fs.statSync(fullPath);
125
+ const isDir = stats.isDirectory();
126
+ entries.push({
127
+ name: file,
128
+ path: fullPath,
129
+ isDirectory: isDir,
130
+ size: isDir ? 0 : stats.size,
131
+ modifiedTime: stats.mtime,
132
+ });
133
+ }
134
+ catch (error) {
135
+ debugLogger.error(`Error accessing ${fullPath}: ${error}`);
136
+ }
137
+ }
138
+ return { entries, ignoredCount };
139
+ }
140
+ formatListingResult(dirPath, entries, ignoredCount) {
141
+ entries.sort((a, b) => {
142
+ if (a.isDirectory && !b.isDirectory)
143
+ return -1;
144
+ if (!a.isDirectory && b.isDirectory)
145
+ return 1;
146
+ return a.name.localeCompare(b.name);
147
+ });
148
+ const directoryContent = entries
149
+ .map((entry) => `${entry.isDirectory ? '[DIR] ' : ''}${entry.name}`)
150
+ .join('\n');
151
+ let resultMessage = `Directory listing for ${dirPath}:\n${directoryContent}`;
152
+ if (ignoredCount > 0) {
153
+ resultMessage += `\n\n(${ignoredCount} ignored)`;
154
+ }
155
+ let displayMessage = `Listed ${entries.length} item(s).`;
156
+ if (ignoredCount > 0) {
157
+ displayMessage += ` (${ignoredCount} ignored)`;
158
+ }
159
+ return {
160
+ llmContent: resultMessage,
161
+ returnDisplay: displayMessage,
162
+ };
163
+ }
164
+ }
165
+ /**
166
+ * Implementation of the LS tool logic
167
+ */
168
+ export class LSTool extends BaseDeclarativeTool {
169
+ host;
170
+ static Name = 'list_directory';
171
+ constructor(host, messageBus) {
172
+ super(LSTool.Name, 'ReadFolder', 'Lists the names of files and subdirectories directly within a specified directory path. Can optionally ignore entries matching provided glob patterns.', Kind.Search, {
173
+ properties: {
174
+ dir_path: {
175
+ description: 'The absolute path to the directory to list (must be absolute, not relative)',
176
+ type: 'string',
177
+ },
178
+ path: {
179
+ description: 'Alternative parameter name for dir_path (for backward compatibility).',
180
+ type: 'string',
181
+ },
182
+ ignore: {
183
+ description: 'List of glob patterns to ignore',
184
+ items: {
185
+ type: 'string',
186
+ },
187
+ type: 'array',
188
+ },
189
+ file_filtering_options: {
190
+ description: 'Optional: Whether to respect ignore patterns from .gitignore or .llxprtignore',
191
+ type: 'object',
192
+ properties: {
193
+ respect_git_ignore: {
194
+ description: 'Optional: Whether to respect .gitignore patterns when listing files. Only available in git repositories. Defaults to true.',
195
+ type: 'boolean',
196
+ },
197
+ respect_llxprt_ignore: {
198
+ description: 'Optional: Whether to respect .llxprtignore patterns when listing files. Defaults to true.',
199
+ type: 'boolean',
200
+ },
201
+ },
202
+ },
203
+ },
204
+ required: [],
205
+ type: 'object',
206
+ }, true, false, messageBus);
207
+ this.host = host;
208
+ }
209
+ createInvocation(params, messageBus) {
210
+ const normalizedParams = { ...params };
211
+ if (!normalizedParams.dir_path && normalizedParams.path) {
212
+ normalizedParams.dir_path = normalizedParams.path;
213
+ }
214
+ return new LSToolInvocation(this.host, normalizedParams, messageBus);
215
+ }
216
+ /**
217
+ * Validates the parameters for the tool
218
+ * @param params Parameters to validate
219
+ * @returns An error message string if invalid, null otherwise
220
+ */
221
+ validateToolParamValues(params) {
222
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- intentional falsy coalescing: empty string should fall through to validation
223
+ const dirPath = params.dir_path || params.path;
224
+ if (!dirPath || dirPath.trim() === '') {
225
+ return "Either 'dir_path' or 'path' parameter must be provided and non-empty.";
226
+ }
227
+ if (!path.isAbsolute(dirPath)) {
228
+ return `Path must be absolute: ${dirPath}`;
229
+ }
230
+ const pathError = validatePathWithinWorkspace(this.host.getWorkspaceRoots(), dirPath, 'Path');
231
+ if (pathError) {
232
+ return pathError;
233
+ }
234
+ const noValidationError = null;
235
+ return noValidationError;
236
+ }
237
+ }
238
+ //# sourceMappingURL=ls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ls.js","sourceRoot":"","sources":["../../../src/tools/ls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseDeclarativeTool, BaseToolInvocation, type ToolEditConfirmationDetails, type ToolResult } from './tools.js';
7
+ import type { ISettingsService, IStorageService, IToolMessageBus } from '../interfaces/index.js';
8
+ import { type ModifiableDeclarativeTool, type ModifyContext } from './modifiable-tool.js';
9
+ export declare const LLXPRT_CONFIG_DIR = ".llxprt";
10
+ export declare const GEMINI_DIR = ".llxprt";
11
+ export declare const DEFAULT_CONTEXT_FILENAME = "LLXPRT.md";
12
+ export declare const CORE_MEMORY_FILENAME = ".LLXPRT_SYSTEM";
13
+ export declare const MEMORY_SECTION_HEADER = "## LLxprt Code Added Memories";
14
+ export declare function setLlxprtMdFilename(newFilename: string | string[]): void;
15
+ export declare function getCurrentLlxprtMdFilename(): string;
16
+ export declare function getAllLlxprtMdFilenames(): string[];
17
+ type MemoryScope = 'global' | 'project' | 'core.global' | 'core.project';
18
+ export interface SaveMemoryParams {
19
+ fact?: string;
20
+ content?: string;
21
+ read?: boolean;
22
+ scope?: MemoryScope;
23
+ modified_by_user?: boolean;
24
+ modified_content?: string;
25
+ }
26
+ export declare function getGlobalCoreMemoryFilePath(storageService?: Pick<IStorageService, 'getLLXPRTDir'>): string;
27
+ export declare function getProjectCoreMemoryFilePath(workingDir: string): string;
28
+ export interface MemoryToolDependencies {
29
+ storageService: IStorageService;
30
+ settingsService?: Pick<ISettingsService, 'getSetting'>;
31
+ getWorkingDir?: () => string;
32
+ messageBus?: IToolMessageBus;
33
+ }
34
+ declare class MemoryToolInvocation extends BaseToolInvocation<SaveMemoryParams, ToolResult> {
35
+ private readonly storageService;
36
+ private getWorkingDir?;
37
+ private static readonly allowlist;
38
+ constructor(params: SaveMemoryParams, messageBus: IToolMessageBus, storageService: IStorageService, getWorkingDir?: (() => string) | undefined);
39
+ setWorkingDir(workingDir: string): void;
40
+ private resolveWorkingDir;
41
+ getMemoryFilePath(): string;
42
+ readMemoryFileContent(): Promise<string>;
43
+ getToolName(): string;
44
+ getDescription(): string;
45
+ shouldConfirmExecute(_abortSignal: AbortSignal): Promise<ToolEditConfirmationDetails | false>;
46
+ execute(_signal: AbortSignal): Promise<ToolResult>;
47
+ }
48
+ export declare class MemoryTool extends BaseDeclarativeTool<SaveMemoryParams, ToolResult> implements ModifiableDeclarativeTool<SaveMemoryParams> {
49
+ static readonly Name: string;
50
+ private readonly storageService;
51
+ private readonly settingsService?;
52
+ private readonly getWorkingDir?;
53
+ constructor(dependencies?: MemoryToolDependencies | IStorageService);
54
+ protected validateToolParamValues(params: SaveMemoryParams): string | null;
55
+ protected createInvocation(params: SaveMemoryParams, messageBus: IToolMessageBus): MemoryToolInvocation;
56
+ execute(params: SaveMemoryParams): Promise<ToolResult>;
57
+ static performAddMemoryEntry(text: string, memoryFilePath: string, fsAdapter: {
58
+ readFile: (path: string, encoding: 'utf-8') => Promise<string>;
59
+ writeFile: (path: string, data: string, encoding: 'utf-8') => Promise<void>;
60
+ mkdir: (path: string, options: {
61
+ recursive: boolean;
62
+ }) => Promise<string | undefined>;
63
+ }): Promise<void>;
64
+ getModifyContext(_abortSignal: AbortSignal): ModifyContext<SaveMemoryParams>;
65
+ }
66
+ export {};