@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,403 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* FileSystemIO — The Controlled Gateway
|
|
4
|
+
*
|
|
5
|
+
* All file operations in CodeMap flow through this gateway.
|
|
6
|
+
* Wraps FileSystemProvider and emits lifecycle events for plugins.
|
|
7
|
+
*
|
|
8
|
+
* NEW FEATURES:
|
|
9
|
+
* - Line range writes via LineRangeWriter
|
|
10
|
+
* - Target parsing with wildcards and line ranges
|
|
11
|
+
* - Annotation metadata via AnnotationStore
|
|
12
|
+
*
|
|
13
|
+
* This is where TimeWarp hooks into file:write:before to capture snapshots.
|
|
14
|
+
* Plugins CANNOT bypass this gateway — no direct FS access allowed.
|
|
15
|
+
*
|
|
16
|
+
* @codemap.domain.name File System Gateway
|
|
17
|
+
* @codemap.usage Add new file operation types (copy, move, chmod, etc)
|
|
18
|
+
* @codemap.usage Modify event emission logic for lifecycle hooks (file:write:before, file:write:after)
|
|
19
|
+
* @codemap.usage Integrate new features (line range operations, wildcards, safety guards)
|
|
20
|
+
* @codemap.usage Fix file operation bugs or add validation/safety checks
|
|
21
|
+
* @codemap.usage Change how FileSystemProvider is wrapped or called
|
|
22
|
+
* @codemap.policy This is the ONLY place in CodeMap that touches FileSystemProvider.
|
|
23
|
+
* @codemap.policy All plugins must use codemap.fs — no bypass, no history gaps.
|
|
24
|
+
* @codemap.warning Event handlers are async. await emit() before continuing.
|
|
25
|
+
*/
|
|
26
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
27
|
+
if (k2 === undefined) k2 = k;
|
|
28
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
29
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
30
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
31
|
+
}
|
|
32
|
+
Object.defineProperty(o, k2, desc);
|
|
33
|
+
}) : (function(o, m, k, k2) {
|
|
34
|
+
if (k2 === undefined) k2 = k;
|
|
35
|
+
o[k2] = m[k];
|
|
36
|
+
}));
|
|
37
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
38
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
39
|
+
}) : function(o, v) {
|
|
40
|
+
o["default"] = v;
|
|
41
|
+
});
|
|
42
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
43
|
+
var ownKeys = function(o) {
|
|
44
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
45
|
+
var ar = [];
|
|
46
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
47
|
+
return ar;
|
|
48
|
+
};
|
|
49
|
+
return ownKeys(o);
|
|
50
|
+
};
|
|
51
|
+
return function (mod) {
|
|
52
|
+
if (mod && mod.__esModule) return mod;
|
|
53
|
+
var result = {};
|
|
54
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
55
|
+
__setModuleDefault(result, mod);
|
|
56
|
+
return result;
|
|
57
|
+
};
|
|
58
|
+
})();
|
|
59
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
+
exports.FileSystemIO = void 0;
|
|
61
|
+
const path = __importStar(require("node:path"));
|
|
62
|
+
const TargetParser_1 = require("./TargetParser");
|
|
63
|
+
const LineRangeWriter_1 = require("./LineRangeWriter");
|
|
64
|
+
const AnnotationStore_1 = require("./AnnotationStore");
|
|
65
|
+
const WriteSafetyGuard_1 = require("./WriteSafetyGuard");
|
|
66
|
+
/**
|
|
67
|
+
* FileSystemIO wraps a storage provider and emits lifecycle events.
|
|
68
|
+
*
|
|
69
|
+
* Lifecycle flow:
|
|
70
|
+
* 1. Plugin registers handler via codemap.on('file:write:before', handler)
|
|
71
|
+
* 2. User calls codemap.fs.write(path, content)
|
|
72
|
+
* 3. FileSystemIO emits 'file:write:before' → handlers run (TimeWarp captures)
|
|
73
|
+
* 4. FileSystemIO calls provider.write(path, content)
|
|
74
|
+
* 5. FileSystemIO emits 'file:write:after' → handlers run (graph updates)
|
|
75
|
+
*
|
|
76
|
+
* Result: No writes can bypass history tracking.
|
|
77
|
+
*/
|
|
78
|
+
class FileSystemIO {
|
|
79
|
+
provider;
|
|
80
|
+
eventHandlers;
|
|
81
|
+
targetParser;
|
|
82
|
+
lineRangeWriter;
|
|
83
|
+
annotationStore;
|
|
84
|
+
safetyGuard;
|
|
85
|
+
codemap = null; // Reference to CodeMap for parser access
|
|
86
|
+
constructor(provider, codemapRoot = '.codemap') {
|
|
87
|
+
this.provider = provider;
|
|
88
|
+
this.eventHandlers = new Map();
|
|
89
|
+
this.targetParser = new TargetParser_1.TargetParser();
|
|
90
|
+
this.lineRangeWriter = new LineRangeWriter_1.LineRangeWriter(provider);
|
|
91
|
+
this.annotationStore = new AnnotationStore_1.AnnotationStore(provider, codemapRoot);
|
|
92
|
+
this.safetyGuard = new WriteSafetyGuard_1.WriteSafetyGuard(provider);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Set CodeMap reference for parser access.
|
|
96
|
+
* Called during CodeMap initialization.
|
|
97
|
+
*
|
|
98
|
+
* @param codemap - CodeMap instance
|
|
99
|
+
*/
|
|
100
|
+
setCodeMap(codemap) {
|
|
101
|
+
this.codemap = codemap;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Register an event handler.
|
|
105
|
+
* Used internally by CodeMap to wire up plugin hooks.
|
|
106
|
+
*/
|
|
107
|
+
on(event, handler) {
|
|
108
|
+
if (!this.eventHandlers.has(event)) {
|
|
109
|
+
this.eventHandlers.set(event, []);
|
|
110
|
+
}
|
|
111
|
+
this.eventHandlers.get(event).push(handler);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Emit an event to all registered handlers.
|
|
115
|
+
* Handlers run sequentially (await each before next).
|
|
116
|
+
*/
|
|
117
|
+
async emit(event, payload) {
|
|
118
|
+
const handlers = this.eventHandlers.get(event) || [];
|
|
119
|
+
for (const handler of handlers) {
|
|
120
|
+
await handler(payload);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// ── Target Parsing ─────────────────────────────────────────────────────────
|
|
124
|
+
/**
|
|
125
|
+
* Parse a target string (supports wildcards and line ranges).
|
|
126
|
+
*
|
|
127
|
+
* @param target - Target string (e.g., "file.ts:10-20" or "src/*.vue")
|
|
128
|
+
* @returns Parsed target structure
|
|
129
|
+
*/
|
|
130
|
+
parseTarget(target) {
|
|
131
|
+
return this.targetParser.parse(target);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Resolve wildcards to concrete file paths.
|
|
135
|
+
*
|
|
136
|
+
* @param _pattern - Wildcard pattern (e.g., "src/components/*.vue")
|
|
137
|
+
* @returns Array of matching file paths
|
|
138
|
+
*/
|
|
139
|
+
async resolveWildcard(_pattern) {
|
|
140
|
+
// TODO: Implement glob matching
|
|
141
|
+
// For now, return empty array (will be implemented in Scanner)
|
|
142
|
+
return [];
|
|
143
|
+
}
|
|
144
|
+
// ── Read Operations ────────────────────────────────────────────────────────
|
|
145
|
+
/**
|
|
146
|
+
* Read file content.
|
|
147
|
+
* Supports line range extraction via target parsing.
|
|
148
|
+
*
|
|
149
|
+
* @param target - File path or "file.ts:10-20" for line range
|
|
150
|
+
* @returns File content (full or line range)
|
|
151
|
+
*/
|
|
152
|
+
async read(target) {
|
|
153
|
+
// Check if target contains line range syntax
|
|
154
|
+
const hasLineRange = /:\d+(-\d+)?$/.test(target);
|
|
155
|
+
// If target is an absolute path without line range, skip parsing
|
|
156
|
+
// (TargetParser.normalizePath() converts dots to slashes, breaking paths like .codemap)
|
|
157
|
+
if (!hasLineRange && path.isAbsolute(target)) {
|
|
158
|
+
return await this.provider.read(target);
|
|
159
|
+
}
|
|
160
|
+
// Otherwise parse target (may have line range or dot notation)
|
|
161
|
+
const parsed = this.targetParser.parse(target);
|
|
162
|
+
// Read full file
|
|
163
|
+
const content = await this.provider.read(parsed.basePath);
|
|
164
|
+
// Extract line range if specified
|
|
165
|
+
if (parsed.lineRange) {
|
|
166
|
+
return this.targetParser.extractLineRange(content, parsed.lineRange);
|
|
167
|
+
}
|
|
168
|
+
return content;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Check if file/directory exists.
|
|
172
|
+
* No lifecycle events — read is passive.
|
|
173
|
+
*/
|
|
174
|
+
async exists(path) {
|
|
175
|
+
return this.provider.exists(path);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Read directory contents.
|
|
179
|
+
* No lifecycle events — read is passive.
|
|
180
|
+
*/
|
|
181
|
+
async readdir(path) {
|
|
182
|
+
return this.provider.readdir(path);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get file/directory stats.
|
|
186
|
+
* No lifecycle events — read is passive.
|
|
187
|
+
*/
|
|
188
|
+
async stat(path) {
|
|
189
|
+
return this.provider.stat(path);
|
|
190
|
+
}
|
|
191
|
+
// ── Write Operations ───────────────────────────────────────────────────────
|
|
192
|
+
/**
|
|
193
|
+
* Write file content.
|
|
194
|
+
* Supports line range replacement via target parsing.
|
|
195
|
+
*
|
|
196
|
+
* @param target - File path or "file.ts:10-20" for line range replacement
|
|
197
|
+
* @param content - Content to write
|
|
198
|
+
* @param options - Write options
|
|
199
|
+
* @returns Line range result if applicable, otherwise void
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* // Full file write
|
|
203
|
+
* await fs.write("file.ts", "content")
|
|
204
|
+
*
|
|
205
|
+
* // Line range replacement
|
|
206
|
+
* await fs.write("file.ts:10-15", "new content")
|
|
207
|
+
* // → Replaces lines 10-15 with new content
|
|
208
|
+
*/
|
|
209
|
+
async write(target, content, options = {}) {
|
|
210
|
+
// SESSION VALIDATION - all write operations require active session
|
|
211
|
+
if (this.codemap && !this.codemap.sessionLog.isSessionActive()) {
|
|
212
|
+
throw new Error('No active session. Run codemap_orient or codemap_session_start first.');
|
|
213
|
+
}
|
|
214
|
+
const parsed = this.targetParser.parse(target);
|
|
215
|
+
const emitEvents = options.emitEvents !== false;
|
|
216
|
+
// Determine if this is a line range write
|
|
217
|
+
const lineRange = options.lineRange || parsed.lineRange;
|
|
218
|
+
// SYNTAX VALIDATION (before any write operations)
|
|
219
|
+
// Only validate full-file writes (not line range replacements)
|
|
220
|
+
if (!lineRange && !options.skipValidation && this.codemap) {
|
|
221
|
+
const parser = this.codemap.getParserForFile(parsed.basePath);
|
|
222
|
+
if (parser?.validateSyntax) {
|
|
223
|
+
try {
|
|
224
|
+
const result = await parser.validateSyntax(content, parsed.basePath);
|
|
225
|
+
if (!result.valid && result.errors && result.errors.length > 0) {
|
|
226
|
+
// Format error messages
|
|
227
|
+
const errorMessages = result.errors.map((err) => ` Line ${err.line}, Col ${err.column}: ${err.message}${err.suggestion ? `\n Suggestion: ${err.suggestion}` : ''}`).join('\n');
|
|
228
|
+
throw new Error(`Syntax validation failed for ${parsed.basePath}:\n\n` +
|
|
229
|
+
errorMessages +
|
|
230
|
+
`\n\nFile was NOT written to prevent corruption.\n` +
|
|
231
|
+
`To force write despite errors, pass { skipValidation: true }.`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (validationError) {
|
|
235
|
+
// Re-throw validation errors (they already have good messages)
|
|
236
|
+
if (validationError.message?.includes('Syntax validation failed')) {
|
|
237
|
+
throw validationError;
|
|
238
|
+
}
|
|
239
|
+
// Log but don't block on parser errors (parser might be broken)
|
|
240
|
+
console.warn(`Warning: Syntax validation error for ${parsed.basePath}:`, validationError.message);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (lineRange) {
|
|
245
|
+
// Line range replacement
|
|
246
|
+
const payload = {
|
|
247
|
+
path: parsed.basePath,
|
|
248
|
+
content,
|
|
249
|
+
lineRange,
|
|
250
|
+
operation: 'write_line_range'
|
|
251
|
+
};
|
|
252
|
+
if (emitEvents) {
|
|
253
|
+
await this.emit('file:write:before', payload);
|
|
254
|
+
}
|
|
255
|
+
const result = await this.lineRangeWriter.replaceLines(parsed.basePath, lineRange, content);
|
|
256
|
+
if (emitEvents) {
|
|
257
|
+
await this.emit('file:write:after', { ...payload, result });
|
|
258
|
+
}
|
|
259
|
+
return result;
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
// Full file write with safety guarantees
|
|
263
|
+
const payload = {
|
|
264
|
+
path: parsed.basePath,
|
|
265
|
+
content,
|
|
266
|
+
operation: 'write_full'
|
|
267
|
+
};
|
|
268
|
+
if (emitEvents) {
|
|
269
|
+
await this.emit('file:write:before', payload);
|
|
270
|
+
}
|
|
271
|
+
// Use safety guard for protected write
|
|
272
|
+
const result = await this.safetyGuard.safeWrite(parsed.basePath, content);
|
|
273
|
+
if (!result.success) {
|
|
274
|
+
throw new Error(`Write failed: ${result.error}`);
|
|
275
|
+
}
|
|
276
|
+
if (emitEvents) {
|
|
277
|
+
await this.emit('file:write:after', { ...payload, safetyResult: result });
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Append content to file.
|
|
283
|
+
*
|
|
284
|
+
* @param path - File path
|
|
285
|
+
* @param content - Content to append
|
|
286
|
+
* @param options - Write options (including skipValidation)
|
|
287
|
+
*/
|
|
288
|
+
async append(path, content, options) {
|
|
289
|
+
const existing = await this.provider.read(path);
|
|
290
|
+
await this.write(path, existing + content, options);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Remove file.
|
|
294
|
+
* Emits: file:delete
|
|
295
|
+
*
|
|
296
|
+
* TimeWarp can hook into this for deletion tracking.
|
|
297
|
+
*/
|
|
298
|
+
async remove(path) {
|
|
299
|
+
// SESSION VALIDATION - all delete operations require active session
|
|
300
|
+
if (this.codemap && !this.codemap.sessionLog.isSessionActive()) {
|
|
301
|
+
throw new Error('No active session. Run codemap_orient or codemap_session_start first.');
|
|
302
|
+
}
|
|
303
|
+
const payload = { path, operation: 'delete' };
|
|
304
|
+
// Perform deletion
|
|
305
|
+
await this.provider.remove(path);
|
|
306
|
+
// Notify plugins (graph cleanup, history tracking)
|
|
307
|
+
await this.emit('file:delete', payload);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Create directory.
|
|
311
|
+
* No lifecycle events — directory creation is structural.
|
|
312
|
+
*/
|
|
313
|
+
async mkdir(path) {
|
|
314
|
+
return this.provider.mkdir(path);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Remove directory.
|
|
318
|
+
* No lifecycle events for now — can add if needed.
|
|
319
|
+
*/
|
|
320
|
+
async rmdir(path, options) {
|
|
321
|
+
return this.provider.rmdir(path, options);
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Rename/move file.
|
|
325
|
+
* Emits: file:rename
|
|
326
|
+
*
|
|
327
|
+
* TimeWarp can hook into this for history continuity across renames.
|
|
328
|
+
*/
|
|
329
|
+
async rename(oldPath, newPath) {
|
|
330
|
+
// SESSION VALIDATION - all rename operations require active session
|
|
331
|
+
if (this.codemap && !this.codemap.sessionLog.isSessionActive()) {
|
|
332
|
+
throw new Error('No active session. Run codemap_orient or codemap_session_start first.');
|
|
333
|
+
}
|
|
334
|
+
const payload = {
|
|
335
|
+
oldPath,
|
|
336
|
+
newPath,
|
|
337
|
+
operation: 'rename'
|
|
338
|
+
};
|
|
339
|
+
// Perform rename
|
|
340
|
+
await this.provider.rename(oldPath, newPath);
|
|
341
|
+
// Notify plugins (graph updates, history tracking)
|
|
342
|
+
await this.emit('file:rename', payload);
|
|
343
|
+
}
|
|
344
|
+
// ── Annotation Operations ──────────────────────────────────────────────────
|
|
345
|
+
/**
|
|
346
|
+
* Get annotation store for direct access.
|
|
347
|
+
* Used by higher-level operations that manage annotations.
|
|
348
|
+
*/
|
|
349
|
+
getAnnotationStore() {
|
|
350
|
+
return this.annotationStore;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Attach annotations to a file (convenience method).
|
|
354
|
+
*
|
|
355
|
+
* @param target - File path
|
|
356
|
+
* @param annotations - Array of annotation strings
|
|
357
|
+
* @returns Attachment result
|
|
358
|
+
*/
|
|
359
|
+
async attachAnnotations(target, annotations) {
|
|
360
|
+
return this.annotationStore.attach(target, annotations);
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Get annotations for a file (convenience method).
|
|
364
|
+
*
|
|
365
|
+
* @param target - File path
|
|
366
|
+
* @returns Annotation set (inline + meta)
|
|
367
|
+
*/
|
|
368
|
+
async getAnnotations(target) {
|
|
369
|
+
return this.annotationStore.get(target);
|
|
370
|
+
}
|
|
371
|
+
// ── Public Safety API ──────────────────────────────────────────────────────
|
|
372
|
+
/**
|
|
373
|
+
* Verify a replace operation before executing.
|
|
374
|
+
* Returns context around matches for user confirmation.
|
|
375
|
+
*
|
|
376
|
+
* @param path - File path
|
|
377
|
+
* @param oldString - String to find
|
|
378
|
+
* @returns Verification result
|
|
379
|
+
*/
|
|
380
|
+
async verifyReplace(path, oldString) {
|
|
381
|
+
return this.safetyGuard.verifyReplaceTarget(path, oldString);
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Safely replace text in file.
|
|
385
|
+
* Uses all write safety guarantees.
|
|
386
|
+
*
|
|
387
|
+
* @param path - File path
|
|
388
|
+
* @param oldString - Text to find (must be unique)
|
|
389
|
+
* @param newString - Replacement text
|
|
390
|
+
* @returns Write result
|
|
391
|
+
*/
|
|
392
|
+
async safeReplace(path, oldString, newString) {
|
|
393
|
+
return this.safetyGuard.safeReplace(path, oldString, newString);
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Get the safety guard instance for advanced operations.
|
|
397
|
+
*/
|
|
398
|
+
getSafetyGuard() {
|
|
399
|
+
return this.safetyGuard;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
exports.FileSystemIO = FileSystemIO;
|
|
403
|
+
//# sourceMappingURL=FileSystemIO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileSystemIO.js","sourceRoot":"","sources":["../../src/core/FileSystemIO.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fuzzy text matching with edit distance and character-level diffs.
|
|
3
|
+
*
|
|
4
|
+
* IMPROVEMENTS OVER OLD VERSION:
|
|
5
|
+
* - Uses Levenshtein edit distance for accurate similarity scoring
|
|
6
|
+
* - Generates character-level diffs: {-removed-}{+added+}
|
|
7
|
+
* - Gentler normalization (preserves structure, only normalizes line endings)
|
|
8
|
+
* - Never rejects matches - always shows best attempt
|
|
9
|
+
* - Detailed diff output for debugging
|
|
10
|
+
*
|
|
11
|
+
* @codemap.domain.name Fuzzy Matching
|
|
12
|
+
* @codemap.domain.relevance 1.0
|
|
13
|
+
* @codemap.domain.message Edit-distance-based text matching with visual diffs
|
|
14
|
+
*/
|
|
15
|
+
export interface LineMatchResult {
|
|
16
|
+
lineIndex: number;
|
|
17
|
+
confidence: number;
|
|
18
|
+
matchedText: string;
|
|
19
|
+
diff?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface TextMatchResult {
|
|
22
|
+
startLine: number;
|
|
23
|
+
endLine: number;
|
|
24
|
+
confidence: number;
|
|
25
|
+
matchedText: string;
|
|
26
|
+
diff?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare class FuzzyMatcher {
|
|
29
|
+
/**
|
|
30
|
+
* Find best matching line near a center point with tolerance.
|
|
31
|
+
* Returns best match regardless of confidence - never returns null unless no lines to search.
|
|
32
|
+
*/
|
|
33
|
+
findBestLineMatch(lines: string[], targetLine: string, centerLine: number, tolerance?: number): LineMatchResult | null;
|
|
34
|
+
/**
|
|
35
|
+
* Find best matching multi-line text block.
|
|
36
|
+
* Returns best match regardless of confidence - never returns null unless no text to search.
|
|
37
|
+
*/
|
|
38
|
+
findBestTextMatch(lines: string[], targetText: string, range?: {
|
|
39
|
+
start: number;
|
|
40
|
+
end: number;
|
|
41
|
+
}): TextMatchResult | null;
|
|
42
|
+
/**
|
|
43
|
+
* Check if two texts match (gentle normalization only).
|
|
44
|
+
*/
|
|
45
|
+
textMatches(text1: string, text2: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Count matching lines between two texts.
|
|
48
|
+
*/
|
|
49
|
+
countMatchingLines(text1: string, text2: string): number;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=FuzzyMatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FuzzyMatcher.d.ts","sourceRoot":"","sources":["../../src/core/FuzzyMatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAwGH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,YAAY;IAEvB;;;OAGG;IACH,iBAAiB,CACf,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAU,GACpB,eAAe,GAAG,IAAI;IA4EzB;;;OAGG;IACH,iBAAiB,CACf,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACrC,eAAe,GAAG,IAAI;IAwFzB;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAIlD;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CAezD"}
|