@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.
- package/LICENSE +202 -0
- package/README.md +294 -0
- package/dist/.last_build +0 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/src/__tests__/fixtures/filesystem-tool-fixtures.d.ts +29 -0
- package/dist/src/__tests__/fixtures/filesystem-tool-fixtures.js +30 -0
- package/dist/src/__tests__/fixtures/filesystem-tool-fixtures.js.map +1 -0
- package/dist/src/__tests__/fixtures/key-storage-fixtures.d.ts +39 -0
- package/dist/src/__tests__/fixtures/key-storage-fixtures.js +53 -0
- package/dist/src/__tests__/fixtures/key-storage-fixtures.js.map +1 -0
- package/dist/src/__tests__/fixtures/provider-formatting-fixtures.d.ts +140 -0
- package/dist/src/__tests__/fixtures/provider-formatting-fixtures.js +157 -0
- package/dist/src/__tests__/fixtures/provider-formatting-fixtures.js.map +1 -0
- package/dist/src/__tests__/red-test-helpers.d.ts +14 -0
- package/dist/src/__tests__/red-test-helpers.js +18 -0
- package/dist/src/__tests__/red-test-helpers.js.map +1 -0
- package/dist/src/formatters/IToolFormatter.d.ts +84 -0
- package/dist/src/formatters/IToolFormatter.js +6 -0
- package/dist/src/formatters/IToolFormatter.js.map +1 -0
- package/dist/src/formatters/ToolFormatter.d.ts +94 -0
- package/dist/src/formatters/ToolFormatter.js +379 -0
- package/dist/src/formatters/ToolFormatter.js.map +1 -0
- package/dist/src/formatters/ToolIdStrategy.d.ts +79 -0
- package/dist/src/formatters/ToolIdStrategy.js +173 -0
- package/dist/src/formatters/ToolIdStrategy.js.map +1 -0
- package/dist/src/formatters/doubleEscapeUtils.d.ts +46 -0
- package/dist/src/formatters/doubleEscapeUtils.js +223 -0
- package/dist/src/formatters/doubleEscapeUtils.js.map +1 -0
- package/dist/src/formatters/index.d.ts +21 -0
- package/dist/src/formatters/index.js +12 -0
- package/dist/src/formatters/index.js.map +1 -0
- package/dist/src/formatters/toolIdNormalization.d.ts +28 -0
- package/dist/src/formatters/toolIdNormalization.js +97 -0
- package/dist/src/formatters/toolIdNormalization.js.map +1 -0
- package/dist/src/formatters/toolNameUtils.d.ts +43 -0
- package/dist/src/formatters/toolNameUtils.js +143 -0
- package/dist/src/formatters/toolNameUtils.js.map +1 -0
- package/dist/src/index.d.ts +88 -0
- package/dist/src/index.js +68 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interfaces/IAsyncTaskService.d.ts +57 -0
- package/dist/src/interfaces/IAsyncTaskService.js +6 -0
- package/dist/src/interfaces/IAsyncTaskService.js.map +1 -0
- package/dist/src/interfaces/IIdeService.d.ts +62 -0
- package/dist/src/interfaces/IIdeService.js +6 -0
- package/dist/src/interfaces/IIdeService.js.map +1 -0
- package/dist/src/interfaces/ILspService.d.ts +54 -0
- package/dist/src/interfaces/ILspService.js +6 -0
- package/dist/src/interfaces/ILspService.js.map +1 -0
- package/dist/src/interfaces/IMcpToolService.d.ts +47 -0
- package/dist/src/interfaces/IMcpToolService.js +6 -0
- package/dist/src/interfaces/IMcpToolService.js.map +1 -0
- package/dist/src/interfaces/IPromptRegistryService.d.ts +51 -0
- package/dist/src/interfaces/IPromptRegistryService.js +6 -0
- package/dist/src/interfaces/IPromptRegistryService.js.map +1 -0
- package/dist/src/interfaces/ISettingsService.d.ts +50 -0
- package/dist/src/interfaces/ISettingsService.js +6 -0
- package/dist/src/interfaces/ISettingsService.js.map +1 -0
- package/dist/src/interfaces/IShellExecutionService.d.ts +55 -0
- package/dist/src/interfaces/IShellExecutionService.js +6 -0
- package/dist/src/interfaces/IShellExecutionService.js.map +1 -0
- package/dist/src/interfaces/IShellToolHost.d.ts +176 -0
- package/dist/src/interfaces/IShellToolHost.js +6 -0
- package/dist/src/interfaces/IShellToolHost.js.map +1 -0
- package/dist/src/interfaces/ISkillService.d.ts +69 -0
- package/dist/src/interfaces/ISkillService.js +6 -0
- package/dist/src/interfaces/ISkillService.js.map +1 -0
- package/dist/src/interfaces/IStorageService.d.ts +42 -0
- package/dist/src/interfaces/IStorageService.js +6 -0
- package/dist/src/interfaces/IStorageService.js.map +1 -0
- package/dist/src/interfaces/ISubagentService.d.ts +112 -0
- package/dist/src/interfaces/ISubagentService.js +6 -0
- package/dist/src/interfaces/ISubagentService.js.map +1 -0
- package/dist/src/interfaces/ITaskToolHost.d.ts +185 -0
- package/dist/src/interfaces/ITaskToolHost.js +6 -0
- package/dist/src/interfaces/ITaskToolHost.js.map +1 -0
- package/dist/src/interfaces/ITodoService.d.ts +79 -0
- package/dist/src/interfaces/ITodoService.js +6 -0
- package/dist/src/interfaces/ITodoService.js.map +1 -0
- package/dist/src/interfaces/IToolHost.d.ts +91 -0
- package/dist/src/interfaces/IToolHost.js +6 -0
- package/dist/src/interfaces/IToolHost.js.map +1 -0
- package/dist/src/interfaces/IToolKeyStorage.d.ts +62 -0
- package/dist/src/interfaces/IToolKeyStorage.js +6 -0
- package/dist/src/interfaces/IToolKeyStorage.js.map +1 -0
- package/dist/src/interfaces/IToolMessageBus.d.ts +63 -0
- package/dist/src/interfaces/IToolMessageBus.js +6 -0
- package/dist/src/interfaces/IToolMessageBus.js.map +1 -0
- package/dist/src/interfaces/IToolRegistryHost.d.ts +43 -0
- package/dist/src/interfaces/IToolRegistryHost.js +6 -0
- package/dist/src/interfaces/IToolRegistryHost.js.map +1 -0
- package/dist/src/interfaces/IWebSearchService.d.ts +16 -0
- package/dist/src/interfaces/IWebSearchService.js +7 -0
- package/dist/src/interfaces/IWebSearchService.js.map +1 -0
- package/dist/src/interfaces/index.d.ts +33 -0
- package/dist/src/interfaces/index.js +6 -0
- package/dist/src/interfaces/index.js.map +1 -0
- package/dist/src/tools/activate-skill.d.ts +26 -0
- package/dist/src/tools/activate-skill.js +121 -0
- package/dist/src/tools/activate-skill.js.map +1 -0
- package/dist/src/tools/apply-patch.d.ts +65 -0
- package/dist/src/tools/apply-patch.js +528 -0
- package/dist/src/tools/apply-patch.js.map +1 -0
- package/dist/src/tools/ast-edit/ast-config.d.ts +67 -0
- package/dist/src/tools/ast-edit/ast-config.js +72 -0
- package/dist/src/tools/ast-edit/ast-config.js.map +1 -0
- package/dist/src/tools/ast-edit/ast-edit-invocation.d.ts +40 -0
- package/dist/src/tools/ast-edit/ast-edit-invocation.js +410 -0
- package/dist/src/tools/ast-edit/ast-edit-invocation.js.map +1 -0
- package/dist/src/tools/ast-edit/ast-query-extractor.d.ts +21 -0
- package/dist/src/tools/ast-edit/ast-query-extractor.js +178 -0
- package/dist/src/tools/ast-edit/ast-query-extractor.js.map +1 -0
- package/dist/src/tools/ast-edit/ast-read-file-invocation.d.ts +26 -0
- package/dist/src/tools/ast-edit/ast-read-file-invocation.js +149 -0
- package/dist/src/tools/ast-edit/ast-read-file-invocation.js.map +1 -0
- package/dist/src/tools/ast-edit/constants.d.ts +30 -0
- package/dist/src/tools/ast-edit/constants.js +36 -0
- package/dist/src/tools/ast-edit/constants.js.map +1 -0
- package/dist/src/tools/ast-edit/context-collector.d.ts +25 -0
- package/dist/src/tools/ast-edit/context-collector.js +115 -0
- package/dist/src/tools/ast-edit/context-collector.js.map +1 -0
- package/dist/src/tools/ast-edit/context-optimizer.d.ts +29 -0
- package/dist/src/tools/ast-edit/context-optimizer.js +86 -0
- package/dist/src/tools/ast-edit/context-optimizer.js.map +1 -0
- package/dist/src/tools/ast-edit/cross-file-analyzer.d.ts +41 -0
- package/dist/src/tools/ast-edit/cross-file-analyzer.js +294 -0
- package/dist/src/tools/ast-edit/cross-file-analyzer.js.map +1 -0
- package/dist/src/tools/ast-edit/edit-calculator.d.ts +71 -0
- package/dist/src/tools/ast-edit/edit-calculator.js +249 -0
- package/dist/src/tools/ast-edit/edit-calculator.js.map +1 -0
- package/dist/src/tools/ast-edit/edit-helpers.d.ts +22 -0
- package/dist/src/tools/ast-edit/edit-helpers.js +36 -0
- package/dist/src/tools/ast-edit/edit-helpers.js.map +1 -0
- package/dist/src/tools/ast-edit/language-analysis.d.ts +19 -0
- package/dist/src/tools/ast-edit/language-analysis.js +123 -0
- package/dist/src/tools/ast-edit/language-analysis.js.map +1 -0
- package/dist/src/tools/ast-edit/local-context-analyzer.d.ts +84 -0
- package/dist/src/tools/ast-edit/local-context-analyzer.js +267 -0
- package/dist/src/tools/ast-edit/local-context-analyzer.js.map +1 -0
- package/dist/src/tools/ast-edit/repository-context-provider.d.ts +22 -0
- package/dist/src/tools/ast-edit/repository-context-provider.js +139 -0
- package/dist/src/tools/ast-edit/repository-context-provider.js.map +1 -0
- package/dist/src/tools/ast-edit/types.d.ts +155 -0
- package/dist/src/tools/ast-edit/types.js +7 -0
- package/dist/src/tools/ast-edit/types.js.map +1 -0
- package/dist/src/tools/ast-edit/workspace-context-provider.d.ts +22 -0
- package/dist/src/tools/ast-edit/workspace-context-provider.js +39 -0
- package/dist/src/tools/ast-edit/workspace-context-provider.js.map +1 -0
- package/dist/src/tools/ast-edit.d.ts +43 -0
- package/dist/src/tools/ast-edit.js +183 -0
- package/dist/src/tools/ast-edit.js.map +1 -0
- package/dist/src/tools/ast-grep.d.ts +22 -0
- package/dist/src/tools/ast-grep.js +291 -0
- package/dist/src/tools/ast-grep.js.map +1 -0
- package/dist/src/tools/check-async-tasks.d.ts +46 -0
- package/dist/src/tools/check-async-tasks.js +241 -0
- package/dist/src/tools/check-async-tasks.js.map +1 -0
- package/dist/src/tools/codesearch.d.ts +25 -0
- package/dist/src/tools/codesearch.js +153 -0
- package/dist/src/tools/codesearch.js.map +1 -0
- package/dist/src/tools/delete_line_range.d.ts +41 -0
- package/dist/src/tools/delete_line_range.js +238 -0
- package/dist/src/tools/delete_line_range.js.map +1 -0
- package/dist/src/tools/direct-web-fetch.d.ts +22 -0
- package/dist/src/tools/direct-web-fetch.js +215 -0
- package/dist/src/tools/direct-web-fetch.js.map +1 -0
- package/dist/src/tools/edit-utils.d.ts +53 -0
- package/dist/src/tools/edit-utils.js +250 -0
- package/dist/src/tools/edit-utils.js.map +1 -0
- package/dist/src/tools/edit.d.ts +70 -0
- package/dist/src/tools/edit.js +816 -0
- package/dist/src/tools/edit.js.map +1 -0
- package/dist/src/tools/exa-web-search.d.ts +27 -0
- package/dist/src/tools/exa-web-search.js +153 -0
- package/dist/src/tools/exa-web-search.js.map +1 -0
- package/dist/src/tools/glob.d.ts +55 -0
- package/dist/src/tools/glob.js +284 -0
- package/dist/src/tools/glob.js.map +1 -0
- package/dist/src/tools/google-web-fetch.d.ts +34 -0
- package/dist/src/tools/google-web-fetch.js +417 -0
- package/dist/src/tools/google-web-fetch.js.map +1 -0
- package/dist/src/tools/google-web-search-invocation.d.ts +53 -0
- package/dist/src/tools/google-web-search-invocation.js +180 -0
- package/dist/src/tools/google-web-search-invocation.js.map +1 -0
- package/dist/src/tools/google-web-search.d.ts +16 -0
- package/dist/src/tools/google-web-search.js +34 -0
- package/dist/src/tools/google-web-search.js.map +1 -0
- package/dist/src/tools/grep.d.ts +56 -0
- package/dist/src/tools/grep.js +883 -0
- package/dist/src/tools/grep.js.map +1 -0
- package/dist/src/tools/insert_at_line.d.ts +41 -0
- package/dist/src/tools/insert_at_line.js +287 -0
- package/dist/src/tools/insert_at_line.js.map +1 -0
- package/dist/src/tools/list-subagents.d.ts +31 -0
- package/dist/src/tools/list-subagents.js +122 -0
- package/dist/src/tools/list-subagents.js.map +1 -0
- package/dist/src/tools/ls.d.ts +71 -0
- package/dist/src/tools/ls.js +238 -0
- package/dist/src/tools/ls.js.map +1 -0
- package/dist/src/tools/memoryTool.d.ts +66 -0
- package/dist/src/tools/memoryTool.js +435 -0
- package/dist/src/tools/memoryTool.js.map +1 -0
- package/dist/src/tools/modifiable-tool.d.ts +37 -0
- package/dist/src/tools/modifiable-tool.js +120 -0
- package/dist/src/tools/modifiable-tool.js.map +1 -0
- package/dist/src/tools/read-file.d.ts +49 -0
- package/dist/src/tools/read-file.js +279 -0
- package/dist/src/tools/read-file.js.map +1 -0
- package/dist/src/tools/read-many-files.d.ts +60 -0
- package/dist/src/tools/read-many-files.js +529 -0
- package/dist/src/tools/read-many-files.js.map +1 -0
- package/dist/src/tools/read_line_range.d.ts +47 -0
- package/dist/src/tools/read_line_range.js +248 -0
- package/dist/src/tools/read_line_range.js.map +1 -0
- package/dist/src/tools/ripGrep.d.ts +41 -0
- package/dist/src/tools/ripGrep.js +395 -0
- package/dist/src/tools/ripGrep.js.map +1 -0
- package/dist/src/tools/shell.d.ts +60 -0
- package/dist/src/tools/shell.js +735 -0
- package/dist/src/tools/shell.js.map +1 -0
- package/dist/src/tools/structural-analysis.d.ts +27 -0
- package/dist/src/tools/structural-analysis.js +1089 -0
- package/dist/src/tools/structural-analysis.js.map +1 -0
- package/dist/src/tools/stubs.d.ts +10 -0
- package/dist/src/tools/stubs.js +6 -0
- package/dist/src/tools/stubs.js.map +1 -0
- package/dist/src/tools/task.d.ts +41 -0
- package/dist/src/tools/task.js +195 -0
- package/dist/src/tools/task.js.map +1 -0
- package/dist/src/tools/todo-events.d.ts +22 -0
- package/dist/src/tools/todo-events.js +24 -0
- package/dist/src/tools/todo-events.js.map +1 -0
- package/dist/src/tools/todo-pause.d.ts +29 -0
- package/dist/src/tools/todo-pause.js +172 -0
- package/dist/src/tools/todo-pause.js.map +1 -0
- package/dist/src/tools/todo-read.d.ts +18 -0
- package/dist/src/tools/todo-read.js +98 -0
- package/dist/src/tools/todo-read.js.map +1 -0
- package/dist/src/tools/todo-store.d.ts +35 -0
- package/dist/src/tools/todo-store.js +124 -0
- package/dist/src/tools/todo-store.js.map +1 -0
- package/dist/src/tools/todo-write.d.ts +29 -0
- package/dist/src/tools/todo-write.js +366 -0
- package/dist/src/tools/todo-write.js.map +1 -0
- package/dist/src/tools/tool-registry.d.ts +156 -0
- package/dist/src/tools/tool-registry.js +623 -0
- package/dist/src/tools/tool-registry.js.map +1 -0
- package/dist/src/tools/tools.d.ts +403 -0
- package/dist/src/tools/tools.js +519 -0
- package/dist/src/tools/tools.js.map +1 -0
- package/dist/src/tools/write-file.d.ts +45 -0
- package/dist/src/tools/write-file.js +320 -0
- package/dist/src/tools/write-file.js.map +1 -0
- package/dist/src/types/index.d.ts +17 -0
- package/dist/src/types/index.js +9 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/provider-content-types.d.ts +56 -0
- package/dist/src/types/provider-content-types.js +6 -0
- package/dist/src/types/provider-content-types.js.map +1 -0
- package/dist/src/types/todo-schemas.d.ts +263 -0
- package/dist/src/types/todo-schemas.js +32 -0
- package/dist/src/types/todo-schemas.js.map +1 -0
- package/dist/src/types/tool-confirmation-types.d.ts +34 -0
- package/dist/src/types/tool-confirmation-types.js +29 -0
- package/dist/src/types/tool-confirmation-types.js.map +1 -0
- package/dist/src/types/tool-context.d.ts +31 -0
- package/dist/src/types/tool-context.js +6 -0
- package/dist/src/types/tool-context.js.map +1 -0
- package/dist/src/types/tool-error.d.ts +69 -0
- package/dist/src/types/tool-error.js +94 -0
- package/dist/src/types/tool-error.js.map +1 -0
- package/dist/src/types/tool-names.d.ts +57 -0
- package/dist/src/types/tool-names.js +64 -0
- package/dist/src/types/tool-names.js.map +1 -0
- package/dist/src/utils/EmojiFilter.d.ts +134 -0
- package/dist/src/utils/EmojiFilter.js +370 -0
- package/dist/src/utils/EmojiFilter.js.map +1 -0
- package/dist/src/utils/ast-grep-utils.d.ts +42 -0
- package/dist/src/utils/ast-grep-utils.js +140 -0
- package/dist/src/utils/ast-grep-utils.js.map +1 -0
- package/dist/src/utils/debugLogger.d.ts +11 -0
- package/dist/src/utils/debugLogger.js +16 -0
- package/dist/src/utils/debugLogger.js.map +1 -0
- package/dist/src/utils/diffOptions.d.ts +14 -0
- package/dist/src/utils/diffOptions.js +46 -0
- package/dist/src/utils/diffOptions.js.map +1 -0
- package/dist/src/utils/editor.d.ts +39 -0
- package/dist/src/utils/editor.js +212 -0
- package/dist/src/utils/editor.js.map +1 -0
- package/dist/src/utils/ensure-dirs.d.ts +10 -0
- package/dist/src/utils/ensure-dirs.js +16 -0
- package/dist/src/utils/ensure-dirs.js.map +1 -0
- package/dist/src/utils/errors.d.ts +59 -0
- package/dist/src/utils/errors.js +178 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/fetch.d.ts +11 -0
- package/dist/src/utils/fetch.js +74 -0
- package/dist/src/utils/fetch.js.map +1 -0
- package/dist/src/utils/fileUtils.d.ts +32 -0
- package/dist/src/utils/fileUtils.js +363 -0
- package/dist/src/utils/fileUtils.js.map +1 -0
- package/dist/src/utils/fuzzy-replacer.d.ts +61 -0
- package/dist/src/utils/fuzzy-replacer.js +492 -0
- package/dist/src/utils/fuzzy-replacer.js.map +1 -0
- package/dist/src/utils/gitLineChanges.d.ts +12 -0
- package/dist/src/utils/gitLineChanges.js +171 -0
- package/dist/src/utils/gitLineChanges.js.map +1 -0
- package/dist/src/utils/gitUtils.d.ts +6 -0
- package/dist/src/utils/gitUtils.js +31 -0
- package/dist/src/utils/gitUtils.js.map +1 -0
- package/dist/src/utils/lsp-diagnostics-helper.d.ts +27 -0
- package/dist/src/utils/lsp-diagnostics-helper.js +62 -0
- package/dist/src/utils/lsp-diagnostics-helper.js.map +1 -0
- package/dist/src/utils/mediaUtils.d.ts +38 -0
- package/dist/src/utils/mediaUtils.js +22 -0
- package/dist/src/utils/mediaUtils.js.map +1 -0
- package/dist/src/utils/pathValidation.d.ts +7 -0
- package/dist/src/utils/pathValidation.js +39 -0
- package/dist/src/utils/pathValidation.js.map +1 -0
- package/dist/src/utils/paths.d.ts +7 -0
- package/dist/src/utils/paths.js +158 -0
- package/dist/src/utils/paths.js.map +1 -0
- package/dist/src/utils/resolveTextSearchTarget.d.ts +17 -0
- package/dist/src/utils/resolveTextSearchTarget.js +45 -0
- package/dist/src/utils/resolveTextSearchTarget.js.map +1 -0
- package/dist/src/utils/retry.d.ts +17 -0
- package/dist/src/utils/retry.js +185 -0
- package/dist/src/utils/retry.js.map +1 -0
- package/dist/src/utils/ripgrepPathResolver.d.ts +23 -0
- package/dist/src/utils/ripgrepPathResolver.js +179 -0
- package/dist/src/utils/ripgrepPathResolver.js.map +1 -0
- package/dist/src/utils/safeJsonStringify.d.ts +9 -0
- package/dist/src/utils/safeJsonStringify.js +21 -0
- package/dist/src/utils/safeJsonStringify.js.map +1 -0
- package/dist/src/utils/schemaValidator.d.ts +13 -0
- package/dist/src/utils/schemaValidator.js +275 -0
- package/dist/src/utils/schemaValidator.js.map +1 -0
- package/dist/src/utils/terminalSerializer.d.ts +33 -0
- package/dist/src/utils/terminalSerializer.js +6 -0
- package/dist/src/utils/terminalSerializer.js.map +1 -0
- package/dist/src/utils/todoContextTracker.d.ts +12 -0
- package/dist/src/utils/todoContextTracker.js +28 -0
- package/dist/src/utils/todoContextTracker.js.map +1 -0
- package/dist/src/utils/todoFormatter.d.ts +24 -0
- package/dist/src/utils/todoFormatter.js +157 -0
- package/dist/src/utils/todoFormatter.js.map +1 -0
- package/dist/src/utils/todoReminderService.d.ts +22 -0
- package/dist/src/utils/todoReminderService.js +43 -0
- package/dist/src/utils/todoReminderService.js.map +1 -0
- package/dist/src/utils/tool-key-storage-facade.d.ts +32 -0
- package/dist/src/utils/tool-key-storage-facade.js +56 -0
- package/dist/src/utils/tool-key-storage-facade.js.map +1 -0
- package/dist/src/utils/tool-key-storage-types.d.ts +56 -0
- package/dist/src/utils/tool-key-storage-types.js +56 -0
- package/dist/src/utils/tool-key-storage-types.js.map +1 -0
- package/dist/src/utils/toolOutputLimiter.d.ts +29 -0
- package/dist/src/utils/toolOutputLimiter.js +107 -0
- package/dist/src/utils/toolOutputLimiter.js.map +1 -0
- package/dist/src/utils/unicodeUtils.d.ts +55 -0
- package/dist/src/utils/unicodeUtils.js +129 -0
- package/dist/src/utils/unicodeUtils.js.map +1 -0
- 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 {};
|