@egentica/codemap 0.1.5
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.md +165 -0
- package/README.md +479 -0
- package/dist/adapters/EgenticaMcpAdapter.d.ts +128 -0
- package/dist/adapters/EgenticaMcpAdapter.d.ts.map +1 -0
- package/dist/adapters/EgenticaMcpAdapter.js +218 -0
- package/dist/adapters/EgenticaMcpAdapter.js.map +1 -0
- package/dist/assist/AssistEngine.d.ts +107 -0
- package/dist/assist/AssistEngine.d.ts.map +1 -0
- package/dist/assist/AssistEngine.js +188 -0
- package/dist/assist/AssistEngine.js.map +1 -0
- package/dist/assist/AssistScorer.d.ts +91 -0
- package/dist/assist/AssistScorer.d.ts.map +1 -0
- package/dist/assist/AssistScorer.js +254 -0
- package/dist/assist/AssistScorer.js.map +1 -0
- package/dist/assist/PatternAggregator.d.ts +116 -0
- package/dist/assist/PatternAggregator.d.ts.map +1 -0
- package/dist/assist/PatternAggregator.js +311 -0
- package/dist/assist/PatternAggregator.js.map +1 -0
- package/dist/assist/RelevanceScorer.d.ts +104 -0
- package/dist/assist/RelevanceScorer.d.ts.map +1 -0
- package/dist/assist/RelevanceScorer.js +240 -0
- package/dist/assist/RelevanceScorer.js.map +1 -0
- package/dist/assist/index.d.ts +6 -0
- package/dist/assist/index.d.ts.map +1 -0
- package/dist/assist/index.js +9 -0
- package/dist/assist/index.js.map +1 -0
- package/dist/core/AnnotationStore.d.ts +101 -0
- package/dist/core/AnnotationStore.d.ts.map +1 -0
- package/dist/core/AnnotationStore.js +236 -0
- package/dist/core/AnnotationStore.js.map +1 -0
- package/dist/core/BackupManager.d.ts +92 -0
- package/dist/core/BackupManager.d.ts.map +1 -0
- package/dist/core/BackupManager.js +311 -0
- package/dist/core/BackupManager.js.map +1 -0
- package/dist/core/ChecklistStore.d.ts +66 -0
- package/dist/core/ChecklistStore.d.ts.map +1 -0
- package/dist/core/ChecklistStore.js +199 -0
- package/dist/core/ChecklistStore.js.map +1 -0
- package/dist/core/CodeMap.d.ts +614 -0
- package/dist/core/CodeMap.d.ts.map +1 -0
- package/dist/core/CodeMap.js +880 -0
- package/dist/core/CodeMap.js.map +1 -0
- package/dist/core/DisplayFilter.d.ts +83 -0
- package/dist/core/DisplayFilter.d.ts.map +1 -0
- package/dist/core/DisplayFilter.js +228 -0
- package/dist/core/DisplayFilter.js.map +1 -0
- package/dist/core/EventBus.d.ts +114 -0
- package/dist/core/EventBus.d.ts.map +1 -0
- package/dist/core/EventBus.js +192 -0
- package/dist/core/EventBus.js.map +1 -0
- package/dist/core/ExperienceStore.d.ts +170 -0
- package/dist/core/ExperienceStore.d.ts.map +1 -0
- package/dist/core/ExperienceStore.js +292 -0
- package/dist/core/ExperienceStore.js.map +1 -0
- package/dist/core/ExperienceTracker.d.ts +110 -0
- package/dist/core/ExperienceTracker.d.ts.map +1 -0
- package/dist/core/ExperienceTracker.js +291 -0
- package/dist/core/ExperienceTracker.js.map +1 -0
- package/dist/core/FileSystemGraph.d.ts +157 -0
- package/dist/core/FileSystemGraph.d.ts.map +1 -0
- package/dist/core/FileSystemGraph.js +316 -0
- package/dist/core/FileSystemGraph.js.map +1 -0
- package/dist/core/FileSystemIO.d.ts +222 -0
- package/dist/core/FileSystemIO.d.ts.map +1 -0
- package/dist/core/FileSystemIO.js +403 -0
- package/dist/core/FileSystemIO.js.map +1 -0
- package/dist/core/FuzzyMatcher.d.ts +51 -0
- package/dist/core/FuzzyMatcher.d.ts.map +1 -0
- package/dist/core/FuzzyMatcher.js +280 -0
- package/dist/core/FuzzyMatcher.js.map +1 -0
- package/dist/core/GroupStore.d.ts +114 -0
- package/dist/core/GroupStore.d.ts.map +1 -0
- package/dist/core/GroupStore.js +246 -0
- package/dist/core/GroupStore.js.map +1 -0
- package/dist/core/HelpRegistry.d.ts +116 -0
- package/dist/core/HelpRegistry.d.ts.map +1 -0
- package/dist/core/HelpRegistry.js +160 -0
- package/dist/core/HelpRegistry.js.map +1 -0
- package/dist/core/HintRegistry.d.ts +49 -0
- package/dist/core/HintRegistry.d.ts.map +1 -0
- package/dist/core/HintRegistry.js +81 -0
- package/dist/core/HintRegistry.js.map +1 -0
- package/dist/core/LabelStore.d.ts +88 -0
- package/dist/core/LabelStore.d.ts.map +1 -0
- package/dist/core/LabelStore.js +520 -0
- package/dist/core/LabelStore.js.map +1 -0
- package/dist/core/LineRangeWriter.d.ts +63 -0
- package/dist/core/LineRangeWriter.d.ts.map +1 -0
- package/dist/core/LineRangeWriter.js +179 -0
- package/dist/core/LineRangeWriter.js.map +1 -0
- package/dist/core/ParserRegistry.d.ts +70 -0
- package/dist/core/ParserRegistry.d.ts.map +1 -0
- package/dist/core/ParserRegistry.js +109 -0
- package/dist/core/ParserRegistry.js.map +1 -0
- package/dist/core/PluginRegistry.d.ts +120 -0
- package/dist/core/PluginRegistry.d.ts.map +1 -0
- package/dist/core/PluginRegistry.js +230 -0
- package/dist/core/PluginRegistry.js.map +1 -0
- package/dist/core/QueryEngine.d.ts +134 -0
- package/dist/core/QueryEngine.d.ts.map +1 -0
- package/dist/core/QueryEngine.js +211 -0
- package/dist/core/QueryEngine.js.map +1 -0
- package/dist/core/Scanner.d.ts +84 -0
- package/dist/core/Scanner.d.ts.map +1 -0
- package/dist/core/Scanner.js +184 -0
- package/dist/core/Scanner.js.map +1 -0
- package/dist/core/SessionTransactionLog.d.ts +138 -0
- package/dist/core/SessionTransactionLog.d.ts.map +1 -0
- package/dist/core/SessionTransactionLog.js +397 -0
- package/dist/core/SessionTransactionLog.js.map +1 -0
- package/dist/core/TargetParser.d.ts +85 -0
- package/dist/core/TargetParser.d.ts.map +1 -0
- package/dist/core/TargetParser.js +167 -0
- package/dist/core/TargetParser.js.map +1 -0
- package/dist/core/TargetResolver.d.ts +115 -0
- package/dist/core/TargetResolver.d.ts.map +1 -0
- package/dist/core/TargetResolver.js +237 -0
- package/dist/core/TargetResolver.js.map +1 -0
- package/dist/core/WriteSafetyGuard.d.ts +101 -0
- package/dist/core/WriteSafetyGuard.d.ts.map +1 -0
- package/dist/core/WriteSafetyGuard.js +265 -0
- package/dist/core/WriteSafetyGuard.js.map +1 -0
- package/dist/core/index.d.ts +38 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +51 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/query/DependencyTraversal.d.ts +23 -0
- package/dist/core/query/DependencyTraversal.d.ts.map +1 -0
- package/dist/core/query/DependencyTraversal.js +55 -0
- package/dist/core/query/DependencyTraversal.js.map +1 -0
- package/dist/core/query/ResultProcessor.d.ts +20 -0
- package/dist/core/query/ResultProcessor.d.ts.map +1 -0
- package/dist/core/query/ResultProcessor.js +99 -0
- package/dist/core/query/ResultProcessor.js.map +1 -0
- package/dist/core/query/SymbolSearchEngine.d.ts +20 -0
- package/dist/core/query/SymbolSearchEngine.d.ts.map +1 -0
- package/dist/core/query/SymbolSearchEngine.js +109 -0
- package/dist/core/query/SymbolSearchEngine.js.map +1 -0
- package/dist/core/query/TextSearchEngine.d.ts +23 -0
- package/dist/core/query/TextSearchEngine.d.ts.map +1 -0
- package/dist/core/query/TextSearchEngine.js +69 -0
- package/dist/core/query/TextSearchEngine.js.map +1 -0
- package/dist/core/query/index.d.ts +11 -0
- package/dist/core/query/index.d.ts.map +1 -0
- package/dist/core/query/index.js +18 -0
- package/dist/core/query/index.js.map +1 -0
- package/dist/core/scan/DependencyResolver.d.ts +26 -0
- package/dist/core/scan/DependencyResolver.d.ts.map +1 -0
- package/dist/core/scan/DependencyResolver.js +81 -0
- package/dist/core/scan/DependencyResolver.js.map +1 -0
- package/dist/core/scan/DirectoryWalker.d.ts +39 -0
- package/dist/core/scan/DirectoryWalker.d.ts.map +1 -0
- package/dist/core/scan/DirectoryWalker.js +136 -0
- package/dist/core/scan/DirectoryWalker.js.map +1 -0
- package/dist/core/scan/IgnorePatternMatcher.d.ts +32 -0
- package/dist/core/scan/IgnorePatternMatcher.d.ts.map +1 -0
- package/dist/core/scan/IgnorePatternMatcher.js +120 -0
- package/dist/core/scan/IgnorePatternMatcher.js.map +1 -0
- package/dist/core/scan/index.d.ts +10 -0
- package/dist/core/scan/index.d.ts.map +1 -0
- package/dist/core/scan/index.js +16 -0
- package/dist/core/scan/index.js.map +1 -0
- package/dist/core/utils/packageDiscovery.d.ts +24 -0
- package/dist/core/utils/packageDiscovery.d.ts.map +1 -0
- package/dist/core/utils/packageDiscovery.js +37 -0
- package/dist/core/utils/packageDiscovery.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/operations/annotations.d.ts +9 -0
- package/dist/mcp/operations/annotations.d.ts.map +1 -0
- package/dist/mcp/operations/annotations.js +66 -0
- package/dist/mcp/operations/annotations.js.map +1 -0
- package/dist/mcp/operations/files.d.ts +13 -0
- package/dist/mcp/operations/files.d.ts.map +1 -0
- package/dist/mcp/operations/files.js +173 -0
- package/dist/mcp/operations/files.js.map +1 -0
- package/dist/mcp/operations/graph.d.ts +10 -0
- package/dist/mcp/operations/graph.d.ts.map +1 -0
- package/dist/mcp/operations/graph.js +69 -0
- package/dist/mcp/operations/graph.js.map +1 -0
- package/dist/mcp/operations/groups.d.ts +55 -0
- package/dist/mcp/operations/groups.d.ts.map +1 -0
- package/dist/mcp/operations/groups.js +233 -0
- package/dist/mcp/operations/groups.js.map +1 -0
- package/dist/mcp/operations/help.d.ts +36 -0
- package/dist/mcp/operations/help.d.ts.map +1 -0
- package/dist/mcp/operations/help.js +322 -0
- package/dist/mcp/operations/help.js.map +1 -0
- package/dist/mcp/operations/session.d.ts +13 -0
- package/dist/mcp/operations/session.d.ts.map +1 -0
- package/dist/mcp/operations/session.js +169 -0
- package/dist/mcp/operations/session.js.map +1 -0
- package/dist/mcp/operations/writes.d.ts +14 -0
- package/dist/mcp/operations/writes.d.ts.map +1 -0
- package/dist/mcp/operations/writes.js +287 -0
- package/dist/mcp/operations/writes.js.map +1 -0
- package/dist/mcp/registry/ToolRegistry.d.ts +54 -0
- package/dist/mcp/registry/ToolRegistry.d.ts.map +1 -0
- package/dist/mcp/registry/ToolRegistry.js +219 -0
- package/dist/mcp/registry/ToolRegistry.js.map +1 -0
- package/dist/mcp/registry/context-guard.d.ts +13 -0
- package/dist/mcp/registry/context-guard.d.ts.map +1 -0
- package/dist/mcp/registry/context-guard.js +19 -0
- package/dist/mcp/registry/context-guard.js.map +1 -0
- package/dist/mcp/registry/schemas.d.ts +221 -0
- package/dist/mcp/registry/schemas.d.ts.map +1 -0
- package/dist/mcp/registry/schemas.js +217 -0
- package/dist/mcp/registry/schemas.js.map +1 -0
- package/dist/mcp/registry/types.d.ts +50 -0
- package/dist/mcp/registry/types.d.ts.map +1 -0
- package/dist/mcp/registry/types.js +5 -0
- package/dist/mcp/registry/types.js.map +1 -0
- package/dist/mcp/server.d.ts +35 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +264 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/annotations/add.tool.d.ts +10 -0
- package/dist/mcp/tools/annotations/add.tool.d.ts.map +1 -0
- package/dist/mcp/tools/annotations/add.tool.js +88 -0
- package/dist/mcp/tools/annotations/add.tool.js.map +1 -0
- package/dist/mcp/tools/annotations/edit.tool.d.ts +10 -0
- package/dist/mcp/tools/annotations/edit.tool.d.ts.map +1 -0
- package/dist/mcp/tools/annotations/edit.tool.js +92 -0
- package/dist/mcp/tools/annotations/edit.tool.js.map +1 -0
- package/dist/mcp/tools/annotations/remove.tool.d.ts +9 -0
- package/dist/mcp/tools/annotations/remove.tool.d.ts.map +1 -0
- package/dist/mcp/tools/annotations/remove.tool.js +87 -0
- package/dist/mcp/tools/annotations/remove.tool.js.map +1 -0
- package/dist/mcp/tools/annotations/search-annotations.tool.d.ts +11 -0
- package/dist/mcp/tools/annotations/search-annotations.tool.d.ts.map +1 -0
- package/dist/mcp/tools/annotations/search-annotations.tool.js +91 -0
- package/dist/mcp/tools/annotations/search-annotations.tool.js.map +1 -0
- package/dist/mcp/tools/backup/list.tool.d.ts +16 -0
- package/dist/mcp/tools/backup/list.tool.d.ts.map +1 -0
- package/dist/mcp/tools/backup/list.tool.js +48 -0
- package/dist/mcp/tools/backup/list.tool.js.map +1 -0
- package/dist/mcp/tools/backup/restore.tool.d.ts +15 -0
- package/dist/mcp/tools/backup/restore.tool.d.ts.map +1 -0
- package/dist/mcp/tools/backup/restore.tool.js +138 -0
- package/dist/mcp/tools/backup/restore.tool.js.map +1 -0
- package/dist/mcp/tools/checklist/add.tool.d.ts +17 -0
- package/dist/mcp/tools/checklist/add.tool.d.ts.map +1 -0
- package/dist/mcp/tools/checklist/add.tool.js +53 -0
- package/dist/mcp/tools/checklist/add.tool.js.map +1 -0
- package/dist/mcp/tools/checklist/list.tool.d.ts +11 -0
- package/dist/mcp/tools/checklist/list.tool.d.ts.map +1 -0
- package/dist/mcp/tools/checklist/list.tool.js +53 -0
- package/dist/mcp/tools/checklist/list.tool.js.map +1 -0
- package/dist/mcp/tools/checklist/remove.tool.d.ts +9 -0
- package/dist/mcp/tools/checklist/remove.tool.d.ts.map +1 -0
- package/dist/mcp/tools/checklist/remove.tool.js +63 -0
- package/dist/mcp/tools/checklist/remove.tool.js.map +1 -0
- package/dist/mcp/tools/graph/get-dependencies.tool.d.ts +8 -0
- package/dist/mcp/tools/graph/get-dependencies.tool.d.ts.map +1 -0
- package/dist/mcp/tools/graph/get-dependencies.tool.js +58 -0
- package/dist/mcp/tools/graph/get-dependencies.tool.js.map +1 -0
- package/dist/mcp/tools/graph/get-related.tool.d.ts +9 -0
- package/dist/mcp/tools/graph/get-related.tool.d.ts.map +1 -0
- package/dist/mcp/tools/graph/get-related.tool.js +63 -0
- package/dist/mcp/tools/graph/get-related.tool.js.map +1 -0
- package/dist/mcp/tools/graph/impact-analysis.tool.d.ts +9 -0
- package/dist/mcp/tools/graph/impact-analysis.tool.d.ts.map +1 -0
- package/dist/mcp/tools/graph/impact-analysis.tool.js +61 -0
- package/dist/mcp/tools/graph/impact-analysis.tool.js.map +1 -0
- package/dist/mcp/tools/graph/traverse.tool.d.ts +13 -0
- package/dist/mcp/tools/graph/traverse.tool.d.ts.map +1 -0
- package/dist/mcp/tools/graph/traverse.tool.js +59 -0
- package/dist/mcp/tools/graph/traverse.tool.js.map +1 -0
- package/dist/mcp/tools/groups/add.tool.d.ts +10 -0
- package/dist/mcp/tools/groups/add.tool.d.ts.map +1 -0
- package/dist/mcp/tools/groups/add.tool.js +85 -0
- package/dist/mcp/tools/groups/add.tool.js.map +1 -0
- package/dist/mcp/tools/groups/notate.tool.d.ts +11 -0
- package/dist/mcp/tools/groups/notate.tool.d.ts.map +1 -0
- package/dist/mcp/tools/groups/notate.tool.js +86 -0
- package/dist/mcp/tools/groups/notate.tool.js.map +1 -0
- package/dist/mcp/tools/groups/search.tool.d.ts +8 -0
- package/dist/mcp/tools/groups/search.tool.d.ts.map +1 -0
- package/dist/mcp/tools/groups/search.tool.js +81 -0
- package/dist/mcp/tools/groups/search.tool.js.map +1 -0
- package/dist/mcp/tools/io/append.tool.d.ts +10 -0
- package/dist/mcp/tools/io/append.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/append.tool.js +103 -0
- package/dist/mcp/tools/io/append.tool.js.map +1 -0
- package/dist/mcp/tools/io/create.tool.d.ts +11 -0
- package/dist/mcp/tools/io/create.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/create.tool.js +119 -0
- package/dist/mcp/tools/io/create.tool.js.map +1 -0
- package/dist/mcp/tools/io/delete.tool.d.ts +9 -0
- package/dist/mcp/tools/io/delete.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/delete.tool.js +129 -0
- package/dist/mcp/tools/io/delete.tool.js.map +1 -0
- package/dist/mcp/tools/io/get-annotations.tool.d.ts +10 -0
- package/dist/mcp/tools/io/get-annotations.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/get-annotations.tool.js +97 -0
- package/dist/mcp/tools/io/get-annotations.tool.js.map +1 -0
- package/dist/mcp/tools/io/get-symbols.tool.d.ts +9 -0
- package/dist/mcp/tools/io/get-symbols.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/get-symbols.tool.js +63 -0
- package/dist/mcp/tools/io/get-symbols.tool.js.map +1 -0
- package/dist/mcp/tools/io/list.tool.d.ts +8 -0
- package/dist/mcp/tools/io/list.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/list.tool.js +68 -0
- package/dist/mcp/tools/io/list.tool.js.map +1 -0
- package/dist/mcp/tools/io/peek.tool.d.ts +11 -0
- package/dist/mcp/tools/io/peek.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/peek.tool.js +74 -0
- package/dist/mcp/tools/io/peek.tool.js.map +1 -0
- package/dist/mcp/tools/io/read-multiple.tool.d.ts +9 -0
- package/dist/mcp/tools/io/read-multiple.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/read-multiple.tool.js +72 -0
- package/dist/mcp/tools/io/read-multiple.tool.js.map +1 -0
- package/dist/mcp/tools/io/read.tool.d.ts +13 -0
- package/dist/mcp/tools/io/read.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/read.tool.js +132 -0
- package/dist/mcp/tools/io/read.tool.js.map +1 -0
- package/dist/mcp/tools/io/rename.tool.d.ts +9 -0
- package/dist/mcp/tools/io/rename.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/rename.tool.js +101 -0
- package/dist/mcp/tools/io/rename.tool.js.map +1 -0
- package/dist/mcp/tools/io/replace-many.tool.d.ts +10 -0
- package/dist/mcp/tools/io/replace-many.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/replace-many.tool.js +114 -0
- package/dist/mcp/tools/io/replace-many.tool.js.map +1 -0
- package/dist/mcp/tools/io/replace-text.tool.d.ts +12 -0
- package/dist/mcp/tools/io/replace-text.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/replace-text.tool.js +213 -0
- package/dist/mcp/tools/io/replace-text.tool.js.map +1 -0
- package/dist/mcp/tools/io/write.tool.d.ts +10 -0
- package/dist/mcp/tools/io/write.tool.d.ts.map +1 -0
- package/dist/mcp/tools/io/write.tool.js +103 -0
- package/dist/mcp/tools/io/write.tool.js.map +1 -0
- package/dist/mcp/tools/labels/assign.tool.d.ts +16 -0
- package/dist/mcp/tools/labels/assign.tool.d.ts.map +1 -0
- package/dist/mcp/tools/labels/assign.tool.js +52 -0
- package/dist/mcp/tools/labels/assign.tool.js.map +1 -0
- package/dist/mcp/tools/labels/create.tool.d.ts +12 -0
- package/dist/mcp/tools/labels/create.tool.d.ts.map +1 -0
- package/dist/mcp/tools/labels/create.tool.js +51 -0
- package/dist/mcp/tools/labels/create.tool.js.map +1 -0
- package/dist/mcp/tools/labels/delete.tool.d.ts +9 -0
- package/dist/mcp/tools/labels/delete.tool.d.ts.map +1 -0
- package/dist/mcp/tools/labels/delete.tool.js +48 -0
- package/dist/mcp/tools/labels/delete.tool.js.map +1 -0
- package/dist/mcp/tools/labels/edit.tool.d.ts +13 -0
- package/dist/mcp/tools/labels/edit.tool.d.ts.map +1 -0
- package/dist/mcp/tools/labels/edit.tool.js +58 -0
- package/dist/mcp/tools/labels/edit.tool.js.map +1 -0
- package/dist/mcp/tools/labels/list.tool.d.ts +11 -0
- package/dist/mcp/tools/labels/list.tool.d.ts.map +1 -0
- package/dist/mcp/tools/labels/list.tool.js +47 -0
- package/dist/mcp/tools/labels/list.tool.js.map +1 -0
- package/dist/mcp/tools/labels/migrate.tool.d.ts +10 -0
- package/dist/mcp/tools/labels/migrate.tool.d.ts.map +1 -0
- package/dist/mcp/tools/labels/migrate.tool.js +50 -0
- package/dist/mcp/tools/labels/migrate.tool.js.map +1 -0
- package/dist/mcp/tools/labels/search.tool.d.ts +16 -0
- package/dist/mcp/tools/labels/search.tool.d.ts.map +1 -0
- package/dist/mcp/tools/labels/search.tool.js +55 -0
- package/dist/mcp/tools/labels/search.tool.js.map +1 -0
- package/dist/mcp/tools/labels/unassign.tool.d.ts +9 -0
- package/dist/mcp/tools/labels/unassign.tool.d.ts.map +1 -0
- package/dist/mcp/tools/labels/unassign.tool.js +49 -0
- package/dist/mcp/tools/labels/unassign.tool.js.map +1 -0
- package/dist/mcp/tools/search/find-by-name.tool.d.ts +8 -0
- package/dist/mcp/tools/search/find-by-name.tool.d.ts.map +1 -0
- package/dist/mcp/tools/search/find-by-name.tool.js +57 -0
- package/dist/mcp/tools/search/find-by-name.tool.js.map +1 -0
- package/dist/mcp/tools/search/find-relevant.tool.d.ts +9 -0
- package/dist/mcp/tools/search/find-relevant.tool.d.ts.map +1 -0
- package/dist/mcp/tools/search/find-relevant.tool.js +71 -0
- package/dist/mcp/tools/search/find-relevant.tool.js.map +1 -0
- package/dist/mcp/tools/search/scan.tool.d.ts +8 -0
- package/dist/mcp/tools/search/scan.tool.d.ts.map +1 -0
- package/dist/mcp/tools/search/scan.tool.js +103 -0
- package/dist/mcp/tools/search/scan.tool.js.map +1 -0
- package/dist/mcp/tools/search/search-elements.tool.d.ts +11 -0
- package/dist/mcp/tools/search/search-elements.tool.d.ts.map +1 -0
- package/dist/mcp/tools/search/search-elements.tool.js +71 -0
- package/dist/mcp/tools/search/search-elements.tool.js.map +1 -0
- package/dist/mcp/tools/search/search-in-files.tool.d.ts +14 -0
- package/dist/mcp/tools/search/search-in-files.tool.d.ts.map +1 -0
- package/dist/mcp/tools/search/search-in-files.tool.js +204 -0
- package/dist/mcp/tools/search/search-in-files.tool.js.map +1 -0
- package/dist/mcp/tools/search/search.tool.d.ts +25 -0
- package/dist/mcp/tools/search/search.tool.d.ts.map +1 -0
- package/dist/mcp/tools/search/search.tool.js +109 -0
- package/dist/mcp/tools/search/search.tool.js.map +1 -0
- package/dist/mcp/tools/session/audit.tool.d.ts +6 -0
- package/dist/mcp/tools/session/audit.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/audit.tool.js +64 -0
- package/dist/mcp/tools/session/audit.tool.js.map +1 -0
- package/dist/mcp/tools/session/close.tool.d.ts +11 -0
- package/dist/mcp/tools/session/close.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/close.tool.js +79 -0
- package/dist/mcp/tools/session/close.tool.js.map +1 -0
- package/dist/mcp/tools/session/execute-shell.tool.d.ts +11 -0
- package/dist/mcp/tools/session/execute-shell.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/execute-shell.tool.js +87 -0
- package/dist/mcp/tools/session/execute-shell.tool.js.map +1 -0
- package/dist/mcp/tools/session/help.tool.d.ts +8 -0
- package/dist/mcp/tools/session/help.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/help.tool.js +84 -0
- package/dist/mcp/tools/session/help.tool.js.map +1 -0
- package/dist/mcp/tools/session/list.tool.d.ts +9 -0
- package/dist/mcp/tools/session/list.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/list.tool.js +49 -0
- package/dist/mcp/tools/session/list.tool.js.map +1 -0
- package/dist/mcp/tools/session/next-session.tool.d.ts +8 -0
- package/dist/mcp/tools/session/next-session.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/next-session.tool.js +87 -0
- package/dist/mcp/tools/session/next-session.tool.js.map +1 -0
- package/dist/mcp/tools/session/orient.tool.d.ts +11 -0
- package/dist/mcp/tools/session/orient.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/orient.tool.js +239 -0
- package/dist/mcp/tools/session/orient.tool.js.map +1 -0
- package/dist/mcp/tools/session/read.tool.d.ts +8 -0
- package/dist/mcp/tools/session/read.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/read.tool.js +63 -0
- package/dist/mcp/tools/session/read.tool.js.map +1 -0
- package/dist/mcp/tools/session/reindex.tool.d.ts +6 -0
- package/dist/mcp/tools/session/reindex.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/reindex.tool.js +59 -0
- package/dist/mcp/tools/session/reindex.tool.js.map +1 -0
- package/dist/mcp/tools/session/start.tool.d.ts +8 -0
- package/dist/mcp/tools/session/start.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/start.tool.js +170 -0
- package/dist/mcp/tools/session/start.tool.js.map +1 -0
- package/dist/mcp/tools/session/stats.tool.d.ts +6 -0
- package/dist/mcp/tools/session/stats.tool.d.ts.map +1 -0
- package/dist/mcp/tools/session/stats.tool.js +46 -0
- package/dist/mcp/tools/session/stats.tool.js.map +1 -0
- package/dist/plugins/parser-typescript/index.d.ts +80 -0
- package/dist/plugins/parser-typescript/index.d.ts.map +1 -0
- package/dist/plugins/parser-typescript/index.js +467 -0
- package/dist/plugins/parser-typescript/index.js.map +1 -0
- package/dist/plugins/parser-vue/index.d.ts +20 -0
- package/dist/plugins/parser-vue/index.d.ts.map +1 -0
- package/dist/plugins/parser-vue/index.js +88 -0
- package/dist/plugins/parser-vue/index.js.map +1 -0
- package/dist/plugins/parser-vue/script-parser.d.ts +18 -0
- package/dist/plugins/parser-vue/script-parser.d.ts.map +1 -0
- package/dist/plugins/parser-vue/script-parser.js +100 -0
- package/dist/plugins/parser-vue/script-parser.js.map +1 -0
- package/dist/plugins/parser-vue/template-parser.d.ts +14 -0
- package/dist/plugins/parser-vue/template-parser.d.ts.map +1 -0
- package/dist/plugins/parser-vue/template-parser.js +95 -0
- package/dist/plugins/parser-vue/template-parser.js.map +1 -0
- package/dist/query/SymbolSearch.d.ts +56 -0
- package/dist/query/SymbolSearch.d.ts.map +1 -0
- package/dist/query/SymbolSearch.js +132 -0
- package/dist/query/SymbolSearch.js.map +1 -0
- package/dist/query/TextSearch.d.ts +47 -0
- package/dist/query/TextSearch.d.ts.map +1 -0
- package/dist/query/TextSearch.js +110 -0
- package/dist/query/TextSearch.js.map +1 -0
- package/dist/storage/NodeFsProvider.d.ts +148 -0
- package/dist/storage/NodeFsProvider.d.ts.map +1 -0
- package/dist/storage/NodeFsProvider.js +264 -0
- package/dist/storage/NodeFsProvider.js.map +1 -0
- package/dist/types/annotation.d.ts +79 -0
- package/dist/types/annotation.d.ts.map +1 -0
- package/dist/types/annotation.js +10 -0
- package/dist/types/annotation.js.map +1 -0
- package/dist/types/assist.d.ts +147 -0
- package/dist/types/assist.d.ts.map +1 -0
- package/dist/types/assist.js +12 -0
- package/dist/types/assist.js.map +1 -0
- package/dist/types/contracts/FileSystemProvider.d.ts +24 -0
- package/dist/types/contracts/FileSystemProvider.d.ts.map +1 -0
- package/dist/types/contracts/FileSystemProvider.js +9 -0
- package/dist/types/contracts/FileSystemProvider.js.map +1 -0
- package/dist/types/contracts/LanguageParser.d.ts +146 -0
- package/dist/types/contracts/LanguageParser.d.ts.map +1 -0
- package/dist/types/contracts/LanguageParser.js +43 -0
- package/dist/types/contracts/LanguageParser.js.map +1 -0
- package/dist/types/contracts/Plugin.d.ts +226 -0
- package/dist/types/contracts/Plugin.d.ts.map +1 -0
- package/dist/types/contracts/Plugin.js +21 -0
- package/dist/types/contracts/Plugin.js.map +1 -0
- package/dist/types/contracts/index.d.ts +10 -0
- package/dist/types/contracts/index.d.ts.map +1 -0
- package/dist/types/contracts/index.js +26 -0
- package/dist/types/contracts/index.js.map +1 -0
- package/dist/types/core.d.ts +170 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +10 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/events.d.ts +29 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +18 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/experience.d.ts +153 -0
- package/dist/types/experience.d.ts.map +1 -0
- package/dist/types/experience.js +9 -0
- package/dist/types/experience.js.map +1 -0
- package/dist/types/graph.d.ts +35 -0
- package/dist/types/graph.d.ts.map +1 -0
- package/dist/types/graph.js +8 -0
- package/dist/types/graph.js.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +33 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/label.d.ts +150 -0
- package/dist/types/label.d.ts.map +1 -0
- package/dist/types/label.js +9 -0
- package/dist/types/label.js.map +1 -0
- package/dist/types/query.d.ts +104 -0
- package/dist/types/query.d.ts.map +1 -0
- package/dist/types/query.js +11 -0
- package/dist/types/query.js.map +1 -0
- package/dist/types/response.d.ts +133 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +60 -0
- package/dist/types/response.js.map +1 -0
- package/dist/types/target.d.ts +68 -0
- package/dist/types/target.d.ts.map +1 -0
- package/dist/types/target.js +11 -0
- package/dist/types/target.js.map +1 -0
- package/dist/utils/version.d.ts +9 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +30 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SymbolSearchEngine - Symbol name matching strategy.
|
|
4
|
+
*
|
|
5
|
+
* Handles symbol-based search with support for:
|
|
6
|
+
* - Symbol name matching (exact, contains, fuzzy)
|
|
7
|
+
* - Symbol kind filtering
|
|
8
|
+
* - Regex patterns
|
|
9
|
+
* - Relevance scoring
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SymbolSearchEngine = void 0;
|
|
13
|
+
class SymbolSearchEngine {
|
|
14
|
+
graph;
|
|
15
|
+
constructor(graph) {
|
|
16
|
+
this.graph = graph;
|
|
17
|
+
}
|
|
18
|
+
search(request, useRegex) {
|
|
19
|
+
if (useRegex) {
|
|
20
|
+
return this.regexSearch(request.query, request.symbolKinds);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return this.keywordSearch(request.query, request.symbolKinds);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
regexSearch(query, kinds) {
|
|
27
|
+
const results = new Map();
|
|
28
|
+
let regex;
|
|
29
|
+
try {
|
|
30
|
+
regex = new RegExp(query, 'i');
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
for (const file of this.graph.getAllFiles()) {
|
|
36
|
+
if (!file.symbols || file.symbols.length === 0)
|
|
37
|
+
continue;
|
|
38
|
+
const matchedSymbols = [];
|
|
39
|
+
for (const symbol of file.symbols) {
|
|
40
|
+
if (kinds && !kinds.includes(symbol.kind))
|
|
41
|
+
continue;
|
|
42
|
+
if (regex.test(symbol.name)) {
|
|
43
|
+
matchedSymbols.push(symbol);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (matchedSymbols.length > 0) {
|
|
47
|
+
results.set(file.relativePath, {
|
|
48
|
+
file,
|
|
49
|
+
relevance: 1.0,
|
|
50
|
+
reasons: matchedSymbols.map(s => `Matched symbol (regex): ${s.name} (${s.kind})`),
|
|
51
|
+
matchedSymbols
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return Array.from(results.values());
|
|
56
|
+
}
|
|
57
|
+
keywordSearch(query, kinds) {
|
|
58
|
+
const results = new Map();
|
|
59
|
+
const queryLower = query.toLowerCase();
|
|
60
|
+
for (const file of this.graph.getAllFiles()) {
|
|
61
|
+
if (!file.symbols || file.symbols.length === 0)
|
|
62
|
+
continue;
|
|
63
|
+
const matchedSymbols = [];
|
|
64
|
+
let totalRelevance = 0;
|
|
65
|
+
for (const symbol of file.symbols) {
|
|
66
|
+
if (kinds && !kinds.includes(symbol.kind))
|
|
67
|
+
continue;
|
|
68
|
+
const nameLower = symbol.name.toLowerCase();
|
|
69
|
+
let relevance = 0;
|
|
70
|
+
if (nameLower === queryLower) {
|
|
71
|
+
relevance = 1.0;
|
|
72
|
+
}
|
|
73
|
+
else if (nameLower.includes(queryLower)) {
|
|
74
|
+
relevance = 0.7;
|
|
75
|
+
}
|
|
76
|
+
else if (this.fuzzyMatch(nameLower, queryLower)) {
|
|
77
|
+
relevance = 0.3;
|
|
78
|
+
}
|
|
79
|
+
if (relevance > 0) {
|
|
80
|
+
matchedSymbols.push(symbol);
|
|
81
|
+
totalRelevance += relevance;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (matchedSymbols.length > 0) {
|
|
85
|
+
const avgRelevance = totalRelevance / matchedSymbols.length;
|
|
86
|
+
results.set(file.relativePath, {
|
|
87
|
+
file,
|
|
88
|
+
relevance: avgRelevance,
|
|
89
|
+
reasons: matchedSymbols.map(s => `Matched symbol: ${s.name} (${s.kind})`),
|
|
90
|
+
matchedSymbols
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return Array.from(results.values());
|
|
95
|
+
}
|
|
96
|
+
fuzzyMatch(haystack, needle) {
|
|
97
|
+
let needleIdx = 0;
|
|
98
|
+
for (const char of haystack) {
|
|
99
|
+
if (char === needle[needleIdx]) {
|
|
100
|
+
needleIdx++;
|
|
101
|
+
if (needleIdx === needle.length)
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return needleIdx === needle.length;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.SymbolSearchEngine = SymbolSearchEngine;
|
|
109
|
+
//# sourceMappingURL=SymbolSearchEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SymbolSearchEngine.js","sourceRoot":"","sources":["../../../src/core/query/SymbolSearchEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TextSearchEngine - File path text matching strategy.
|
|
3
|
+
*
|
|
4
|
+
* Handles keyword-based search in file paths with support for:
|
|
5
|
+
* - Multi-keyword matching
|
|
6
|
+
* - Regex patterns
|
|
7
|
+
* - Wildcard patterns
|
|
8
|
+
* - Relevance scoring based on keyword coverage
|
|
9
|
+
*/
|
|
10
|
+
import type { FileSystemGraph } from '../FileSystemGraph';
|
|
11
|
+
import type { FileEntry } from '../../types/core';
|
|
12
|
+
import type { SearchRequest, SearchResult } from '../../types/query';
|
|
13
|
+
export declare class TextSearchEngine {
|
|
14
|
+
private graph;
|
|
15
|
+
constructor(graph: FileSystemGraph);
|
|
16
|
+
search(request: SearchRequest, useRegex: boolean): SearchResult[];
|
|
17
|
+
findByName(pattern: string): FileEntry[];
|
|
18
|
+
private regexSearch;
|
|
19
|
+
private keywordSearch;
|
|
20
|
+
private extractKeywords;
|
|
21
|
+
private patternToRegex;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=TextSearchEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextSearchEngine.d.ts","sourceRoot":"","sources":["../../../src/core/query/TextSearchEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE,qBAAa,gBAAgB;IACf,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,eAAe;IAE1C,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,YAAY,EAAE;IAQjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE;IAKxC,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;CAKvB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TextSearchEngine - File path text matching strategy.
|
|
4
|
+
*
|
|
5
|
+
* Handles keyword-based search in file paths with support for:
|
|
6
|
+
* - Multi-keyword matching
|
|
7
|
+
* - Regex patterns
|
|
8
|
+
* - Wildcard patterns
|
|
9
|
+
* - Relevance scoring based on keyword coverage
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TextSearchEngine = void 0;
|
|
13
|
+
class TextSearchEngine {
|
|
14
|
+
graph;
|
|
15
|
+
constructor(graph) {
|
|
16
|
+
this.graph = graph;
|
|
17
|
+
}
|
|
18
|
+
search(request, useRegex) {
|
|
19
|
+
if (useRegex) {
|
|
20
|
+
return this.regexSearch(request.query);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return this.keywordSearch(request.query);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
findByName(pattern) {
|
|
27
|
+
const regex = this.patternToRegex(pattern);
|
|
28
|
+
return this.graph.getAllFiles().filter(f => regex.test(f.relativePath));
|
|
29
|
+
}
|
|
30
|
+
regexSearch(query) {
|
|
31
|
+
const results = [];
|
|
32
|
+
let regex;
|
|
33
|
+
try {
|
|
34
|
+
regex = new RegExp(query, 'i');
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
for (const file of this.graph.getAllFiles()) {
|
|
40
|
+
if (regex.test(file.relativePath)) {
|
|
41
|
+
results.push({ file, relevance: 1.0, reasons: [`Matched regex: ${query}`] });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return results;
|
|
45
|
+
}
|
|
46
|
+
keywordSearch(query) {
|
|
47
|
+
const results = [];
|
|
48
|
+
const keywords = this.extractKeywords(query);
|
|
49
|
+
for (const file of this.graph.getAllFiles()) {
|
|
50
|
+
const pathLower = file.relativePath.toLowerCase();
|
|
51
|
+
const matches = keywords.filter(kw => pathLower.includes(kw));
|
|
52
|
+
if (matches.length === 0)
|
|
53
|
+
continue;
|
|
54
|
+
const relevance = matches.length / keywords.length;
|
|
55
|
+
results.push({ file, relevance, reasons: matches.map(kw => `Matched keyword: ${kw}`) });
|
|
56
|
+
}
|
|
57
|
+
return results;
|
|
58
|
+
}
|
|
59
|
+
extractKeywords(query) {
|
|
60
|
+
return query.toLowerCase().split(/\s+/).filter(word => word.length >= 2);
|
|
61
|
+
}
|
|
62
|
+
patternToRegex(pattern) {
|
|
63
|
+
const escaped = pattern.replace(/[.+?^${}()|[\]\\]/g, '\\$&');
|
|
64
|
+
const regex = escaped.replace(/\*/g, '.*');
|
|
65
|
+
return new RegExp(`^${regex}$`, 'i');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.TextSearchEngine = TextSearchEngine;
|
|
69
|
+
//# sourceMappingURL=TextSearchEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextSearchEngine.js","sourceRoot":"","sources":["../../../src/core/query/TextSearchEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query strategy classes.
|
|
3
|
+
*
|
|
4
|
+
* Exported for internal use by QueryEngine and tests.
|
|
5
|
+
* External consumers should use QueryEngine's public API.
|
|
6
|
+
*/
|
|
7
|
+
export { TextSearchEngine } from './TextSearchEngine';
|
|
8
|
+
export { SymbolSearchEngine } from './SymbolSearchEngine';
|
|
9
|
+
export { ResultProcessor } from './ResultProcessor';
|
|
10
|
+
export { DependencyTraversal } from './DependencyTraversal';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/query/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Query strategy classes.
|
|
4
|
+
*
|
|
5
|
+
* Exported for internal use by QueryEngine and tests.
|
|
6
|
+
* External consumers should use QueryEngine's public API.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DependencyTraversal = exports.ResultProcessor = exports.SymbolSearchEngine = exports.TextSearchEngine = void 0;
|
|
10
|
+
var TextSearchEngine_1 = require("./TextSearchEngine");
|
|
11
|
+
Object.defineProperty(exports, "TextSearchEngine", { enumerable: true, get: function () { return TextSearchEngine_1.TextSearchEngine; } });
|
|
12
|
+
var SymbolSearchEngine_1 = require("./SymbolSearchEngine");
|
|
13
|
+
Object.defineProperty(exports, "SymbolSearchEngine", { enumerable: true, get: function () { return SymbolSearchEngine_1.SymbolSearchEngine; } });
|
|
14
|
+
var ResultProcessor_1 = require("./ResultProcessor");
|
|
15
|
+
Object.defineProperty(exports, "ResultProcessor", { enumerable: true, get: function () { return ResultProcessor_1.ResultProcessor; } });
|
|
16
|
+
var DependencyTraversal_1 = require("./DependencyTraversal");
|
|
17
|
+
Object.defineProperty(exports, "DependencyTraversal", { enumerable: true, get: function () { return DependencyTraversal_1.DependencyTraversal; } });
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/query/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DependencyResolver - Import resolution and dependency graph building.
|
|
3
|
+
*
|
|
4
|
+
* Handles:
|
|
5
|
+
* - Resolving import specifiers to file paths
|
|
6
|
+
* - Extension resolution (.ts, .tsx, .js, .vue, etc.)
|
|
7
|
+
* - Alias imports (@/)
|
|
8
|
+
* - Index file resolution
|
|
9
|
+
* - Building dependency edges in graph
|
|
10
|
+
*/
|
|
11
|
+
import type { FileSystemGraph } from '../FileSystemGraph';
|
|
12
|
+
export declare class DependencyResolver {
|
|
13
|
+
private graph;
|
|
14
|
+
private readonly extensions;
|
|
15
|
+
constructor(graph: FileSystemGraph);
|
|
16
|
+
/**
|
|
17
|
+
* Build dependency graph from file.references populated by parsers.
|
|
18
|
+
*/
|
|
19
|
+
buildDependencyGraph(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve an import specifier to an actual file path.
|
|
22
|
+
* Handles relative imports (./foo, ../bar) and extension resolution.
|
|
23
|
+
*/
|
|
24
|
+
resolveImport(fromFile: string, importSpec: string): string | null;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=DependencyResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DependencyResolver.d.ts","sourceRoot":"","sources":["../../../src/core/scan/DependencyResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0D;gBAEjE,KAAK,EAAE,eAAe;IAE1C;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAgB5B;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CA0CnE"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DependencyResolver - Import resolution and dependency graph building.
|
|
4
|
+
*
|
|
5
|
+
* Handles:
|
|
6
|
+
* - Resolving import specifiers to file paths
|
|
7
|
+
* - Extension resolution (.ts, .tsx, .js, .vue, etc.)
|
|
8
|
+
* - Alias imports (@/)
|
|
9
|
+
* - Index file resolution
|
|
10
|
+
* - Building dependency edges in graph
|
|
11
|
+
*/
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.DependencyResolver = void 0;
|
|
17
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
18
|
+
class DependencyResolver {
|
|
19
|
+
graph;
|
|
20
|
+
extensions = ['.ts', '.tsx', '.js', '.jsx', '.vue', '.mjs', '.cjs'];
|
|
21
|
+
constructor(graph) {
|
|
22
|
+
this.graph = graph;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Build dependency graph from file.references populated by parsers.
|
|
26
|
+
*/
|
|
27
|
+
buildDependencyGraph() {
|
|
28
|
+
const files = this.graph.getAllFiles();
|
|
29
|
+
for (const file of files) {
|
|
30
|
+
if (!file.references || file.references.length === 0)
|
|
31
|
+
continue;
|
|
32
|
+
for (const importSpec of file.references) {
|
|
33
|
+
const resolvedPath = this.resolveImport(file.relativePath, importSpec);
|
|
34
|
+
if (resolvedPath) {
|
|
35
|
+
this.graph.addDependency(file.relativePath, resolvedPath);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve an import specifier to an actual file path.
|
|
42
|
+
* Handles relative imports (./foo, ../bar) and extension resolution.
|
|
43
|
+
*/
|
|
44
|
+
resolveImport(fromFile, importSpec) {
|
|
45
|
+
// Skip node_modules and external packages
|
|
46
|
+
if (!importSpec.startsWith('.') && !importSpec.startsWith('@/')) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
// Handle alias imports (@/)
|
|
50
|
+
if (importSpec.startsWith('@/')) {
|
|
51
|
+
// @/ typically maps to src/
|
|
52
|
+
importSpec = 'src/' + importSpec.slice(2);
|
|
53
|
+
}
|
|
54
|
+
// Resolve relative path
|
|
55
|
+
const fromDir = node_path_1.default.dirname(fromFile);
|
|
56
|
+
let resolvedPath = node_path_1.default.join(fromDir, importSpec);
|
|
57
|
+
// Normalize to forward slashes
|
|
58
|
+
resolvedPath = resolvedPath.replace(/\\/g, '/');
|
|
59
|
+
// Check if file exists as-is
|
|
60
|
+
if (this.graph.getFile(resolvedPath)) {
|
|
61
|
+
return resolvedPath;
|
|
62
|
+
}
|
|
63
|
+
// Try with extensions
|
|
64
|
+
for (const ext of this.extensions) {
|
|
65
|
+
const withExt = resolvedPath + ext;
|
|
66
|
+
if (this.graph.getFile(withExt)) {
|
|
67
|
+
return withExt;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Try index files
|
|
71
|
+
for (const ext of this.extensions) {
|
|
72
|
+
const indexPath = node_path_1.default.join(resolvedPath, `index${ext}`).replace(/\\/g, '/');
|
|
73
|
+
if (this.graph.getFile(indexPath)) {
|
|
74
|
+
return indexPath;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.DependencyResolver = DependencyResolver;
|
|
81
|
+
//# sourceMappingURL=DependencyResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DependencyResolver.js","sourceRoot":"","sources":["../../../src/core/scan/DependencyResolver.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;AAEH,0DAA6B;AAG7B,MAAa,kBAAkB;IAGT;IAFH,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAErF,YAAoB,KAAsB;QAAtB,UAAK,GAAL,KAAK,CAAiB;IAAG,CAAC;IAE9C;;OAEG;IACH,oBAAoB;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAE/D,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBAEvE,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,QAAgB,EAAE,UAAkB;QAChD,0CAA0C;QAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4BAA4B;QAC5B,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,4BAA4B;YAC5B,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,wBAAwB;QACxB,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAElD,+BAA+B;QAC/B,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEhD,6BAA6B;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,sBAAsB;QACtB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,YAAY,GAAG,GAAG,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtED,gDAsEC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DirectoryWalker - Safe directory tree traversal.
|
|
3
|
+
*
|
|
4
|
+
* Handles:
|
|
5
|
+
* - Recursive directory walking
|
|
6
|
+
* - Circular symlink detection
|
|
7
|
+
* - Depth limit enforcement
|
|
8
|
+
* - Hardcoded directory filtering
|
|
9
|
+
*/
|
|
10
|
+
import type { FileSystemProvider } from '../../types/contracts/FileSystemProvider';
|
|
11
|
+
import type { DirEntry } from '../../types/core';
|
|
12
|
+
import type { IgnorePatternMatcher } from './IgnorePatternMatcher';
|
|
13
|
+
export interface WalkCallbacks {
|
|
14
|
+
onDirectory: (dirEntry: DirEntry) => void;
|
|
15
|
+
onFile: (relativePath: string, stats: {
|
|
16
|
+
size: number;
|
|
17
|
+
mtime: number;
|
|
18
|
+
}) => Promise<void>;
|
|
19
|
+
debugLog: (message: string) => void;
|
|
20
|
+
}
|
|
21
|
+
export declare class DirectoryWalker {
|
|
22
|
+
private rootPath;
|
|
23
|
+
private provider;
|
|
24
|
+
private patternMatcher;
|
|
25
|
+
private bypassHardcodedIgnoreList;
|
|
26
|
+
private visitedDirs;
|
|
27
|
+
private readonly maxDepth;
|
|
28
|
+
constructor(rootPath: string, provider: FileSystemProvider, patternMatcher: IgnorePatternMatcher, bypassHardcodedIgnoreList?: boolean);
|
|
29
|
+
/**
|
|
30
|
+
* Reset walker state for a new scan.
|
|
31
|
+
*/
|
|
32
|
+
reset(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Walk directory tree recursively.
|
|
35
|
+
*/
|
|
36
|
+
walk(relativePath: string, depth: number, callbacks: WalkCallbacks): Promise<void>;
|
|
37
|
+
private toAbsolutePath;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=DirectoryWalker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectoryWalker.d.ts","sourceRoot":"","sources":["../../../src/core/scan/DirectoryWalker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,yBAAyB;IAPnC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;gBAG7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,cAAc,EAAE,oBAAoB,EACpC,yBAAyB,GAAE,OAAe;IAGpD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACG,IAAI,CACR,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,aAAa,GACvB,OAAO,CAAC,IAAI,CAAC;IAqGhB,OAAO,CAAC,cAAc;CAIvB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DirectoryWalker - Safe directory tree traversal.
|
|
4
|
+
*
|
|
5
|
+
* Handles:
|
|
6
|
+
* - Recursive directory walking
|
|
7
|
+
* - Circular symlink detection
|
|
8
|
+
* - Depth limit enforcement
|
|
9
|
+
* - Hardcoded directory filtering
|
|
10
|
+
*/
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DirectoryWalker = void 0;
|
|
16
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
17
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
18
|
+
class DirectoryWalker {
|
|
19
|
+
rootPath;
|
|
20
|
+
provider;
|
|
21
|
+
patternMatcher;
|
|
22
|
+
bypassHardcodedIgnoreList;
|
|
23
|
+
visitedDirs = new Set();
|
|
24
|
+
maxDepth = 50;
|
|
25
|
+
constructor(rootPath, provider, patternMatcher, bypassHardcodedIgnoreList = false) {
|
|
26
|
+
this.rootPath = rootPath;
|
|
27
|
+
this.provider = provider;
|
|
28
|
+
this.patternMatcher = patternMatcher;
|
|
29
|
+
this.bypassHardcodedIgnoreList = bypassHardcodedIgnoreList;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Reset walker state for a new scan.
|
|
33
|
+
*/
|
|
34
|
+
reset() {
|
|
35
|
+
this.visitedDirs.clear();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Walk directory tree recursively.
|
|
39
|
+
*/
|
|
40
|
+
async walk(relativePath, depth, callbacks) {
|
|
41
|
+
const absolutePath = this.toAbsolutePath(relativePath);
|
|
42
|
+
// Check depth limit
|
|
43
|
+
if (depth > this.maxDepth) {
|
|
44
|
+
callbacks.debugLog(`MAX DEPTH EXCEEDED at ${relativePath} (depth ${depth})`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Resolve symlinks for circular detection
|
|
48
|
+
let realPath;
|
|
49
|
+
try {
|
|
50
|
+
realPath = node_fs_1.default.realpathSync(absolutePath);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
realPath = absolutePath;
|
|
54
|
+
}
|
|
55
|
+
// Check for circular symlinks
|
|
56
|
+
if (this.visitedDirs.has(realPath)) {
|
|
57
|
+
callbacks.debugLog(`CIRCULAR SYMLINK DETECTED: ${relativePath} -> ${realPath}`);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this.visitedDirs.add(realPath);
|
|
61
|
+
// Hardcoded directory filtering
|
|
62
|
+
if (!this.bypassHardcodedIgnoreList) {
|
|
63
|
+
const dirName = node_path_1.default.basename(absolutePath);
|
|
64
|
+
if (dirName.startsWith('.')) {
|
|
65
|
+
callbacks.debugLog(`HARDCODED IGNORE: ${relativePath} (hidden dir: ${dirName})`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const hardIgnoredDirs = ['node_modules', 'dist', 'out', 'build'];
|
|
69
|
+
if (hardIgnoredDirs.includes(dirName)) {
|
|
70
|
+
callbacks.debugLog(`HARDCODED IGNORE: ${relativePath} (name: ${dirName})`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Check ignore patterns
|
|
75
|
+
if (this.patternMatcher.shouldIgnore(relativePath)) {
|
|
76
|
+
callbacks.debugLog(`PATTERN IGNORE: ${relativePath}`);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
callbacks.debugLog(`Scanning: ${relativePath || '(root)'} (depth ${depth})`);
|
|
80
|
+
// Read directory contents
|
|
81
|
+
let entries;
|
|
82
|
+
try {
|
|
83
|
+
entries = await this.provider.readdir(absolutePath);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
callbacks.debugLog(`Failed to read directory ${absolutePath}: ${error}`);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// Add directory to graph via callback
|
|
90
|
+
const dirEntry = {
|
|
91
|
+
name: node_path_1.default.basename(absolutePath) || node_path_1.default.basename(this.rootPath),
|
|
92
|
+
relativePath: relativePath || '.',
|
|
93
|
+
summary: '',
|
|
94
|
+
fileCount: 0,
|
|
95
|
+
childDirs: [],
|
|
96
|
+
childFiles: [],
|
|
97
|
+
tags: [],
|
|
98
|
+
lastModified: Date.now()
|
|
99
|
+
};
|
|
100
|
+
callbacks.onDirectory(dirEntry);
|
|
101
|
+
// Process entries
|
|
102
|
+
for (const entryName of entries) {
|
|
103
|
+
const entryRelativePath = relativePath
|
|
104
|
+
? `${relativePath}/${entryName}`
|
|
105
|
+
: entryName;
|
|
106
|
+
const entryAbsolutePath = this.toAbsolutePath(entryRelativePath);
|
|
107
|
+
// Check ignore patterns
|
|
108
|
+
if (this.patternMatcher.shouldIgnore(entryRelativePath)) {
|
|
109
|
+
callbacks.debugLog(`IGNORED: ${entryRelativePath}`);
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
// Get entry stats
|
|
113
|
+
let stats;
|
|
114
|
+
try {
|
|
115
|
+
stats = await this.provider.stat(entryAbsolutePath);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
callbacks.debugLog(`Failed to stat ${entryAbsolutePath}: ${error}`);
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
if (stats.isDirectory) {
|
|
122
|
+
await this.walk(entryRelativePath, depth + 1, callbacks);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
await callbacks.onFile(entryRelativePath, stats);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
toAbsolutePath(relativePath) {
|
|
130
|
+
if (!relativePath)
|
|
131
|
+
return this.rootPath;
|
|
132
|
+
return node_path_1.default.join(this.rootPath, relativePath);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.DirectoryWalker = DirectoryWalker;
|
|
136
|
+
//# sourceMappingURL=DirectoryWalker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectoryWalker.js","sourceRoot":"","sources":["../../../src/core/scan/DirectoryWalker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IgnorePatternMatcher - Pattern matching and ignore list management.
|
|
3
|
+
*
|
|
4
|
+
* Handles:
|
|
5
|
+
* - Loading .gitignore patterns
|
|
6
|
+
* - Glob pattern matching (**, *, exact)
|
|
7
|
+
* - Pattern management (add/remove)
|
|
8
|
+
*/
|
|
9
|
+
import type { FileSystemProvider } from '../../types/contracts/FileSystemProvider';
|
|
10
|
+
export declare class IgnorePatternMatcher {
|
|
11
|
+
private rootPath;
|
|
12
|
+
private provider;
|
|
13
|
+
private patterns;
|
|
14
|
+
constructor(rootPath: string, provider: FileSystemProvider, initialPatterns?: string[]);
|
|
15
|
+
/**
|
|
16
|
+
* Load .gitignore patterns and merge with existing patterns.
|
|
17
|
+
*/
|
|
18
|
+
loadGitignore(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Check if a path should be ignored.
|
|
21
|
+
*/
|
|
22
|
+
shouldIgnore(relativePath: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a path matches a glob pattern.
|
|
25
|
+
* Supports: exact, *, **, path segments.
|
|
26
|
+
*/
|
|
27
|
+
matchesPattern(relativePath: string, pattern: string): boolean;
|
|
28
|
+
addPattern(pattern: string): void;
|
|
29
|
+
removePattern(pattern: string): void;
|
|
30
|
+
getPatterns(): string[];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=IgnorePatternMatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IgnorePatternMatcher.d.ts","sourceRoot":"","sources":["../../../src/core/scan/IgnorePatternMatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAEnF,qBAAa,oBAAoB;IAI7B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAJlB,OAAO,CAAC,QAAQ,CAAgB;gBAGtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,EACpC,eAAe,GAAE,MAAM,EAAO;IAKhC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BpC;;OAEG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAY3C;;;OAGG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAsC9D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMjC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOpC,WAAW,IAAI,MAAM,EAAE;CAGxB"}
|